1#ifndef MSLANG_AFFINETRANSFORMATION_H
2#define MSLANG_AFFINETRANSFORMATION_H
14 Tenzor(row0[0], row0[1], row0[2], row1[0], row1[1], row1[2], 0.0, 0.0, 1.0) {
18 Tenzor(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) { }
22 double det = (*this)(0, 0) * (*
this)(1, 1) - (*
this)(1, 0) * (*
this)(0, 1);
24 Ret(0, 0) = (*this)(1, 1) /
det;
25 Ret(1, 0) = -(*this)(1, 0) /
det;
26 Ret(0, 1) = -(*this)(0, 1) /
det;
27 Ret(1, 1) = (*this)(0, 0) /
det;
29 Ret(0, 2) = - Ret(0, 0) * (*this)(0, 2) - Ret(0, 1) * (*this)(1, 2);
30 Ret(1, 2) = - Ret(1, 0) * (*this)(0, 2) - Ret(1, 1) * (*this)(1, 2);
37 return Vector_t(-(*
this)(0, 2), -(*
this)(1, 2), 0.0);
41 return atan2((*
this)(1, 0), (*
this)(0, 0));
double dot(const Vector3D &lhs, const Vector3D &rhs)
Vector dot product.
PETE_TBTree< FnArcTan2, PETE_Scalar< Vektor< T1, Dim > >, typename T2::PETE_Expr_t > atan2(const Vektor< T1, Dim > &l, const PETE_Expr< T2 > &r)
T det(const AntiSymTenzor< T, 3 > &)
AffineTransformation(const Vector_t &row0, const Vector_t &row1)
Vector_t getOrigin() const
AffineTransformation getInverse() const
Vector_t transformTo(const Vector_t &v) const
AffineTransformation mult(const AffineTransformation &B)
Vector_t transformFrom(const Vector_t &v) const
Vektor< double, 3 > Vector_t