PhyHinge class. More...

Inheritance diagram for PhyHinge:

Public Member Functions

 PhyHinge (const wVector &axis, const wVector &centre, real startAngle, PhyObject *parent, PhyObject *child, bool cp=true)
 Constructor.
 
 PhyHinge (const wVector &axis, const wVector &centre, PhyObject *parent, PhyObject *child, bool cp=true)
 In this constructor startAngle is supposed to be zero.
 
 PhyHinge (const wVector &axis, real startAngle, PhyObject *parent, PhyObject *child, bool cp=true)
 In this constructor centre is supposed to be zero (center of parent PhyObject)
 
 PhyHinge (const wVector &axis, PhyObject *parent, PhyObject *child, bool cp=true)
 In this constructor centre and realAngle are supposed to be zero.
 
 PhyHinge (const wVector &axis, const wVector &centre, const wVector &x_axis, PhyObject *parent, PhyObject *child, bool cp=true)
 In this constructor centre and realAngle are supposed to be zero.
 
virtual wVector centre () const
 Return the centre of this joint in world coordinate.
 
virtual wVector getForceOnJoint () const
 Returns the force applied to this joint.
 
virtual void updateJointInfo ()
 Update the Joint informations (each PhyDOF will be updated)
 
- Public Member Functions inherited from PhyJoint
 PhyJoint (PhyObject *parent, PhyObject *child)
 Constructor.
 
virtual ~PhyJoint ()
 Destructor.
 
virtual PhyObjectchild ()
 Return the child object attached to this joint (see Newton Documentation)
 
virtual const PhyObjectchild () const
 Return the child object attached to this joint (see Newton Documentation) (const version)
 
virtual QVector< PhyDOF * > dofs ()
 Return descriptions of DOF.
 
void enable (bool b)
 enable/disable the joint
 
bool isEnabled () const
 Return true if the joint is enabled.
 
virtual unsigned int numDofs () const
 Return the number of DOF constrained by this joint.
 
virtual PhyObjectparent ()
 Return the parent object; (NULL means an object attached to static world; see Netwon Documentation)
 
virtual const PhyObjectparent () const
 Return the parent object; (NULL means an object attached to static world; see Netwon Documentation) (const version)
 
virtual void postUpdate ()
 postUpdate the PhyJoint this method is called at each step of the world just after the physic update
 
virtual void preUpdate ()
 preUpdate the PhyJoint this method is called at each step of the world just before the physic update
 
Worldworld ()
 Return the World.
 
const Worldworld () const
 Return the World (const version)
 
- Public Member Functions inherited from Ownable
 Ownable ()
 Constructor.
 
virtual ~Ownable ()
 Destructor.
 
const QList< Owned > & owned () const
 Returns the list of objects owned by this one.
 
Ownableowner () const
 Returns the owner of this object.
 
void setOwner (Ownable *owner, bool destroy=true)
 Sets the owner of this object.
 

Protected Member Functions

void createPrivateJoint ()
 Engine encapsulation.
 
virtual void updateJoint (real timestep)
 

Protected Attributes

wVector forceOnJoint
 The force applied to this joint.
 
wMatrix globalMatrixChild
 Global Matrix respect to Child.
 
wMatrix globalMatrixParent
 Global Matrix respect to Parent.
 
wMatrix localMatrixChild
 Local frame of the joint respect to the child matrix.
 
wMatrix localMatrixParent
 Local frame of the joint respect to the parent matrix.
 
- Protected Attributes inherited from PhyJoint
PhyObjectPrivate * childpriv
 
PhyObjectchildv
 child object
 
QVector< PhyDOF * > dofsv
 vector of DOF's joint
 
int dofv
 number of DOF
 
bool enabled
 true if is enabled, false otherwise
 
PhyObjectPrivate * parentpriv
 
PhyObjectparentv
 parent object
 
PhyJointPrivate * priv
 Engine encapsulation.
 
WorldPrivate * worldpriv
 
Worldworldv
 world
 

Additional Inherited Members

- Public Types inherited from Ownable
typedef QList< OwnedOwnedList
 The type for the list of owned objects.
 

Detailed Description

PhyHinge class.

\

Motivation
Hinge Joint.
Description
This joint add a revolute constraint around an axis :-)
Warnings
Warnings

Definition at line 43 of file phyhinge.h.

Constructor & Destructor Documentation

PhyHinge ( const wVector axis,
const wVector centre,
real  startAngle,
PhyObject parent,
PhyObject child,
bool  cp = true 
)

Constructor.

Parameters
axisis the axis of rotation (respect to parent object frame)
centreis the center of rotation (respect to parent object frame)
startAngleis the initial angle of the joint at the moment of creation
parentis the parent object.
childis the child object
cpis internal; ignore it The local frame is translated toward centre and the Z axis is aligned with axis in order to create the complete local coordinate frame of this joint

Definition at line 105 of file phyhinge.cpp.

PhyHinge ( const wVector axis,
const wVector centre,
PhyObject parent,
PhyObject child,
bool  cp = true 
)

In this constructor startAngle is supposed to be zero.

Definition at line 110 of file phyhinge.cpp.

PhyHinge ( const wVector axis,
real  startAngle,
PhyObject parent,
PhyObject child,
bool  cp = true 
)

In this constructor centre is supposed to be zero (center of parent PhyObject)

Definition at line 115 of file phyhinge.cpp.

PhyHinge ( const wVector axis,
PhyObject parent,
PhyObject child,
bool  cp = true 
)

In this constructor centre and realAngle are supposed to be zero.

Definition at line 120 of file phyhinge.cpp.

PhyHinge ( const wVector axis,
const wVector centre,
const wVector x_axis,
PhyObject parent,
PhyObject child,
bool  cp = true 
)

In this constructor centre and realAngle are supposed to be zero.

Parameters
x_axisis the desired X local axis for joint frame (reference for zero angle)

Definition at line 125 of file phyhinge.cpp.

References PhyHinge::centre(), PhyHinge::createPrivateJoint(), PhyJoint::dofsv, PhyJoint::dofv, PhyHinge::globalMatrixParent, wMatrix::inverse(), PhyHinge::localMatrixChild, PhyHinge::localMatrixParent, WObject::matrix(), wMatrix::sanitifize(), and wMatrix::sanityCheck().

Member Function Documentation

wVector centre ( ) const
virtual

Return the centre of this joint in world coordinate.

Implements PhyJoint.

Definition at line 168 of file phyhinge.cpp.

References PhyHinge::globalMatrixParent, PhyHinge::localMatrixParent, WObject::matrix(), and PhyJoint::parent().

Referenced by PhyHinge::PhyHinge().

void createPrivateJoint ( )
protected

Engine encapsulation.

Definition at line 181 of file phyhinge.cpp.

References PhyJoint::priv.

Referenced by PhyHinge::PhyHinge().

wVector getForceOnJoint ( ) const
virtual

Returns the force applied to this joint.

Implements PhyJoint.

Definition at line 176 of file phyhinge.cpp.

References PhyHinge::forceOnJoint.

Member Data Documentation

wVector forceOnJoint
protected

The force applied to this joint.

Definition at line 113 of file phyhinge.h.

Referenced by PhyHinge::getForceOnJoint().

wMatrix globalMatrixChild
protected

Global Matrix respect to Child.

This represent the local frame of joint in global coordinate starting from localMatrixParent representation.

Definition at line 109 of file phyhinge.h.

Referenced by PhyHinge::updateJointInfo().

wMatrix globalMatrixParent
mutableprotected

Global Matrix respect to Parent.

This represent the local frame of joint in global coordinate starting from localMatrixParent representation.

Note: The differences between globalMatrixParent and globalMatrixChild are due to numerical error on joint solver of physic engine used. Note: This is mutable because it can be changed in the centre() const function

Definition at line 103 of file phyhinge.h.

Referenced by PhyHinge::centre(), PhyHinge::PhyHinge(), and PhyHinge::updateJointInfo().

wMatrix localMatrixChild
protected

Local frame of the joint respect to the child matrix.

Definition at line 91 of file phyhinge.h.

Referenced by PhyHinge::PhyHinge(), and PhyHinge::updateJointInfo().

wMatrix localMatrixParent
protected

Local frame of the joint respect to the parent matrix.

This matrix is calculated from Axis and Centre passed to constructor Axis will became the Z-axis of local frame (axis of rotation), and the two others axes are calculated in order to get a local frame Centre is copied as it is into w_pos of localMatrixParent

Definition at line 89 of file phyhinge.h.

Referenced by PhyHinge::centre(), PhyHinge::PhyHinge(), and PhyHinge::updateJointInfo().


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