Advertisement
Guest User

Untitled

a guest
Dec 17th, 2014
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. bool docked[100];
  2. Quaternion quatTarget[100];
  3. double distance_dock[100];
  4.  
  5. vector3 docking_position(int ship, int station)
  6. {
  7. if (!docked[ship])
  8. {
  9. docked[ship] = true;
  10. distance_dock[ship] = distances(position[ship], position[station]);
  11. vector3 direcc = normalized(position[station] - position[ship]);
  12. quatTarget[ship] = vecToVecRotation(direcc, { 0, 0, 1 });
  13. QuaternionNormalize(&quatTarget[ship], &quatTarget[ship]);
  14. }
  15.  
  16. Quaternion orientation = total_rotation[station] * quatTarget[ship];
  17.  
  18. Matrix docking_place;
  19.  
  20. MatrixRotationQuaternion(&docking_place, &orientation);
  21.  
  22. vector3 axis_z = { docking_place(0, 2), docking_place(1, 2), docking_place(2, 2) };
  23.  
  24. return position[station] + -axis_z * distance_dock[ship];
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement