123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- /***********************************************************
- * File generated by the HALCON-Compiler hcomp version 20.11
- * Usage: Interface to C++
- *
- * Software by: MVTec Software GmbH, www.mvtec.com
- ***********************************************************/
- #ifndef HCPP_HHOMMAT3D
- #define HCPP_HHOMMAT3D
- namespace HalconCpp
- {
- // Represents a homogeneous 3D transformation matrix.
- class LIntExport HHomMat3D : public HDataBase
- {
- public:
- // Copy constructor
- HHomMat3D(const HHomMat3D& source) : HDataBase(source) {}
- // Constructor from HTuple
- explicit HHomMat3D(const HTuple& tuple) : HDataBase(tuple) {}
- // Deep copy of all data represented by this object instance
- HHomMat3D Clone() const;
- /*****************************************************************************
- * Operator-based class constructors
- *****************************************************************************/
- // hom_mat3d_identity: Generate the homogeneous transformation matrix of the identical 3D transformation.
- explicit HHomMat3D();
- /***************************************************************************
- * Operators *
- ***************************************************************************/
- // Deserialize a serialized homogeneous 3D transformation matrix.
- void DeserializeHomMat3d(const HSerializedItem& SerializedItemHandle);
- // Serialize a homogeneous 3D transformation matrix.
- HSerializedItem SerializeHomMat3d() const;
- // Project a homogeneous 3D point using a projective transformation matrix.
- HTuple ProjectiveTransHomPoint3d(const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Pw, HTuple* Qy, HTuple* Qz, HTuple* Qw) const;
- // Project a homogeneous 3D point using a projective transformation matrix.
- double ProjectiveTransHomPoint3d(double Px, double Py, double Pz, double Pw, double* Qy, double* Qz, double* Qw) const;
- // Project a 3D point using a projective transformation matrix.
- HTuple ProjectiveTransPoint3d(const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Qy, HTuple* Qz) const;
- // Project a 3D point using a projective transformation matrix.
- double ProjectiveTransPoint3d(double Px, double Py, double Pz, double* Qy, double* Qz) const;
- // Apply an arbitrary affine 3D transformation to points.
- HTuple AffineTransPoint3d(const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Qy, HTuple* Qz) const;
- // Apply an arbitrary affine 3D transformation to points.
- double AffineTransPoint3d(double Px, double Py, double Pz, double* Qy, double* Qz) const;
- // Approximate a 3D transformation from point correspondences.
- void VectorToHomMat3d(const HString& TransformationType, const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Qx, const HTuple& Qy, const HTuple& Qz);
- // Approximate a 3D transformation from point correspondences.
- void VectorToHomMat3d(const char* TransformationType, const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Qx, const HTuple& Qy, const HTuple& Qz);
- #ifdef _WIN32
- // Approximate a 3D transformation from point correspondences.
- void VectorToHomMat3d(const wchar_t* TransformationType, const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Qx, const HTuple& Qy, const HTuple& Qz);
- #endif
- // Compute the determinant of a homogeneous 3D transformation matrix.
- double HomMat3dDeterminant() const;
- // Transpose a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dTranspose() const;
- // Invert a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dInvert() const;
- // Multiply two homogeneous 3D transformation matrices.
- HHomMat3D HomMat3dCompose(const HHomMat3D& HomMat3DRight) const;
- // Add a rotation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dRotateLocal(const HTuple& Phi, const HTuple& Axis) const;
- // Add a rotation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dRotateLocal(double Phi, const HString& Axis) const;
- // Add a rotation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dRotateLocal(double Phi, const char* Axis) const;
- #ifdef _WIN32
- // Add a rotation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dRotateLocal(double Phi, const wchar_t* Axis) const;
- #endif
- // Add a rotation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dRotate(const HTuple& Phi, const HTuple& Axis, const HTuple& Px, const HTuple& Py, const HTuple& Pz) const;
- // Add a rotation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dRotate(double Phi, const HString& Axis, double Px, double Py, double Pz) const;
- // Add a rotation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dRotate(double Phi, const char* Axis, double Px, double Py, double Pz) const;
- #ifdef _WIN32
- // Add a rotation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dRotate(double Phi, const wchar_t* Axis, double Px, double Py, double Pz) const;
- #endif
- // Add a scaling to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dScaleLocal(const HTuple& Sx, const HTuple& Sy, const HTuple& Sz) const;
- // Add a scaling to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dScaleLocal(double Sx, double Sy, double Sz) const;
- // Add a scaling to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dScale(const HTuple& Sx, const HTuple& Sy, const HTuple& Sz, const HTuple& Px, const HTuple& Py, const HTuple& Pz) const;
- // Add a scaling to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dScale(double Sx, double Sy, double Sz, double Px, double Py, double Pz) const;
- // Add a translation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dTranslateLocal(const HTuple& Tx, const HTuple& Ty, const HTuple& Tz) const;
- // Add a translation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dTranslateLocal(double Tx, double Ty, double Tz) const;
- // Add a translation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dTranslate(const HTuple& Tx, const HTuple& Ty, const HTuple& Tz) const;
- // Add a translation to a homogeneous 3D transformation matrix.
- HHomMat3D HomMat3dTranslate(double Tx, double Ty, double Tz) const;
- // Generate the homogeneous transformation matrix of the identical 3D transformation.
- void HomMat3dIdentity();
- // Project an affine 3D transformation matrix to a 2D projective transformation matrix.
- HHomMat2D HomMat3dProject(const HTuple& PrincipalPointRow, const HTuple& PrincipalPointCol, const HTuple& Focus) const;
- // Project an affine 3D transformation matrix to a 2D projective transformation matrix.
- HHomMat2D HomMat3dProject(double PrincipalPointRow, double PrincipalPointCol, double Focus) const;
- // Project a homogeneous 3D point using a 3x4 projection matrix.
- HTuple ProjectHomPointHomMat3d(const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Pw, HTuple* Qy, HTuple* Qw) const;
- // Project a homogeneous 3D point using a 3x4 projection matrix.
- double ProjectHomPointHomMat3d(double Px, double Py, double Pz, double Pw, double* Qy, double* Qw) const;
- // Project a 3D point using a 3x4 projection matrix.
- HTuple ProjectPointHomMat3d(const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Qy) const;
- // Project a 3D point using a 3x4 projection matrix.
- double ProjectPointHomMat3d(double Px, double Py, double Pz, double* Qy) const;
- // Convert a homogeneous transformation matrix into a 3D pose.
- HPose HomMat3dToPose() const;
- };
- class LIntExport HHomMat3DArray : public HDataArray
- {
- public:
- HHomMat3DArray();
- HHomMat3DArray(HHomMat3D* classes, Hlong length);
- /* Define a default constructor to prevent compilers that support
- * C++11 R-Value References v3.0 declaring an implicite move
- * assignment/constructor. */
- ~HHomMat3DArray() {}
- protected:
- virtual void CreateArray(Hlong length);
- virtual int GetFixedSize() const;
- };
- }
- #endif
|