Class CylindricalJointR¶
Defined in Program listing for file mechanics/src/joints/CylindricalJointR.hpp
-
class CylindricalJointR : public NewtonEulerJointR¶
This class implements a cylindrical joint between one or two Newton/Euler Dynamical system.
It is similar to a PrismaticJointR but allows for rotation around the axis.
From a given axis, we construct two unit othorgonal vectors to the axis V1 and V2 such that (axis,V1,V2) is an orthogonal frame
Public Functions
-
CylindricalJointR()¶
Empty constructor.
The relation may be initialized later by setPoint, setAbsolute, and setBasePositions.
-
CylindricalJointR(SP::SiconosVector P, SP::SiconosVector A, bool absoluteRef, SP::NewtonEulerDS d1 = SP::NewtonEulerDS(), SP::NewtonEulerDS d2 = SP::NewtonEulerDS())¶
Constructor based on one or two dynamical systems, a point and an axis.
- Parameters
d1 – first DynamicalSystem linked by the joint.
d2 – second DynamicalSystem linked by the joint, or NULL for absolute frame.
P – SiconosVector of size 3 that defines the point around which rotation is allowed.
A – SiconosVector of size 3 that defines the cylindrical axis.
absoluteRef – if true, P and A are in the absolute frame, otherwise P and A are in d1 frame.
-
virtual void setBasePositions(SP::SiconosVector q1, SP::SiconosVector q2 = SP::SiconosVector())¶
Initialize the joint constants based on the provided base positions.
- Parameters
q1 – A SiconosVector of size 7 indicating translation and orientation in inertial coordinates.
q2 – An optional SiconosVector of size 7 indicating translation and orientation; if null, the inertial frame will be considered as the second base.
-
inline virtual ~CylindricalJointR()¶
destructor
-
virtual void computeh(double time, const BlockVector &q0, SiconosVector &y)¶
to compute the output y = h(t,q,z) of the Relation
- Parameters
time – current time value
q – coordinates of the dynamical systems involved in the relation
y – the resulting vector
-
virtual void computehDoF(double time, const BlockVector &q0, SiconosVector &y, unsigned int axis)¶
Compute the vector of linear and angular positions of the free axes.
-
virtual void computeJachqDoF(double time, Interaction &inter, SP::BlockVector q0, SimpleMatrix &jachq, unsigned int axis)¶
Compute the jacobian of linear and angular DoF with respect to some q.
-
inline virtual unsigned int numberOfConstraints()¶
Get the number of constraints defined in the joint.
- Returns
the number of constraints
-
inline virtual unsigned int numberOfDoF()¶
Return the number of degrees of freedom of this joint.
- Returns
the number of degrees of freedom (DoF)
-
inline virtual DoF_Type typeOfDoF(unsigned int axis)¶
Return the type of a degree of freedom of this joint.
- Returns
the type of the degree of freedom (DoF)
-
CylindricalJointR()¶