| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- //===========================================================================================================================
- // Spirenkov Maxim, 2003
- //===========================================================================================================================//
- //
- //===========================================================================================================================
- // MissionStaticCamera
- //============================================================================================
- #include "StaticCamera.h"
- //============================================================================================
- //MissionStaticCamera
- //============================================================================================
- //Прочитать параметры идущие после стандартных
- bool MissionStaticCamera::CameraPreCreate(MOPReader & reader)
- {
- pos = reader.Position();
- trg = pos + Matrix(reader.Angles()).vz;
- return true;
- }
- //Прочитать параметры идущие после стандартных
- bool MissionStaticCamera::CameraPostCreate(MOPReader & reader)
- {
- connect = reader.Bool();
- return true;
- }
- //Получить позицию камеры
- void MissionStaticCamera::GetCameraPosition(Vector & position)
- {
- if(!connect)
- {
- position = pos;
- }else{
- if(target.Validate())
- {
- position = target.Ptr()->GetMatrix(Matrix())*pos;
- }else{
- position = pos;
- }
- }
- }
- //Получить точку наблюдения камеры
- bool MissionStaticCamera::GetCameraTarget(const Vector & position, Vector & target_pos, Vector & up)
- {
- if(BaseCamera::GetCameraTarget(position, target_pos, up)) return true;
- up = Vector(0.0f, 1.0f, 0.0f);
- target_pos = trg;
- return true;
- }
- MOP_BEGINLISTCG(MissionStaticCamera, "Static camera", '1.00', 0, CAMERA_COMMENT("Static camera\n\n"), "Cameras")
- MOP_POSITIONC("Position", Vector(0.0f, 0.0f, 0.0f), "Camera position")
- //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")
- MOP_ANGLESC("Angles", Vector(0.6f, 0.0f, 0.0f), "Camera orientation angles")
- MOP_CAM_STD
- MOP_BOOL("Connect to target", false)
- MOP_ENDLIST(MissionStaticCamera)
|