FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
ForceReceiver.h
1#ifndef ForceReceiver_h__
2#define ForceReceiver_h__
3
27#include <string>
28
29#include <fhsim/simobject/ISimObjectCreator.h>
30#include <Eigen/Eigen>
31#ifdef FH_VISUALIZATION
32#include "sfh/ogre/CMovableText.h"
33#include "sfh/ogre/C3DArrow.h"
34#endif
35
36class FhSimMgr;
37
38namespace Ship{
39 class ForceReceiver: public SimObject
40 {
41 public:
42 ForceReceiver(const std::string simObjectName, ISimObjectCreator* const creator);
44
46 virtual void OdeFcn(const double T, const double* const X, double* const XDot) const;
47
48 #ifdef FH_VISUALIZATION
49
51 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator);
52
54 virtual void RenderUpdate( const double T, const double* const X);
55 #endif
56
57 const double* Force(const double T, const double* const X);
58 const double* Torque(const double T, const double* const X);
59
60
61 private:
62
63 ISignalPort *m_InTargetPosition;
64 ISignalPort *m_InForcePosition;
65 ISignalPort *m_InForce;
66
67 double m_Force[3];
68 double m_Torque[3];
69
70
71 Eigen::Matrix<double,3,1> m_TargetPosition;
72 Eigen::Matrix<double,3,1> m_ForcePosition;
73
74
75 #ifdef FH_VISUALIZATION
76 std::string m_sMaterial;
77 std::string m_sMesh;
78 double m_dScale;
79 Ogre::Entity* m_RenderMass;
80 Ogre::SceneNode* m_RenderNode;
81
82 C3DArrow *m_ForceArrow;
83 Ogre::CMovableText *m_TextDisplay;
84
85 #endif
86 };
87}
88#endif // ForceReceiver_h__
Definition ForceReceiver.h:40
virtual void OdeFcn(const double T, const double *const X, double *const XDot) const
Method for calculating the derivative of the object states, which must be implemented in the individu...
Simple waypoint object.
Definition CableAttach.h:58