9 #ifndef _LIBALMATH_ALMATH_TYPES_ALTRANSFORM_H_
10 #define _LIBALMATH_ALMATH_TYPES_ALTRANSFORM_H_
13 #include <almath/api.h>
26 float r1_c1, r1_c2, r1_c3, r1_c4;
27 float r2_c1, r2_c2, r2_c3, r2_c4;
28 float r3_c1, r3_c2, r3_c3, r3_c4;
72 explicit Transform(
const std::vector<float>& pFloats);
137 const float& pEpsilon=0.0001f)
const;
152 const float& pEpsilon=0.0001f)
const;
213 static Transform fromRotX(
const float pRotX);
228 static Transform fromRotY(
const float pRotY);
243 static Transform fromRotZ(
const float pRotZ);
357 void toVector(std::vector<float>& pReturnVector)
const;
359 std::vector<float> toVector(
void)
const;
371 void writeToVector(std::vector<float>::iterator& pIt)
const;
425 std::vector<float>& pTOut);
472 ALMATH_API
float determinant(
const std::vector<float>& pFloats);
738 #endif // _LIBALMATH_ALMATH_TYPES_ALTRANSFORM_H_
ALMATH_API Pose2D pinv(const Pose2D &pPos)
Alternative name for inverse: return the pose2d inverse of the given Pose2D.
ALMATH_API float distance(const Pose2D &pPos1, const Pose2D &pPos2)
Compute the distance between two Pose2D.
ALMATH_API void normalizeTransform(Transform &pT)
Normalize data, if needed, to have transform properties.
ALMATH_API float transformDistance(const Transform &pT1, const Transform &pT2)
Compute the distance between the actual Transform and the one give in argument:
ALMATH_API void transformInverse(const Transform &pT, Transform &pTOut)
Return the transform inverse of the given Transform:
bool isNear(const Transform &lhs, const Transform &rhs, double epsilon)
ALMATH_API float distanceSquared(const Pose2D &pPos1, const Pose2D &pPos2)
Compute the squared distance between two Pose2D.
bool operator!=(const Pose &lhs, const Pose &rhs)
ALMATH_API void transformToFloatVector(const Transform &pT, std::vector< float > &pTOut)
DEPRECATED: Use toVector function. Copy the Transform in a vector of float:
Transform inverse(const Transform &tf)
ALMATH_API float determinant(const Rotation &pRot)
Compute the determinant of the given Rotation:
ALMATH_API void transformPreMultiply(const Transform &pT, Transform &pTOut)
pTOut = pT*pTOut
ALMATH_API Transform transformFromRotY(const float pRotY)
Create a Transform initialize with explicit rotation around y axis:
ALMATH_API void transformInvertInPlace(Transform &pT)
Inverse the given Transform in place:
ALMATH_API Transform transformFromRotX(const float pRotX)
Create a Transform initialize with explicit rotation around x axis:
ALMATH_API Transform transformFrom3DRotation(const float &pWX, const float &pWY, const float &pWZ)
Create a Transform initialize with euler angle: H = fromRotZ(pWZ)*fromRotY(pWY)*fromRotX(pWX) ...
ALMATH_API Transform transformFromRotZ(const float pRotZ)
Create a Transform initialize with explicit rotation around z axis:
ALMATH_API Transform transformDiff(const Transform &pT1, const Transform &pT2)
Compute the Transform between the actual Transform and the one give in argument result: ...
ALMATH_API Transform transformFromPosition(const float &pX, const float &pY, const float &pZ)
Create a Transform initialize with explicit value for translation part:
ALMATH_API float norm(const Position2D &pPos)
Compute the norm of a Position2D.
bool operator==(const BodyMass< T > &lhs, const BodyMass< T > &rhs)
ALMATH_API float transformDistanceSquared(const Transform &pT1, const Transform &pT2)
Compute the squared distance between the actual Transform and the one give in argument (translation p...