Guest User

Untitled

a guest
Jan 22nd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. math::dualQuaternion::dualQuaternion(quat rotation, v3 translation)
  2. {
  3. this->rotation = rotation.normalized();
  4. quat q = (quat(0.f, translation.x(), translation.y(), translation.z()) * this->rotation);
  5. this->translation = quat(0.f, q.x()*0.5f, q.y()*0.5f, q.z()*0.5f);
  6. }
  7.  
  8. v3 math::dualQuaternion::getTranslation()
  9. {
  10. dualQuaternion dq = dualQuaternion(this->rotation, this->translation);
  11. dq.normalize();
  12.  
  13. quat t = dq.translation;
  14. quat o = quat(t.w()*2.f, t.x()*2.f, t.y()*2.f, t.z()*2.f)*this->rotation.conjugate();
  15.  
  16. return v3(o.x(), o.y(), o.z());
  17. }
  18.  
  19. newPoint = getTranslation() + dq.rotation*oldPoint*dq.rotation.conjugate()
Add Comment
Please, Sign In to add comment