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.