* Class for representing a direct right-handed local frame composed of 3 orthonormal vectors T (tangent), B (bitangent) and N (normal).
* This class can compress/decompress a local frame, switching from its explicit representation (3 vectors) to its compressed representation (1 vector composed of the Euler angles).
* Usage :
* VEC3 X,Y,Z ; // current set of orthonormal vectors composing the direct frame.
* Frame<PFP> lf(X,Y,Z) ; // Constructor from explicit expression.
* Frame<PFP> lf(X,Y,Z) ; // Constructor from explicit expression.
* if (lf.isOrthoNormalDirect()) // test if the frame is Orthogonal, Normalized and Direct
gamma=std::acos(std::max(std::min(REAL(1.0),Z*m_Z),REAL(-1.0)));// gamma is always positive because the direction of vector lineOfNodes=(reference normal)^(normal) (around which a rotation of angle beta is done later on) changes depending on the side on which they lay w.r.t eachother.
gamma=std::acos(std::max(std::min(REAL(1.0),refZ*Z),REAL(-1.0)));// gamma is always positive because the direction of vector lineOfNodes=(reference normal)^(normal) (around which a rotation of angle beta is done later on) changes depending on the side on which they lay w.r.t eachother.