Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool docked[100];
- Quaternion quatTarget[100];
- double distance_dock[100];
- vector3 docking_position(int ship, int station)
- {
- if (!docked[ship])
- {
- docked[ship] = true;
- distance_dock[ship] = distances(position[ship], position[station]);
- vector3 direcc = normalized(position[station] - position[ship]);
- quatTarget[ship] = vecToVecRotation(direcc, { 0, 0, 1 });
- QuaternionNormalize(&quatTarget[ship], &quatTarget[ship]);
- }
- Quaternion orientation = total_rotation[station] * quatTarget[ship];
- Matrix docking_place;
- MatrixRotationQuaternion(&docking_place, &orientation);
- vector3 axis_z = { docking_place(0, 2), docking_place(1, 2), docking_place(2, 2) };
- return position[station] + -axis_z * distance_dock[ship];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement