FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CCameraController.h
1
55#ifndef C_CAMERA_CONTROLLER_H
56#define C_CAMERA_CONTROLLER_H
57
58#include <string>
59#include <vector>
60
61#ifdef FH_VISUALIZATION
62# pragma warning(push)
63# pragma warning(disable : 4251)
64# pragma warning(disable : 4267)
65# include <fhsim/visual/renderer/FhCamera.h>
66
67# include <Ogre.h>
68# include <OgreResourceGroupManager.h>
69# pragma warning(pop)
70#endif
71#include "sfh/math/math.h"
72
73#include <fhsim/simobject/SimObject.h>
74
75class CCameraController : public SimObject
76{
77 public:
78 CCameraController(std::string sSimObjectName, ISimObjectCreator* pCreator);
79 virtual void OdeFcn(const double dT, const double* const adX, double* const adXDot) const
80 {
81 }
82#ifdef FH_VISUALIZATION
83 void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
84 void RenderUpdate(const double T, const double* const X);
85#endif
86
87 protected:
88 void ReadParameter(ISimObjectCreator* pCreator, std::string sTag, double* adDistance, int iNumStates);
89
90#ifdef FH_VISUALIZATION
91 double GetAngle(double dOldAngle, double dSuggestedNewAngle);
92#endif
93
94 std::vector<ISignalPort*> m_apInPos;
95 int m_iTarget;
96 int m_iNumStates;
97 std::vector<double> adStartTimes;
98 std::vector<double> adDistance;
99 std::vector<double> adAzimuth;
100 std::vector<double> adElevation;
101 double m_adTargetPos[3];
102 double m_dTrackPos;
103#ifdef FH_VISUALIZATION
104 FhCamera* m_pFhCamera;
105 Ogre::Camera* m_pCamera;
106 Ogre::SimpleSpline m_CameraSpline;
107 double m_posFilterTime;
108
109#endif
110};
111
112#endif //C_CAMERA_CONTROLLER_H
Definition CCameraController.h:76
std::vector< ISignalPort * > m_apInPos
Sized once; AddInport keeps the address of each element.
Definition CCameraController.h:94