45 Eigen::Vector3d fasteningPos;
54 std::string materialName;
60 materialName =
"Trawl/SteelWire";
80 int AddLine(
double length,
const double*
const fasteningpos);
89 void Update(
const double*
const F,
double*
const posOut);
100 void CalcIterativePos(
const double*
const F,
double*
const posOut,
int maxNumIter = 500,
double expectedLengthToGo = 3.0,
101 double tolerance = 0.00001);
140#ifdef FH_VISUALIZATION
142 virtual void RenderInit(Ogre::Root*
const ogreRoot, Ogre::SceneManager* m_sceneMgr, std::string m_simObjectName);
145 virtual void RenderUpdate(std::vector<const double*>& aadPos,
const double adPosCollectingPoint[3]);
150 void CalcForOneLine(
const Eigen::Vector3d& Force,
const Eigen::Vector3d& ForceDir,
double*
const posOut);
153 void CalcForTwoLines(
const Eigen::Vector3d& Force,
const Eigen::Vector3d& ForceDir,
double*
const posOut);
156 void CalcForThreeLines(
const Eigen::Vector3d&,
const Eigen::Vector3d& ForceDir,
double*
const posOut);
165 void CalcForOneActive(
int index,
const Eigen::Vector3d&,
const Eigen::Vector3d& pos,
double*
const posOut);
168 void CalcForTwoActive(
int index1,
int index2,
const Eigen::Vector3d& Force, Eigen::Vector3d pos,
double*
const posOut);
171 void SetPosition(
double*
const posOut,
const Eigen::Vector3d& pos);
179 std::vector<LineDef> m_lines;
180 std::vector<Eigen::Vector3d> m_lineForces;
182 double m_maxLineForce;
186#ifdef CROWFOOTMATH_DEBUG_RENDERING
187 Eigen::Vector3f DEBUG_poss0;
188 Eigen::Vector3f DEBUG_poss1;
189 Eigen::Vector3f DEBUG_ForceDir;
192#ifdef FH_VISUALIZATION
193 std::vector<SCableRenderSpec*> m_RenderSpecs;
194 std::vector<Ogre::ManualObject*> m_RenderObjects;
196 Ogre::SceneNode* m_lineSceneNode;
199# ifdef CROWFOOTMATH_DEBUG_RENDERING
200 Ogre::Entity* m_renderSphere[2];
201 Ogre::SceneNode* m_renderNodeSphere[2];
202 CDynamicLines* m_lines;
203 Ogre::SceneNode* m_debugLineSceneNode;