unified to the gl stlyle matix*vector. removed vector*matrix operator
This commit is contained in:
parent
4705d0e5ef
commit
b1415f5484
vcg/math
|
@ -24,6 +24,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.6 2004/03/25 14:57:49 ponchio
|
||||||
|
Microerror. ($LOG$ -> $Log: not supported by cvs2svn $
|
||||||
|
|
||||||
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -64,7 +67,7 @@ public:
|
||||||
|
|
||||||
template <class S> Similarity<S> &Invert(Similarity<S> &m);
|
template <class S> Similarity<S> &Invert(Similarity<S> &m);
|
||||||
template <class S> Similarity<S> Inverse(const Similarity<S> &m);
|
template <class S> Similarity<S> Inverse(const Similarity<S> &m);
|
||||||
template <class S> Point3<S> operator*(const Point3<S> &p, const Similarity<S> &m);
|
template <class S> Point3<S> operator*(const Similarity<S> &m, const Point3<S> &p);
|
||||||
|
|
||||||
|
|
||||||
template <class S> Similarity<S> Similarity<S>::operator*(const Similarity &a) const {
|
template <class S> Similarity<S> Similarity<S>::operator*(const Similarity &a) const {
|
||||||
|
@ -117,12 +120,13 @@ template <class S> Similarity<S> &Similarity<S>::SetRotate(const Quaternion<S> &
|
||||||
template <class S> Matrix44<S> Similarity<S>::Matrix() const {
|
template <class S> Matrix44<S> Similarity<S>::Matrix() const {
|
||||||
Matrix44<S> r;
|
Matrix44<S> r;
|
||||||
rot.ToMatrix(r);
|
rot.ToMatrix(r);
|
||||||
r *= Matrix44<S>().SetScale(sca, sca, sca);
|
Matrix44<S> s = Matrix44<S>().SetScale(sca, sca, sca);
|
||||||
Matrix44<S> t = Matrix44<S>().SetTranslate(tra[0], tra[1], tra[2]);
|
Matrix44<S> t = Matrix44<S>().SetTranslate(tra[0], tra[1], tra[2]);
|
||||||
r *= t;
|
return s*r*t; // scale * rot * trans
|
||||||
return r;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template <class S> void Similarity<S>::FromMatrix(const Matrix44<S> &m) {
|
template <class S> void Similarity<S>::FromMatrix(const Matrix44<S> &m) {
|
||||||
sca = (S)pow(m.Determinant(), 1/3);
|
sca = (S)pow(m.Determinant(), 1/3);
|
||||||
assert(sca != 0);
|
assert(sca != 0);
|
||||||
|
@ -154,7 +158,7 @@ template <class S> Similarity<S> Interpolate(const Similarity<S> &a, const Simil
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class S> Point3<S> operator*(const Point3<S> &p, const Similarity<S> &m) {
|
template <class S> Point3<S> operator*(const Similarity<S> &m, const Point3<S> &p) {
|
||||||
Point3<S> r = m.rot.Rotate(p);
|
Point3<S> r = m.rot.Rotate(p);
|
||||||
r *= m.sca;
|
r *= m.sca;
|
||||||
r += m.tra;
|
r += m.tra;
|
||||||
|
|
Loading…
Reference in New Issue