Public Member Functions | Public Attributes | List of all members
Parallelogram< ValueType > Class Template Reference

Represents a parallelogram that is defined by 3 points. More...

Public Member Functions

 Parallelogram ()=default
 Creates a parallelogram with zero size at the origin. More...
 
 Parallelogram (const Parallelogram &)=default
 Creates a copy of another parallelogram. More...
 
 Parallelogram (Point< ValueType > topLeftPosition, Point< ValueType > topRightPosition, Point< ValueType > bottomLeftPosition) noexcept
 Creates a parallelogram based on 3 points. More...
 
 Parallelogram (Rectangle< ValueType > rectangle) noexcept
 Creates a parallelogram from a rectangle. More...
 
Parallelogramoperator= (const Parallelogram &)=default
 
 ~Parallelogram ()=default
 Destructor. More...
 
bool isEmpty () const noexcept
 Returns true if the parallelogram has a width or height of more than zero. More...
 
bool isFinite () const noexcept
 Returns true if the parallelogram's coordinates are all finite numbers, i.e. More...
 
ValueType getWidth () const noexcept
 Returns the width of the parallelogram (i.e. More...
 
ValueType getHeight () const noexcept
 Returns the height of the parallelogram (i.e. More...
 
Point< ValueType > getTopLeft () const noexcept
 Returns the parallelogram's top-left position as a Point. More...
 
Point< ValueType > getTopRight () const noexcept
 Returns the parallelogram's top-right position as a Point. More...
 
Point< ValueType > getBottomLeft () const noexcept
 Returns the parallelogram's bottom-left position as a Point. More...
 
Point< ValueType > getBottomRight () const noexcept
 Returns the parallelogram's bottom-right position as a Point. More...
 
bool operator== (const Parallelogram &other) const noexcept
 Returns true if the two parallelograms are identical. More...
 
bool operator!= (const Parallelogram &other) const noexcept
 Returns true if the two parallelograms are not identical. More...
 
Parallelogram operator+ (Point< ValueType > deltaPosition) const noexcept
 Returns a parallelogram which is the same as this one moved by a given amount. More...
 
Parallelogramoperator+= (Point< ValueType > deltaPosition) noexcept
 Moves this parallelogram by a given amount. More...
 
Parallelogram operator- (Point< ValueType > deltaPosition) const noexcept
 Returns a parallelogram which is the same as this one moved by a given amount. More...
 
Parallelogramoperator-= (Point< ValueType > deltaPosition) noexcept
 Moves this parallelogram by a given amount. More...
 
template<typename PointOrScalarType >
Parallelogram operator* (PointOrScalarType scaleFactor) const noexcept
 Returns a parallelogram that has been scaled by the given amount, centred around the origin. More...
 
template<typename PointOrScalarType >
Parallelogram operator*= (PointOrScalarType scaleFactor) noexcept
 Scales this parallelogram by the given amount, centred around the origin. More...
 
Point< ValueType > getRelativePoint (Point< ValueType > relativePosition) const noexcept
 Returns a point within this parallelogram, specified as proportional coordinates. More...
 
Parallelogram transformedBy (const AffineTransform &transform) const noexcept
 Returns a transformed version of the parallelogram. More...
 
Rectangle< ValueType > getBoundingBox () const noexcept
 Returns the smallest rectangle that encloses this parallelogram. More...
 

Public Attributes

Point< ValueType > topLeft
 
Point< ValueType > topRight
 
Point< ValueType > bottomLeft
 

Detailed Description

template<typename ValueType>
class Parallelogram< ValueType >

Represents a parallelogram that is defined by 3 points.

See also
Rectangle, Point, Line

Constructor & Destructor Documentation

◆ Parallelogram() [1/4]

template<typename ValueType>
Parallelogram< ValueType >::Parallelogram ( )
default

Creates a parallelogram with zero size at the origin.

◆ Parallelogram() [2/4]

template<typename ValueType>
Parallelogram< ValueType >::Parallelogram ( const Parallelogram< ValueType > &  )
default

Creates a copy of another parallelogram.

◆ Parallelogram() [3/4]

template<typename ValueType>
Parallelogram< ValueType >::Parallelogram ( Point< ValueType >  topLeftPosition,
Point< ValueType >  topRightPosition,
Point< ValueType >  bottomLeftPosition 
)
noexcept

Creates a parallelogram based on 3 points.

◆ Parallelogram() [4/4]

template<typename ValueType>
Parallelogram< ValueType >::Parallelogram ( Rectangle< ValueType >  rectangle)
noexcept

Creates a parallelogram from a rectangle.

◆ ~Parallelogram()

template<typename ValueType>
Parallelogram< ValueType >::~Parallelogram ( )
default

Destructor.

Member Function Documentation

◆ operator=()

template<typename ValueType>
Parallelogram& Parallelogram< ValueType >::operator= ( const Parallelogram< ValueType > &  )
default

◆ isEmpty()

template<typename ValueType>
bool Parallelogram< ValueType >::isEmpty ( ) const
noexcept

Returns true if the parallelogram has a width or height of more than zero.

◆ isFinite()

template<typename ValueType>
bool Parallelogram< ValueType >::isFinite ( ) const
noexcept

Returns true if the parallelogram's coordinates are all finite numbers, i.e.

not NaN or infinity.

◆ getWidth()

template<typename ValueType>
ValueType Parallelogram< ValueType >::getWidth ( ) const
noexcept

Returns the width of the parallelogram (i.e.

the straight-line distance between the top-left and top-right.

◆ getHeight()

template<typename ValueType>
ValueType Parallelogram< ValueType >::getHeight ( ) const
noexcept

Returns the height of the parallelogram (i.e.

the straight-line distance between the top-left and bottom-left.

◆ getTopLeft()

template<typename ValueType>
Point<ValueType> Parallelogram< ValueType >::getTopLeft ( ) const
noexcept

Returns the parallelogram's top-left position as a Point.

◆ getTopRight()

template<typename ValueType>
Point<ValueType> Parallelogram< ValueType >::getTopRight ( ) const
noexcept

Returns the parallelogram's top-right position as a Point.

◆ getBottomLeft()

template<typename ValueType>
Point<ValueType> Parallelogram< ValueType >::getBottomLeft ( ) const
noexcept

Returns the parallelogram's bottom-left position as a Point.

◆ getBottomRight()

template<typename ValueType>
Point<ValueType> Parallelogram< ValueType >::getBottomRight ( ) const
noexcept

Returns the parallelogram's bottom-right position as a Point.

Referenced by Parallelogram< float >::getBoundingBox().

◆ operator==()

template<typename ValueType>
bool Parallelogram< ValueType >::operator== ( const Parallelogram< ValueType > &  other) const
noexcept

Returns true if the two parallelograms are identical.

Referenced by Parallelogram< float >::operator!=().

◆ operator!=()

template<typename ValueType>
bool Parallelogram< ValueType >::operator!= ( const Parallelogram< ValueType > &  other) const
noexcept

Returns true if the two parallelograms are not identical.

◆ operator+()

template<typename ValueType>
Parallelogram Parallelogram< ValueType >::operator+ ( Point< ValueType >  deltaPosition) const
noexcept

Returns a parallelogram which is the same as this one moved by a given amount.

Referenced by Parallelogram< float >::operator-().

◆ operator+=()

template<typename ValueType>
Parallelogram& Parallelogram< ValueType >::operator+= ( Point< ValueType >  deltaPosition)
noexcept

Moves this parallelogram by a given amount.

◆ operator-()

template<typename ValueType>
Parallelogram Parallelogram< ValueType >::operator- ( Point< ValueType >  deltaPosition) const
noexcept

Returns a parallelogram which is the same as this one moved by a given amount.

◆ operator-=()

template<typename ValueType>
Parallelogram& Parallelogram< ValueType >::operator-= ( Point< ValueType >  deltaPosition)
noexcept

Moves this parallelogram by a given amount.

Referenced by Parallelogram< float >::operator-=().

◆ operator*()

template<typename ValueType>
template<typename PointOrScalarType >
Parallelogram Parallelogram< ValueType >::operator* ( PointOrScalarType  scaleFactor) const
noexcept

Returns a parallelogram that has been scaled by the given amount, centred around the origin.

◆ operator*=()

template<typename ValueType>
template<typename PointOrScalarType >
Parallelogram Parallelogram< ValueType >::operator*= ( PointOrScalarType  scaleFactor)
noexcept

Scales this parallelogram by the given amount, centred around the origin.

◆ getRelativePoint()

template<typename ValueType>
Point<ValueType> Parallelogram< ValueType >::getRelativePoint ( Point< ValueType >  relativePosition) const
noexcept

Returns a point within this parallelogram, specified as proportional coordinates.

The relative X and Y values should be between 0 and 1, where 0 is the left or top of this parallelogram, and 1 is the right or bottom. (Out-of-bounds values will return a point outside the parallelogram).

◆ transformedBy()

template<typename ValueType>
Parallelogram Parallelogram< ValueType >::transformedBy ( const AffineTransform transform) const
noexcept

Returns a transformed version of the parallelogram.

◆ getBoundingBox()

template<typename ValueType>
Rectangle<ValueType> Parallelogram< ValueType >::getBoundingBox ( ) const
noexcept

Returns the smallest rectangle that encloses this parallelogram.

Member Data Documentation

◆ topLeft

template<typename ValueType>
Point<ValueType> Parallelogram< ValueType >::topLeft

◆ topRight

template<typename ValueType>
Point<ValueType> Parallelogram< ValueType >::topRight

◆ bottomLeft

template<typename ValueType>
Point<ValueType> Parallelogram< ValueType >::bottomLeft

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