199 M(T_.
M,_t.
rot),
p(T_.
p,_t.vel) {}
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
FrameVel(const RotationVel &_M, const VectorVel &_p)
FrameVel(const Frame &T_, const Twist &_t)
IMETHOD FrameVel & operator=(const Frame &arg)
IMETHOD Twist GetTwist() const
FrameVel(const Frame &T_)
IMETHOD Frame GetFrame() const
IMETHOD VectorVel operator*(const VectorVel &arg) const
IMETHOD FrameVel Inverse() const
static IMETHOD FrameVel Identity()
represents a frame transformation in 3D space (rotation + translation)
IMETHOD VectorVel UnitY() const
RotationVel(const Rotation &R_, const Vector &_w)
static IMETHOD RotationVel RotZ(const doubleVel &angle)
IMETHOD RotationVel & operator=(const RotationVel &arg)
IMETHOD RotationVel Inverse() const
IMETHOD VectorVel UnitX() const
static IMETHOD RotationVel Identity()
static IMETHOD RotationVel RotX(const doubleVel &angle)
IMETHOD VectorVel Inverse(const Vector &arg) const
static IMETHOD RotationVel Rot(const Vector &rotvec, const doubleVel &angle)
IMETHOD VectorVel UnitZ() const
IMETHOD void DoRotX(const doubleVel &angle)
IMETHOD void DoRotY(const doubleVel &angle)
IMETHOD friend bool Equal(const RotationVel &r1, const RotationVel &r2, double eps)
static IMETHOD RotationVel Rot2(const Vector &rotvec, const doubleVel &angle)
IMETHOD void DoRotZ(const doubleVel &angle)
static IMETHOD RotationVel RotY(const doubleVel &angle)
IMETHOD VectorVel operator*(const VectorVel &arg) const
represents rotations in 3 dimensional space.
TwistVel(const Twist &p, const Twist &v)
IMETHOD Twist GetTwist() const
IMETHOD Twist GetTwistDot() const
IMETHOD TwistVel RefPoint(const VectorVel &v_base_AB)
represents both translational and rotational velocities.
Twist()
The default constructor initialises to Zero via the constructor of Vector.
static IMETHOD VectorVel Zero()
VectorVel(const Vector &_p, const Vector &_v)
IMETHOD friend VectorVel operator+(const VectorVel &r1, const VectorVel &r2)
IMETHOD friend void SetToZero(VectorVel &v)
IMETHOD friend VectorVel operator-(const VectorVel &r1, const VectorVel &r2)
IMETHOD friend VectorVel operator/(const VectorVel &r1, double r2)
IMETHOD VectorVel & operator=(const VectorVel &arg)
IMETHOD friend VectorVel operator*(const VectorVel &r1, const VectorVel &r2)
IMETHOD VectorVel & operator-=(const VectorVel &arg)
IMETHOD friend bool Equal(const VectorVel &r1, const VectorVel &r2, double eps)
IMETHOD void ReverseSign()
IMETHOD VectorVel & operator+=(const VectorVel &arg)
A concrete implementation of a 3 dimensional vector class.
IMETHOD Vector diff(const Vector &a, const Vector &b, double dt=1)
INLINE S Norm(const Rall1d< T, V, S > &value)
doubleAcc dot(const VectorAcc &lhs, const VectorAcc &rhs)
Rall1d< double > doubleVel
IMETHOD bool Equal(const VectorAcc &, const VectorAcc &, double=epsilon)
IMETHOD Vector addDelta(const Vector &a, const Vector &da, double dt=1)
IMETHOD void random(Vector &a)
addDelta operator for displacement rotational velocity.
IMETHOD void SetToZero(Vector &v)
IMETHOD void posrandom(Vector &a)
double epsilon
default precision while comparing with Equal(..,..) functions. Initialized at 0.0000001.
Traits are traits classes to determine the type of a derivative of another type.