41 virtual void OdeFcn(
const double dT,
const double *
const adX,
double *
const adXDot)
const;
42 virtual void InitialConditionSetup(
const double dT,
const double *
const adCurrentIC,
double *
const adUpdatedIC, ISimObjectCreator *
const creator);
43 virtual void FinalSetup(
const double dT,
const double *
const adX, ISimObjectCreator *
const creator);
44#ifdef FH_VISUALIZATION
46 virtual void RenderInit(Ogre::Root *
const ogreRoot, ISimObjectCreator *
const creator);
48 virtual void RenderUpdate(
const double dT,
const double *
const adX);
50 const virtual double *
const NodePos(
const double dT,
const double *
const adX,
int extNode);
51 const virtual double *
const NodeVel(
const double dT,
const double *
const adX,
int extNode);
52 const virtual double *
const BottomContact(
const double dT,
const double *
const adX);
53 void SetAddedDragPerMPS(
double AddedDragPerMPS);
55 virtual void CalcStateDerivatives(
const double *
const adX,
double *
const adXDot);
56 virtual void AddExternalForces(
const double dT,
const double *
const adX);
57 virtual void AddNetForces(
const double dT,
const double *
const adX);
58 virtual void AddCableForces(
const double dT,
const double *
const adX);
59 virtual double AddNodeBottomForce(
const double *
const adX,
int node,
double diam,
double adForceInOut[3]);
60 virtual void AddBottomForces(
const double *
const adX);
61 virtual void AddInputPorts(ISimObjectCreator *creator);
62 virtual void CreateNetPanels(std::vector<const NetElementDef*> VNetElementDefs, ISimObjectCreator *creator);
63 virtual void CreateNetCables(std::vector<const NetCableElementSpec*> VCableElements, ISimObjectCreator *creator);
64 virtual void CreateDataStructures();
65 virtual void CreateOutputPorts(ISimObjectCreator *creator);
66 VSPairStrInt CreateExternalNodeMap( std::string tag,
int* piUsed,
NetStructureSpec & NetSpec, ISimObjectCreator *creator);
67 void PRINTALLNODEFORCES(std::string spec,
double dT);
79 int m_numNodesOutputPosAndVel;
82 int m_numNodesOriginal;
90 double m_bottomContact[6];
91 IBasicBottom** m_bottom;
92 ICurrentVel** m_currentVel;
93 float* m_elementWaterVel;
99 std::vector<NetElement3N*> m_VpNetElements;
102 int** m_aaiCableConn;
110 VSPairStrInt m_VsNodesInputForce;
111 bool m_useTagForExternalNodes;
115 sfh::timers::StopWatch m_OdeTimer;
116#ifdef CNetStructureOCL_DO_PROFILE
117 sfh::timers::ProfilerWallclock m_Profiler;
121#ifdef FH_VISUALIZATION
122 Ogre::Entity* thisEntity;
123 Ogre::SceneNode* thisSceneNode;
125 Ogre::HardwareVertexBufferSharedPtr m_VertexBuffer;
126 Ogre::HardwareVertexBufferSharedPtr m_NormalsBuffer;
127 Ogre::SceneManager* m_sceneMgr;
128 Ogre::Entity** m_renderSphere;
129 Ogre::SceneNode** m_renderNodeSphere;