chrono::ChMarker Class Reference

Description

Markers are auxiliary reference frames which belong to rigid bodies and move together with them.

Most often, markers are used as references to build ChLink() constraints between two rigid bodies. The ChMarker objects allow also to user-define a motion law of marker respect to parent ChBody, if needed to represent imposed trajectories etc.

#include <ChMarker.h>

Inheritance diagram for chrono::ChMarker:
Collaboration diagram for chrono::ChMarker:

Public Types

enum  eChMarkerMotion { M_MOTION_FUNCTIONS = 0, M_MOTION_KEYFRAMED = 1, M_MOTION_EXTERNAL = 2 }
 

Public Member Functions

 ChMarker (char myname[], ChBody *myBody, Coordsys myrel_pos, Coordsys myrel_pos_dt, Coordsys myrel_pos_dtdt)
 
 ChMarker (const ChMarker &other)
 
virtual ChMarkerClone () const override
 "Virtual" copy constructor (covariant return type).
 
ChBodyGetBody () const
 Gets the address of the parent rigid body.
 
void SetBody (ChBody *newRB)
 Sets the parent rigid body.
 
void Impose_Rel_Coord (const Coordsys &m_coord)
 Set body-relative coord. More...
 
void Impose_Abs_Coord (const Coordsys &m_coord)
 Set absolute coordinates and update auxiliary variables Also, current position becomes the 'resting position' coordinates for the current time. More...
 
const CoordsysGetRest_Coord () const
 Get the 'resting position' (that is, the position which the marker should have when the x,y,z motion laws are at time=0). More...
 
const ChFrameMoving< double > & GetAbsFrame () const
 Get reference to the inner 'absolute frame' auxiliary coordinates. More...
 
const CoordsysGetAbsCoord () const
 Get the translation and rotation (as a ChCoordsys) of the marker respect to the absolute coordinates. More...
 
const CoordsysGetAbsCoord_dt () const
 Get the speed of translation and rotation (as a derived ChCoordsys) of the marker respect to the absolute coordinates. More...
 
const CoordsysGetAbsCoord_dtdt () const
 Get the acceleration of translation and rotation (as a derived ChCoordsys) of the marker respect to the absolute coordinates. More...
 
void SetAbsCoord (const Coordsys &newpos)
 Set the translation and rotation (as a ChCoordsys) of the marker respect to the absolute coordinates. More...
 
void SetAbsCoord_dt (const Coordsys &newpos_dt)
 Set the speed of translation and rotation (as a ChCoordsys) of the marker respect to the absolute coordinates. More...
 
void SetAbsCoord_dtdt (const Coordsys &newpos_dtdt)
 Set the speed of translation and rotation (as a ChCoordsys) of the marker respect to the absolute coordinates. More...
 
Vector GetAbsWvel () const
 Get the angular speed respect to absolute coordinates, expressed in absolute coordinates. More...
 
Vector GetAbsWacc () const
 Get the angular acceleration respect to absolute coordinates, expressed in absolute coordinates. More...
 
void SetMotion_X (std::shared_ptr< ChFunction > m_funct)
 Set the imposed motion law, for translation on X body axis.
 
void SetMotion_Y (std::shared_ptr< ChFunction > m_funct)
 Set the imposed motion law, for translation on Y body axis.
 
void SetMotion_Z (std::shared_ptr< ChFunction > m_funct)
 Set the imposed motion law, for translation on Z body axis.
 
void SetMotion_ang (std::shared_ptr< ChFunction > m_funct)
 Set the imposed motion law, for rotation about an axis.
 
void SetMotion_axis (Vector m_axis)
 Set the axis of rotation, if rotation motion law is used.
 
std::shared_ptr< ChFunctionGetMotion_X () const
 The imposed motion law, for translation on X body axis.
 
std::shared_ptr< ChFunctionGetMotion_Y () const
 The imposed motion law, for translation on Y body axis.
 
std::shared_ptr< ChFunctionGetMotion_Z () const
 The imposed motion law, for translation on Z body axis.
 
std::shared_ptr< ChFunctionGetMotion_ang () const
 The imposed motion law, for rotation about an axis.
 
Vector GetMotion_axis () const
 Get the axis of rotation, if rotation motion law is used.
 
void SetMotionType (eChMarkerMotion m_motion)
 Sets the way the motion of this marker (if any) is handled (see the eChMarkerMotion enum options). More...
 
eChMarkerMotion GetMotionType () const
 Gets the way the motion of this marker (if any) is handled (see the eChMarkerMotion enum options). More...
 
void UpdateTime (double mytime)
 Updates the time.dependant variables (ex: ChFunction objects which impose the body-relative motion, etc.)
 
void UpdateState ()
 Given current state, updates auxiliary variables (for example the abs_frame data, containing the absolute pos/speed/acc of the marker. More...
 
void Update (double mytime)
 Both UpdateTime() and UpdateState() at once.
 
void UpdatedExternalTime (double prevtime, double mtime)
 Someone (ex. More...
 
Vector Point_World2Ref (Vector *mpoint)
 
Vector Point_Ref2World (Vector *mpoint)
 
Vector Dir_World2Ref (Vector *mpoint)
 
Vector Dir_Ref2World (Vector *mpoint)
 
virtual void ArchiveOUT (ChArchiveOut &marchive) override
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIN (ChArchiveIn &marchive) override
 Method to allow deserialization of transient data from archives. More...
 
- Public Member Functions inherited from chrono::ChObj
 ChObj (const ChObj &other)
 
int GetIdentifier () const
 Gets the numerical identifier of the object.
 
void SetIdentifier (int id)
 Sets the numerical identifier of the object.
 
double GetChTime () const
 Gets the simulation time of this object.
 
void SetChTime (double m_time)
 Sets the simulation time of this object.
 
const char * GetName () const
 Gets the name of the object as C Ascii null-terminated string -for reading only!
 
void SetName (const char myname[])
 Sets the name of this object, as ascii string.
 
std::string GetNameString () const
 Gets the name of the object as C Ascii null-terminated string.
 
void SetNameString (const std::string &myname)
 Sets the name of this object, as std::string.
 
void MFlagsSetAllOFF (int &mflag)
 
void MFlagsSetAllON (int &mflag)
 
void MFlagSetON (int &mflag, int mask)
 
void MFlagSetOFF (int &mflag, int mask)
 
int MFlagGet (int &mflag, int mask)
 
- Public Member Functions inherited from chrono::ChFrameMoving< double >
 ChFrameMoving (const ChVector< double > &mv=ChVector< double >(0, 0, 0), const ChQuaternion< double > &mq=ChQuaternion< double >(1, 0, 0, 0))
 Construct from pos and rot (as a quaternion)
 
 ChFrameMoving (const ChVector< double > &mv, const ChMatrix33< double > &ma)
 Construct from pos and rotation (as a 3x3 matrix)
 
 ChFrameMoving (const ChCoordsys< double > &mc)
 Construct from a coordsys.
 
 ChFrameMoving (const ChFrame< double > &mc)
 Construct from a frame.
 
 ChFrameMoving (const ChFrameMoving< double > &other)
 Copy constructor, build from another moving frame.
 
virtual ~ChFrameMoving ()
 Destructor.
 
ChFrameMoving< double > & operator= (const ChFrameMoving< double > &other)
 Assignment operator: copy from another moving frame.
 
ChFrameMoving< double > & operator= (const ChFrame< double > &other)
 Assignment operator: copy from another frame.
 
bool operator== (const ChFrameMoving< double > &other) const
 Returns true for identical frames.
 
bool operator!= (const ChFrameMoving< double > &other) const
 Returns true for different frames.
 
ChFrameMoving< double > operator>> (const ChFrameMoving< double > &Fb) const
 The '>>' operator transforms a coordinate system, so transformations can be represented with this syntax: new_frame = old_frame >> tr_frame; For a sequence of transformations, i.e. More...
 
ChFrameMoving< double > operator* (const ChFrameMoving< double > &Fb) const
 The '*' operator transforms a coordinate system, so transformations can be represented with this syntax: new_frame = tr_frame * old_frame; For a sequence of transformations, i.e. More...
 
ChFrameMoving< double > & operator>>= (const ChFrameMoving< double > &T)
 Performs pre-multiplication of this frame by another frame, for example: A>>=T means A'=T*A ; or A'=A >> T.
 
ChFrameMoving< double > & operator>>= (const ChVector< double > &D)
 Performs pre-multiplication of this frame by a vector D, to 'move' by a displacement D:
 
ChFrameMoving< double > & operator>>= (const ChQuaternion< double > &R)
 Performs pre-multiplication of this frame by a quaternion R, to 'rotate' it by R:
 
ChFrameMoving< double > & operator>>= (const ChCoordsys< double > &F)
 Performs pre-multiplication of this frame by a ChCoordsys F:
 
ChFrameMoving< double > & operator>>= (const ChFrame< double > &F)
 Performs pre-multiplication of this frame by a ChFrame F:
 
ChFrameMoving< double > & operator%= (const ChFrameMoving< double > &T)
 Performs pre-multiplication of this frame by another frame, for example: A%=T means A'=T*A ; or A'=A >> T Note: DEPRECATED, use >>= instead. More...
 
ChFrameMoving< double > & operator*= (const ChFrameMoving< double > &T)
 Performs post-multiplication of this frame by another frame, for example: A*=T means A'=A*T ; or A'=T >> A.
 
ChCoordsys< double > & GetCoord_dt ()
 Return both current rotation and translation speeds as a coordsystem object, with vector and quaternion.
 
const ChCoordsys< double > & GetCoord_dt () const
 
ChCoordsys< double > & GetCoord_dtdt ()
 Return both current rotation and translation accelerations as a coordsystem object, with vector and quaternion.
 
const ChCoordsys< double > & GetCoord_dtdt () const
 
ChVector< double > & GetPos_dt ()
 Return the current speed as a 3d vector.
 
const ChVector< double > & GetPos_dt () const
 
ChVector< double > & GetPos_dtdt ()
 Return the current acceleration as a 3d vector.
 
const ChVector< double > & GetPos_dtdt () const
 
ChQuaternion< double > & GetRot_dt ()
 Return the current rotation speed as a quaternion.
 
const ChQuaternion< double > & GetRot_dt () const
 
ChQuaternion< double > & GetRot_dtdt ()
 Return the current rotation acceleration as a quaternion.
 
const ChQuaternion< double > & GetRot_dtdt () const
 
ChVector< double > GetWvel_loc () const
 Computes the actual angular speed (expressed in local coords)
 
ChVector< double > GetWvel_par () const
 Computes the actual angular speed (expressed in parent coords)
 
ChVector< double > GetWacc_loc () const
 Computes the actual angular acceleration (expressed in local coords)
 
ChVector< double > GetWacc_par () const
 Computes the actual angular acceleration (expressed in parent coords)
 
virtual void SetCoord_dt (const ChCoordsys< double > &mcoord_dt)
 Set both linear speed and rotation speed as a single ChCoordsys derivative. More...
 
virtual void SetPos_dt (const ChVector< double > &mvel)
 Set the linear speed.
 
virtual void SetRot_dt (const ChQuaternion< double > &mrot_dt)
 Set the rotation speed as a quaternion. More...
 
virtual void SetWvel_loc (const ChVector< double > &wl)
 Set the rotation speed from given angular speed (expressed in local csys)
 
virtual void SetWvel_par (const ChVector< double > &wp)
 Set the rotation speed from given angular speed (expressed in parent csys)
 
virtual void SetCoord_dtdt (const ChCoordsys< double > &mcoord_dtdt)
 Set both linear acceleration and rotation acceleration as a single ChCoordsys derivative. More...
 
virtual void SetPos_dtdt (const ChVector< double > &macc)
 Set the linear acceleration.
 
virtual void SetRot_dtdt (const ChQuaternion< double > &mrot_dtdt)
 Set the rotation acceleration as a quaternion derivative. More...
 
virtual void SetWacc_loc (const ChVector< double > &al)
 Set the rotation acceleration from given angular acceleration (expressed in local csys)
 
virtual void SetWacc_par (ChVector< double > &ap)
 Set the rotation speed from given angular speed (expressed in parent csys)
 
void Compute_Adt (ChMatrix33< double > &mA_dt) const
 Computes the time derivative of rotation matrix, mAdt.
 
void Compute_Adtdt (ChMatrix33< double > &mA_dtdt)
 Computes the 2nd time derivative of rotation matrix, mAdtdt.
 
ChMatrix33< double > GetA_dt ()
 Computes and returns an Adt matrix (-note: prefer using Compute_Adt() directly for better performance)
 
ChMatrix33< double > GetA_dtdt ()
 Computes and returns an Adt matrix (-note: prefer using Compute_Adtdt() directly for better performance)
 
void ConcatenatePreTransformation (const ChFrameMoving< double > &T)
 Apply a transformation (rotation and translation) represented by another ChFrameMoving T. More...
 
void ConcatenatePostTransformation (const ChFrameMoving< double > &T)
 Apply a transformation (rotation and translation) represented by another ChFrameMoving T in local coordinate. More...
 
ChVector< double > PointSpeedLocalToParent (const ChVector< double > &localpos) const
 Given the position of a point in local frame coords, and assuming it is sticky to frame, return the speed in parent coords. More...
 
ChVector< double > PointSpeedLocalToParent (const ChVector< double > &localpos, const ChVector< double > &localspeed) const
 Given the position localpos of a point in the local reference frame, assuming that the point moves in the local reference frame with localspeed, return the speed in the parent reference frame. More...
 
ChVector< double > PointAccelerationLocalToParent (const ChVector< double > &localpos) const
 Given the position of a point in local frame coords, and assuming it is sticky to frame, return the acceleration in parent coords. More...
 
ChVector< double > PointAccelerationLocalToParent (const ChVector< double > &localpos, const ChVector< double > &localspeed, const ChVector< double > &localacc) const
 Given the position of a point in local frame coords, and assuming it has a frame-relative speed localspeed and frame-relative acceleration localacc, return the acceleration in parent coords. More...
 
ChVector< double > PointSpeedParentToLocal (const ChVector< double > &parentpos, const ChVector< double > &parentspeed) const
 Given the position of a point in parent frame coords, and assuming it has an absolute speed parentspeed, return the speed in local coords. More...
 
ChVector< double > PointAccelerationParentToLocal (const ChVector< double > &parentpos, const ChVector< double > &parentspeed, const ChVector< double > &parentacc) const
 Given the position of a point in parent frame coords, and assuming it has an absolute speed parentspeed and absolute acceleration parentacc, return the acceleration in local coords. More...
 
void TransformLocalToParent (const ChFrameMoving< double > &local, ChFrameMoving< double > &parent) const
 This function transforms a frame from 'this' local coordinate system to parent frame coordinate system, and also transforms the speed and acceleration of the frame. More...
 
void TransformParentToLocal (const ChFrameMoving< double > &parent, ChFrameMoving< double > &local) const
 This function transforms a frame from the parent coordinate system to 'this' local frame coordinate system. More...
 
bool Equals (const ChFrameMoving< double > &other) const
 Returns true if coordsys is identical to other coordsys.
 
bool Equals (const ChFrameMoving< double > &other, doubletol) const
 Returns true if coordsys is equal to other coordsys, within a tolerance 'tol'.
 
virtual void Invert () override
 The transformation (also for speeds, accelerations) is inverted in place. More...
 
ChFrameMoving< double > GetInverse () const
 
- Public Member Functions inherited from chrono::ChFrame< double >
 ChFrame (const ChVector< double > &mv=ChVector< double >(0, 0, 0), const ChQuaternion< double > &mq=ChQuaternion< double >(1, 0, 0, 0))
 Default constructor, or construct from pos and rot (as a quaternion)
 
 ChFrame (const ChVector< double > &mv, const ChMatrix33< double > &ma)
 Construct from pos and rotation (as a 3x3 matrix)
 
 ChFrame (const ChCoordsys< double > &mc)
 Construct from a coordsys.
 
 ChFrame (const ChVector< double > &mv, const doublealpha, const ChVector< double > &mu)
 Construct from position mv and rotation of angle alpha around unit vector mu.
 
 ChFrame (const ChFrame< double > &other)
 Copy constructor, build from another frame.
 
ChFrame< double > & operator= (const ChFrame< double > &other)
 Assignment operator: copy from another frame.
 
virtual bool operator== (const ChFrame< double > &other) const
 Returns true for identical frames.
 
virtual bool operator!= (const ChFrame< double > &other) const
 Returns true for different frames.
 
ChFrame< double > operator>> (const ChFrame< double > &Fb) const
 The '>>' operator transforms a coordinate system, so transformations can be represented with this syntax: new_frame = old_frame >> tr_frame; For a sequence of transformations, i.e. More...
 
ChFrame< double > operator* (const ChFrame< double > &Fb) const
 The '>>' operator transforms a vector, so transformations can be represented with this syntax: new_v = old_v >> tr_frame; For a sequence of transformations, i.e. More...
 
ChVector< double > operator* (const ChVector< double > &V) const
 The '*' operator transforms a vector, so transformations can be represented with this syntax: new_v = tr_frame * old_v; For a sequence of transformations, i.e. More...
 
ChVector< double > operator/ (const ChVector< double > &V) const
 The '/' is like the '*' operator (see), but uses the inverse transformation for A, in A/b. More...
 
ChFrame< double > & operator>>= (const ChFrame< double > &T)
 Performs pre-multiplication of this frame by another frame, for example: A>>=T means A'=T*A ; or A'=A >> T.
 
ChFrame< double > & operator>>= (const ChVector< double > &D)
 Performs pre-multiplication of this frame by a vector D, to 'move' by a displacement D:
 
ChFrame< double > & operator>>= (const ChQuaternion< double > &R)
 Performs pre-multiplication of this frame by a quaternion R, to 'rotate' it by R:
 
ChFrame< double > & operator>>= (const ChCoordsys< double > &F)
 Performs pre-multiplication of this frame by a ChCoordsys F, to transform it:
 
ChFrame< double > & operator%= (const ChFrame< double > &T)
 Performs pre-multiplication of this frame by another frame, for example: A%=T means A'=T*A ; or A'=A >> T Note: DEPRECATED, use >>= instead. More...
 
ChFrame< double > & operator*= (const ChFrame< double > &T)
 Performs post-multiplication of this frame by another frame, for example: A*=T means A'=A*T ; or A'=T >> A.
 
ChCoordsys< double > & GetCoord ()
 Return both current rotation and translation as a coordsystem object, with vector and quaternion.
 
const ChCoordsys< double > & GetCoord () const
 
ChVector< double > & GetPos ()
 Return the current translation as a 3d vector.
 
const ChVector< double > & GetPos () const
 
ChQuaternion< double > & GetRot ()
 Return the current rotation as a quaternion.
 
const ChQuaternion< double > & GetRot () const
 
ChMatrix33< double > & GetA ()
 Return the current rotation as a 3x3 matrix.
 
const ChMatrix33< double > & GetA () const
 
ChVector< double > GetRotAxis ()
 Get axis of finite rotation, in parent space.
 
double GetRotAngle ()
 Get angle of rotation about axis of finite rotation.
 
virtual void SetCoord (const ChCoordsys< double > &mcoord)
 Impose both translation and rotation as a single ChCoordsys. More...
 
virtual void SetCoord (const ChVector< double > &mv, const ChQuaternion< double > &mq)
 Impose both translation and rotation. More...
 
virtual void SetRot (const ChQuaternion< double > &mrot)
 Impose the rotation as a quaternion. More...
 
virtual void SetRot (const ChMatrix33< double > &mA)
 Impose the rotation as a 3x3 matrix. More...
 
virtual void SetPos (const ChVector< double > &mpos)
 Impose the translation.
 
void ConcatenatePreTransformation (const ChFrame< double > &T)
 Apply a transformation (rotation and translation) represented by another ChFrame T. More...
 
void ConcatenatePostTransformation (const ChFrame< double > &T)
 Apply a transformation (rotation and translation) represented by another ChFrame T in local coordinate. More...
 
void Move (const ChVector< double > &V)
 An easy way to move the frame by the amount specified by vector V, (assuming V expressed in parent coordinates)
 
void Move (const ChCoordsys< double > &VR)
 Apply both translation and rotation, assuming both expressed in parent coordinates, as a vector for translation and quaternion for rotation,.
 
virtual ChVector< double > TransformLocalToParent (const ChVector< double > &local) const
 This function transforms a point from the local frame coordinate system to the parent coordinate system. More...
 
virtual void TransformLocalToParent (const ChFrame< double > &local, ChFrame< double > &parent) const
 This function transforms a frame from 'this' local coordinate system to parent frame coordinate system. More...
 
virtual ChVector< double > TransformPointLocalToParent (const ChVector< double > &local) const
 
virtual ChVector< double > TransformParentToLocal (const ChVector< double > &parent) const
 This function transforms a point from the parent coordinate system to local frame coordinate system. More...
 
virtual void TransformParentToLocal (const ChFrame< double > &parent, ChFrame< double > &local) const
 This function transforms a frame from the parent coordinate system to 'this' local frame coordinate system. More...
 
virtual ChVector< double > TransformPointParentToLocal (const ChVector< double > &parent) const
 
virtual ChVector< double > TransformDirectionParentToLocal (const ChVector<> &mdirection) const
 This function transforms a direction from 'this' local coordinate system to parent frame coordinate system. More...
 
virtual ChVector< double > TransformDirectionLocalToParent (const ChVector<> &mdirection) const
 This function transforms a direction from the parent frame coordinate system to 'this' local coordinate system. More...
 
bool Equals (const ChFrame< double > &other) const
 Returns true if coordsys is identical to other coordsys.
 
bool Equals (const ChFrame< double > &other, doubletol) const
 Returns true if coordsys is equal to other coordsys, within a tolerance 'tol'.
 
void Normalize ()
 Normalize the rotation, so that quaternion has unit length.
 
virtual void SetIdentity ()
 Sets to no translation and no rotation.
 
ChFrame< double > GetInverse () const
 

Additional Inherited Members

- Static Public Member Functions inherited from chrono::ChFrame< double >
static void SetMatrix_Fp (ChMatrixNM< double, 3, 4 > &Fp, const ChQuaternion< double > &mq)
 Fills a 3x4 matrix [Fp(q)], as in [Fp(q)]*[Fm(q)]' = [A(q)].
 
static void SetMatrix_Fm (ChMatrixNM< double, 3, 4 > &Fm, const ChQuaternion< double > &mq)
 Fills a 3x4 matrix [Fm(q)], as in [Fp(q)]*[Fm(q)]' = [A(q)].
 
static void SetMatrix_Gl (ChMatrixNM< double, 3, 4 > &Gl, const ChQuaternion< double > &mq)
 Fast fill a 3x4 matrix [Gl(q)], as in local angular speed conversion Wl=[Gl]*q_dt (btw: [Gl(q)] = 2*[Fp(q')] = 2*[G] with G matrix as in Shabana)
 
static void SetMatrix_Gw (ChMatrixNM< double, 3, 4 > &Gw, const ChQuaternion< double > &mq)
 Fast fill a 3x4 matrix [Gw(q)], as in absolute angular speed conversion Ww=[Gw]*q_dt (btw: [Gw(q)] = 2*[Fm(q')] = 2*[E] with E matrix as in Shabana)
 
static ChVector< double > Gl_x_Quat (const ChQuaternion< double > &mq, const ChQuaternion< double > &qb)
 Computes the product v=[Gl(mq)]*qb without the need of having the [Gl] matrix (just pass the mq quaternion, since Gl is function of mq)
 
static ChQuaternion< double > GlT_x_Vect (const ChQuaternion< double > &mq, const ChVector< double > &v)
 Computes the product q=[Gl(mq)]*v without the need of having the [Gl] matrix (just pass the mq quaternion, since Gl is function of mq)
 
- Public Attributes inherited from chrono::ChFrameMoving< double >
ChCoordsys< double > coord_dt
 Rotation and position speed, as vector+quaternion.
 
ChCoordsys< double > coord_dtdt
 Rotation and position acceleration, as vector+quaternion.
 
- Public Attributes inherited from chrono::ChFrame< double >
ChCoordsys< double > coord
 Rotation and position, as vector+quaternion.
 
ChMatrix33< double > Amatrix
 3x3 orthogonal rotation matrix
 
- Protected Attributes inherited from chrono::ChObj
double ChTime
 the time of simulation for the object
 

Member Enumeration Documentation

Enumerator
M_MOTION_FUNCTIONS 

marker uses its own x, y, z functions

M_MOTION_KEYFRAMED 

marker moved via external key frames (derivatives obtained with BDF)

M_MOTION_EXTERNAL 

marker moved via external functions (derivatives provided)

Member Function Documentation

void chrono::ChMarker::ArchiveIN ( ChArchiveIn marchive)
overridevirtual

Method to allow deserialization of transient data from archives.

Method to allow de serialization of transient data from archives.

Reimplemented from chrono::ChObj.

const Coordsys& chrono::ChMarker::GetAbsCoord ( ) const

Get the translation and rotation (as a ChCoordsys) of the marker respect to the absolute coordinates.

const Coordsys& chrono::ChMarker::GetAbsCoord_dt ( ) const

Get the speed of translation and rotation (as a derived ChCoordsys) of the marker respect to the absolute coordinates.

const Coordsys& chrono::ChMarker::GetAbsCoord_dtdt ( ) const

Get the acceleration of translation and rotation (as a derived ChCoordsys) of the marker respect to the absolute coordinates.

const ChFrameMoving<double>& chrono::ChMarker::GetAbsFrame ( ) const

Get reference to the inner 'absolute frame' auxiliary coordinates.

This object (coordinates/speeds/accel. of marker expressed in absolute coordinates) is useful for performace reasons. Note! it is updated only after each Update() function.

Vector chrono::ChMarker::GetAbsWacc ( ) const

Get the angular acceleration respect to absolute coordinates, expressed in absolute coordinates.

Vector chrono::ChMarker::GetAbsWvel ( ) const

Get the angular speed respect to absolute coordinates, expressed in absolute coordinates.

eChMarkerMotion chrono::ChMarker::GetMotionType ( ) const

Gets the way the motion of this marker (if any) is handled (see the eChMarkerMotion enum options).

const Coordsys& chrono::ChMarker::GetRest_Coord ( ) const

Get the 'resting position' (that is, the position which the marker should have when the x,y,z motion laws are at time=0).

void chrono::ChMarker::Impose_Abs_Coord ( const Coordsys m_coord)

Set absolute coordinates and update auxiliary variables Also, current position becomes the 'resting position' coordinates for the current time.

void chrono::ChMarker::Impose_Rel_Coord ( const Coordsys m_coord)

Set body-relative coord.

and update auxiliary variables Also, current position becomes the 'resting position' coordinates for the current time.

void chrono::ChMarker::SetAbsCoord ( const Coordsys newpos)

Set the translation and rotation (as a ChCoordsys) of the marker respect to the absolute coordinates.

NOTE! inner use only, for the moment. Use Impose_Abs_Coord() if needed.

void chrono::ChMarker::SetAbsCoord_dt ( const Coordsys newpos_dt)

Set the speed of translation and rotation (as a ChCoordsys) of the marker respect to the absolute coordinates.

NOTE! inner use only, for the moment.

void chrono::ChMarker::SetAbsCoord_dtdt ( const Coordsys newpos_dtdt)

Set the speed of translation and rotation (as a ChCoordsys) of the marker respect to the absolute coordinates.

NOTE! inner use only, for the moment.

void chrono::ChMarker::SetMotionType ( eChMarkerMotion  m_motion)

Sets the way the motion of this marker (if any) is handled (see the eChMarkerMotion enum options).

void chrono::ChMarker::UpdatedExternalTime ( double  prevtime,
double  mtime 
)

Someone (ex.

an ChExternalObject() ) may send this message to the marker to tell that time has changed (even if simulation is not running! - so it is different from the usual UpdateTime() -)

void chrono::ChMarker::UpdateState ( )

Given current state, updates auxiliary variables (for example the abs_frame data, containing the absolute pos/speed/acc of the marker.