Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- math::dualQuaternion::dualQuaternion(quat rotation, v3 translation)
- {
- this->rotation = rotation.normalized();
- quat q = (quat(0.f, translation.x(), translation.y(), translation.z()) * this->rotation);
- this->translation = quat(0.f, q.x()*0.5f, q.y()*0.5f, q.z()*0.5f);
- }
- v3 math::dualQuaternion::getTranslation()
- {
- dualQuaternion dq = dualQuaternion(this->rotation, this->translation);
- dq.normalize();
- quat t = dq.translation;
- quat o = quat(t.w()*2.f, t.x()*2.f, t.y()*2.f, t.z()*2.f)*this->rotation.conjugate();
- return v3(o.x(), o.y(), o.z());
- }
- newPoint = getTranslation() + dq.rotation*oldPoint*dq.rotation.conjugate()
Add Comment
Please, Sign In to add comment