Classes | Defines | Typedefs | Enumerations | Functions

clanCore Math

Classes

class  CL_Angle
 Angle class. More...
class  CL_Base64Decoder
 Base64 decoder class. More...
class  CL_Base64Encoder
 Base64 encoder class. More...
class  CL_BezierCurve
 Bezier curve generator. More...
class  CL_Circle
 Circle - Integer. More...
class  CL_Circled
 Circle - Double. More...
class  CL_Circlef
 Circle - Float. More...
class  CL_Circlex< Type >
 Circle. More...
class  CL_DelauneyTriangulator
 Delauney triangulator. More...
class  CL_DelauneyTriangulator_Triangle
 Triangle generated from a delauney triangulation. More...
class  CL_DelauneyTriangulator_Vertex
 Vertex in the delauney triangulation. More...
class  CL_EarClipResult
 Ear clipping triangulation result structure. More...
class  CL_EarClipTriangulator
 Ear-clipping triangulator. More...
class  CL_EarClipTriangulator_Triangle
 CL_EarClipTriangulator_Triangle. More...
class  CL_HashFunctions
 A Collection of checksum functions. More...
class  CL_Line2
 2D line - Integer More...
class  CL_Line2d
 2D line - Double More...
class  CL_Line2f
 2D line - Float More...
class  CL_Line2x< Type >
 2D line More...
class  CL_Line3
 3D line - Integer More...
class  CL_Line3d
 3D line - Double More...
class  CL_Line3f
 3D line - Float More...
class  CL_Line3x< Type >
 3D line More...
class  CL_LineMath
 Math operations on 2D lines. More...
class  CL_LineRay2
 2D line ray - Integer More...
class  CL_LineRay2d
 2D line ray - Double More...
class  CL_LineRay2f
 2D line ray - Float More...
class  CL_LineRay2x< Type >
 2D line ray More...
class  CL_LineRay3
 3D line ray - Integer More...
class  CL_LineRay3d
 3D line ray - Double More...
class  CL_LineRay3f
 3D line ray - Float More...
class  CL_LineRay3x< Type >
 3D line ray More...
class  CL_LineSegment2
 2D line segment - Integer More...
class  CL_LineSegment2d
 2D line segment - Double More...
class  CL_LineSegment2f
 2D line segment - Float More...
class  CL_LineSegment2x< Type >
 2D line segment More...
class  CL_LineSegment3
 3D line segment - Integer More...
class  CL_LineSegment3d
 3D line segment - Double More...
class  CL_LineSegment3f
 3D line segment - Float More...
class  CL_LineSegment3x< Type >
 3D line segment More...
class  CL_Mat2< Type >
 2D matrix More...
class  CL_Mat3< Type >
 3D matrix More...
class  CL_Mat4< Type >
 4D matrix More...
class  CL_OutlineTriangulator
 Polygon Tesselator. More...
class  CL_Point
 2D (x,y) point structure - Integer More...
class  CL_Pointd
 2D (x,y) point structure - Double More...
class  CL_Pointf
 2D (x,y) point structure - Float More...
class  CL_PointSetMath
 Math operations related to point sets. More...
class  CL_Pointx< Type >
 2D (x,y) point structure. More...
class  CL_Quad
 2D quad structure - Integer More...
class  CL_Quadd
 2D quad structure - Double More...
class  CL_Quadf
 2D quad structure - Float More...
class  CL_Quadx< Type >
 2D quad structure. More...
class  CL_Quaterniond
 Quaternion - Double. More...
class  CL_Quaternionf
 Quaternion - Float. More...
class  CL_Quaternionx< Type >
 Quaternion. More...
class  CL_Rect
 2D (left,top,right,bottom) rectangle structure - Integer More...
class  CL_Rectd
 2D (left,top,right,bottom) rectangle structure - Double More...
class  CL_Rectf
 2D (left,top,right,bottom) rectangle structure - Float More...
class  CL_Rectx< Type >
 2D (left,top,right,bottom) rectangle structure. More...
class  CL_Size
 2D (width,height) size structure - Integer More...
class  CL_Sized
 2D (width,height) size structure - Double More...
class  CL_Sizef
 2D (width,height) size structure - Float More...
class  CL_Sizex< Type >
 2D (width,height) size structure. More...
class  CL_Triangle
 Triangles - Integer. More...
class  CL_Triangled
 Triangles - Double. More...
class  CL_Trianglef
 Triangles - Float. More...
class  CL_Trianglex< Type >
 Triangles. More...
class  CL_Vec1< Type >
 1D vector More...
class  CL_Vec2< Type >
 2D vector More...
class  CL_Vec3< Type >
 3D vector More...
class  CL_Vec4< Type >
 4D vector More...

Defines

#define CL_PI   CL_M_PI_F

Typedefs

typedef CL_Mat2< double > CL_Mat2d
typedef CL_Mat2< float > CL_Mat2f
typedef CL_Mat2< int > CL_Mat2i
typedef CL_Mat3< double > CL_Mat3d
typedef CL_Mat3< float > CL_Mat3f
typedef CL_Mat3< int > CL_Mat3i
typedef CL_Mat4< double > CL_Mat4d
typedef CL_Mat4< float > CL_Mat4f
typedef CL_Mat4< int > CL_Mat4i
typedef CL_Vec1< char > CL_Vec1b
typedef CL_Vec1< double > CL_Vec1d
typedef CL_Vec1< float > CL_Vec1f
typedef CL_Vec1< int > CL_Vec1i
typedef CL_Vec1< short > CL_Vec1s
typedef CL_Vec1< unsigned char > CL_Vec1ub
typedef CL_Vec1< unsigned int > CL_Vec1ui
typedef CL_Vec1< unsigned short > CL_Vec1us
typedef CL_Vec2< char > CL_Vec2b
typedef CL_Vec2< double > CL_Vec2d
typedef CL_Vec2< float > CL_Vec2f
typedef CL_Vec2< int > CL_Vec2i
typedef CL_Vec2< short > CL_Vec2s
typedef CL_Vec2< unsigned char > CL_Vec2ub
typedef CL_Vec2< unsigned int > CL_Vec2ui
typedef CL_Vec2< unsigned short > CL_Vec2us
typedef CL_Vec3< char > CL_Vec3b
typedef CL_Vec3< double > CL_Vec3d
typedef CL_Vec3< float > CL_Vec3f
typedef CL_Vec3< int > CL_Vec3i
typedef CL_Vec3< short > CL_Vec3s
typedef CL_Vec3< unsigned char > CL_Vec3ub
typedef CL_Vec3< unsigned int > CL_Vec3ui
typedef CL_Vec3< unsigned short > CL_Vec3us
typedef CL_Vec4< char > CL_Vec4b
typedef CL_Vec4< double > CL_Vec4d
typedef CL_Vec4< float > CL_Vec4f
typedef CL_Vec4< int > CL_Vec4i
typedef CL_Vec4< short > CL_Vec4s
typedef CL_Vec4< unsigned char > CL_Vec4ub
typedef CL_Vec4< unsigned int > CL_Vec4ui
typedef CL_Vec4< unsigned short > CL_Vec4us

Enumerations

enum  CL_AngleUnit { cl_degrees, cl_radians }
 

Angle Unit.

More...
enum  CL_EulerOrder {
  cl_XYZ, cl_XZY, cl_YZX, cl_YXZ,
  cl_ZXY, cl_ZYX
}
 

Euler angle rotation order.

More...
enum  CL_Origin {
  origin_top_left, origin_top_center, origin_top_right, origin_center_left,
  origin_center, origin_center_right, origin_bottom_left, origin_bottom_center,
  origin_bottom_right
}
 

Alignment origins.

More...
enum  CL_PolygonOrientation { cl_clockwise, cl_counter_clockwise }
 

Polygon orientations.

More...

Functions

 CL_Vec2< int >::CL_Vec2 (const CL_Vec2< float > &copy)
 CL_Vec2< int >::CL_Vec2 (const CL_Vec2< int > &copy)
 CL_Vec2< float >::CL_Vec2 (const CL_Vec2< float > &copy)
 CL_Vec2< float >::CL_Vec2 (const CL_Vec2< double > &copy)
 CL_Vec2< float >::CL_Vec2 (const CL_Vec2< int > &copy)
 CL_Vec2< double >::CL_Vec2 (const CL_Vec2< float > &copy)
 CL_Vec2< double >::CL_Vec2 (const CL_Vec2< double > &copy)
 CL_Vec2< double >::CL_Vec2 (const CL_Vec2< int > &copy)
 CL_Vec2< int >::CL_Vec2 (const CL_Vec2< double > &copy)
 CL_Vec3< double >::CL_Vec3 (const CL_Vec3< int > &copy)
 CL_Vec3< float >::CL_Vec3 (const CL_Vec3< double > &copy)
 CL_Vec3< int >::CL_Vec3 (const CL_Vec3< float > &copy)
 CL_Vec3< int >::CL_Vec3 (const CL_Vec3< double > &copy)
 CL_Vec3< int >::CL_Vec3 (const CL_Vec3< int > &copy)
 CL_Vec3< float >::CL_Vec3 (const CL_Vec3< float > &copy)
 CL_Vec3< float >::CL_Vec3 (const CL_Vec3< int > &copy)
 CL_Vec3< double >::CL_Vec3 (const CL_Vec3< float > &copy)
 CL_Vec3< double >::CL_Vec3 (const CL_Vec3< double > &copy)
template<typename A , typename B , typename C >
cl_clamp (A val, B minval, C maxval)
template<typename A , typename B >
cl_max (A a, B b)
template<typename A , typename B >
cl_min (A a, B b)
template<typename T >
cl_pow2 (T value)
CL_Rectd CL_RectdPS (double x, double y, double width, double height)
CL_Rectf CL_RectfPS (float x, float y, float width, float height)
CL_Rect CL_RectPS (int x, int y, int width, int height)
template<typename Type >
CL_Vec2< Type > operator* (const CL_Vec2< Type > &v, const CL_Mat2< Type > &matrix)
template<typename Type >
CL_Vec3< Type > operator* (const CL_Mat3< Type > &matrix, const CL_Vec3< Type > &v)
template<typename Type >
CL_Vec4< Type > operator* (const CL_Mat4< Type > &matrix, const CL_Vec4< Type > &v)
template<typename Type >
CL_Vec4< Type > operator* (const CL_Vec4< Type > &v, const CL_Mat4< Type > &matrix)
template<typename Type >
CL_Vec2< Type > operator* (const CL_Mat2< Type > &matrix, const CL_Vec2< Type > &v)
template<typename Type >
CL_Vec3< Type > operator* (const CL_Vec3< Type > &v, const CL_Mat3< Type > &matrix)

Construction



 CL_Rectx< int >::CL_Rectx (const CL_Rectx< float > &rect)
 Constructs an rectangle.
 CL_Rectx< int >::CL_Rectx (const CL_Rectx< double > &rect)
 Constructs an rectangle.
 CL_Rectx::CL_Rectx (const CL_Rectx< int > &rect)
 Constructs an rectangle.
 CL_Rectx::CL_Rectx (const CL_Rectx< float > &rect)
 Constructs an rectangle.
 CL_Rectx::CL_Rectx (const CL_Rectx< double > &rect)
 Constructs an rectangle.

Define Documentation

#define CL_PI   CL_M_PI_F

Typedef Documentation

typedef CL_Mat2<double> CL_Mat2d
typedef CL_Mat2<float> CL_Mat2f
typedef CL_Mat2<int> CL_Mat2i
typedef CL_Mat3<double> CL_Mat3d
typedef CL_Mat3<float> CL_Mat3f
typedef CL_Mat3<int> CL_Mat3i
typedef CL_Mat4<double> CL_Mat4d
typedef CL_Mat4<float> CL_Mat4f
typedef CL_Mat4<int> CL_Mat4i
typedef CL_Vec1<char> CL_Vec1b
typedef CL_Vec1<double> CL_Vec1d
typedef CL_Vec1<float> CL_Vec1f
typedef CL_Vec1<int> CL_Vec1i
typedef CL_Vec1<short> CL_Vec1s
typedef CL_Vec1<unsigned char> CL_Vec1ub
typedef CL_Vec1<unsigned int> CL_Vec1ui
typedef CL_Vec1<unsigned short> CL_Vec1us
typedef CL_Vec2<char> CL_Vec2b
typedef CL_Vec2<double> CL_Vec2d
typedef CL_Vec2<float> CL_Vec2f
typedef CL_Vec2<int> CL_Vec2i
typedef CL_Vec2<short> CL_Vec2s
typedef CL_Vec2<unsigned char> CL_Vec2ub
typedef CL_Vec2<unsigned int> CL_Vec2ui
typedef CL_Vec2<unsigned short> CL_Vec2us
typedef CL_Vec3<char> CL_Vec3b
typedef CL_Vec3<double> CL_Vec3d
typedef CL_Vec3<float> CL_Vec3f
typedef CL_Vec3<int> CL_Vec3i
typedef CL_Vec3<short> CL_Vec3s
typedef CL_Vec3<unsigned char> CL_Vec3ub
typedef CL_Vec3<unsigned int> CL_Vec3ui
typedef CL_Vec3<unsigned short> CL_Vec3us
typedef CL_Vec4<char> CL_Vec4b
typedef CL_Vec4<double> CL_Vec4d
typedef CL_Vec4<float> CL_Vec4f
typedef CL_Vec4<int> CL_Vec4i
typedef CL_Vec4<short> CL_Vec4s
typedef CL_Vec4<unsigned char> CL_Vec4ub
typedef CL_Vec4<unsigned int> CL_Vec4ui
typedef CL_Vec4<unsigned short> CL_Vec4us

Enumeration Type Documentation

Angle Unit.

Enumerator:
cl_degrees 
cl_radians 

Euler angle rotation order.

Enumerator:
cl_XYZ 
cl_XZY 
cl_YZX 
cl_YXZ 
cl_ZXY 
cl_ZYX 
enum CL_Origin

Alignment origins.

Enumerator:
origin_top_left 
origin_top_center 
origin_top_right 
origin_center_left 
origin_center 
origin_center_right 
origin_bottom_left 
origin_bottom_center 
origin_bottom_right 

Polygon orientations.

Enumerator:
cl_clockwise 
cl_counter_clockwise 

Function Documentation

CL_Rectx< int >::CL_Rectx ( const CL_Rectx< float > &  rect  )  [inline, inherited]

Constructs an rectangle.

Parameters:
rect Initial rectangle position and size.

References CL_Rectx< Type >::bottom, CL_Rectx< Type >::left, CL_Rectx< Type >::right, and CL_Rectx< Type >::top.

template<typename Type>
CL_Rectx< Type >::CL_Rectx ( const CL_Rectx< int > &  rect  )  [inline, inherited]

Constructs an rectangle.

Parameters:
rect Initial rectangle position and size.

References CL_Rectx< Type >::bottom, CL_Rectx< Type >::left, CL_Rectx< Type >::right, and CL_Rectx< Type >::top.

template<typename Type>
CL_Rectx< Type >::CL_Rectx ( const CL_Rectx< float > &  rect  )  [inline, inherited]

Constructs an rectangle.

Parameters:
rect Initial rectangle position and size.

References CL_Rectx< Type >::bottom, CL_Rectx< Type >::left, CL_Rectx< Type >::right, and CL_Rectx< Type >::top.

template<typename Type>
CL_Rectx< Type >::CL_Rectx ( const CL_Rectx< double > &  rect  )  [inline, inherited]

Constructs an rectangle.

Parameters:
rect Initial rectangle position and size.

References CL_Rectx< Type >::bottom, CL_Rectx< Type >::left, CL_Rectx< Type >::right, and CL_Rectx< Type >::top.

CL_Rectx< int >::CL_Rectx ( const CL_Rectx< double > &  rect  )  [inline, inherited]

Constructs an rectangle.

Parameters:
rect Initial rectangle position and size.

References CL_Rectx< Type >::bottom, CL_Rectx< Type >::left, CL_Rectx< Type >::right, and CL_Rectx< Type >::top.

CL_Vec2< int >::CL_Vec2 ( const CL_Vec2< float > &  copy  )  [inline, inherited]
CL_Vec2< int >::CL_Vec2 ( const CL_Vec2< double > &  copy  )  [inline, inherited]
CL_Vec2< int >::CL_Vec2 ( const CL_Vec2< int > &  copy  )  [inline, inherited]
CL_Vec2< float >::CL_Vec2 ( const CL_Vec2< float > &  copy  )  [inline, inherited]
CL_Vec2< float >::CL_Vec2 ( const CL_Vec2< double > &  copy  )  [inline, inherited]
CL_Vec2< double >::CL_Vec2 ( const CL_Vec2< int > &  copy  )  [inline, inherited]
CL_Vec2< float >::CL_Vec2 ( const CL_Vec2< int > &  copy  )  [inline, inherited]
CL_Vec2< double >::CL_Vec2 ( const CL_Vec2< float > &  copy  )  [inline, inherited]
CL_Vec2< double >::CL_Vec2 ( const CL_Vec2< double > &  copy  )  [inline, inherited]
CL_Vec3< float >::CL_Vec3 ( const CL_Vec3< double > &  copy  )  [inline, inherited]
CL_Vec3< float >::CL_Vec3 ( const CL_Vec3< int > &  copy  )  [inline, inherited]
CL_Vec3< double >::CL_Vec3 ( const CL_Vec3< float > &  copy  )  [inline, inherited]
CL_Vec3< double >::CL_Vec3 ( const CL_Vec3< double > &  copy  )  [inline, inherited]
CL_Vec3< double >::CL_Vec3 ( const CL_Vec3< int > &  copy  )  [inline, inherited]
CL_Vec3< float >::CL_Vec3 ( const CL_Vec3< float > &  copy  )  [inline, inherited]
CL_Vec3< int >::CL_Vec3 ( const CL_Vec3< float > &  copy  )  [inline, inherited]
CL_Vec3< int >::CL_Vec3 ( const CL_Vec3< double > &  copy  )  [inline, inherited]
CL_Vec3< int >::CL_Vec3 ( const CL_Vec3< int > &  copy  )  [inline, inherited]
template<typename A , typename B , typename C >
C cl_clamp ( val,
minval,
maxval 
) [inline]

References cl_max(), and cl_min().

template<typename A , typename B >
A cl_max ( a,
b 
) [inline]
template<typename A , typename B >
A cl_min ( a,
b 
) [inline]
template<typename T >
T cl_pow2 ( value  )  [inline]
CL_Rectd CL_RectdPS ( double  x,
double  y,
double  width,
double  height 
) [inline]
CL_Rectf CL_RectfPS ( float  x,
float  y,
float  width,
float  height 
) [inline]
CL_Rect CL_RectPS ( int  x,
int  y,
int  width,
int  height 
) [inline]
template<typename Type >
CL_Vec2<Type> operator* ( const CL_Mat2< Type > &  matrix,
const CL_Vec2< Type > &  v 
)
template<typename Type >
CL_Vec3<Type> operator* ( const CL_Mat3< Type > &  matrix,
const CL_Vec3< Type > &  v 
)

Matrix is assumed to be in the Column-Major matrix format (opengl native)
Note: "vec = vector * matrix" is different to "vec = matrix * vector"

References CL_Vec3< Type >::x, CL_Vec3< Type >::y, and CL_Vec3< Type >::z.

template<typename Type >
CL_Vec3<Type> operator* ( const CL_Vec3< Type > &  v,
const CL_Mat3< Type > &  matrix 
)

Matrix is assumed to be in the Column-Major matrix format (opengl native)
Note: "vec = vector * matrix" is different to "vec = matrix * vector"

References CL_Vec3< Type >::x, CL_Vec3< Type >::y, and CL_Vec3< Type >::z.

template<typename Type >
CL_Vec4<Type> operator* ( const CL_Mat4< Type > &  matrix,
const CL_Vec4< Type > &  v 
)
template<typename Type >
CL_Vec2<Type> operator* ( const CL_Vec2< Type > &  v,
const CL_Mat2< Type > &  matrix 
)
template<typename Type >
CL_Vec4<Type> operator* ( const CL_Vec4< Type > &  v,
const CL_Mat4< Type > &  matrix 
)