summaryrefslogtreecommitdiffstats
path: root/src/math/point.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/point.h')
-rw-r--r--src/math/point.h216
1 files changed, 108 insertions, 108 deletions
diff --git a/src/math/point.h b/src/math/point.h
index fdb3051..84be190 100644
--- a/src/math/point.h
+++ b/src/math/point.h
@@ -12,10 +12,10 @@
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
+// * along with this program. If not, see http://www.gnu.org/licenses/.
/** @defgroup MathPointModule math/point.h
- Contains the Point struct and related functions.
+ Contains the Point struct and related functions.
*/
#pragma once
@@ -35,111 +35,111 @@ namespace Math
/** \struct Point math/point.h
\brief 2D point
- Represents a 2D point (x, y).
- Contains the required methods for operating on points.
+ Represents a 2D point (x, y).
+ Contains the required methods for operating on points.
- All methods are made inline to maximize optimization.
+ All methods are made inline to maximize optimization.
*/
struct Point
{
- //! X coord
- float x;
- //! Y coord
- float y;
-
- //! Constructs a zero point: (0,0)
- inline Point()
- {
- LoadZero();
- }
-
- //! Constructs a point from given coords: (x,y)
- inline explicit Point(float x, float y)
- {
- this->x = x;
- this->y = y;
- }
-
- //! Sets the zero point: (0,0)
- inline void LoadZero()
- {
- x = y = 0.0f;
- }
-
- //! Returns the distance from (0,0) to the point (x,y)
- inline float Length()
- {
- return sqrtf(x*x + y*y);
- }
-
- //! Returns the inverted point
- inline Point operator-() const
- {
- return Point(-x, -y);
- }
-
- //! Adds the given point
- inline const Point& operator+=(const Point &right)
- {
- x += right.x;
- y += right.y;
- return *this;
- }
-
- //! Adds two points
- inline friend const Point operator+(const Point &left, const Point &right)
- {
- return Point(left.x + right.x, left.y + right.y);
- }
-
- //! Subtracts the given vector
- inline const Point& operator-=(const Point &right)
- {
- x -= right.x;
- y -= right.y;
- return *this;
- }
-
- //! Subtracts two points
- inline friend const Point operator-(const Point &left, const Point &right)
- {
- return Point(left.x - right.x, left.y - right.y);
- }
-
- //! Multiplies by given scalar
- inline const Point& operator*=(const float &right)
- {
- x *= right;
- y *= right;
- return *this;
- }
-
- //! Multiplies point by scalar
- inline friend const Point operator*(const float &left, const Point &right)
- {
- return Point(left * right.x, left * right.y);
- }
-
- //! Multiplies point by scalar
- inline friend const Point operator*(const Point &left, const float &right)
- {
- return Point(left.x * right, left.y * right);
- }
-
- //! Divides by given scalar
- inline const Point& operator/=(const float &right)
- {
- x /= right;
- y /= right;
- return *this;
- }
-
- //! Divides point by scalar
- inline friend const Point operator/(const Point &left, const float &right)
- {
- return Point(left.x / right, left.y / right);
- }
+ //! X coord
+ float x;
+ //! Y coord
+ float y;
+
+ //! Constructs a zero point: (0,0)
+ inline Point()
+ {
+ LoadZero();
+ }
+
+ //! Constructs a point from given coords: (x,y)
+ inline explicit Point(float x, float y)
+ {
+ this->x = x;
+ this->y = y;
+ }
+
+ //! Sets the zero point: (0,0)
+ inline void LoadZero()
+ {
+ x = y = 0.0f;
+ }
+
+ //! Returns the distance from (0,0) to the point (x,y)
+ inline float Length()
+ {
+ return sqrtf(x*x + y*y);
+ }
+
+ //! Returns the inverted point
+ inline Point operator-() const
+ {
+ return Point(-x, -y);
+ }
+
+ //! Adds the given point
+ inline const Point& operator+=(const Point &right)
+ {
+ x += right.x;
+ y += right.y;
+ return *this;
+ }
+
+ //! Adds two points
+ inline friend const Point operator+(const Point &left, const Point &right)
+ {
+ return Point(left.x + right.x, left.y + right.y);
+ }
+
+ //! Subtracts the given vector
+ inline const Point& operator-=(const Point &right)
+ {
+ x -= right.x;
+ y -= right.y;
+ return *this;
+ }
+
+ //! Subtracts two points
+ inline friend const Point operator-(const Point &left, const Point &right)
+ {
+ return Point(left.x - right.x, left.y - right.y);
+ }
+
+ //! Multiplies by given scalar
+ inline const Point& operator*=(const float &right)
+ {
+ x *= right;
+ y *= right;
+ return *this;
+ }
+
+ //! Multiplies point by scalar
+ inline friend const Point operator*(const float &left, const Point &right)
+ {
+ return Point(left * right.x, left * right.y);
+ }
+
+ //! Multiplies point by scalar
+ inline friend const Point operator*(const Point &left, const float &right)
+ {
+ return Point(left.x * right, left.y * right);
+ }
+
+ //! Divides by given scalar
+ inline const Point& operator/=(const float &right)
+ {
+ x /= right;
+ y /= right;
+ return *this;
+ }
+
+ //! Divides point by scalar
+ inline friend const Point operator/(const Point &left, const float &right)
+ {
+ return Point(left.x / right, left.y / right);
+ }
}; // struct Point
@@ -147,23 +147,23 @@ struct Point
//! Checks if two vectors are equal within given \a tolerance
inline bool PointsEqual(const Point &a, const Point &b, float tolerance = TOLERANCE)
{
- return IsEqual(a.x, b.x, tolerance) && IsEqual(a.y, b.y, tolerance);
+ return IsEqual(a.x, b.x, tolerance) && IsEqual(a.y, b.y, tolerance);
}
//! Permutes two points
inline void Swap(Point &a, Point &b)
{
- Point c;
+ Point c;
- c = a;
- a = b;
- b = c;
+ c = a;
+ a = b;
+ b = c;
}
//! Returns the distance between two points
inline float Distance(const Point &a, const Point &b)
{
- return sqrtf((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
+ return sqrtf((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
}
/* @} */ // end of group