86 mat.decompose(_trans, _rot, _scale, _skew);
87 return fromTrs(_trans, _rot, _scale, _skew);
96 _bTrans = rhs._bTrans;
98 _bScale = rhs._bScale;
99 _bUniformScale = rhs._bUniformScale;
111 ret = _bSkew ? _skew * (_skew.
inverse()*ret).elemMul(_scale) : ret.
elemMul(_scale);
128 ret = _bSkew ? _skew * (_skew.
inverse()*ret).elemMul(_scale) : ret.
elemMul(_scale);
134 bool operator == (
const Transform_& rhs)
const {
return _trans == rhs._trans && _rot == rhs._rot && _scale == rhs._scale; }
146 _bTrans = _trans != Vec3::zero;
159 const Quat&
getRot()
const {
return _rot; }
166 _bScale = _scale != Vec3::one || _bSkew;
167 _bUniformScale = _scale.x == _scale.y && _scale.x == _scale.z && !_bSkew;
179 if (trans) trans = _trans;
182 if (skew) skew = _skew;
205 bool isIdentity()
const {
return !_bTrans && !_bRot && !_bScale; }
214 return os <<
"{ " <<
"trans: " << tm._trans <<
", rot: " << tm._rot
215 <<
", scale: " << tm._scale <<
", skew: " << tm._skew <<
" }";
(m x n)-dimensional matrix
Definition: Matrix.h:24
static optnull_t optnull
Null optional, use to reset an optional to an uninitialized state or test for initialization.
Definition: Optional.h:12
Transform_< Double > Transform_d
Definition: Transform.h:244
Transform_< Float > Transform_f
Definition: Transform.h:243
MatrixS elemMul(const MatrixBase< T > &rhs) const
Multiply each element with its corresponding element in rhs. Returns a new matrix with the results...
Definition: Base.h:199
Quat_ inverse() const
Assumes that quaternion is unit length, same as conjugate()
Definition: Quat.h:191
static const Quat_ identity
Definition: Quat.h:347
float Real
Real number type. See Real_ for real number operations and constants.
Definition: Real.h:21
Use to differentiate an overloaded function by type. Accepts dummy parameter default value: func(tag<...
Definition: Meta.h:39
Enables any type to be optional so it can exist in an uninitialized null state.
Definition: Optional.h:52
Transform_< Real > Transform
Definition: Transform.h:242
Global Honeycomb namespace.