vecmat3 addouter()
This commit is contained in:
parent
ae83e43b4e
commit
e75248eb23
17
vecmat3.cc
17
vecmat3.cc
@ -69,6 +69,23 @@ m[2][2]=q[2]*rhs.q[2];
|
|||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void Vec3<T>::addouter(Mat3<T> &m, const Vec3<T> &rhs, const T weight) const
|
||||||
|
{
|
||||||
|
m[0][0]+=weight* q[0]*rhs.q[0];
|
||||||
|
m[0][1]+=weight* q[0]*rhs.q[1];
|
||||||
|
m[0][2]+=weight* q[0]*rhs.q[2];
|
||||||
|
|
||||||
|
m[1][0]+=weight* q[1]*rhs.q[0];
|
||||||
|
m[1][1]+=weight* q[1]*rhs.q[1];
|
||||||
|
m[1][2]+=weight* q[1]*rhs.q[2];
|
||||||
|
|
||||||
|
m[2][0]+=weight* q[2]*rhs.q[0];
|
||||||
|
m[2][1]+=weight* q[2]*rhs.q[1];
|
||||||
|
m[2][2]+=weight* q[2]*rhs.q[2];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void Vec3<T>::inertia(Mat3<T> &m, const T weight) const
|
void Vec3<T>::inertia(Mat3<T> &m, const T weight) const
|
||||||
|
@ -96,6 +96,7 @@ public:
|
|||||||
const Vec3 operator*(const Mat3<T> &rhs) const;
|
const Vec3 operator*(const Mat3<T> &rhs) const;
|
||||||
const Vec3 timesT(const Mat3<T> &rhs) const; //with transpose
|
const Vec3 timesT(const Mat3<T> &rhs) const; //with transpose
|
||||||
Mat3<T> outer(const Vec3 &rhs) const; //tensor product
|
Mat3<T> outer(const Vec3 &rhs) const; //tensor product
|
||||||
|
void addouter(Mat3<T> &m, const Vec3 &rhs, const T weight) const; //tensor product
|
||||||
void inertia(Mat3<T> &itensor, const T weight) const; //contribution to inertia tensor
|
void inertia(Mat3<T> &itensor, const T weight) const; //contribution to inertia tensor
|
||||||
void randomize(const T x);
|
void randomize(const T x);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user