|
qCC_db version 2.13.alpha (Qt) - 31 May 2022
CloudCompare 3D entities
|
A 4x4 'transformation' matrix (column major order) associated to an index (typically a timestamp) More...
#include <ccIndexedTransformation.h>


Public Member Functions | |
| ccIndexedTransformation () | |
| Default constructor. More... | |
| ccIndexedTransformation (const ccGLMatrix &matrix) | |
| Constructor from a transformation matrix. More... | |
| ccIndexedTransformation (const ccGLMatrix &matrix, double index) | |
| Constructor from a transformation matrix and an index. More... | |
| ccIndexedTransformation (const ccIndexedTransformation &trans)=default | |
| Copy constructor. | |
| double | getIndex () const |
| Returns associated index (e.g. timestamp) | |
| void | setIndex (double index) |
| Sets associated index (e.g. timestamp) | |
| ccIndexedTransformation | operator* (const ccGLMatrix &mat) const |
| Multiplication by a ccGLMatrix operator. | |
| ccIndexedTransformation & | operator*= (const ccGLMatrix &mat) |
| (in place) Multiplication by a ccGLMatrix operator More... | |
| ccIndexedTransformation & | operator+= (const CCVector3 &T) |
| Multiplication operator. More... | |
| ccIndexedTransformation & | operator-= (const CCVector3 &T) |
| (in place) Translation operator More... | |
| ccIndexedTransformation | transposed () const |
| Returns transposed transformation. More... | |
| ccIndexedTransformation | inverse () const |
| Returns inverse transformation. More... | |
| bool | toAsciiFile (QString filename, int precision=12) const override |
| Saves matrix to an ASCII file. More... | |
| bool | fromAsciiFile (QString filename) override |
| Loads matrix from an ASCII file. More... | |
| bool | isSerializable () const override |
| Returns whether object is serializable of not. More... | |
| bool | toFile (QFile &out) const override |
| Saves data to binary stream. More... | |
| bool | fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override |
| Loads data from binary stream. More... | |
Public Member Functions inherited from ccGLMatrix | |
| ccGLMatrix () | |
| Default constructor. More... | |
| ccGLMatrix (const ccGLMatrixTpl< float > &mat) | |
| Copy constructor from a ccGLMatrixTpl. More... | |
| ccGLMatrix (const float *mat16f) | |
| Constructor from a float GL matrix array. More... | |
| ccGLMatrix (const double *mat16d) | |
| Constructor from a double GL matrix array. More... | |
| ccGLMatrix (const Vector3Tpl< float > &X, const Vector3Tpl< float > &Y, const Vector3Tpl< float > &Z, const Vector3Tpl< float > &Tr) | |
| Constructor from 4 columns (X,Y,Z,Tr) More... | |
Public Member Functions inherited from ccGLMatrixTpl< float > | |
| ccGLMatrixTpl () | |
| Default constructor. More... | |
| ccGLMatrixTpl (const ccGLMatrixTpl< float > &mat) | |
| Copy constructor. | |
| ccGLMatrixTpl (const float *mat16f) | |
| Constructor from a float GL matrix array. More... | |
| ccGLMatrixTpl (const double *mat16d) | |
| Constructor from a double GL matrix array. More... | |
| ccGLMatrixTpl (const Vector3Tpl< float > &X, const Vector3Tpl< float > &Y, const Vector3Tpl< float > &Z, const Vector3Tpl< float > &Tr) | |
| Constructor from 4 columns (X,Y,Z,T) More... | |
| QString | toString (int precision=12, QChar separator=' ') const |
| Returns matrix as a string. More... | |
| virtual bool | toAsciiFile (QString filename, int precision=12) const |
| Saves matrix to an ASCII file. More... | |
| virtual bool | fromAsciiFile (QString filename) |
| Loads matrix from an ASCII file. More... | |
| ccGLMatrixTpl< float > | xRotation () const |
| Returns the rotation component around X only. | |
| ccGLMatrixTpl< float > | yRotation () const |
| Returns the rotation component around Y only. | |
| ccGLMatrixTpl< float > | zRotation () const |
| Returns the rotation component around Z only. | |
| virtual void | toZero () |
| Clears matrix. More... | |
| virtual void | toIdentity () |
| Sets matrix to identity. | |
| void | clearTranslation () |
| Clears translation. More... | |
| void | initFromParameters (float alpha_rad, const Vector3Tpl< float > &axis3D, const Vector3Tpl< float > &t3D) |
| Inits transformation from a rotation axis, an angle and a translation. More... | |
| void | initFromParameters (float phi_rad, float theta_rad, float psi_rad, const Vector3Tpl< float > &t3D) |
| Inits transformation from 3 rotation angles and a translation. More... | |
| void | getParameters (float &alpha_rad, Vector3Tpl< float > &axis3D, Vector3Tpl< float > &t3D) const |
| Returns equivalent parameters: a rotation axis, an angle and a translation. More... | |
| void | getParameters (float &phi_rad, float &theta_rad, float &psi_rad, Vector3Tpl< float > &t3D) const |
| Returns equivalent parameters: 3 rotation angles and a translation. More... | |
| float * | data () |
| Returns a pointer to internal data. | |
| const float * | data () const |
| Returns a const pointer to internal data. | |
| float * | getTranslation () |
| Returns a pointer to internal translation. More... | |
| const float * | getTranslation () const |
| Returns a const pointer to internal translation. More... | |
| Vector3Tpl< float > | getTranslationAsVec3D () const |
| Returns a copy of the translation as a CCVector3. More... | |
| void | setTranslation (const Vector3Tpl< float > &Tr) |
| Sets translation (float version) More... | |
| void | setTranslation (const Vector3Tpl< double > &Tr) |
| Sets translation (double version) More... | |
| void | setTranslation (const float Tr[3]) |
| Sets translation from a float array. More... | |
| void | setTranslation (const double Tr[3]) |
| Sets translation from a double array. More... | |
| float * | getColumn (unsigned index) |
| Returns a pointer to a given column. More... | |
| const float * | getColumn (unsigned index) const |
| Returns a const pointer to a given column. More... | |
| Vector3Tpl< float > | getColumnAsVec3D (unsigned index) const |
| Returns a copy of a given column as a CCVector3. More... | |
| void | setColumn (unsigned index, const Vector3Tpl< float > &v) |
| Sets the content of a given column. More... | |
| void | setColumn (unsigned index, const Tuple4Tpl< float > &v) |
| Sets the content of a given column. More... | |
| ccGLMatrixTpl< float > | operator* (const ccGLMatrixTpl< float > &mat) const |
| Multiplication by a matrix operator. | |
| Vector3Tpl< float > | operator* (const Vector3Tpl< float > &vec) const |
| Multiplication by a vector operator (float version) | |
| Vector3Tpl< double > | operator* (const Vector3Tpl< double > &vec) const |
| Multiplication by a vector operator (double version) | |
| Tuple4Tpl< float > | operator* (const Tuple4Tpl< float > &vec) const |
| Multiplication by a 4D vector operator (float version) | |
| Tuple4Tpl< double > | operator* (const Tuple4Tpl< double > &vec) const |
| Multiplication by a 4D vector operator (double version) | |
| ccGLMatrixTpl< float > & | operator+= (const ccGLMatrixTpl< float > &mat) |
| (in place) Addition operator | |
| ccGLMatrixTpl< float > & | operator+= (const Vector3Tpl< float > &Tr) |
| (in place) Forward translation operator (float version) | |
| ccGLMatrixTpl< float > & | operator+= (const Vector3Tpl< double > &Tr) |
| (in place) Forward translation operator (double version) | |
| ccGLMatrixTpl< float > & | operator-= (const ccGLMatrixTpl< float > &mat) |
| (in place) Difference operator | |
| ccGLMatrixTpl< float > & | operator-= (const Vector3Tpl< float > &Tr) |
| (in place) Backward translation operator (float version) | |
| ccGLMatrixTpl< float > & | operator-= (const Vector3Tpl< double > &Tr) |
| (in place) Backward translation operator (double version) | |
| ccGLMatrixTpl< float > & | operator*= (const ccGLMatrixTpl< float > &mat) |
| (in place) Multiplication operator | |
| float | operator() (unsigned row, unsigned col) const |
| Returns the value at a given position. | |
| void | apply (Vector3Tpl< float > &vec) const |
| Applies transformation to a 3D vector (in place) - float version. More... | |
| void | apply (Vector3Tpl< double > &vec) const |
| Applies transformation to a 3D vector (in place) - double version. More... | |
| void | apply (Tuple4Tpl< float > &vec) const |
| Applies transformation to a 4D vector (in place) - float version. More... | |
| void | apply (Tuple4Tpl< double > &vec) const |
| Applies transformation to a 3D vector (in place) - double version. More... | |
| float | applyX (const Vector3Tpl< float > &vec) const |
| Get the resulting transformation along X dimension (float version) | |
| double | applyX (const Vector3Tpl< double > &vec) const |
| Get the resulting transformation along X dimension (double version) | |
| float | applyX (const Tuple4Tpl< float > &vec) const |
| Get the resulting transformation along X dimension (float version) | |
| double | applyX (const Tuple4Tpl< double > &vec) const |
| Get the resulting transformation along X dimension (double version) | |
| float | applyY (const Vector3Tpl< float > &vec) const |
| Get the resulting transformation along Y dimension (float version) | |
| double | applyY (const Vector3Tpl< double > &vec) const |
| Get the resulting transformation along Y dimension (double version) | |
| float | applyY (const Tuple4Tpl< float > &vec) const |
| Get the resulting transformation along Y dimension (float version) | |
| double | applyY (const Tuple4Tpl< double > &vec) const |
| Get the resulting transformation along Y dimension (double version) | |
| float | applyZ (const Vector3Tpl< float > &vec) const |
| Get the resulting transformation along Z dimension (float version) | |
| double | applyZ (const Vector3Tpl< double > &vec) const |
| Get the resulting transformation along Z dimension (double version) | |
| float | applyZ (const Tuple4Tpl< float > &vec) const |
| Get the resulting transformation along Z dimension (float version) | |
| double | applyZ (const Tuple4Tpl< double > &vec) const |
| Get the resulting transformation along Z dimension (double version) | |
| float | applyW (const Tuple4Tpl< float > &vec) const |
| Get the resulting transformation along the 4th dimension (float version) | |
| double | applyW (const Tuple4Tpl< double > &vec) const |
| Get the resulting transformation along the 4th dimension (double version) | |
| void | applyRotation (Vector3Tpl< float > &vec) const |
| Applies rotation only to a 3D vector (in place) - float version. More... | |
| void | applyRotation (Vector3Tpl< double > &vec) const |
| Applies rotation only to a 3D vector (in place) - double version. More... | |
| void | applyRotation (float vec[3]) const |
| Applies rotation only to a 3D vector (in place) - float version. More... | |
| void | applyRotation (double vec[3]) const |
| Applies rotation only to a 3D vector (in place) - float version. More... | |
| void | shiftRotationCenter (const Vector3Tpl< float > &vec) |
| Shifts rotation center. More... | |
| void | transpose () |
| Transposes matrix (in place) | |
| ccGLMatrixTpl< float > | transposed () const |
| Returns transposed matrix. | |
| void | invert () |
| Inverts transformation. | |
| ccGLMatrixTpl< float > | inverse () const |
| Returns inverse transformation. | |
| void | scaleRotation (float coef) |
| Scales the rotation part of the matrix. More... | |
| void | scaleRow (unsigned rowIndex, float coef) |
| Scales one row of the matrix. More... | |
| void | scaleColumn (unsigned colIndex, float coef) |
| Scales one column of the matrix. More... | |
| bool | isSerializable () const override |
| Returns whether object is serializable of not. More... | |
| bool | toFile (QFile &out) const override |
| Saves data to binary stream. More... | |
| bool | fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override |
| Loads data from binary stream. More... | |
Public Member Functions inherited from ccSerializableObject | |
| virtual | ~ccSerializableObject ()=default |
| Destructor. | |
| virtual bool | isSerializable () const |
| Returns whether object is serializable of not. More... | |
| virtual bool | toFile (QFile &out) const |
| Saves data to binary stream. More... | |
| virtual bool | fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) |
| Loads data from binary stream. More... | |
Static Public Member Functions | |
| static ccIndexedTransformation | Interpolate (double interpIndex, const ccIndexedTransformation &trans1, const ccIndexedTransformation &trans2) |
| Interpolates two transformations at an absolute position (index) More... | |
Static Public Member Functions inherited from ccGLMatrixTpl< float > | |
| static ccGLMatrixTpl | Interpolate (float coef, const ccGLMatrixTpl< float > &glMat1, const ccGLMatrixTpl< float > &glMat2) |
| Interpolates two matrices at relative position 'coef'. More... | |
| static ccGLMatrixTpl< float > | FromToRotation (const Vector3Tpl< float > &from, const Vector3Tpl< float > &to) |
| Creates a transformation matrix that rotates a vector to another. More... | |
| static ccGLMatrixTpl< float > | FromQuaternion (const Tq q[]) |
| Converts a quaternion to a rotation matrix. More... | |
| static ccGLMatrixTpl< float > | FromViewDirAndUpDir (const Vector3Tpl< float > &forward, const Vector3Tpl< float > &up) |
| Generates a 'viewing' matrix from a looking vector and a 'up' direction. More... | |
| static ccGLMatrixTpl< float > | FromString (const QString &matText, bool &success) |
| Converts a 'text' matrix to a ccGLMatrix. More... | |
Static Public Member Functions inherited from ccSerializableObject | |
| static bool | WriteError () |
| Sends a custom error message (write error) and returns 'false'. More... | |
| static bool | ReadError () |
| Sends a custom error message (read error) and returns 'false'. More... | |
| static bool | MemoryError () |
| Sends a custom error message (not enough memory) and returns 'false'. More... | |
| static bool | CorruptError () |
| Sends a custom error message (corrupted file) and returns 'false'. More... | |
Protected Attributes | |
| double | m_index |
| Associated index (e.g. timestamp) | |
Protected Attributes inherited from ccGLMatrixTpl< float > | |
| float | m_mat [OPENGL_MATRIX_SIZE] |
| Internal 4x4 GL-style matrix data. | |
Additional Inherited Members | |
Public Types inherited from ccSerializableObject | |
| enum | DeserializationFlags { DF_POINT_COORDS_64_BITS = 1 , DF_SCALAR_VAL_32_BITS = 2 } |
| Deserialization flags (bit-field) More... | |
| typedef QMultiMap< unsigned, unsigned > | LoadedIDMap |
| Map of loaded unique IDs (old ID --> new ID) | |
Protected Member Functions inherited from ccGLMatrixTpl< float > | |
| void | internalRescale () |
| Transfers the homogenous coordinate (scale) to the whole matrix. | |
A 4x4 'transformation' matrix (column major order) associated to an index (typically a timestamp)
| ccIndexedTransformation::ccIndexedTransformation | ( | ) |
Default constructor.
Matrix is set to identity (see ccGLMatrix::toIdentity) by default. Index is set to zero by default.
| ccIndexedTransformation::ccIndexedTransformation | ( | const ccGLMatrix & | matrix | ) |
Constructor from a transformation matrix.
Index is set to zero by default.
| matrix | transformation matrix |
| ccIndexedTransformation::ccIndexedTransformation | ( | const ccGLMatrix & | matrix, |
| double | index | ||
| ) |
Constructor from a transformation matrix and an index.
| matrix | transformation matrix |
| index | associated index (e.g. timestamp) |
|
overridevirtual |
Loads matrix from an ASCII file.
| filename | input file name |
Reimplemented from ccGLMatrixTpl< float >.
|
overridevirtual |
Loads data from binary stream.
| in | input file (already opened) |
| dataVersion | file version |
| flags | deserialization flags (see ccSerializableObject::DeserializationFlags) |
| oldToNewIDMap | map to link old IDs with new IDs |
Reimplemented from ccSerializableObject.
|
static |
Interpolates two transformations at an absolute position (index)
Warning: interpolation index must lie between the two input matrices indexes!
| interpIndex | interpolation position (should be between trans1 and trans2 indexes). |
| trans1 | first transformation |
| trans2 | second transformation |
| ccIndexedTransformation ccIndexedTransformation::inverse | ( | ) | const |
Returns inverse transformation.
Warning: index is not modified by this operation.
|
inlineoverridevirtual |
Returns whether object is serializable of not.
Reimplemented from ccSerializableObject.
| ccIndexedTransformation & ccIndexedTransformation::operator*= | ( | const ccGLMatrix & | mat | ) |
(in place) Multiplication by a ccGLMatrix operator
Warning: index is not modified by this operation.
| ccIndexedTransformation & ccIndexedTransformation::operator+= | ( | const CCVector3 & | T | ) |
Multiplication operator.
(in place) Multiplication operator Warning: index is not modified by this operation. (in place) Translation operator Warning: index is not modified by this operation.
| ccIndexedTransformation & ccIndexedTransformation::operator-= | ( | const CCVector3 & | T | ) |
(in place) Translation operator
Warning: index is not modified by this operation.
|
overridevirtual |
Saves matrix to an ASCII file.
| filename | output file name |
| precision | output digits precision |
Reimplemented from ccGLMatrixTpl< float >.
|
overridevirtual |
Saves data to binary stream.
| out | output file (already opened) |
Reimplemented from ccSerializableObject.
| ccIndexedTransformation ccIndexedTransformation::transposed | ( | ) | const |
Returns transposed transformation.
Warning: index is not modified by this operation.