// static SimilarityTransform SimilarityTransform::fromMatrix( const Matrix4f& m ) { Matrix3f r = m.getSubmatrix3x3(); float s = r.getRow( 0 ).norm(); return { s, r / s, m.getCol( 3 ).xyz }; }
TMatrix3::TMatrix3(const Matrix3f& m, const boost::shared_ptr<TimeInterval>& time_interval) { v_[0] = TVector3(m.getRow(0), time_interval); v_[1] = TVector3(m.getRow(1), time_interval); v_[2] = TVector3(m.getRow(2), time_interval); }
IMatrix3::IMatrix3(const Matrix3f& m) { v_[0] = m.getRow(0); v_[1] = m.getRow(1); v_[2] = m.getRow(2); }