#include <H3DNetworkingUtils/DampedDynamic.h>
Public Member Functions | |
DampedDynamic (H3D::Inst< AddChildren > _addChildren=0, H3D::Inst< RemoveChildren > _removeChildren=0, H3D::Inst< MFChild > _children=0, H3D::Inst< H3D::SFNode > _metadata=0, H3D::Inst< SFBound > _bound=0, H3D::Inst< H3D::SFVec3f > _bboxCenter=0, H3D::Inst< H3D::SFVec3f > _bboxSize=0, H3D::Inst< SFTransformedBound > _transformedBound=0, H3D::Inst< SFMatrix4f > _matrix=0, H3D::Inst< SFMatrix4f > _accumulatedForward=0, H3D::Inst< SFMatrix4f > _accumulatedInverse=0, H3D::Inst< H3D::SFVec3f > _position=0, H3D::Inst< H3D::SFRotation > _orientation=0, H3D::Inst< SFVelocity > _velocity=0, H3D::Inst< H3D::SFVec3f > _momentum=0, H3D::Inst< H3D::SFVec3f > _force=0, H3D::Inst< SFAngularVelocity > _angularVelocity=0, H3D::Inst< H3D::SFVec3f > _angularMomentum=0, H3D::Inst< SFSpin > _spin=0, H3D::Inst< H3D::SFVec3f > _torque=0, H3D::Inst< H3D::SFFloat > _mass=0, H3D::Inst< H3D::SFMatrix3f > _inertiaTensor=0, H3D::Inst< SFMotion > _motion=0, H3D::Inst< H3D::MFVec3f > _contactForces=0, H3D::Inst< H3D::MFVec3f > _contactTorques=0, H3D::Inst< SumMFVec3f > _totalContactForce=0, H3D::Inst< CalcTorque > _totalContactTorque=0, H3D::Inst< SumForces > _externalForces=0, H3D::Inst< SumTorques > _externalTorques=0, H3D::Inst< H3D::SFVec3f > _freedom=0, H3D::Inst< H3D::SFVec3f > _angularFreedom=0, H3D::Inst< H3D::SFFloat > _linearDamping=0, H3D::Inst< H3D::SFFloat > _rotationalDamping=0, H3D::Inst< MFCollidableGeometry > _collisionSpheres=0, H3D::Inst< H3D::SFFloat > _collisionStiffness=0, H3D::Inst< H3D::SFFloat > _collisionResolution=0, H3D::Inst< H3D::SFBool > _grabbed=0, H3D::Inst< H3D::SFVec3f > _grabPoint=0, H3D::Inst< H3D::SFFloat > _grabStrength=0, H3D::Inst< H3D::SFFloat > _grabSlackRadius=0, H3D::Inst< GrabSpring > _grabForce=0, H3D::Inst< NegVec3f > _grabReactionForce=0, H3D::Inst< MovedPos > _grabSpringAnchorPt=0, H3D::Inst< GrabTorque > _grabTorque=0, H3D::Inst< H3D::SFInt32 > _grabSmoothing=0, H3D::Inst< H3D::SFFloat > _grabDamping=0, H3D::Inst< SlaveSwitch > _slaveMode=0, H3D::Inst< DiffVec3f > _appliedForce=0, H3D::Inst< DiffVec3f > _appliedTorque=0) | |
Constructor. | |
Static Public Attributes | |
static H3D::H3DNodeDatabase | database |
Database. | |
Classes | |
class | SFMotion |
SFMotion: We override the SFMotion from DynamicTransform to take out the momentum. More... |
It is so damped that it never overshoots its equilibrium and therefore its momentum is not used in the position calculation. The object moves as long as forces act on it, and stops as soon as they don't. This assumption allows some algorithmic short-cuts that makes the calculation of position much faster and also makes it resiliant to frame rate (sampling) changes. It is designed to be used in a networked environment where network latency can produce stability problems when normal Newtonian physics is applied. This behaviour is suited to scenarios where objects do not need to travel unaided along trajectories, such as in simulating ball sports or missiles. Moving objects on a frictional surface such as a table, or manipulating body organs in surgery are two areas where a this node could be used successfully.
WARNING: Do not set linearDamping or rotationalDamping.
Examples:
H3DNodeDatabase DampedDynamic::database [static] |
Database.
const H3DFloat DampedDynamic::MAX_JUMP = 0.001f;
Reimplemented from H3DNetworkingUtils::GrabableDynamic.