Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CStackTransformation.hpp
Go to the documentation of this file.
1#ifndef LIBS_MATH_CSTACKTRANSFORMATION_HPP_
2#define LIBS_MATH_CSTACKTRANSFORMATION_HPP_
3
4#include "math/CMatrix4x4.hpp"
5
7{
8public:
10 CStackTransformation(const CStackTransformation &stackTransformation) = default;
11
13
14 void appendAxis(double Ux, double Uy, double Uz, double Vx, double Vy, double Vz);
15 void appendExtrusion(double Nx, double Ny, double Nz);
16 void appendMatrix(const CMatrix4x4 &matrix);
17 void appendRotation(double angleInDegrees, double Ux, double Uy, double Uz);
18 void appendScale(double sx, double sy, double sz);
19 void appendTranslation(double tx, double ty, double tz);
20
21 void transformationDistance(double distanceX, double distanceY, double *distanceXTrans,
22 double *distanceYTrans) const;
23 void transformationDistanceX(double distance, double *distanceTrans) const;
24 void transformationDistanceXInvert(double distance, double *distanceTrans);
25 void transformationDistanceY(double distance, double *distanceTrans);
26 void transformationDistanceYInvert(double distance, double *distanceTrans);
27
28 void transformationPoint2D(double x, double y, double *xTrans, double *yTrans) const;
29 void transformationPoint2DInvert(double x, double y, double *xTrans, double *yTrans);
30 std::vector<iv::math::geometry::Point3d>
31 transformationPoints2D(const std::shared_ptr<std::vector<iv::math::geometry::Point2d>> &points) const;
32 void transformationPoints2DInSitu(std::vector<iv::math::geometry::Point2d> &points) const;
33
34 void transformationPoint3D(double x, double y, double z, double *xTrans, double *yTrans, double *zTrans) const;
35 // template<typename T> void transformationPoint3D(T x, T y, T z, T *xTrans, T *yTrans,
36 // T *zTrans) const;
37 std::shared_ptr<std::vector<iv::math::geometry::Point3d>>
38 transformationPoints3D(const std::shared_ptr<std::vector<iv::math::geometry::Point3d>> &points) const;
39
40 template<typename T>
41 std::vector<iv::math::geometry::Point3d>
42 transformationPoints3DArrayC(const std::vector<iv::math::geometry::Point3d> &vertex) const;
43 float *transformationPoints3DArrayC(const float *vertex, uint64_t numPoints) const;
44
45 void transformationPoints3DInSitu(const std::shared_ptr<std::vector<iv::math::geometry::Point3d>> &points) const;
46
47 template<typename T>
48 void transformationUnitVector(T Ux, T Uy, T Uz, T *UxTrans, T *UyTrans, T *UzTrans) const;
49
50 void popTransformation();
51 void pushTransformation();
53
54 void transformationPointF3d(float x, float y, float z, float *xTrans, float *yTrans, float *zTrans) const;
55
56private:
57 std::vector<CMatrix4x4> m_stack;
60};
61
62#endif /* LIBS_MATH_CSTACKTRANSFORMATION_HPP_ */
Definition CMatrix4x4.hpp:23
Definition CStackTransformation.hpp:7
std::vector< iv::math::geometry::Point3d > transformationPoints2D(const std::shared_ptr< std::vector< iv::math::geometry::Point2d > > &points) const
Definition CStackTransformation.cpp:162
void transformationDistanceX(double distance, double *distanceTrans) const
Definition CStackTransformation.cpp:113
void popTransformation()
Definition CStackTransformation.cpp:216
void appendMatrix(const CMatrix4x4 &matrix)
Definition CStackTransformation.cpp:49
~CStackTransformation()
Definition CStackTransformation.cpp:10
void transformationDistanceY(double distance, double *distanceTrans)
Definition CStackTransformation.cpp:128
void transformationPoint3D(double x, double y, double z, double *xTrans, double *yTrans, double *zTrans) const
Definition CStackTransformation.cpp:173
CMatrix4x4 m_matrixCurrent
Definition CStackTransformation.hpp:58
void appendRotation(double angleInDegrees, double Ux, double Uy, double Uz)
Definition CStackTransformation.cpp:64
std::vector< iv::math::geometry::Point3d > transformationPoints3DArrayC(const std::vector< iv::math::geometry::Point3d > &vertex) const
Definition CStackTransformation.cpp:194
void appendExtrusion(double Nx, double Ny, double Nz)
Definition CStackTransformation.cpp:34
void transformationUnitVector(T Ux, T Uy, T Uz, T *UxTrans, T *UyTrans, T *UzTrans) const
Definition CStackTransformation.cpp:211
std::shared_ptr< std::vector< iv::math::geometry::Point3d > > transformationPoints3D(const std::shared_ptr< std::vector< iv::math::geometry::Point3d > > &points) const
Definition CStackTransformation.cpp:186
std::vector< CMatrix4x4 > m_stack
Definition CStackTransformation.hpp:57
void transformationDistance(double distanceX, double distanceY, double *distanceXTrans, double *distanceYTrans) const
Definition CStackTransformation.cpp:107
void transformationPoints2DInSitu(std::vector< iv::math::geometry::Point2d > &points) const
Definition CStackTransformation.cpp:168
CStackTransformation(const CStackTransformation &stackTransformation)=default
void appendTranslation(double tx, double ty, double tz)
Definition CStackTransformation.cpp:96
void transformationPoint2DInvert(double x, double y, double *xTrans, double *yTrans)
Definition CStackTransformation.cpp:150
void transformationPointF3d(float x, float y, float z, float *xTrans, float *yTrans, float *zTrans) const
Definition CStackTransformation.cpp:246
CMatrix4x4 * m_matrixInvertOpt
Definition CStackTransformation.hpp:59
void appendScale(double sx, double sy, double sz)
Definition CStackTransformation.cpp:81
void appendAxis(double Ux, double Uy, double Uz, double Vx, double Vy, double Vz)
Definition CStackTransformation.cpp:19
CStackTransformation()
Definition CStackTransformation.cpp:5
void pushTransformation()
Definition CStackTransformation.cpp:230
void transformationDistanceYInvert(double distance, double *distanceTrans)
Definition CStackTransformation.cpp:133
void transformationPoint2D(double x, double y, double *xTrans, double *yTrans) const
Definition CStackTransformation.cpp:143
void transformationPoints3DInSitu(const std::shared_ptr< std::vector< iv::math::geometry::Point3d > > &points) const
Definition CStackTransformation.cpp:204
void transformationDistanceXInvert(double distance, double *distanceTrans)
Definition CStackTransformation.cpp:118
void resetTransformation()
Definition CStackTransformation.cpp:235