130275c3fSJohn Scipione/* 230275c3fSJohn Scipione * Copyright 2014 Haiku, Inc. All rights reserved. 330275c3fSJohn Scipione * Distributed under the terms of the MIT License. 430275c3fSJohn Scipione * 530275c3fSJohn Scipione * Authors: 630275c3fSJohn Scipione * John Scipione, jscipione@gmail.com 730275c3fSJohn Scipione * 830275c3fSJohn Scipione * Corresponds to: 930275c3fSJohn Scipione * headers/os/interface/Point.h hrev47234 1030275c3fSJohn Scipione * src/kits/interface/Point.cpp hrev47234 1130275c3fSJohn Scipione */ 1230275c3fSJohn Scipione 1330275c3fSJohn Scipione 1430275c3fSJohn Scipione/*! 1530275c3fSJohn Scipione \file Point.h 1630275c3fSJohn Scipione \ingroup interface 1730275c3fSJohn Scipione \ingroup libbe 1830275c3fSJohn Scipione \brief BPoint class definition. 1930275c3fSJohn Scipione*/ 2030275c3fSJohn Scipione 2130275c3fSJohn Scipione 2230275c3fSJohn Scipione/*! 2330275c3fSJohn Scipione \var B_ORIGIN 2430275c3fSJohn Scipione \brief The origin point, equivalent to BPoint(0, 0). 25*47852bffSJohn Scipione 26*47852bffSJohn Scipione \since BeOS R5 2730275c3fSJohn Scipione*/ 2830275c3fSJohn Scipione 2930275c3fSJohn Scipione 3030275c3fSJohn Scipione/*! 3130275c3fSJohn Scipione \class BPoint 3230275c3fSJohn Scipione \ingroup interface 3330275c3fSJohn Scipione \ingroup libbe 3430275c3fSJohn Scipione \brief A point on a two-dimensional Cartesian coordinate system. 35*47852bffSJohn Scipione 36*47852bffSJohn Scipione \since BeOS R3 3730275c3fSJohn Scipione*/ 3830275c3fSJohn Scipione 3930275c3fSJohn Scipione 4030275c3fSJohn Scipione/*! 4130275c3fSJohn Scipione \var BPoint::x 4230275c3fSJohn Scipione \brief The horizontal coordinate. 43*47852bffSJohn Scipione 44*47852bffSJohn Scipione \since BeOS R3 4530275c3fSJohn Scipione*/ 4630275c3fSJohn Scipione 4730275c3fSJohn Scipione 4830275c3fSJohn Scipione/*! 4930275c3fSJohn Scipione \var BPoint::y 5030275c3fSJohn Scipione \brief The vertical coordinate. 51*47852bffSJohn Scipione 52*47852bffSJohn Scipione \since BeOS R3 5330275c3fSJohn Scipione*/ 5430275c3fSJohn Scipione 5530275c3fSJohn Scipione 5630275c3fSJohn Scipione/*! 5730275c3fSJohn Scipione \fn inline BPoint::BPoint() 5830275c3fSJohn Scipione \brief Initializes a BPoint object at the origin, (0, 0). 5930275c3fSJohn Scipione 6030275c3fSJohn Scipione \see BPoint::Set() 61*47852bffSJohn Scipione 62*47852bffSJohn Scipione \since BeOS R3 6330275c3fSJohn Scipione*/ 6430275c3fSJohn Scipione 6530275c3fSJohn Scipione 6630275c3fSJohn Scipione/*! 6730275c3fSJohn Scipione \fn inline BPoint::BPoint(float x, float y) 6830275c3fSJohn Scipione \brief Initializes a BPoint object at the specified \a x and 6930275c3fSJohn Scipione \a y coordinates. 7030275c3fSJohn Scipione 7130275c3fSJohn Scipione \param x The \a x coordinate. 7230275c3fSJohn Scipione \param y The \a y coordinate. 73*47852bffSJohn Scipione 74*47852bffSJohn Scipione \since BeOS R3 7530275c3fSJohn Scipione*/ 7630275c3fSJohn Scipione 7730275c3fSJohn Scipione 7830275c3fSJohn Scipione/*! 7930275c3fSJohn Scipione \fn inline BPoint::BPoint(const BPoint& other) 8030275c3fSJohn Scipione \brief Initializes a BPoint object from another BPoint. 8130275c3fSJohn Scipione 8230275c3fSJohn Scipione \param other The BPoint object to copy from. 8330275c3fSJohn Scipione 84*47852bffSJohn Scipione \since BeOS R3 8530275c3fSJohn Scipione*/ 8630275c3fSJohn Scipione 8730275c3fSJohn Scipione 8830275c3fSJohn Scipione/*! 8930275c3fSJohn Scipione \fn inline void BPoint::Set(float x, float y) 9030275c3fSJohn Scipione \brief Sets the \a x and \a y coordinates of a BPoint object. 9130275c3fSJohn Scipione 9230275c3fSJohn Scipione \param x The \a x coordinate to set. 9330275c3fSJohn Scipione \param y The \a y coordinate to set. 94*47852bffSJohn Scipione 95*47852bffSJohn Scipione \since BeOS R3 9630275c3fSJohn Scipione*/ 9730275c3fSJohn Scipione 9830275c3fSJohn Scipione 9930275c3fSJohn Scipione/*! 10030275c3fSJohn Scipione \fn void BPoint::ConstrainTo(BRect rect) 10130275c3fSJohn Scipione \brief Moves the BPoint so that it is contained within \a rect. 10230275c3fSJohn Scipione 10330275c3fSJohn Scipione If the BPoint is already contained within \a rect this method has no 10430275c3fSJohn Scipione effect. 10530275c3fSJohn Scipione 10630275c3fSJohn Scipione \param rect The BRect to constrain the BPoint within. 107*47852bffSJohn Scipione 108*47852bffSJohn Scipione \since BeOS R3 10930275c3fSJohn Scipione*/ 11030275c3fSJohn Scipione 11130275c3fSJohn Scipione 11230275c3fSJohn Scipione/*! 11330275c3fSJohn Scipione \fn void BPoint::PrintToStream() const 11430275c3fSJohn Scipione \brief Print the x and y coordinates to standard output. 11530275c3fSJohn Scipione 11630275c3fSJohn Scipione Prints in the following format: 11730275c3fSJohn Scipione 11830275c3fSJohn Scipione\verbatim 11930275c3fSJohn ScipioneBPoint(x:%.0f, y:%.0f) 12030275c3fSJohn Scipione\endverbatim 121*47852bffSJohn Scipione 122*47852bffSJohn Scipione \since BeOS R3 123*47852bffSJohn Scipione*/ 124*47852bffSJohn Scipione 125*47852bffSJohn Scipione 126*47852bffSJohn Scipione/*! 127*47852bffSJohn Scipione \name Operators 128*47852bffSJohn Scipione*/ 129*47852bffSJohn Scipione 130*47852bffSJohn Scipione 131*47852bffSJohn Scipione//! @{ 132*47852bffSJohn Scipione 133*47852bffSJohn Scipione 134*47852bffSJohn Scipione/*! 135*47852bffSJohn Scipione \fn inline BPoint& BPoint::operator=(const BPoint& other) 136*47852bffSJohn Scipione \brief Initializes a BPoint object from another BPoint by overloading 137*47852bffSJohn Scipione the = operator. 138*47852bffSJohn Scipione 139*47852bffSJohn Scipione \param other The BPoint object to copy from. 140*47852bffSJohn Scipione 141*47852bffSJohn Scipione \since BeOS R3 14230275c3fSJohn Scipione*/ 14330275c3fSJohn Scipione 14430275c3fSJohn Scipione 14530275c3fSJohn Scipione/*! 14630275c3fSJohn Scipione \fn BPoint BPoint::operator-() const 14730275c3fSJohn Scipione \brief Returns a BPoint object with the x and y coordinates negated. 14830275c3fSJohn Scipione 14930275c3fSJohn Scipione \return A new BPoint object. 150*47852bffSJohn Scipione 151*47852bffSJohn Scipione \since BeOS R3 15230275c3fSJohn Scipione*/ 15330275c3fSJohn Scipione 15430275c3fSJohn Scipione 15530275c3fSJohn Scipione/*! 15630275c3fSJohn Scipione \fn BPoint BPoint::operator+(const BPoint& other) const 15730275c3fSJohn Scipione \brief Returns a BPoint where the x-coordinate is the sum of the x values 15830275c3fSJohn Scipione and the y-coordinate is the sum of the y values. 15930275c3fSJohn Scipione 16030275c3fSJohn Scipione \param other The BPoint object to use in the addition. 16130275c3fSJohn Scipione 16230275c3fSJohn Scipione \return A new BPoint object. 163*47852bffSJohn Scipione 164*47852bffSJohn Scipione \since BeOS R3 16530275c3fSJohn Scipione*/ 16630275c3fSJohn Scipione 16730275c3fSJohn Scipione 16830275c3fSJohn Scipione/*! 16930275c3fSJohn Scipione \fn BPoint BPoint::operator-(const BPoint& other) const 17030275c3fSJohn Scipione \brief Returns a BPoint where the x-coordinate is the difference of the 17130275c3fSJohn Scipione x values and the y-coordinate is the difference of the y values. 17230275c3fSJohn Scipione 17330275c3fSJohn Scipione \param other The BPoint object to use in the subtraction. 17430275c3fSJohn Scipione 17530275c3fSJohn Scipione \return A new BPoint object. 176*47852bffSJohn Scipione 177*47852bffSJohn Scipione \since BeOS R3 17830275c3fSJohn Scipione*/ 17930275c3fSJohn Scipione 18030275c3fSJohn Scipione 18130275c3fSJohn Scipione/*! 18230275c3fSJohn Scipione \fn BPoint& BPoint::operator+=(const BPoint& other) 18330275c3fSJohn Scipione \brief Uses the BPoint as an accumulator storing the sum of the x values 18430275c3fSJohn Scipione and the sum of the y values. 18530275c3fSJohn Scipione 18630275c3fSJohn Scipione \param other The BPoint object to use in the addition. 18730275c3fSJohn Scipione 18830275c3fSJohn Scipione \return The address of the BPoint object. 189*47852bffSJohn Scipione 190*47852bffSJohn Scipione \since BeOS R3 19130275c3fSJohn Scipione*/ 19230275c3fSJohn Scipione 19330275c3fSJohn Scipione 19430275c3fSJohn Scipione/*! 19530275c3fSJohn Scipione \fn BPoint& BPoint::operator-=(const BPoint& other) 19630275c3fSJohn Scipione \brief Uses the BPoint as an accumulator storing the difference of the x 19730275c3fSJohn Scipione values and the difference of the y values. 19830275c3fSJohn Scipione 19930275c3fSJohn Scipione \param other The BPoint object to use in the subtraction. 20030275c3fSJohn Scipione 20130275c3fSJohn Scipione \return The address of the BPoint object. 202*47852bffSJohn Scipione 203*47852bffSJohn Scipione \since BeOS R3 20430275c3fSJohn Scipione*/ 20530275c3fSJohn Scipione 20630275c3fSJohn Scipione 20730275c3fSJohn Scipione/*! 20830275c3fSJohn Scipione \fn bool BPoint::operator!=(const BPoint& other) const 20930275c3fSJohn Scipione \brief Returns whether or not the x and y coordinates of the BPoint 21030275c3fSJohn Scipione objects differ. 21130275c3fSJohn Scipione 21230275c3fSJohn Scipione \return \c true if the x or y coordinates differ, \c false otherwise. 213*47852bffSJohn Scipione 214*47852bffSJohn Scipione \since BeOS R3 21530275c3fSJohn Scipione*/ 21630275c3fSJohn Scipione 21730275c3fSJohn Scipione 21830275c3fSJohn Scipione/*! 21930275c3fSJohn Scipione \fn bool BPoint::operator==(const BPoint& other) const 22030275c3fSJohn Scipione \brief Returns whether or not the x and y coordinates of the BPoint 22130275c3fSJohn Scipione objects are equal. 22230275c3fSJohn Scipione 22330275c3fSJohn Scipione \return \c true if the x and y coordinates are equal, \c false otherwise. 224*47852bffSJohn Scipione 225*47852bffSJohn Scipione \since BeOS R3 22630275c3fSJohn Scipione*/ 227*47852bffSJohn Scipione 228*47852bffSJohn Scipione 229*47852bffSJohn Scipione//! @} 230