clan::Pointx< Type > Class Template Reference

2D (x,y) point structure. More...

#include <point.h>

+ Inheritance diagram for clan::Pointx< Type >:

Public Member Functions

 Pointx ()
 
 Pointx (const Pointx< Type > &p)
 
 Pointx (const Vec2< Type > &p)
 
 Pointx (Type x, Type y)
 
- Public Member Functions inherited from clan::Vec2< Type >
 Vec2 ()
 
 Vec2 (const Type &p1, const Type &p2)
 
 Vec2 (const Type &scalar)
 
 Vec2 (const Type *array_xy)
 
template<typename OtherType , typename std::enable_if_t< std::is_integral< Type >::value &&!std::is_integral< OtherType >::value, int > = 0>
 Vec2 (const Vec2< OtherType > &copy)
 
template<typename OtherType , typename std::enable_if_t<!std::is_integral< Type >::value||std::is_integral< OtherType >::value, int > = 0>
 Vec2 (const Vec2< OtherType > &copy)
 
 Vec2 (const Vec2< Type > &copy)=default
 
 Vec2 (const Vec3< Type > &copy)
 
 Vec2 (const Vec4< Type > &copy)
 
Angle angle (const Vec2< Type > &vector) const
 Calculate the angle between this vector and an other vector.
 
Angle angle_line (const Vec2< Type > &point) const
 Calculate the angle of the line joining this point and other point.
 
Angle angle_normed (const Vec2< Type > &vector) const
 Calculate the angle between this vector and an other vector, where the vectors are unit vectors.
 
Type distance (const Vec2< Type > &vector) const
 Calculate the distance between this vector and an other vector.
 
Type dot (const Vec2< Type > &vector) const
 Dot products this vector with an other vector.
 
bool is_equal (const Vec2< Type > &other, Type epsilon) const
 Returns true if equal within the bounds of an epsilon.
 
Type length () const
 Returns the length (magnitude) of this vector.
 
double length () const
 
float length () const
 
Vec2< Type > & normalize ()
 Normalizes this vector.
 
bool operator!= (const Vec2< Type > &vector) const
 != operator.
 
void operator*= (const Vec2< Type > &vector)
 *= operator.
 
void operator*= (Type value)
 *= operator.
 
void operator+= (const Vec2< Type > &vector)
 += operator.
 
void operator+= (Type value)
 += operator.
 
Vec2< Type > operator- () const
 
  • operator.

 
void operator-= (const Vec2< Type > &vector)
 -= operator.
 
void operator-= (Type value)
 -= operator.
 
void operator/= (const Vec2< Type > &vector)
 /= operator.
 
void operator/= (Type value)
 /= operator.
 
bool operator< (const Vec2< Type > &vector) const
 < operator.
 
Vec2< Type > & operator= (const Vec2< Type > &vector)=default
 = operator.
 
bool operator== (const Vec2< Type > &vector) const
 == operator.
 
Vec2< Type > & rotate (const Vec2< Type > &hotspot, const Angle &angle)
 Rotate this vector around another point.
 
Vec2< Type > & round ()
 Rounds all components of this vector.
 
Type round_value (float value) const
 Rounds a value for the datatype.
 

Additional Inherited Members

- Public Types inherited from clan::Vec2< Type >
typedef Type datatype
 
- Static Public Member Functions inherited from clan::Vec2< Type >
static Pointx< Type > calc_origin (Origin origin, const Sizex< Type > &size)
 Returns the anchor point for the origin within the dimensions of the size structure.
 
static Type dot (const Vec2< Type > &vector_1, const Vec2< Type > &vector_2)
 Dot products a vector with an other vector.
 
static bool is_equal (const Vec2< Type > &first, const Vec2< Type > &second, Type epsilon)
 Returns true if equal within the bounds of an epsilon.
 
static Vec2< Type > normalize (const Vec2< Type > &vector)
 Normalizes a vector.
 
static Vec2< Type > rotate (const Vec2< Type > &vector, const Vec2< Type > &hotspot, const Angle &angle)
 Rotate a vector around another point.
 
static Vec2< Type > round (const Vec2< Type > &vector)
 Rounds all components on a vector.
 
- Public Attributes inherited from clan::Vec2< Type >
union { 
 
   Type   r 
 
   Type   s 
 
   Type   x 
 
};  
 
union { 
 
   Type   g 
 
   Type   t 
 
   Type   y 
 
};  
 

Detailed Description

template<typename Type>
class clan::Pointx< Type >

2D (x,y) point structure.

These point templates are defined for: int (Point), float (Pointf), double (Pointd)

Constructor & Destructor Documentation

◆ Pointx() [1/4]

template<typename Type >
clan::Pointx< Type >::Pointx ( )
inline

◆ Pointx() [2/4]

template<typename Type >
clan::Pointx< Type >::Pointx ( Type x,
Type y )
inline

◆ Pointx() [3/4]

template<typename Type >
clan::Pointx< Type >::Pointx ( const Pointx< Type > & p)
inline

◆ Pointx() [4/4]

template<typename Type >
clan::Pointx< Type >::Pointx ( const Vec2< Type > & p)
inline

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