H3D API  2.4.1
Classes | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
H3D::DynamicTransform Class Reference

The DynamicTransform node is a Shape container that has basic properties for defining rigid body motion. More...

#include <H3D/DynamicTransform.h>

Inheritance diagram for H3D::DynamicTransform:
Inheritance graph

Classes

class  SFAngularVelocity
 Calculates the angular velocity based on the inertia tensor and angular momentum. More...
 
class  SFMatrix4f
 Specialize the SFMatrix4f to update the matrix from the fields in the Transform node. More...
 
class  SFMotion
 Time dependant field to perform the RK4 integration for determining the motion of the dynamic transform routes_in[0] time field. More...
 
class  SFSpin
 Calculates the spin (time derivative of the orientation) More...
 
class  SFVelocity
 Calculates the velocity based on the mass and momentum. More...
 

Public Member Functions

 DynamicTransform (Inst< AddChildren > _addChildren=0, Inst< RemoveChildren > _removeChildren=0, Inst< MFChild > _children=0, Inst< SFNode > _metadata=0, Inst< SFBound > _bound=0, Inst< SFVec3f > _bboxCenter=0, Inst< SFVec3f > _bboxSize=0, Inst< SFTransformedBound > _transformedBound=0, Inst< SFMatrix4f > _matrix=0, Inst< SFMatrix4f > _accumulatedForward=0, Inst< SFMatrix4f > _accumulatedInverse=0, Inst< SFVec3f > _position=0, Inst< SFRotation > _orientation=0, Inst< SFVelocity > _velocity=0, Inst< SFVec3f > _momentum=0, Inst< SFVec3f > _force=0, Inst< SFAngularVelocity > _angularVelocity=0, Inst< SFVec3f > _angularMomentum=0, Inst< SFSpin > _spin=0, Inst< SFVec3f > _torque=0, Inst< SFFloat > _mass=0, Inst< SFMatrix3f > _inertiaTensor=0, Inst< SFMotion > _motion=0)
 Constructor.
 
- Public Member Functions inherited from H3D::MatrixTransform
 MatrixTransform (Inst< AddChildren > _addChildren=0, Inst< RemoveChildren > _removeChildren=0, Inst< MFChild > _children=0, Inst< SFNode > _metadata=0, Inst< SFBound > _bound=0, Inst< SFVec3f > _bboxCenter=0, Inst< SFVec3f > _bboxSize=0, Inst< SFTransformedBound > _transformedBound=0, Inst< SFMatrix4f > _matrix=0, Inst< SFMatrix4f > _accumulatedForward=0, Inst< SFMatrix4f > _accumulatedInverse=0)
 Constructor.
 
virtual void render ()
 Render the children.
 
virtual void traverseSG (TraverseInfo &ti)
 Traverse the scenegraph.
 
void multiplyGLMatrix ()
 Multiply the currently active OpenGL matrix with the matrix of this node.
 
virtual bool lineIntersect (const Vec3f &from, const Vec3f &to, LineIntersectResult &result)
 Detect intersection between a line segment and this Node. More...
 
virtual void closestPoint (const Vec3f &p, NodeIntersectResult &result)
 Find closest point on Node to p. More...
 
virtual bool movingSphereIntersect (H3DFloat radius, const Vec3f &from, const Vec3f &to, NodeIntersectResult &result)
 Detect collision between a moving sphere and the Node. More...
 
- Public Member Functions inherited from H3D::X3DGroupingNode
 X3DGroupingNode (Inst< AddChildren > _addChildren=0, Inst< RemoveChildren > _removeChildren=0, Inst< MFChild > _children=0, Inst< SFNode > _metadata=0, Inst< SFBound > _bound=0, Inst< SFVec3f > _bboxCenter=0, Inst< SFVec3f > _bboxSize=0)
 Constructor.
 
virtual ~X3DGroupingNode ()
 Destructor.
 
virtual void initialize ()
 Sets up the bound field using the bboxCenter and bboxSize fields. More...
 
- Public Member Functions inherited from H3D::X3DChildNode
 X3DChildNode (Inst< SFNode > _metadata=0)
 Constructor.
 
- Public Member Functions inherited from H3D::X3DNode
 X3DNode (Inst< SFNode > _metadata=0)
 Constructor.
 
X3DMetadataObject * getMetadataByName (const string &_name)
 Given a name, the first X3DMetadataObject in the metadata field that matches that name is returned. More...
 
- Public Member Functions inherited from H3D::Node
 Node ()
 Constructor.
 
virtual Node * clone (bool deepCopy=true, DeepCopyMap *deepCopyMap=NULL)
 Returns a new instance of this node type with the same state as this one. More...
 
virtual ~Node ()
 Destructor.
 
X3DPrototypeInstance * getProtoInstanceParent ()
 If this node is the root node in the proto body of a X3DPrototypeInstance then this will return that node. More...
 
void setProtoInstanceParent (X3DPrototypeInstance *p)
 Set the X3DPrototypeInstance this node is the the root node if applicaple.
 
virtual string defaultXMLContainerField ()
 Returns the default xml containerField attribute value. More...
 
virtual Field * getField (const string &_name) const
 return a pointer to the field specified by name within this instance
 
int addDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 
int removeDestructCallback (void(*func)(Node *, void *), void *args)
 Add a callback function to be run on destruction of node. More...
 
- Public Member Functions inherited from H3D::H3DBoundedObject
 H3DBoundedObject (Inst< SFBound > _bound=0)
 Constructor.
 
- Public Member Functions inherited from H3D::H3DDisplayListObject
 H3DDisplayListObject (Inst< DisplayList > _displayList=0)
 Constructor.
 

Public Attributes

H3DUniquePtr< SFVec3f > position
 Specifies the position of the shape. More...
 
H3DUniquePtr< SFRotation > orientation
 Specifies the orientation of the shape. More...
 
H3DUniquePtr< SFVec3f > velocity
 Specifies the velocity in m/s. More...
 
H3DUniquePtr< SFVec3f > momentum
 Specifies the momentum. More...
 
H3DUniquePtr< SFVec3f > force
 Specifies the force currently acting on the dynamic. More...
 
H3DUniquePtr< SFVec3f > angularVelocity
 Specifies the angular velocity of the dynamic. More...
 
H3DUniquePtr< SFVec3f > angularMomentum
 Specifies the angular momentum of the dynamic. More...
 
H3DUniquePtr< SFSpin > spin
 Specifies the spin of the dynamic. More...
 
H3DUniquePtr< SFVec3f > torque
 Specifies the torque force currently acting on the dynamic. More...
 
H3DUniquePtr< SFFloat > mass
 Specifies the mass, in kg. More...
 
H3DUniquePtr< SFMatrix3f > inertiaTensor
 Specifies the inertia tensor. More...
 
H3DUniquePtr< SFMotion > motion
 Dynamic update algorithm. Only accessable in C++.
 
- Public Attributes inherited from H3D::MatrixTransform
H3DUniquePtr< SFMatrix4f > matrix
 The transformation matrix. More...
 
H3DUniquePtr< SFMatrix4f > accumulatedForward
 The accumulated forward transform matrix, i.e. More...
 
H3DUniquePtr< SFMatrix4f > accumulatedInverse
 The accumulated inverse transform matrix, i.e. More...
 
H3DUniquePtr< SFTransformedBound > transformedBound
 This is the same as the bound field, but with the transformation applied to the bound. More...
 
- Public Attributes inherited from H3D::X3DGroupingNode
bool use_union_bound
 if true a route will be set up between the bound field of the nodes in children and the bound field of the grouping node. More...
 
H3DUniquePtr< AddChildren > addChildren
 The addChildren event appends nodes to the children field of a grouping node. More...
 
H3DUniquePtr< RemoveChildren > removeChildren
 The removeChildren event removes nodes from the children field of the grouping node . More...
 
H3DUniquePtr< MFChild > children
 The nodes that are grouped together by this node. More...
 
- Public Attributes inherited from H3D::X3DNode
H3DUniquePtr< SFNode > metadata
 Meta data about the node. More...
 
- Public Attributes inherited from H3D::X3DBoundedObject
H3DUniquePtr< SFVec3f > bboxCenter
 Specifies a the center of an axis-aligned bounding box enclosing the node. More...
 
H3DUniquePtr< SFVec3f > bboxSize
 Specifies a the size of an axis-aligned bounding box enclosing the node. More...
 
- Public Attributes inherited from H3D::H3DBoundedObject
H3DUniquePtr< SFBound > bound
 The field containing the bound object. More...
 
- Public Attributes inherited from H3D::H3DDisplayListObject
H3DUniquePtr< DisplayList > displayList
 The DisplayList instance handling the OpenGL caching of this object.
 

Static Public Attributes

static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 
- Static Public Attributes inherited from H3D::MatrixTransform
static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 
- Static Public Attributes inherited from H3D::X3DGroupingNode
static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 
- Static Public Attributes inherited from H3D::X3DNode
static H3DNodeDatabase database
 The H3DNodeDatabase for this node.
 

Additional Inherited Members

- Public Types inherited from H3D::Node
typedef std::map< Node *, Node * > DeepCopyMap
 A map type used during a deep copy clone() to map from original nodes to cloned nodes.
 
- Static Public Member Functions inherited from H3D::Node
static unsigned int nrNodesAlive ()
 Returns the nr of nodes currently alive, i.e. nodes created but not destructed.
 
static int nrNodesCreated ()
 Returns the number of nodes created in total since the start of the program.
 
- Protected Member Functions inherited from H3D::Node
void cloneFieldValue (Field &_from, Field &_to, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for the clone() method. More...
 
- Static Protected Member Functions inherited from H3D::Node
static Node * getClonedInstance (Node *original, bool deepCopy, DeepCopyMap &deepCopyMap)
 A helper function for nodes that implement clone() More...
 
- Protected Attributes inherited from H3D::X3DGroupingNode
bool children_multi_pass_transparency
 Will be set in traverseSG to indicate if any of the children enables multi-pass transparency. More...
 
vector< H3DRenderStateObject * > render_states
 A vector of all the H3DRenderStatesObject within this X3DGroupingNode.
 
vector< ClipPlane * > clip_planes
 A vector of only ClipPlane children of this X3DGroupingNode.
 

Detailed Description

The DynamicTransform node is a Shape container that has basic properties for defining rigid body motion.

This includes a position, orientation, mass, etc.

Examples:

Internal routes:

Member Data Documentation

◆ angularMomentum

H3DUniquePtr< SFVec3f > H3D::DynamicTransform::angularMomentum

Specifies the angular momentum of the dynamic.

Access type: inputOutput
Default value: Vec3f( 0, 0, 0 )

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ angularVelocity

H3DUniquePtr< SFVec3f > H3D::DynamicTransform::angularVelocity

Specifies the angular velocity of the dynamic.

Access type: outputOnly

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ force

H3DUniquePtr< SFVec3f > H3D::DynamicTransform::force

Specifies the force currently acting on the dynamic.

Access type: inputOutput
Default value: Vec3f( 0, 0, 0 )

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ inertiaTensor

H3DUniquePtr< SFMatrix3f > H3D::DynamicTransform::inertiaTensor

Specifies the inertia tensor.

Access type: inputOutput
Default value: Matrix3f( 1, 0, 0, 0, 1, 0, 0, 0, 1 )

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ mass

H3DUniquePtr< SFFloat > H3D::DynamicTransform::mass

Specifies the mass, in kg.

Access type: inputOutput
Default value: 1.0

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ momentum

H3DUniquePtr< SFVec3f > H3D::DynamicTransform::momentum

Specifies the momentum.

Access type: inputOutput
Default value: Vec3f( 0, 0, 0 )

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ orientation

H3DUniquePtr< SFRotation > H3D::DynamicTransform::orientation

Specifies the orientation of the shape.

Access type: inputOutput
Default value: Rotation( 0, 0, 1, 0 )

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ position

H3DUniquePtr< SFVec3f > H3D::DynamicTransform::position

Specifies the position of the shape.

Access type: inputOutput
Default value: Vec3f( 0, 0, 0 )

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ spin

H3DUniquePtr< SFSpin > H3D::DynamicTransform::spin

Specifies the spin of the dynamic.

Access type: outputOnly

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ torque

H3DUniquePtr< SFVec3f > H3D::DynamicTransform::torque

Specifies the torque force currently acting on the dynamic.

Access type: inputOutput
Default value: Vec3f( 0, 0, 0 )

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().

◆ velocity

H3DUniquePtr< SFVec3f > H3D::DynamicTransform::velocity

Specifies the velocity in m/s.

Access type: outputOnly

Referenced by DynamicTransform(), and H3D::DynamicTransform::SFMotion::update().


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