MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
DriveRigidBodyKinematics Class Reference

#include <rbk_impl.h>

Inheritance diagram for DriveRigidBodyKinematics:
Collaboration diagram for DriveRigidBodyKinematics:

Public Member Functions

 DriveRigidBodyKinematics (const TplDriveCaller< Vec3 > *pXDrv, const TplDriveCaller< Vec3 > *pThetaDrv, const TplDriveCaller< Vec3 > *pVDrv, const TplDriveCaller< Vec3 > *pWDrv, const TplDriveCaller< Vec3 > *pXPPDrv, const TplDriveCaller< Vec3 > *pWPDrv)
 
virtual ~DriveRigidBodyKinematics (void)
 
virtual void Update (void)
 
- Public Member Functions inherited from ConstRigidBodyKinematics
 ConstRigidBodyKinematics (void)
 
 ConstRigidBodyKinematics (const Vec3 &X, const Mat3x3 &R, const Vec3 &V, const Vec3 &W, const Vec3 &XPP, const Vec3 &WP)
 
virtual ~ConstRigidBodyKinematics (void)
 
virtual const Vec3GetX (void) const
 
virtual const Mat3x3GetR (void) const
 
virtual const Vec3GetV (void) const
 
virtual const Vec3GetW (void) const
 
virtual const Vec3GetXPP (void) const
 
virtual const Vec3GetWP (void) const
 
- Public Member Functions inherited from RigidBodyKinematics
virtual ~RigidBodyKinematics (void)
 

Private Attributes

TplDriveOwner< Vec3XDrv
 
TplDriveOwner< Vec3ThetaDrv
 
TplDriveOwner< Vec3VDrv
 
TplDriveOwner< Vec3WDrv
 
TplDriveOwner< Vec3XPPDrv
 
TplDriveOwner< Vec3WPDrv
 

Additional Inherited Members

- Protected Attributes inherited from ConstRigidBodyKinematics
Vec3 X
 
Mat3x3 R
 
Vec3 V
 
Vec3 W
 
Vec3 XPP
 
Vec3 WP
 

Detailed Description

Definition at line 66 of file rbk_impl.h.

Constructor & Destructor Documentation

DriveRigidBodyKinematics::DriveRigidBodyKinematics ( const TplDriveCaller< Vec3 > *  pXDrv,
const TplDriveCaller< Vec3 > *  pThetaDrv,
const TplDriveCaller< Vec3 > *  pVDrv,
const TplDriveCaller< Vec3 > *  pWDrv,
const TplDriveCaller< Vec3 > *  pXPPDrv,
const TplDriveCaller< Vec3 > *  pWPDrv 
)

Definition at line 97 of file rbk_impl.cc.

References Update().

104 : XDrv(pXDrv),
105 ThetaDrv(pThetaDrv),
106 VDrv(pVDrv),
107 WDrv(pWDrv),
108 XPPDrv(pXPPDrv),
109 WPDrv(pWPDrv)
110 {
111  Update();
112 }
TplDriveOwner< Vec3 > WPDrv
Definition: rbk_impl.h:73
TplDriveOwner< Vec3 > XPPDrv
Definition: rbk_impl.h:72
TplDriveOwner< Vec3 > VDrv
Definition: rbk_impl.h:70
TplDriveOwner< Vec3 > XDrv
Definition: rbk_impl.h:68
TplDriveOwner< Vec3 > ThetaDrv
Definition: rbk_impl.h:69
TplDriveOwner< Vec3 > WDrv
Definition: rbk_impl.h:71
virtual void Update(void)
Definition: rbk_impl.cc:120

Here is the call graph for this function:

DriveRigidBodyKinematics::~DriveRigidBodyKinematics ( void  )
virtual

Definition at line 114 of file rbk_impl.cc.

References NO_OP.

115 {
116  NO_OP;
117 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

void DriveRigidBodyKinematics::Update ( void  )
virtual

Reimplemented from RigidBodyKinematics.

Definition at line 120 of file rbk_impl.cc.

References TplDriveOwner< T >::Get(), Mat3x3::MulTV(), TplDriveOwner< T >::pGetDriveCaller(), ConstRigidBodyKinematics::R, RotManip::Rot(), ThetaDrv, ConstRigidBodyKinematics::V, VDrv, ConstRigidBodyKinematics::W, WDrv, ConstRigidBodyKinematics::WP, WPDrv, ConstRigidBodyKinematics::X, XDrv, ConstRigidBodyKinematics::XPP, and XPPDrv.

Referenced by DriveRigidBodyKinematics().

121 {
122  bool bR(false);
123 
124  if (ThetaDrv.pGetDriveCaller()) {
126  bR = true;
127  }
128 
129  if (XDrv.pGetDriveCaller()) {
130  if (bR) {
131  X = R.MulTV(XDrv.Get());
132 
133  } else {
134  X = XDrv.Get();
135  }
136  }
137 
138  if (VDrv.pGetDriveCaller()) {
139  if (bR) {
140  V = R.MulTV(VDrv.Get());
141 
142  } else {
143  V = VDrv.Get();
144  }
145  }
146 
147  if (WDrv.pGetDriveCaller()) {
148  if (bR) {
149  W = R.MulTV(WDrv.Get());
150 
151  } else {
152  W = WDrv.Get();
153  }
154  }
155 
156  if (XPPDrv.pGetDriveCaller()) {
157  if (bR) {
158  XPP = R.MulTV(XPPDrv.Get());
159 
160  } else {
161  XPP = XPPDrv.Get();
162  }
163  }
164 
165  if (WPDrv.pGetDriveCaller()) {
166  if (bR) {
167  WP = R.MulTV(WPDrv.Get());
168 
169  } else {
170  WP = WPDrv.Get();
171  }
172  }
173 }
TplDriveOwner< Vec3 > WPDrv
Definition: rbk_impl.h:73
Vec3 MulTV(const Vec3 &v) const
Definition: matvec3.cc:482
TplDriveCaller< T > * pGetDriveCaller(void) const
Definition: tpldrive.h:105
TplDriveOwner< Vec3 > XPPDrv
Definition: rbk_impl.h:72
T Get(const doublereal &dVar) const
Definition: tpldrive.h:109
Mat3x3 Rot(const Vec3 &phi)
Definition: Rot.cc:62
TplDriveOwner< Vec3 > VDrv
Definition: rbk_impl.h:70
TplDriveOwner< Vec3 > XDrv
Definition: rbk_impl.h:68
TplDriveOwner< Vec3 > ThetaDrv
Definition: rbk_impl.h:69
TplDriveOwner< Vec3 > WDrv
Definition: rbk_impl.h:71

Here is the call graph for this function:

Member Data Documentation

TplDriveOwner<Vec3> DriveRigidBodyKinematics::ThetaDrv
private

Definition at line 69 of file rbk_impl.h.

Referenced by Update().

TplDriveOwner<Vec3> DriveRigidBodyKinematics::VDrv
private

Definition at line 70 of file rbk_impl.h.

Referenced by Update().

TplDriveOwner<Vec3> DriveRigidBodyKinematics::WDrv
private

Definition at line 71 of file rbk_impl.h.

Referenced by Update().

TplDriveOwner<Vec3> DriveRigidBodyKinematics::WPDrv
private

Definition at line 73 of file rbk_impl.h.

Referenced by Update().

TplDriveOwner<Vec3> DriveRigidBodyKinematics::XDrv
private

Definition at line 68 of file rbk_impl.h.

Referenced by Update().

TplDriveOwner<Vec3> DriveRigidBodyKinematics::XPPDrv
private

Definition at line 72 of file rbk_impl.h.

Referenced by Update().


The documentation for this class was generated from the following files: