StaticCamera.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //===========================================================================================================================
  2. // Spirenkov Maxim, 2003
  3. //===========================================================================================================================//
  4. //
  5. //===========================================================================================================================
  6. // MissionStaticCamera
  7. //============================================================================================
  8. #include "StaticCamera.h"
  9. //============================================================================================
  10. //MissionStaticCamera
  11. //============================================================================================
  12. //Прочитать параметры идущие после стандартных
  13. bool MissionStaticCamera::CameraPreCreate(MOPReader & reader)
  14. {
  15. pos = reader.Position();
  16. trg = pos + Matrix(reader.Angles()).vz;
  17. return true;
  18. }
  19. //Прочитать параметры идущие после стандартных
  20. bool MissionStaticCamera::CameraPostCreate(MOPReader & reader)
  21. {
  22. connect = reader.Bool();
  23. return true;
  24. }
  25. //Получить позицию камеры
  26. void MissionStaticCamera::GetCameraPosition(Vector & position)
  27. {
  28. if(!connect)
  29. {
  30. position = pos;
  31. }else{
  32. if(target.Validate())
  33. {
  34. position = target.Ptr()->GetMatrix(Matrix())*pos;
  35. }else{
  36. position = pos;
  37. }
  38. }
  39. }
  40. //Получить точку наблюдения камеры
  41. bool MissionStaticCamera::GetCameraTarget(const Vector & position, Vector & target_pos, Vector & up)
  42. {
  43. if(BaseCamera::GetCameraTarget(position, target_pos, up)) return true;
  44. up = Vector(0.0f, 1.0f, 0.0f);
  45. target_pos = trg;
  46. return true;
  47. }
  48. MOP_BEGINLISTCG(MissionStaticCamera, "Static camera", '1.00', 0, CAMERA_COMMENT("Static camera\n\n"), "Cameras")
  49. MOP_POSITIONC("Position", Vector(0.0f, 0.0f, 0.0f), "Camera position")
  50. //MOP_ANGLESEXC("Angles", Vector(0.6f, 0.0f, 0.0f), Vector(-PI*0.49f, -1000.0f, 0.0f), Vector(PI*0.49f, 1000.0f, 0.0f), "Camera orientation angles")
  51. MOP_ANGLESC("Angles", Vector(0.6f, 0.0f, 0.0f), "Camera orientation angles")
  52. MOP_CAM_STD
  53. MOP_BOOL("Connect to target", false)
  54. MOP_ENDLIST(MissionStaticCamera)