JUCE  v5.1.1-3-g1a0b28c73
JUCE API
Point< ValueType > Class Template Reference

A pair of (x, y) coordinates. More...

#include <juce_Point.h>

Collaboration diagram for Point< ValueType >:

Public Types

typedef TypeHelpers::SmallestFloatType< ValueType >::type FloatType
 This type will be double if the Point's type is double, otherwise it will be float. More...
 

Public Member Functions

 Point () noexcept
 Creates a point at the origin. More...
 
 Point (const Point &other) noexcept
 Creates a copy of another point. More...
 
 Point (ValueType initialX, ValueType initialY) noexcept
 Creates a point from an (x, y) position. More...
 
void addXY (ValueType xToAdd, ValueType yToAdd) noexcept
 Adds a pair of coordinates to this value. More...
 
void applyTransform (const AffineTransform &transform) noexcept
 Uses a transform to change the point's coordinates. More...
 
FloatType getAngleToPoint (Point other) const noexcept
 Returns the angle from this point to another one. More...
 
ValueType getDistanceFrom (Point other) const noexcept
 Returns the straight-line distance between this point and another one. More...
 
ValueType getDistanceFromOrigin () const noexcept
 Returns the straight-line distance between this point and the origin. More...
 
ValueType getDistanceSquaredFrom (Point other) const noexcept
 Returns the square of the straight-line distance between this point and another one. More...
 
ValueType getDistanceSquaredFromOrigin () const noexcept
 Returns the square of the straight-line distance between this point and the origin. More...
 
FloatType getDotProduct (Point other) const noexcept
 Returns the dot-product of two points (x1 * x2 + y1 * y2). More...
 
Point< FloatTypegetPointOnCircumference (float radius, float angle) const noexcept
 Taking this point to be the centre of a circle, this returns a point on its circumference. More...
 
Point< FloatTypegetPointOnCircumference (float radiusX, float radiusY, float angle) const noexcept
 Taking this point to be the centre of an ellipse, this returns a point on its circumference. More...
 
ValueType getX () const noexcept
 Returns the point's x coordinate. More...
 
ValueType getY () const noexcept
 Returns the point's y coordinate. More...
 
bool isFinite () const noexcept
 Returns true if the coordinates are finite values. More...
 
bool isOrigin () const noexcept
 Returns true if the point is (0, 0). More...
 
bool operator!= (Point other) const noexcept
 
template<typename OtherType >
Point operator* (Point< OtherType > other) const noexcept
 Multiplies two points together. More...
 
template<typename FloatType >
Point operator* (FloatType multiplier) const noexcept
 Returns a point whose coordinates are multiplied by a given scalar value. More...
 
template<typename OtherType >
Pointoperator*= (Point< OtherType > other) noexcept
 Multiplies another point's coordinates to this one. More...
 
template<typename FloatType >
Pointoperator*= (FloatType multiplier) noexcept
 Multiplies the point's coordinates by a scalar value. More...
 
Point operator+ (Point other) const noexcept
 Adds two points together. More...
 
Pointoperator+= (Point other) noexcept
 Adds another point's coordinates to this one. More...
 
Point operator- (Point other) const noexcept
 Subtracts one points from another. More...
 
Point operator- () const noexcept
 Returns the inverse of this point. More...
 
Pointoperator-= (Point other) noexcept
 Subtracts another point's coordinates to this one. More...
 
template<typename OtherType >
Point operator/ (Point< OtherType > other) const noexcept
 Divides one point by another. More...
 
template<typename FloatType >
Point operator/ (FloatType divisor) const noexcept
 Returns a point whose coordinates are divided by a given scalar value. More...
 
template<typename OtherType >
Pointoperator/= (Point< OtherType > other) noexcept
 Divides this point's coordinates by another. More...
 
template<typename FloatType >
Pointoperator/= (FloatType divisor) noexcept
 Divides the point's coordinates by a scalar value. More...
 
Pointoperator= (const Point &other) noexcept
 Copies this point from another one. More...
 
bool operator== (Point other) const noexcept
 
Point rotatedAboutOrigin (ValueType angleRadians) const noexcept
 Returns the point that would be reached by rotating this point clockwise about the origin by the specified angle. More...
 
Point< introundToInt () const noexcept
 Casts this point to a Point<int> object using roundToInt() to convert the values. More...
 
void setX (ValueType newX) noexcept
 Sets the point's x coordinate. More...
 
void setXY (ValueType newX, ValueType newY) noexcept
 Changes the point's x and y coordinates. More...
 
void setY (ValueType newY) noexcept
 Sets the point's y coordinate. More...
 
Point< double > toDouble () const noexcept
 Casts this point to a Point<double> object. More...
 
Point< float > toFloat () const noexcept
 Casts this point to a Point<float> object. More...
 
Point< inttoInt () const noexcept
 Casts this point to a Point<int> object. More...
 
String toString () const
 Returns the point as a string in the form "x, y". More...
 
Point transformedBy (const AffineTransform &transform) const noexcept
 Returns the position of this point, if it is transformed by a given AffineTransform. More...
 
Point translated (ValueType deltaX, ValueType deltaY) const noexcept
 Returns a point with a given offset from this one. More...
 
Point withX (ValueType newX) const noexcept
 Returns a point which has the same Y position as this one, but a new X. More...
 
Point withY (ValueType newY) const noexcept
 Returns a point which has the same X position as this one, but a new Y. More...
 

Public Attributes

ValueType x
 The point's X coordinate. More...
 
ValueType y
 The point's Y coordinate. More...
 

Detailed Description

template<typename ValueType>
class Point< ValueType >

A pair of (x, y) coordinates.

The ValueType template should be a primitive type such as int, float, double, rather than a class.

See also
Line, Path, AffineTransform

Member Typedef Documentation

◆ FloatType

template<typename ValueType>
typedef TypeHelpers::SmallestFloatType<ValueType>::type Point< ValueType >::FloatType

This type will be double if the Point's type is double, otherwise it will be float.

Constructor & Destructor Documentation

◆ Point() [1/3]

◆ Point() [2/3]

template<typename ValueType>
Point< ValueType >::Point ( const Point< ValueType > &  other)
inlinenoexcept

Creates a copy of another point.

◆ Point() [3/3]

template<typename ValueType>
Point< ValueType >::Point ( ValueType  initialX,
ValueType  initialY 
)
inlinenoexcept

Creates a point from an (x, y) position.

Member Function Documentation

◆ addXY()

template<typename ValueType>
void Point< ValueType >::addXY ( ValueType  xToAdd,
ValueType  yToAdd 
)
inlinenoexcept

Adds a pair of coordinates to this value.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ applyTransform()

template<typename ValueType>
void Point< ValueType >::applyTransform ( const AffineTransform transform)
inlinenoexcept

Uses a transform to change the point's coordinates.

This will only compile if ValueType = float!

See also
AffineTransform::transformPoint

References Point< ValueType >::x, and Point< ValueType >::y.

Referenced by RenderingHelpers::GradientPixelIterators::Linear::Linear().

◆ getAngleToPoint()

template<typename ValueType>
FloatType Point< ValueType >::getAngleToPoint ( Point< ValueType >  other) const
inlinenoexcept

Returns the angle from this point to another one.

Taking this point to be the centre of a circle, and the other point being a position on the circumference, the return value is the number of radians clockwise from the 12 o'clock direction. So 12 o'clock = 0, 3 o'clock = Pi/2, 6 o'clock = Pi, 9 o'clock = -Pi/2

References Point< ValueType >::x, and Point< ValueType >::y.

◆ getDistanceFrom()

template<typename ValueType>
ValueType Point< ValueType >::getDistanceFrom ( Point< ValueType >  other) const
inlinenoexcept

Returns the straight-line distance between this point and another one.

References juce_hypot(), Point< ValueType >::x, and Point< ValueType >::y.

◆ getDistanceFromOrigin()

template<typename ValueType>
ValueType Point< ValueType >::getDistanceFromOrigin ( ) const
inlinenoexcept

Returns the straight-line distance between this point and the origin.

References juce_hypot(), Point< ValueType >::x, and Point< ValueType >::y.

◆ getDistanceSquaredFrom()

template<typename ValueType>
ValueType Point< ValueType >::getDistanceSquaredFrom ( Point< ValueType >  other) const
inlinenoexcept

Returns the square of the straight-line distance between this point and another one.

◆ getDistanceSquaredFromOrigin()

template<typename ValueType>
ValueType Point< ValueType >::getDistanceSquaredFromOrigin ( ) const
inlinenoexcept

Returns the square of the straight-line distance between this point and the origin.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ getDotProduct()

template<typename ValueType>
FloatType Point< ValueType >::getDotProduct ( Point< ValueType >  other) const
inlinenoexcept

Returns the dot-product of two points (x1 * x2 + y1 * y2).

References Point< ValueType >::x, and Point< ValueType >::y.

◆ getPointOnCircumference() [1/2]

template<typename ValueType>
Point<FloatType> Point< ValueType >::getPointOnCircumference ( float  radius,
float  angle 
) const
inlinenoexcept

Taking this point to be the centre of a circle, this returns a point on its circumference.

Parameters
radiusthe radius of the circle.
anglethe angle of the point, in radians clockwise from the 12 o'clock position.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ getPointOnCircumference() [2/2]

template<typename ValueType>
Point<FloatType> Point< ValueType >::getPointOnCircumference ( float  radiusX,
float  radiusY,
float  angle 
) const
inlinenoexcept

Taking this point to be the centre of an ellipse, this returns a point on its circumference.

Parameters
radiusXthe horizontal radius of the circle.
radiusYthe vertical radius of the circle.
anglethe angle of the point, in radians clockwise from the 12 o'clock position.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ getX()

template<typename ValueType>
ValueType Point< ValueType >::getX ( ) const
inlinenoexcept

Returns the point's x coordinate.

References Point< ValueType >::x.

◆ getY()

template<typename ValueType>
ValueType Point< ValueType >::getY ( ) const
inlinenoexcept

Returns the point's y coordinate.

References Point< ValueType >::y.

Referenced by RenderingHelpers::GradientPixelIterators::Linear::Linear().

◆ isFinite()

template<typename ValueType>
bool Point< ValueType >::isFinite ( ) const
inlinenoexcept

Returns true if the coordinates are finite values.

References juce::juce_isfinite(), Point< ValueType >::x, and Point< ValueType >::y.

◆ isOrigin()

template<typename ValueType>
bool Point< ValueType >::isOrigin ( ) const
inlinenoexcept

Returns true if the point is (0, 0).

References Point< ValueType >::x, and Point< ValueType >::y.

◆ operator!=()

template<typename ValueType>
bool Point< ValueType >::operator!= ( Point< ValueType >  other) const
inlinenoexcept

◆ operator*() [1/2]

template<typename ValueType>
template<typename OtherType >
Point Point< ValueType >::operator* ( Point< OtherType >  other) const
inlinenoexcept

Multiplies two points together.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ operator*() [2/2]

template<typename ValueType>
template<typename FloatType >
Point Point< ValueType >::operator* ( FloatType  multiplier) const
inlinenoexcept

Returns a point whose coordinates are multiplied by a given scalar value.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ operator*=() [1/2]

template<typename ValueType>
template<typename OtherType >
Point& Point< ValueType >::operator*= ( Point< OtherType >  other)
inlinenoexcept

Multiplies another point's coordinates to this one.

◆ operator*=() [2/2]

template<typename ValueType>
template<typename FloatType >
Point& Point< ValueType >::operator*= ( FloatType  multiplier)
inlinenoexcept

Multiplies the point's coordinates by a scalar value.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ operator+()

template<typename ValueType>
Point Point< ValueType >::operator+ ( Point< ValueType >  other) const
inlinenoexcept

Adds two points together.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ operator+=()

template<typename ValueType>
Point& Point< ValueType >::operator+= ( Point< ValueType >  other)
inlinenoexcept

Adds another point's coordinates to this one.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ operator-() [1/2]

template<typename ValueType>
Point Point< ValueType >::operator- ( Point< ValueType >  other) const
inlinenoexcept

Subtracts one points from another.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ operator-() [2/2]

template<typename ValueType>
Point Point< ValueType >::operator- ( ) const
inlinenoexcept

Returns the inverse of this point.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ operator-=()

template<typename ValueType>
Point& Point< ValueType >::operator-= ( Point< ValueType >  other)
inlinenoexcept

Subtracts another point's coordinates to this one.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ operator/() [1/2]

template<typename ValueType>
template<typename OtherType >
Point Point< ValueType >::operator/ ( Point< OtherType >  other) const
inlinenoexcept

Divides one point by another.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ operator/() [2/2]

template<typename ValueType>
template<typename FloatType >
Point Point< ValueType >::operator/ ( FloatType  divisor) const
inlinenoexcept

Returns a point whose coordinates are divided by a given scalar value.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ operator/=() [1/2]

template<typename ValueType>
template<typename OtherType >
Point& Point< ValueType >::operator/= ( Point< OtherType >  other)
inlinenoexcept

Divides this point's coordinates by another.

◆ operator/=() [2/2]

template<typename ValueType>
template<typename FloatType >
Point& Point< ValueType >::operator/= ( FloatType  divisor)
inlinenoexcept

Divides the point's coordinates by a scalar value.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ operator=()

template<typename ValueType>
Point& Point< ValueType >::operator= ( const Point< ValueType > &  other)
inlinenoexcept

Copies this point from another one.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ operator==()

template<typename ValueType>
bool Point< ValueType >::operator== ( Point< ValueType >  other) const
inlinenoexcept

◆ rotatedAboutOrigin()

template<typename ValueType>
Point Point< ValueType >::rotatedAboutOrigin ( ValueType  angleRadians) const
inlinenoexcept

Returns the point that would be reached by rotating this point clockwise about the origin by the specified angle.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ roundToInt()

template<typename ValueType>
Point<int> Point< ValueType >::roundToInt ( ) const
inlinenoexcept

Casts this point to a Point<int> object using roundToInt() to convert the values.

References juce::roundToInt(), Point< ValueType >::x, and Point< ValueType >::y.

Referenced by FakeMouseMoveGenerator::timerCallback().

◆ setX()

template<typename ValueType>
void Point< ValueType >::setX ( ValueType  newX)
inlinenoexcept

Sets the point's x coordinate.

References Point< ValueType >::x.

◆ setXY()

template<typename ValueType>
void Point< ValueType >::setXY ( ValueType  newX,
ValueType  newY 
)
inlinenoexcept

Changes the point's x and y coordinates.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ setY()

template<typename ValueType>
void Point< ValueType >::setY ( ValueType  newY)
inlinenoexcept

Sets the point's y coordinate.

References Point< ValueType >::y.

◆ toDouble()

template<typename ValueType>
Point<double> Point< ValueType >::toDouble ( ) const
inlinenoexcept

Casts this point to a Point<double> object.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ toFloat()

template<typename ValueType>
Point<float> Point< ValueType >::toFloat ( ) const
inlinenoexcept

Casts this point to a Point<float> object.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ toInt()

template<typename ValueType>
Point<int> Point< ValueType >::toInt ( ) const
inlinenoexcept

Casts this point to a Point<int> object.

References Point< ValueType >::x, and Point< ValueType >::y.

◆ toString()

template<typename ValueType>
String Point< ValueType >::toString ( ) const
inline

Returns the point as a string in the form "x, y".

References Point< ValueType >::x, and Point< ValueType >::y.

◆ transformedBy()

template<typename ValueType>
Point Point< ValueType >::transformedBy ( const AffineTransform transform) const
inlinenoexcept

Returns the position of this point, if it is transformed by a given AffineTransform.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ translated()

template<typename ValueType>
Point Point< ValueType >::translated ( ValueType  deltaX,
ValueType  deltaY 
) const
inlinenoexcept

Returns a point with a given offset from this one.

References Point< ValueType >::Point(), Point< ValueType >::x, and Point< ValueType >::y.

◆ withX()

template<typename ValueType>
Point Point< ValueType >::withX ( ValueType  newX) const
inlinenoexcept

Returns a point which has the same Y position as this one, but a new X.

References Point< ValueType >::Point(), and Point< ValueType >::y.

◆ withY()

template<typename ValueType>
Point Point< ValueType >::withY ( ValueType  newY) const
inlinenoexcept

Returns a point which has the same X position as this one, but a new Y.

References Point< ValueType >::Point(), and Point< ValueType >::x.

Member Data Documentation

◆ x

template<typename ValueType>
ValueType Point< ValueType >::x

◆ y

template<typename ValueType>
ValueType Point< ValueType >::y

The documentation for this class was generated from the following file: