3#include <Foundation/Containers/DynamicArray.h>
4#include <Foundation/Math/Vec3.h>
5#include <Foundation/SimdMath/SimdFloat.h>
6#include <Foundation/SimdMath/SimdVec4f.h>
7#include <GameEngine/GameEngineDLL.h>
41 float m_fDampingFactor = 0.995f;
44 float m_fSegmentLength = 0.1f;
46 bool m_bFirstNodeIsFixed =
true;
47 bool m_bLastNodeIsFixed =
true;
49 void SimulateRope(
const plTime& diff);
51 void SimulateTillEquilibrium(
plSimdFloat fAllowedMovement = 0.005f, plUInt32 uiMaxIterations = 1000);
52 bool HasEquilibrium(
plSimdFloat fAllowedMovement)
const;
53 float GetTotalLength()
const;
54 plSimdVec4f GetPositionAtLength(
float fLength)
const;
58 void UpdateNodePositions(
const plSimdFloat tDiffSqr);
Definition DynamicArray.h:81
A simple simulator for swinging and hanging ropes.
Definition RopeSimulator.h:17
plDynamicArray< Node, plAlignedAllocatorWrapper > m_Nodes
All the nodes in the rope.
Definition RopeSimulator.h:37
A 4-component SIMD vector class.
Definition SimdVec4f.h:8
static plSimdVec4f MakeZero()
Creates an plSimdVec4f that is initialized to zero.
Definition SimdVec4f_inl.h:8
Definition RopeSimulator.h:20
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12