ClanLib  2.3.7
Classes | Macros | 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...
 

Macros

#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< double > &copy)
 
 CL_Vec2< float >::CL_Vec2 (const CL_Vec2< double > &copy)
 
 CL_Vec2< double >::CL_Vec2 (const CL_Vec2< double > &copy)
 
 CL_Vec2< int >::CL_Vec2 (const CL_Vec2< float > &copy)
 
 CL_Vec2< float >::CL_Vec2 (const CL_Vec2< float > &copy)
 
 CL_Vec2< double >::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< int > &copy)
 
 CL_Vec2< double >::CL_Vec2 (const CL_Vec2< int > &copy)
 
 CL_Vec3< int >::CL_Vec3 (const CL_Vec3< double > &copy)
 
 CL_Vec3< float >::CL_Vec3 (const CL_Vec3< double > &copy)
 
 CL_Vec3< double >::CL_Vec3 (const CL_Vec3< double > &copy)
 
 CL_Vec3< double >::CL_Vec3 (const CL_Vec3< float > &copy)
 
 CL_Vec3< int >::CL_Vec3 (const CL_Vec3< float > &copy)
 
 CL_Vec3< float >::CL_Vec3 (const CL_Vec3< float > &copy)
 
 CL_Vec3< double >::CL_Vec3 (const CL_Vec3< int > &copy)
 
 CL_Vec3< int >::CL_Vec3 (const CL_Vec3< int > &copy)
 
 CL_Vec3< float >::CL_Vec3 (const CL_Vec3< int > &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 A , typename B , typename C >
cl_mix (A a, B b, C mix)
 
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_Vec3< Type > operator* (const CL_Vec3< Type > &v, const CL_Mat3< Type > &matrix)
 
template<typename Type >
CL_Vec3< Type > operator* (const CL_Mat3< Type > &matrix, const CL_Vec3< Type > &v)
 
template<typename Type >
CL_Vec2< Type > operator* (const CL_Vec2< Type > &v, const CL_Mat2< Type > &matrix)
 
template<typename Type >
CL_Vec2< Type > operator* (const CL_Mat2< Type > &matrix, const CL_Vec2< Type > &v)
 
template<typename Type >
CL_Vec4< Type > operator* (const CL_Vec4< Type > &v, const CL_Mat4< Type > &matrix)
 
template<typename Type >
CL_Vec4< Type > operator* (const CL_Mat4< Type > &matrix, const CL_Vec4< Type > &v)
 

Construction

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

Detailed Description

Macro Definition 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

template<typename Type>
CL_Rectx< Type >::CL_Rectx ( const CL_Rectx< int > &  rect)
inline

Constructs an rectangle.

Parameters
rectInitial 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< float > &  rect)
inline

Constructs an rectangle.

Parameters
rectInitial 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

Constructs an rectangle.

Parameters
rectInitial 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

Constructs an rectangle.

Parameters
rectInitial 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

Constructs an rectangle.

Parameters
rectInitial 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< double > &  copy)
inline
CL_Vec2< float >::CL_Vec2 ( const CL_Vec2< double > &  copy)
inline
CL_Vec2< double >::CL_Vec2 ( const CL_Vec2< double > &  copy)
inline
CL_Vec2< int >::CL_Vec2 ( const CL_Vec2< float > &  copy)
inline
CL_Vec2< float >::CL_Vec2 ( const CL_Vec2< float > &  copy)
inline
CL_Vec2< double >::CL_Vec2 ( const CL_Vec2< float > &  copy)
inline
CL_Vec2< int >::CL_Vec2 ( const CL_Vec2< int > &  copy)
inline
CL_Vec2< float >::CL_Vec2 ( const CL_Vec2< int > &  copy)
inline
CL_Vec2< double >::CL_Vec2 ( const CL_Vec2< int > &  copy)
inline
CL_Vec3< float >::CL_Vec3 ( const CL_Vec3< double > &  copy)
inline
CL_Vec3< double >::CL_Vec3 ( const CL_Vec3< double > &  copy)
inline
CL_Vec3< int >::CL_Vec3 ( const CL_Vec3< double > &  copy)
inline
CL_Vec3< float >::CL_Vec3 ( const CL_Vec3< float > &  copy)
inline
CL_Vec3< double >::CL_Vec3 ( const CL_Vec3< float > &  copy)
inline
CL_Vec3< int >::CL_Vec3 ( const CL_Vec3< float > &  copy)
inline
CL_Vec3< float >::CL_Vec3 ( const CL_Vec3< int > &  copy)
inline
CL_Vec3< double >::CL_Vec3 ( const CL_Vec3< int > &  copy)
inline
CL_Vec3< int >::CL_Vec3 ( const CL_Vec3< int > &  copy)
inline
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 A , typename B , typename C >
A cl_mix ( a,
b,
mix 
)
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_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_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_Vec2<Type> operator* ( const CL_Vec2< Type > &  v,
const CL_Mat2< Type > &  matrix 
)
template<typename Type >
CL_Vec2<Type> operator* ( const CL_Mat2< Type > &  matrix,
const CL_Vec2< Type > &  v 
)
template<typename Type >
CL_Vec4<Type> operator* ( const CL_Vec4< Type > &  v,
const CL_Mat4< Type > &  matrix 
)
template<typename Type >
CL_Vec4<Type> operator* ( const CL_Mat4< Type > &  matrix,
const CL_Vec4< Type > &  v 
)