Marine systems simulation
CBottomDepth.h
1#ifndef CBOTTOMDEPTH_H_
2#define CBOTTOMDEPTH_H_
3
4#include "IBottomDepth.h"
5#ifdef FH_VISUALIZATION
6# pragma warning(push)
7# pragma warning(disable : 4251)
8# pragma warning(disable : 4267)
9# include "sfh/ogre/NMeshGenerators.h"
10# pragma warning(pop)
11#endif
12
14{
15 public:
16 CBottomDepth(const double dMeanDepth, const double dRoughness, const double dStructureScale = 50);
17 ~CBottomDepth(void);
18
19#ifdef FH_VISUALIZATION
20 CBottomDepth(Ogre::SceneManager* const pSceneMgr, const double dTerrainRadius, const int iNumTerrainRings,
21 const double dDeltaTheta0, const double dMeanDepth, const double dRoughness, const std::string sMaterialName,
22 const std::string sMeshName, const double dTextureScale = 300, const double dStructureScale = 50);
23 void InstantiateMesh(std::string sMeshName);
24 Ogre::Entity* GetEntityPtr(void);
25 void UpdateVertexBuffer(float* afVertexPos, int iFloatsPerVertex, double dX0 = 0, double dY0 = 0);
26 meshgenerators::SCircleSpec GetPerimeterSpec();
27#endif
28
29 virtual double GetDepth(const double dX, const double dY);
30 virtual void GetDepth(const double* const adX, const double* const adY, double* const adDepth, int iSize);
31 virtual double GetSubmergence(const double dX, const double dY, const double dZ);
32 virtual double GetSubmergence(const double adPos[3]);
33
34 double m_dMeanDepth;
35 double m_dRoughness;
36 double m_dStructureScale;
37
38#ifdef FH_VISUALIZATION
39 Ogre::Entity* m_entBottomMesh;
40 double* m_adRelVertexPos;
41 int m_iNumVertices;
42 int* m_aiIndices;
43 int m_iNumIndices;
44 meshgenerators::SCircleSpec m_SPerimeterSpec;
45 Ogre::SceneManager* m_pSceneMgr;
46 double m_dTextureScale;
47#endif
48};
49
50#endif /* CBOTTOMDEPTH_H_ */
Definition: CBottomDepth.h:14
Definition: IBottomDepth.h:12