SO3Engine
|
this class represents a Universal joint. More...
#include <OgreNewt_BasicJoints.h>
Public Types | |
typedef void(* | UniversalCallback) (Universal *me) |
custom universal callback function. | |
Public Member Functions | |
Universal (const World *world, const OgreNewt::Body *child, const OgreNewt::Body *parent, const Ogre::Vector3 &pos, const Ogre::Vector3 &pin0, const Ogre::Vector3 &pin1) | |
constructor | |
~Universal () | |
destructor | |
Ogre::Radian | getJointAngle0 () const |
get the angle around pin0. | |
Ogre::Radian | getJointAngle1 () const |
get the angle around pin1. | |
Ogre::Real | getJointOmega0 () const |
get the rotational velocity around pin0. | |
Ogre::Real | getJointOmega1 () const |
get the rotational velocity around pin1. | |
Ogre::Vector3 | getJointForce () const |
get the force on the joint. | |
void | setCallback (UniversalCallback callback) |
set a custom callback for controlling this joint. | |
void | setCallbackAccel (Ogre::Real accel, unsigned axis) |
set the acceleration around a particular pin. | |
void | setCallbackFrictionMin (Ogre::Real min, unsigned axis) |
set the minimum friction around a particular pin | |
void | setCallbackFrictionMax (Ogre::Real max, unsigned axis) |
set the maximum friction around a particular pin. | |
Ogre::Real | getCallbackTimestep () const |
get the current phsics timestep. | |
Ogre::Real | calculateStopAlpha0 (Ogre::Real angle) const |
calculate the acceleration neccesary to stop the joint at the specified angle on pin 0. | |
Ogre::Real | calculateStopAlpha1 (Ogre::Real angle) const |
calculate the acceleration neccesary to stop the joint at the specified angle on pin 1. | |
Public Member Functions inherited from OgreNewt::Joint | |
Joint () | |
constructor | |
virtual | ~Joint () |
destructor | |
Body * | getBody0 () const |
get the pointer to the first rigid body | |
Body * | getBody1 () const |
get the pointer to the first rigid body | |
const OgreNewt::World * | getWorld () |
get the pointer to the world | |
virtual void | submitConstraint (Ogre::Real timeStep, int threadIndex) |
must be define for a functioning joint. | |
virtual void | showDebugData (Ogre::SceneNode *debugRootNode) |
show joint visual debugging data | |
int | getCollisionState () const |
returns collision state | |
void | setCollisionState (int state) const |
sets the collision state | |
Ogre::Real | getStiffness () const |
get joint stiffness | |
void | setStiffness (Ogre::Real stiffness) const |
set joint stiffness | |
Static Protected Member Functions | |
static unsigned _CDECL | newtonCallback (const NewtonJoint *universal, NewtonHingeSliderUpdateDesc *desc) |
newton callback. used internally. | |
Static Protected Member Functions inherited from OgreNewt::Joint | |
static void _CDECL | destructorCallback (const CustomJoint *me) |
joint destructor callback glue | |
static void _CDECL | submitConstraintCallback (const CustomJoint *me, dFloat timestep, int threadIndex) |
submintContraint | |
Protected Attributes | |
UniversalCallback | m_callback |
NewtonHingeSliderUpdateDesc * | m_desc |
unsigned | m_retval |
Protected Attributes inherited from OgreNewt::Joint | |
CustomJoint * | m_joint |
Additional Inherited Members | |
Protected Member Functions inherited from OgreNewt::Joint | |
void | addLinearRow (const Ogre::Vector3 &pt0, const Ogre::Vector3 &pt1, const Ogre::Vector3 &dir) const |
void | addAngularRow (Ogre::Radian relativeAngleError, const Ogre::Vector3 &dir) const |
void | addGeneralRow (const Ogre::Vector3 &linear0, const Ogre::Vector3 &angular0, const Ogre::Vector3 &linear1, const Ogre::Vector3 &angular1) const |
void | setRowMinimumFriction (Ogre::Real friction) const |
void | setRowMaximumFriction (Ogre::Real friction) const |
void | setRowStiffness (Ogre::Real stiffness) const |
void | setRowAcceleration (Ogre::Real accel) const |
void | setRowSpringDamper (Ogre::Real springK, Ogre::Real springD) const |
void | SetSupportJoint (CustomJoint *supportJoint) |
SetSupportJoint. | |
CustomJoint * | GetSupportJoint () const |
GetSupportJoint. | |
Detailed Description
this class represents a Universal joint.
simple universal joint. implement motors/limits through a callback.
Definition at line 329 of file OgreNewt_BasicJoints.h.
Member Typedef Documentation
◆ UniversalCallback
typedef void(* OgreNewt::Universal::UniversalCallback) (Universal *me) |
custom universal callback function.
use the setCallback() function to assign your custom function to the joint.
Definition at line 338 of file OgreNewt_BasicJoints.h.
Constructor & Destructor Documentation
◆ Universal()
OgreNewt::Universal::Universal | ( | const World * | world, |
const OgreNewt::Body * | child, | ||
const OgreNewt::Body * | parent, | ||
const Ogre::Vector3 & | pos, | ||
const Ogre::Vector3 & | pin0, | ||
const Ogre::Vector3 & | pin1 | ||
) |
constructor
- Parameters
-
world pointer to the OgreNewt::World child pointer to the child rigid body. parent pointer to the parent rigid body. pass NULL to make the world itself the parent (aka a rigid joint) pos position of the joint in global space pin0 direction of the first axis of rotation in global space pin1 direction of the second axis of rotation in global space
Definition at line 928 of file OgreNewt_BasicJoints.cpp.
◆ ~Universal()
OgreNewt::Universal::~Universal | ( | ) |
destructor
Definition at line 950 of file OgreNewt_BasicJoints.cpp.
Member Function Documentation
◆ calculateStopAlpha0()
Ogre::Real OgreNewt::Universal::calculateStopAlpha0 | ( | Ogre::Real | angle | ) | const |
calculate the acceleration neccesary to stop the joint at the specified angle on pin 0.
For implementing joint limits. This command is only valid when used inside a custom callback.
Definition at line 1021 of file OgreNewt_BasicJoints.cpp.
◆ calculateStopAlpha1()
Ogre::Real OgreNewt::Universal::calculateStopAlpha1 | ( | Ogre::Real | angle | ) | const |
calculate the acceleration neccesary to stop the joint at the specified angle on pin 1.
For implementing joint limits. This command is only valid when used inside a custom callback.
Definition at line 1029 of file OgreNewt_BasicJoints.cpp.
◆ getCallbackTimestep()
Ogre::Real OgreNewt::Universal::getCallbackTimestep | ( | ) | const |
get the current phsics timestep.
Definition at line 1013 of file OgreNewt_BasicJoints.cpp.
◆ getJointAngle0()
|
inline |
get the angle around pin0.
Definition at line 355 of file OgreNewt_BasicJoints.h.
◆ getJointAngle1()
|
inline |
get the angle around pin1.
Definition at line 358 of file OgreNewt_BasicJoints.h.
◆ getJointForce()
Ogre::Vector3 OgreNewt::Universal::getJointForce | ( | ) | const |
get the force on the joint.
Definition at line 954 of file OgreNewt_BasicJoints.cpp.
◆ getJointOmega0()
|
inline |
get the rotational velocity around pin0.
Definition at line 361 of file OgreNewt_BasicJoints.h.
◆ getJointOmega1()
|
inline |
get the rotational velocity around pin1.
Definition at line 364 of file OgreNewt_BasicJoints.h.
◆ newtonCallback()
|
staticprotected |
newton callback. used internally.
Definition at line 963 of file OgreNewt_BasicJoints.cpp.
◆ setCallback()
|
inline |
set a custom callback for controlling this joint.
Joint callbacks allow you to make complex joint behavior such as limits or motors. just make a custom static function that accepts a pointer to a OgreNewt::BasicJoints::Universal as the single parameter. this function will be called automatically every time you upate the World.
Definition at line 375 of file OgreNewt_BasicJoints.h.
◆ setCallbackAccel()
void OgreNewt::Universal::setCallbackAccel | ( | Ogre::Real | accel, |
unsigned | axis | ||
) |
set the acceleration around a particular pin.
Definition at line 980 of file OgreNewt_BasicJoints.cpp.
◆ setCallbackFrictionMax()
void OgreNewt::Universal::setCallbackFrictionMax | ( | Ogre::Real | max, |
unsigned | axis | ||
) |
set the maximum friction around a particular pin.
Definition at line 991 of file OgreNewt_BasicJoints.cpp.
◆ setCallbackFrictionMin()
void OgreNewt::Universal::setCallbackFrictionMin | ( | Ogre::Real | min, |
unsigned | axis | ||
) |
set the minimum friction around a particular pin
Definition at line 1002 of file OgreNewt_BasicJoints.cpp.
Member Data Documentation
◆ m_callback
|
protected |
Definition at line 429 of file OgreNewt_BasicJoints.h.
◆ m_desc
|
protected |
Definition at line 430 of file OgreNewt_BasicJoints.h.
◆ m_retval
|
protected |
Definition at line 432 of file OgreNewt_BasicJoints.h.
The documentation for this class was generated from the following files:
- include/External/ogrenewt/OgreNewt_BasicJoints.h
- src/External/ogrenewt/OgreNewt_BasicJoints.cpp
Generated by 1.9.8