78inline Ostream&
operator<<(Ostream&,
const joint&);
210 inline label
nDoF()
const;
216 inline label index()
const;
220 inline label qIndex()
const;
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Joint state returned by jcalc.
spatialVector c
The constrained joint acceleration correction.
compactSpatialTensor S
The joint motion sub-space (3-DoF)
spatialVector v
The constrained joint velocity.
spatialVector S1
The joint motion sub-space (1-DoF)
spatialTransform X
The joint transformation.
autoPtr< joint > operator()(Istream &is) const
Abstract base-class for all rigid-body joints.
virtual autoPtr< joint > clone() const =0
Clone this joint (needed by PtrList)
static autoPtr< joint > New(joint *jointPtr)
Simple selector to return an autoPtr<joint> of the given joint*.
List< spatialVector > S_
Joint motion sub-space.
label qIndex_
Index of this joints data in the rigidBodyModel state.
label nDoF() const
Return the number of degrees of freedom in this joint.
declareRunTimeSelectionTable(autoPtr, joint, dictionary,(const dictionary &dict),(dict))
const List< spatialVector > & S() const
Return the joint motion sub-space.
virtual bool unitQuaternion() const
Return true if this joint describes rotation using a quaternion.
label index_
Index of this joint in the rigidBodyModel.
friend Ostream & operator<<(Ostream &, const joint &)
TypeName("joint")
Runtime type information.
virtual ~joint()
Destructor.
virtual void jcalc(XSvc &J, const scalarField &q, const scalarField &qDot) const =0
Update the rigidBodyModel state for the joint given.
Basic rigid-body model representing a system of rigid-bodies connected by 1-6 DoF joints.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Quaternion class used to perform rotations in 3D space.
Ostream & operator<<(Ostream &, const rigidBody &)
static constexpr const zero Zero
Global zero (0)
Macros to ease declaration of run-time selection tables.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.