17#ifndef __albaTransform_h
18#define __albaTransform_h
107 double temp[3]; this->GetOrientation(temp);
108 orient[0] =
static_cast<float>(temp[0]);
109 orient[1] =
static_cast<float>(temp[1]);
110 orient[2] =
static_cast<float>(temp[2]); };
119 double temp[4]; GetOrientationWXYZ(temp);
120 wxyz[0]=
static_cast<float>(temp[0]);
121 wxyz[1]=
static_cast<float>(temp[1]);
122 wxyz[2]=
static_cast<float>(temp[2]);
123 wxyz[3]=
static_cast<float>(temp[3]);};
133 double temp[3]; this->GetPosition(temp);
134 position[0] =
static_cast<float>(temp[0]);
135 position[1] =
static_cast<float>(temp[1]);
136 position[2] =
static_cast<float>(temp[2]); };
147 temp[0]=x;temp[1]=y;temp[2]=z;
148 SetPosition(matrix,temp);}
156 void Translate(
double translation[3],
int premultiply) {this->
Translate(*m_Matrix,translation,premultiply);}
157 void Translate(
double x,
double y,
double z,
int premultiply) {this->
Translate(*m_Matrix,x,y,z,premultiply);}
160 temp[0]=x;temp[1]=y;temp[2]=z;
161 Translate(matrix,temp,premultiply);}
168 void RotateWXYZ(
double angle,
double x,
double y,
double z,
int premultiply) {this->
RotateWXYZ(*m_Matrix,*m_Matrix,angle,x,y,z,premultiply);}
169 void RotateWXYZ(
double angle,
double rot[3],
int premultiply) {this->
RotateWXYZ(*m_Matrix,*m_Matrix,angle, rot[0], rot[1], rot[2],premultiply);}
179 void RotateX(
double angle,
int premultiply) { this->
RotateX(*m_Matrix,angle,premultiply); };
180 void RotateY(
double angle,
int premultiply) { this->
RotateY(*m_Matrix,angle,premultiply); };
181 void RotateZ(
double angle,
int premultiply) { this->
RotateZ(*m_Matrix,angle,premultiply); };
198 temp[0]=rx;temp[1]=ry;temp[2]=rz;
199 SetOrientation(matrix,temp);}
209 double temp[3]; this->GetScale(temp);
210 scale[0] =
static_cast<float>(temp[0]);
211 scale[1] =
static_cast<float>(temp[1]);
212 scale[2] =
static_cast<float>(temp[2]); };
215 static void Scale(
albaMatrix &matrix,
double scalex,
double scaley,
double scalez,
int premultiply);
216 void Scale(
double scalex,
double scaley,
double scalez,
int premultiply) \
217 { Scale(*m_Matrix,scalex,scaley,scalez,premultiply);}
225 double temp[3]; GetVersor(axis, matrix, temp); \
226 versor[0] =
static_cast<float>(temp[0]); \
227 versor[1] =
static_cast<float>(temp[1]); \
228 versor[2] =
static_cast<float>(temp[2]); };
243 static void AddVectors(
double inV0[3],
double inV1[3],
double outSum[3] );
246 static void BuildVector(
double *p1,
double *p2,
double *out_vector);
253 static double ProjectVectorOnAxis(
const double *in_vector,
const double *in_axis,
double *out_projection = NULL);
258 static double ProjectVectorOnPlane(
const double *in_vector,
const double *in_plane_normal,
double *out_projection = NULL);
268 double attitude_vector[3]);
273 double euler_cardan[3],
274 double tentative_euler_cardan_first,
275 double tentative_euler_cardan_second,
276 double tentative_euler_cardan_third);
297 double helical_axis[3],
double point[3],
298 double& phi,
double& t,
int intersect);
318 typedef double HMatrix[4][4];
albaMatrix - Time stamped 4x4 Matrix.
static void GetVersor(const int axis, const albaMatrix &matrix, double versor[3])
Get the given matrix versor.
albaTimeStamp GetTimeStamp() const