TrackCameraED.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "TrackCameraED.h"
  2. //Прочитать параметры идущие перед стандартных
  3. void TrackCameraED::ReadTrack(MOPReader & reader)
  4. {
  5. if(track) delete track;
  6. track = NEW PathTracks();
  7. track->ClearTrack();
  8. long PointsCount = reader.Array();
  9. for (long i=0;i<PointsCount;i++)
  10. {
  11. PathTracks::TPoint pt;
  12. pt.pt1 = reader.Position();
  13. Vector angels = reader.Angles();
  14. pt.q = Quaternion(Matrix(-angels.x, angels.y, -angels.z).RotateY(PI));
  15. pt.pt2 = reader.Position();
  16. angels = reader.Angles();
  17. pt.q2 = Quaternion(Matrix(-angels.x, angels.y, -angels.z).RotateY(PI));
  18. pt.p1 = reader.Position();
  19. pt.p2 = reader.Position();
  20. track->AddPoint(pt);
  21. }
  22. if(!track->GetNumPoints())
  23. {
  24. delete track;
  25. track = null;
  26. }
  27. isMoveToPos = true;
  28. MissionObject * obj = Mission().Player();
  29. if(obj)
  30. {
  31. Matrix mtx;
  32. chrPos = obj->GetMatrix(mtx).pos;
  33. }
  34. }
  35. MOP_BEGINLISTCG(TrackCameraED, "Tracked camera ED", '1.00', 1000, CAMERA_COMMENT("Tracked camera ED\n\n"),"Cameras")
  36. MOP_ARRAYBEG("Camera Track", 0, 512);
  37. MOP_POSITION ("TrackPoint", Vector(0.0f));
  38. MOP_ANGLES ("Direction", Vector(0.0f));
  39. MOP_POSITION ("TrackPoint2", Vector(0.0f));
  40. MOP_ANGLES ("Direction2", Vector(0.0f));
  41. MOP_POSITION ("RailPos1", Vector(0.0f));
  42. MOP_POSITION ("RailPos2", Vector(0.0f));
  43. MOP_ARRAYEND
  44. MOP_TRACK_CAM
  45. MOP_CAM_STD
  46. MOP_ENDLIST(TrackCameraED)