61 class Foil:
public SimObject
65 Foil(
const std::string simObjectName, ISimObjectCreator*
const creator);
67 void FinalSetup(
const double T,
const double *
const X, ISimObjectCreator*
const creator );
68 virtual void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
70 #ifdef FH_VISUALIZATION
71 virtual void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
72 virtual void RenderUpdate(
const double T,
const double*
const X );
78 const double*
ForceNED(
const double T,
const double*
const X);
80 const double*
ForceBody(
const double T,
const double*
const X);
82 const double*
TorqueBody(
const double T,
const double*
const X);
84 const double*
AlfaBody(
const double T,
const double*
const X);
86 const double*
ClBody(
const double T,
const double*
const X);
88 const double*
CdBody(
const double T,
const double*
const X);
90 const double*
CpBody(
const double T,
const double*
const X);
92 const double*
InWater(
const double T,
const double*
const X);
96 void Compute(
const double T,
const double*
const X)
const;
105 std::vector<double> m_Alfa;
107 std::vector<double> m_Cd;
109 std::vector<double> m_Cl;
111 std::vector<double> m_Cp;
113 double m_AccelerateFlow;
116 ISignalPort* m_IPositionNED;
118 ISignalPort* m_IVelocityNED;
120 ISignalPort* m_IQuaternionNED;
122 mutable double m_FluidVelcoity[3];
123 mutable double m_ForceNED[3];
124 mutable double m_ForceBody[3];
125 mutable double m_ToruqeBody[3];
126 mutable double m_CurrentAlfa;
127 mutable double m_CurrentCl;
128 mutable double m_CurrentCd;
129 mutable double m_CurrentCp;
130 mutable double m_InWater;
132 ICommonComputation *m_Compute;
136 environment::EnvironmentProvider* m_environment =
nullptr;
139 mutable Eigen::Vector3d dir_drag_ned;
140 mutable Eigen::Vector3d dir_lift_ned;
141 mutable Eigen::Vector3d dir_force_ned;
143 #ifdef FH_VISUALIZATION
144 Ogre::SceneNode* m_RenderNode;
146 C3DArrow *Arrow_norm;
147 C3DArrow *Arrow_force;