| MULTIBODY SIMULATION SOFTWARE - API documentation |
#include <CHframeMoving.h>


Public Member Functions | |
| ChFrameMoving (const ChVector< Real > &mv=VNULL, const ChQuaternion< Real > &mq=QUNIT) | |
| ChFrameMoving (const ChVector< Real > &mv, ChMatrix33< Real > &ma) | |
| ChFrameMoving (const ChCoordsys< Real > &mc) | |
| ChFrameMoving (const ChFrame< Real > &mc) | |
| ChFrameMoving (const ChFrameMoving< Real > &other) | |
| ChFrameMoving< Real > & | operator= (const ChFrameMoving< Real > &other) |
| ChFrameMoving< Real > & | operator= (const ChFrame< Real > &other) |
| bool | operator== (const ChFrameMoving< Real > &other) const |
| bool | operator!= (const ChFrameMoving< Real > &other) const |
| ChFrameMoving< Real > | operator>> (const ChFrameMoving< Real > &Fb) const |
| ChFrameMoving< Real > | operator* (const ChFrameMoving< Real > &Fb) const |
| ChFrameMoving< Real > & | operator%= (const ChFrameMoving< Real > &T) |
| ChFrameMoving< Real > & | operator*= (const ChFrameMoving< Real > &T) |
| ChCoordsys< Real > | GetCoord_dt () |
| ChCoordsys< Real > | GetCoord_dtdt () |
| ChVector< Real > | GetPos_dt () |
| ChVector< Real > | GetPos_dtdt () |
| ChQuaternion< Real > | GetRot_dt () |
| ChQuaternion< Real > | GetRot_dtdt () |
| ChVector< Real > | GetWvel_loc () const |
| ChVector< Real > | GetWvel_par () const |
| ChVector< Real > | GetWacc_loc () const |
| ChVector< Real > | GetWacc_par () const |
| virtual void | SetCoord_dt (const ChCoordsys< Real > &mcoord_dt) |
| virtual void | SetPos_dt (const ChVector< Real > &mvel) |
| virtual void | SetRot_dt (const ChQuaternion< Real > &mrot_dt) |
| virtual void | SetWvel_loc (const ChVector< Real > &wl) |
| virtual void | SetWvel_par (const ChVector< Real > &wp) |
| virtual void | SetCoord_dtdt (const ChCoordsys< Real > &mcoord_dtdt) |
| virtual void | SetPos_dtdt (const ChVector< Real > &macc) |
| virtual void | SetRot_dtdt (const ChQuaternion< Real > &mrot_dtdt) |
| virtual void | SetWacc_loc (const ChVector< Real > &al) |
| virtual void | SetWacc_par (ChVector< Real > &ap) |
| void | Compute_Adt (ChMatrix33< Real > &mA_dt) const |
| void | Compute_Adtdt (ChMatrix33< Real > &mA_dtdt) |
| ChMatrix33< Real > | GetA_dt () |
| ChMatrix33< Real > | GetA_dtdt () |
| void | ConcatenatePreTransformation (const ChFrameMoving< Real > &T) |
| void | ConcatenatePostTransformation (const ChFrameMoving< Real > &T) |
| ChVector< Real > | PointSpeedLocalToParent (const ChVector< Real > &localpos) const |
| ChVector< Real > | PointSpeedLocalToParent (const ChVector< Real > &localpos, const ChVector< Real > &localspeed) const |
| ChVector< Real > | PointAccelerationLocalToParent (const ChVector< Real > &localpos) const |
| ChVector< Real > | PointAccelerationLocalToParent (const ChVector< Real > &localpos, const ChVector< Real > &localspeed, const ChVector< Real > &localacc) const |
| ChVector< Real > | PointSpeedParentToLocal (const ChVector< Real > &parentpos, const ChVector< Real > &parentspeed) const |
| ChVector< Real > | PointAccelerationParentToLocal (const ChVector< Real > &parentpos, const ChVector< Real > &parentspeed, const ChVector< Real > &parentacc) const |
| void | TrasformLocalToParent (const ChFrameMoving< Real > &local, ChFrameMoving< Real > &parent) const |
| void | TrasformParentToLocal (const ChFrameMoving< Real > &parent, ChFrameMoving< Real > &local) const |
| bool | Equals (const ChFrameMoving< Real > &other) const |
| bool | Equals (const ChFrameMoving< Real > &other, Real tol) const |
| virtual void | Invert () |
| ChFrameMoving< Real > | GetInverse () |
| virtual void | StreamOUT (ChStreamOutAscii &mstream) |
| virtual void | StreamOUT (ChStreamOutBinary &mstream) |
| virtual void | StreamIN (ChStreamInBinary &mstream) |
Public Attributes | |
| ChCoordsys< Real > | coord_dt |
| ChCoordsys< Real > | coord_dtdt |
ChFrame: a class for coordinate systems in 3D space.
A 'frame' coordinate system has a translation and a rotation respect to a 'parent' coordinate system, usually the absolute (world) coordinates.
Differently from a simple ChCoordsys() object, however, the ChFrame implements some optimizations because each ChFrame stores also a 3x3 rotation matrix, which can speed up coordinate transformations when a large amount of vectors must be transfomed by the same coordinate frame.
| void chrono::ChFrameMoving< Real >::ConcatenatePostTransformation | ( | const ChFrameMoving< Real > & | T | ) |
Apply a transformation (rotation and translation) represented by another ChFrameMoving T in local coordinate. This is equivalent to post-multiply this frame by the other frame T: this'= this * T; or this' = T >> this
| void chrono::ChFrameMoving< Real >::ConcatenatePreTransformation | ( | const ChFrameMoving< Real > & | T | ) |
Apply a transformation (rotation and translation) represented by another ChFrameMoving T. This is equivalent to pre-multiply this frame by the other frame T: this'= T * this; or this' = this >> T
| ChMatrix33<Real> chrono::ChFrameMoving< Real >::GetA_dt | ( | ) |
Computes and returns an Adt matrix (-note: prefer using Compute_Adt() directly for better performance)
| ChMatrix33<Real> chrono::ChFrameMoving< Real >::GetA_dtdt | ( | ) |
Computes and returns an Adt matrix (-note: prefer using Compute_Adtdt() directly for better performance)
| ChCoordsys<Real> chrono::ChFrameMoving< Real >::GetCoord_dt | ( | ) |
Return both current rotation and translation speeds as a coordsystem object, with vector and quaternion
| ChCoordsys<Real> chrono::ChFrameMoving< Real >::GetCoord_dtdt | ( | ) |
Return both current rotation and translation accelerations as a coordsystem object, with vector and quaternion
| virtual void chrono::ChFrameMoving< Real >::Invert | ( | ) | [virtual] |
The trasformation (also for speeds, accelerations) is inverted in place. That is if w=A*v, then A.Invert();v=A*w;
Reimplemented from chrono::ChFrame< Real >.
| ChFrameMoving<Real>& chrono::ChFrameMoving< Real >::operator%= | ( | const ChFrameMoving< Real > & | T | ) |
Performs pre-multiplication of this frame by another frame, for example: A%=T means A'=T*A ; or A'=A >> T
| ChFrameMoving<Real> chrono::ChFrameMoving< Real >::operator* | ( | const ChFrameMoving< Real > & | 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. a chain of coordinate systems, you can also write this (just like you would do with a sequence of Denavitt-Hartemberg matrix multiplications!) new_frame = frame1to0 * frame2to1 * frame3to2 * old_frame; This operation is not commutative. Also speeds and accelerations are transformed.
| ChFrameMoving<Real>& chrono::ChFrameMoving< Real >::operator*= | ( | const ChFrameMoving< Real > & | T | ) |
Performs post-multiplication of this frame by another frame, for example: A*=T means A'=A*T ; or A'=T >> A
| ChFrameMoving<Real> chrono::ChFrameMoving< Real >::operator>> | ( | const ChFrameMoving< Real > & | 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. a chain of coordinate systems, you can also write this (like you would do with a sequence of Denavitt-Hartemberg matrix multiplications, but in the _opposite_ order...) new_frame = old_frame >> frame3to2 >> frame2to1 >> frame1to0; This operation is not commutative. Also speeds and accelerations are transformed.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointAccelerationLocalToParent | ( | const ChVector< Real > & | 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.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointAccelerationLocalToParent | ( | const ChVector< Real > & | localpos, |
| const ChVector< Real > & | localspeed, | ||
| const ChVector< Real > & | 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.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointAccelerationParentToLocal | ( | const ChVector< Real > & | parentpos, |
| const ChVector< Real > & | parentspeed, | ||
| const ChVector< Real > & | 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.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointSpeedLocalToParent | ( | const ChVector< Real > & | 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.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointSpeedLocalToParent | ( | const ChVector< Real > & | localpos, |
| const ChVector< Real > & | localspeed | ||
| ) | const |
Given the position of a point in local frame coords, and assuming it has a frame-relative speed localspeed, return the speed in parent coords.
| ChVector<Real> chrono::ChFrameMoving< Real >::PointSpeedParentToLocal | ( | const ChVector< Real > & | parentpos, |
| const ChVector< Real > & | 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.
| virtual void chrono::ChFrameMoving< Real >::SetCoord_dt | ( | const ChCoordsys< Real > & | mcoord_dt | ) | [virtual] |
Set both linear speed and rotation speed as a single ChCoordsys derivative.
| virtual void chrono::ChFrameMoving< Real >::SetCoord_dtdt | ( | const ChCoordsys< Real > & | mcoord_dtdt | ) | [virtual] |
Set both linear acceleration and rotation acceleration as a single ChCoordsys derivative.
| virtual void chrono::ChFrameMoving< Real >::SetRot_dt | ( | const ChQuaternion< Real > & | mrot_dt | ) | [virtual] |
Set the rotation speed as a quaternion. Note: the quaternion must already satisfy dot(q,q_dt)=0
| virtual void chrono::ChFrameMoving< Real >::SetRot_dtdt | ( | const ChQuaternion< Real > & | mrot_dtdt | ) | [virtual] |
Set the rotation acceleration as a quaternion derivative. Note: the quaternion must already satisfy dot(q,q_dt)=0
| virtual void chrono::ChFrameMoving< Real >::SetWacc_loc | ( | const ChVector< Real > & | al | ) | [virtual] |
Set the rotation acceleration from given angular acceleration (expressed in local csys)
| virtual void chrono::ChFrameMoving< Real >::SetWacc_par | ( | ChVector< Real > & | ap | ) | [virtual] |
Set the rotation speed from given angular speed (expressed in parent csys)
| virtual void chrono::ChFrameMoving< Real >::SetWvel_loc | ( | const ChVector< Real > & | wl | ) | [virtual] |
Set the rotation speed from given angular speed (expressed in local csys)
| virtual void chrono::ChFrameMoving< Real >::SetWvel_par | ( | const ChVector< Real > & | wp | ) | [virtual] |
Set the rotation speed from given angular speed (expressed in parent csys)
| virtual void chrono::ChFrameMoving< Real >::StreamIN | ( | ChStreamInBinary & | mstream | ) | [virtual] |
Operator to allow deserializing a persistent binary archive (ex: a file) into transient data.
Reimplemented from chrono::ChFrame< Real >.
Reimplemented in chrono::ChBody, chrono::ChMarker, chrono::ChConveyor, chrono::ChBodyDEM, chrono::ChBodyAuxRef, chrono::ChBodyDEMMPI, and chrono::ChBodyMPI.
| virtual void chrono::ChFrameMoving< Real >::StreamOUT | ( | ChStreamOutAscii & | mstream | ) | [virtual] |
Method to allow serializing transient data into in ascii as a readable item, for example "chrono::GetLog() << myobject;"
Reimplemented from chrono::ChFrame< Real >.
Reimplemented in chrono::ChBody, and chrono::ChMarker.
| virtual void chrono::ChFrameMoving< Real >::StreamOUT | ( | ChStreamOutBinary & | mstream | ) | [virtual] |
Method to allow serializing transient data into a persistent binary archive (ex: a file).
Reimplemented from chrono::ChFrame< Real >.
Reimplemented in chrono::ChBody, chrono::ChMarker, chrono::ChConveyor, chrono::ChBodyDEM, chrono::ChBodyAuxRef, chrono::ChBodyDEMMPI, and chrono::ChBodyMPI.
| void chrono::ChFrameMoving< Real >::TrasformLocalToParent | ( | const ChFrameMoving< Real > & | local, |
| ChFrameMoving< Real > & | 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.
| local | frame to transform, given in local frame coordinates |
| parent | transformed frame, in parent coordinates, will be stored here |
| void chrono::ChFrameMoving< Real >::TrasformParentToLocal | ( | const ChFrameMoving< Real > & | parent, |
| ChFrameMoving< Real > & | local | ||
| ) | const |
This function transforms a frame from the parent coordinate system to 'this' local frame coordinate system.
| parent | frame to transform, given in parent coordinates |
| local | transformed frame, in local coordinates, will be stored here |
CHRONO::ENGINE