#include <tvu_maths.h>
Inheritance diagram for CTMaths::

Public Types | |
| enum | { INTERSEC_NONE = 0x00, INTERSEC_YES = 0x77, INTERSEC_WELL = 0x11, INTERSEC_L1 = 0x01, INTERSEC_L1_1 = 0x02, INTERSEC_L1_2 = 0x04, INTERSEC_L2 = 0x10, INTERSEC_L2_1 = 0x20, INTERSEC_L2_2 = 0x40 } |
Public Methods | |
| CTMaths () | |
| Constructor/destructor. More... | |
| ~CTMaths () | |
| CTPoint3D& | Move (TPOINT3D &pt) |
| CTPoint3D& | Rotate (TPOINT3D &pt) |
| CTPoint3D& | Expand (TPOINT3D &pt) |
| CTPoint3D& | RotateMove (TPOINT3D &pt) |
| CTPoint3D& | Project (TPOINT3D &pt) |
| void | PrepareMove (CTPoint3D &Coordinate) |
| Apply all of previous oprerators. More... | |
| void | PrepareRotate (CTAngles &Angles) |
| void | PrepareExpand (CTSize3D &Size) |
| void | PrepareProject (CTPoint3D &Coordinate, CTAngles &Angles, CTSize3D &Size) |
| void | CreateTransformMatrix (TLPSTR lpMatrix, TBOOL bTo=TTRUE) |
Static Public Methods | |
| TBOOL | Equal (TINT x1, TINT x2, TINT r=0) |
| Mathematical caculations. More... | |
| TBOOL | Equal (double x1, double x2, double r=EPSILON) |
| TBOOL | NotEqual (double x1, double x2, double r=EPSILON) |
| TBOOL | Zero (double x, double r=EPSILON) |
| TBOOL | NotZero (double x, double r=EPSILON) |
| TBOOL | InInterval (double x, double x1, double x2) |
| TBOOL | NotInInterval (double x, double x1, double x2) |
| TINT | SolveEquation (double a, double b, double *x, TBOOL TestOnly=TFALSE) |
| Equation and equations system solving Return the number of solutions: -1 ~ uncountable TestOnly: On/Off that only pour verify if the equation has atleast one solution ax + b = 0. More... | |
| TINT | SolveEquation (double a, double b, double c, double *x, TBOOL TestOnly=TFALSE) |
| ax^2 + bx + c = 0. More... | |
| TINT | SolveEquations (double a1, double b1, double c1, double a2, double b2, double c2, double *x, double *y, TBOOL TestOnly=TFALSE) |
| a1x + b1y + c1 = 0 a2x + b2y + c2 = 0. More... | |
| double | R2D (double r) |
| Angle calculation. More... | |
| double | D2R (double d) |
| double | ValidAngle (double a) |
| double | VectNormSquare (double x, double y) |
| 2D vector calculation. More... | |
| double | VectNorm (double x, double y) |
| double | VectAngleY (double x, double y) |
| Relative angle with Y: 0. -> 2PI. More... | |
| double | VectAngleX (double x, double y) |
| Relative angle with X: 0 -> 2PI. More... | |
| double | VectAngleVect (double x1, double y1, double x2, double y2) |
| Relative angle of v2 with v1. More... | |
| void | VectGetNextPoint (double x, double y, double Angle, double distance, double *nx, double *ny) |
| Angle with Y. More... | |
| void | VectGetNextPoint (double xVect, double yVect, double x, double y, double distance, double *nx, double *ny) |
| double | Vect3DNormSquare (double x, double y, double z) |
| 3D vector calculation. More... | |
| double | Vect3DNorm (double x, double y, double z) |
| double | Vect3DAngleZ_Y (double x, double y, double z) |
| Relative angle with Z in the face (Y, Z): 0. -> 2PI ==> Rotate around X. More... | |
| double | Vect3DAngleY_Z (double x, double y, double z) |
| Relative angle with Y in the face (Y, Z): 0. -> 2PI ==> Rotate around X. More... | |
| double | Vect3DAngleZ_X (double x, double y, double z) |
| Relative angle with Z in the face (X, Z): 0. -> 2PI ==> Rotate around Y. More... | |
| double | Vect3DAngleX_Z (double x, double y, double z) |
| Relative angle with X in the face (X, Z): 0. -> 2PI ==> Rotate around Y. More... | |
| double | Vect3DAngleY_X (double x, double y, double z) |
| Relative angle with Y in the face (X, Y): 0. -> 2PI ==> Rotate around Z. More... | |
| double | Vect3DAngleX_Y (double x, double y, double z) |
| Relative angle with X in the face (X, Y): 0. -> 2PI ==> Rotate around Z. More... | |
| double | Vect3DAngleXY (double x, double y, double z) |
| Angle with the face (X, Y): -PI/2. -> PI/2.,. More... | |
| double | Vect3DAngleYZ (double x, double y, double z) |
| Angle with the face (Y, Z): -PI/2. -> PI/2.,. More... | |
| double | Vect3DAngleZX (double x, double y, double z) |
| Angle with the face (Z, X): -PI/2. -> PI/2.,. More... | |
| void | Vect3DGetNextPoint (double xVect, double yVect, double zVect, double x, double y, double z, double distance, double *nx, double *ny, double *nz) |
| TBOOL | SegmentIntersection (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double *x, double *y) |
| Segment calculation. More... | |
| TBOOL | SegmentIntersectionValid (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double *x, double *y) |
| TINT | SegmentRelation (double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double *x, double *y) |
| TBOOL | IsPointInsidePolygon (CTList pPolygon, double px, double py, double pz) |
| A point is inside a polygon. More... | |
| TVOID | RegisterCodedFunctions () |
Static Public Attributes | |
| double | PI |
| PI, PI/2, PI/4, 2PI, 3PI, 4PI. More... | |
| double | PI_2 |
| PI, PI/2, PI/4, 2PI, 3PI, 4PI. More... | |
| double | PI_4 |
| PI, PI/2, PI/4, 2PI, 3PI, 4PI. More... | |
| double | PIx2 |
| PI, PI/2, PI/4, 2PI, 3PI, 4PI. More... | |
| double | PIx3 |
| PI, PI/2, PI/4, 2PI, 3PI, 4PI. More... | |
| double | PIx4 |
| PI, PI/2, PI/4, 2PI, 3PI, 4PI. More... | |
| double | EPSILON |
| PI, PI/2, PI/4, 2PI, 3PI, 4PI. More... | |
| CTMaths | Default |
Static Protected Methods | |
| CTObject* | While (CTList pParams) |
| CTObject* | Sin (CTList pParams) |
| CTObject* | Cos (CTList pParams) |
| CTObject* | Tang (CTList pParams) |
| CTObject* | Cotang (CTList pParams) |
| CTObject* | Qrt (CTList pParams) |
| CTObject* | Sqrt (CTList pParams) |
Protected Attributes | |
| CTPoint3D | m_Position |
| Private data. More... | |
| CTAngles | m_Angles |
| CTSize3D | m_Size |
| double | sin_a |
| Temp: Alpha, Beta, Gamma. More... | |
| double | cos_a |
| Temp: Alpha, Beta, Gamma. More... | |
| double | sin_b |
| Temp: Alpha, Beta, Gamma. More... | |
| double | cos_b |
| Temp: Alpha, Beta, Gamma. More... | |
| double | sin_g |
| Temp: Alpha, Beta, Gamma. More... | |
| double | cos_g |
| Temp: Alpha, Beta, Gamma. More... | |
| double | xX |
| double | yX |
| double | zX |
| double | xY |
| double | yY |
| double | zY |
| double | xZ |
| double | yZ |
| double | zZ |
| CTPoint3D | m_TempPoint |
| Buffer. More... | |
|
|
Constructor/destructor.
|
|
|
Mathematical caculations.
00062 { return (x1-r <= x2) && (x2 <= x1+r); }
|
|
|
A point is inside a polygon.
|
|
|
Apply all of previous oprerators.
|
|
|
Angle calculation.
00080 { return r*180./PI; }
|
|
|
Segment calculation.
|
|
|
ax^2 + bx + c = 0.
|
|
|
Equation and equations system solving Return the number of solutions: -1 ~ uncountable TestOnly: On/Off that only pour verify if the equation has atleast one solution ax + b = 0.
|
|
|
a1x + b1y + c1 = 0 a2x + b2y + c2 = 0.
|
|
|
Angle with the face (X, Y): -PI/2. -> PI/2.,.
00111 : -PI/2. -> PI/2.,
00112 { return asin(z/Vect3DNorm(x, y, z)); }
|
|
|
Relative angle with X in the face (X, Y): 0. -> 2PI ==> Rotate around Z.
00109 : 0. -> 2PI ==> Rotate around Z
00110 { return VectAngleX(x, y); }
|
|
|
Relative angle with X in the face (X, Z): 0. -> 2PI ==> Rotate around Y.
00105 : 0. -> 2PI ==> Rotate around Y
00106 { return VectAngleX(x, z); }
|
|
|
Angle with the face (Y, Z): -PI/2. -> PI/2.,.
00113 : -PI/2. -> PI/2.,
00114 { return asin(x/Vect3DNorm(x, y, z)); }
|
|
|
Relative angle with Y in the face (X, Y): 0. -> 2PI ==> Rotate around Z.
00107 : 0. -> 2PI ==> Rotate around Z
00108 { return VectAngleY(x, y); }
|
|
|
Relative angle with Y in the face (Y, Z): 0. -> 2PI ==> Rotate around X.
00101 : 0. -> 2PI ==> Rotate around X
00102 { return VectAngleX(y, z); }
|
|
|
Angle with the face (Z, X): -PI/2. -> PI/2.,.
00115 : -PI/2. -> PI/2.,
00116 { return asin(y/Vect3DNorm(x, y, z)); }
|
|
|
Relative angle with Z in the face (X, Z): 0. -> 2PI ==> Rotate around Y.
00103 : 0. -> 2PI ==> Rotate around Y
00104 { return VectAngleY(x, z); }
|
|
|
Relative angle with Z in the face (Y, Z): 0. -> 2PI ==> Rotate around X.
00099 : 0. -> 2PI ==> Rotate around X
00100 { return VectAngleY(y, z); }
|
|
|
3D vector calculation.
00097 { return x*x + y*y + z*z; }
|
|
|
Relative angle of v2 with v1.
00091 { return VectAngleY(x2, y2) - VectAngleY(x1, y1); }
|
|
|
Relative angle with X: 0 -> 2PI.
00088 : 0 -> 2PI
00089 { return VectAngleY(y, -x); }
|
|
|
Relative angle with Y: 0. -> 2PI.
00086 : 0. -> 2PI
00087 { double a = asin(x/VectNorm(x, y)); return (y >= 0.) ? ((a >= 0.) ? a : (2*PI+a)) : (PI-a); }
|
|
|
Angle with Y.
00093 { *nx = x + distance*sin(Angle); *ny = y + distance*cos(Angle); }
|
|
|
2D vector calculation.
00084 { return x*x + y*y; }
|
|
|
PI, PI/2, PI/4, 2PI, 3PI, 4PI.
|
|
|
PI, PI/2, PI/4, 2PI, 3PI, 4PI.
|
|
|
PI, PI/2, PI/4, 2PI, 3PI, 4PI.
|
|
|
PI, PI/2, PI/4, 2PI, 3PI, 4PI.
|
|
|
PI, PI/2, PI/4, 2PI, 3PI, 4PI.
|
|
|
PI, PI/2, PI/4, 2PI, 3PI, 4PI.
|
|
|
PI, PI/2, PI/4, 2PI, 3PI, 4PI.
|
|
|
Temp: Alpha, Beta, Gamma.
|
|
|
Temp: Alpha, Beta, Gamma.
|
|
|
Temp: Alpha, Beta, Gamma.
|
|
|
Private data.
|
|
|
Buffer.
|
|
|
Temp: Alpha, Beta, Gamma.
|
|
|
Temp: Alpha, Beta, Gamma.
|
|
|
Temp: Alpha, Beta, Gamma.
|
1.2.8.1 written by Dimitri van Heesch,
© 1997-2001