23 IRotation::IRotation(
const NodeMeta& meta,
const std::vector<double>& PValues)
24 :
INode(meta, PValues)
32 case Transform3D::XAXIS: {
36 case Transform3D::YAXIS: {
40 case Transform3D::ZAXIS: {
44 case Transform3D::EULER: {
45 double alpha, beta, gamma;
68 bool IRotation::zInvariant()
const
79 IRotation* p_result = IRotation::createRotation(tr_left * tr_right);
87 IdentityRotation::IdentityRotation()
88 :
IRotation({
"IdentityRotation",
"Identity rotation, does nothing", {}}, {})
104 {
"XRotation",
"class_tooltip", {{
"Angle",
"rad",
"Angle around x axis", -INF, +INF, 0}}},
124 {
"YRotation",
"class_tooltip", {{
"Angle",
"rad",
"Angle around y axis", -INF, +INF, 0}}},
146 {
"ZRotation",
"class_tooltip", {{
"Angle",
"rad",
"Angle around z axis", -INF, +INF, 0}}},
163 RotationEuler::RotationEuler(
const std::vector<double> P)
165 "Sequence of three rotations around z-x'-z''",
166 {{
"Alpha",
"rad",
"First Euler angle, rotation around z axis", -INF, +INF, 0},
167 {
"Beta",
"rad",
"Second Euler angle, rotation around x' axis", -INF, +INF, 0},
168 {
"Gamma",
"rad",
"Third Euler angle, rotation around z'' axis", -INF, +INF, 0}}},
170 m_alpha(m_P[0]), m_beta(m_P[1]), m_gamma(m_P[2])
174 RotationEuler::RotationEuler(
double alpha,
double beta,
double gamma)
182 return createRotation(inverse_transform);
Defines the macro ASSERT.
IRotation * createProduct(const IRotation &left, const IRotation &right)
Returns concatenated rotation (first right, then left).
Defines IRotation classes.
Base class for tree-like structures containing parameterized objects.
Pure virtual interface for rotations.
virtual bool isIdentity() const
Returns true if rotation matrix is identity matrix (no rotations)
virtual Transform3D getTransform3D() const =0
Returns transformation.
Transform3D getTransform3D() const
Returns transformation.
A sequence of rotations about the z-x'-z'' axes.
Transform3D getTransform3D() const
Returns transformation.
IRotation * createInverse() const
Returns a new IRotation object that is the current object's inverse.
A rotation about the x axis.
Transform3D getTransform3D() const
Returns transformation.
RotationX(const std::vector< double > P)
Constructor of rotation around x-axis.
A rotation about the y axis.
Transform3D getTransform3D() const
Returns transformation.
RotationY(const std::vector< double > P)
Constructor of rotation around y-axis.
A rotation about the z axis.
Transform3D getTransform3D() const
Returns transformation.
RotationZ(const std::vector< double > P)
Constructor of rotation around z-axis.