Marine systems simulation
CBillboardArrow.h
1#pragma once
2
70#include <string>
71
72#ifdef FH_VISUALIZATION
73# pragma warning(push)
74# pragma warning(disable : 4251)
75# pragma warning(disable : 4267)
76# include "CFhCamera.h"
77# pragma warning(pop)
78# include "sfh/ogre/CMovableText.h"
79#endif
80
81#include <SimObject.h>
82class CExpandedLines;
83
84class CBillboardArrow : public SimObject
85{
86 public:
88 CBillboardArrow(std::string sSimObjectName, ISimObjectCreator* pCreator);
89 ~CBillboardArrow(void);
90
91#ifdef FH_VISUALIZATION
93 void RenderInit(Ogre::Root* const pOgreRoot, ISimObjectCreator* const pCreator);
94
96 void RenderUpdate(const double dT, const double* const adX);
97#endif
98
100 virtual void OdeFcn(const double dT, const double* const adX, double* const adXDot, const bool bIsMajorTimeStep){};
101
102 protected:
103 ISignalPort* m_pInPos;
104 ISignalPort* m_pInVisible;
105 ISignalPort* m_pInVector;
106
107 int m_iNumPoints;
108 int m_iNumFaces;
109 bool m_bFinalized;
110 bool m_bDirty;
111 double m_radius;
112 double m_radiusFudge;
113
114 int m_iValPrecision;
115 double m_dScalingFactor;
116
117 double m_dTextSize;
118 double m_dTextLocation;
119 bool m_bTextVisible;
120
121 std::string m_sPrefix;
122 std::string m_sSuffix;
123
124 bool m_bExpandedLines;
125 int m_iSplinePoints;
126 std::string m_sMaterialName;
127 std::string m_sType;
128
129#ifdef FH_VISUALIZATION
130 Ogre::SceneNode* m_RenderNode;
131 Ogre::SceneNode* m_TextNode;
132 Ogre::CMovableText* m_BBText;
133
134 CExpandedLines* m_linesExpanded;
135 std::vector<double> m_radiusFactors;
136 std::vector<double> m_arrowPos;
137 Ogre::Vector3* m_vectors;
138
139#endif
140};
Definition: CBillboardArrow.h:85
virtual void OdeFcn(const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep)
Calculates the state derivatives.
Definition: CBillboardArrow.h:100
CBillboardArrow(std::string sSimObjectName, ISimObjectCreator *pCreator)
The constructor sets the pointer to the output object and the parser object.