Blender
V3.3
|
#include "LinearMath/btScalar.h"
#include "btSolverConstraint.h"
#include "BulletDynamics/Dynamics/btRigidBody.h"
Go to the source code of this file.
Classes | |
struct | btConstraintInfo1 |
struct | btConstraintInfo2 |
struct | btTypedConstraintFloatData |
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 More... | |
struct | btTypedConstraintData |
this structure is not used, except for loading pre-2.82 .bullet files More... | |
struct | btTypedConstraintDoubleData |
class | btAngularLimit |
Macros | |
#define | btTypedConstraintData2 btTypedConstraintFloatData |
#define | btTypedConstraintDataName "btTypedConstraintFloatData" |
#define | btAssertConstrParams(_par) btAssert(_par) |
#define | BT_BACKWARDS_COMPATIBLE_SERIALIZATION |
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 More... | |
Functions | |
btTypedConstraint & | operator= (btTypedConstraint &other) |
btScalar | getMotorFactor (btScalar pos, btScalar lowLim, btScalar uppLim, btScalar vel, btScalar timeFact) |
internal method used by the constraint solver, don't use them directly More... | |
BT_DECLARE_ALIGNED_ALLOCATOR () | |
virtual | ~btTypedConstraint () |
btTypedConstraint (btTypedConstraintType type, btRigidBody &rbA) | |
btTypedConstraint (btTypedConstraintType type, btRigidBody &rbA, btRigidBody &rbB) | |
static btRigidBody & | getFixedBody () |
int | getOverrideNumSolverIterations () const |
void | setOverrideNumSolverIterations (int overideNumIterations) |
virtual void | buildJacobian () |
internal method used by the constraint solver, don't use them directly More... | |
virtual void | setupSolverConstraint (btConstraintArray &ca, int solverBodyA, int solverBodyB, btScalar timeStep) |
internal method used by the constraint solver, don't use them directly More... | |
virtual void | getInfo1 (btConstraintInfo1 *info)=0 |
internal method used by the constraint solver, don't use them directly More... | |
virtual void | getInfo2 (btConstraintInfo2 *info)=0 |
internal method used by the constraint solver, don't use them directly More... | |
void | internalSetAppliedImpulse (btScalar appliedImpulse) |
internal method used by the constraint solver, don't use them directly More... | |
btScalar | internalGetAppliedImpulse () |
internal method used by the constraint solver, don't use them directly More... | |
btScalar | getBreakingImpulseThreshold () const |
void | setBreakingImpulseThreshold (btScalar threshold) |
bool | isEnabled () const |
void | setEnabled (bool enabled) |
virtual void | solveConstraintObsolete (btSolverBody &, btSolverBody &, btScalar) |
internal method used by the constraint solver, don't use them directly More... | |
const btRigidBody & | getRigidBodyA () const |
const btRigidBody & | getRigidBodyB () const |
int | getUserConstraintType () const |
void | setUserConstraintType (int userConstraintType) |
void | setUserConstraintId (int uid) |
int | getUserConstraintId () const |
void | setUserConstraintPtr (void *ptr) |
void * | getUserConstraintPtr () |
void | setJointFeedback (btJointFeedback *jointFeedback) |
const btJointFeedback * | getJointFeedback () const |
int | getUid () const |
bool | needsFeedback () const |
void | enableFeedback (bool needsFeedback) |
btScalar | getAppliedImpulse () const |
btTypedConstraintType | getConstraintType () const |
void | setDbgDrawSize (btScalar dbgDrawSize) |
btScalar | getDbgDrawSize () |
virtual void | setParam (int num, btScalar value, int axis=-1)=0 |
virtual btScalar | getParam (int num, int axis=-1) const =0 |
return the local value of parameter More... | |
virtual int | calculateSerializeBufferSize () const |
virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const |
fills the dataBuffer and returns the struct name (and 0 on failure) More... | |
SIMD_FORCE_INLINE btScalar | btAdjustAngleToLimits (btScalar angleInRadians, btScalar angleLowerLimitInRadians, btScalar angleUpperLimitInRadians) |
Variables | |
btJointFeedback | |
btVector3 | m_appliedForceBodyA |
btVector3 | m_appliedTorqueBodyA |
btVector3 | m_appliedForceBodyB |
btVector3 | m_appliedTorqueBodyB |
btTypedConstraint | __pad0__ |
TypedConstraint is the baseclass for Bullet constraints and vehicles. More... | |
union { | |
int m_userConstraintId | |
void * m_userConstraintPtr | |
}; | |
btScalar | m_breakingImpulseThreshold |
bool | m_isEnabled |
bool | m_needsFeedback |
int | m_overrideNumSolverIterations |
btRigidBody & | m_rbA |
btRigidBody & | m_rbB |
btScalar | m_appliedImpulse |
btScalar | m_dbgDrawSize |
btJointFeedback * | m_jointFeedback |
#define BT_BACKWARDS_COMPATIBLE_SERIALIZATION |
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
Definition at line 384 of file btTypedConstraint.h.
Definition at line 58 of file btTypedConstraint.h.
#define btTypedConstraintData2 btTypedConstraintFloatData |
Definition at line 27 of file btTypedConstraint.h.
#define btTypedConstraintDataName "btTypedConstraintFloatData" |
Definition at line 28 of file btTypedConstraint.h.
enum btConstraintParams |
Enumerator | |
---|---|
BT_CONSTRAINT_ERP | |
BT_CONSTRAINT_STOP_ERP | |
BT_CONSTRAINT_CFM | |
BT_CONSTRAINT_STOP_CFM |
Definition at line 49 of file btTypedConstraint.h.
Definition at line 34 of file btTypedConstraint.h.
BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
SIMD_FORCE_INLINE btScalar btAdjustAngleToLimits | ( | btScalar | angleInRadians, |
btScalar | angleLowerLimitInRadians, | ||
btScalar | angleUpperLimitInRadians | ||
) |
Definition at line 331 of file btTypedConstraint.h.
References btFabs(), btNormalizeAngle(), and SIMD_2_PI.
Referenced by testAngLimits(), testAngularLimitMotor(), and testLimit().
btTypedConstraint::btTypedConstraint | ( | btTypedConstraintType | type, |
btRigidBody & | rbA | ||
) |
Definition at line 22 of file btTypedConstraint.cpp.
Referenced by btSimulationIslandManagerMt::addConstraintsToIslands(), btSimulationIslandManagerMt::buildAndProcessIslands(), btMultiBodyDynamicsWorld::calculateSimulationIslands(), convertJoints(), internalConvertMultipleJoints(), internalInitMultipleJoints(), InplaceSolverIslandCallback::processConstraints(), MultiBodyInplaceSolverIslandCallback::processConstraints(), DeformableBodyInplaceSolverIslandCallback::processConstraints(), InplaceSolverIslandCallback::processIsland(), MultiBodyInplaceSolverIslandCallback::processIsland(), RB_body_delete(), RB_constraint_delete(), RB_constraint_new_6dof(), RB_constraint_new_6dof_spring(), RB_constraint_new_6dof_spring2(), RB_constraint_new_point(), RB_constraint_set_breaking_threshold(), RB_constraint_set_enabled(), RB_constraint_set_solver_iterations(), RB_dworld_add_constraint(), RB_dworld_remove_constraint(), serializeRigidBodies(), btDeformableMultiBodyDynamicsWorld::setupConstraints(), btMultiBodyDynamicsWorld::solveExternalForces(), btSimulationIslandManagerMt::solveIsland(), and writeBackJoints().
btTypedConstraint::btTypedConstraint | ( | btTypedConstraintType | type, |
btRigidBody & | rbA, | ||
btRigidBody & | rbB | ||
) |
Definition at line 38 of file btTypedConstraint.cpp.
|
virtual |
internal method used by the constraint solver, don't use them directly
performs Jacobian calculation, and also calculates angle differences and axis
obsolete methods
we need it for both methods
Definition at line 163 of file btTypedConstraint.h.
References btJacobianEntry, btPlaneSpace1(), btVector3, calcAngleInfo2(), btRigidBody::getCenterOfMassPosition(), btRigidBody::getCenterOfMassTransform(), btRigidBody::getInvInertiaDiagLocal(), btRigidBody::getInvInertiaTensorWorld(), btRigidBody::getInvMass(), m_accMotorImpulse, m_accSwingLimitImpulse, m_accTwistLimitImpulse, m_angularOnly, m_appliedImpulse, m_rbA, m_rbAFrame, m_rbB, m_rbBFrame, m_useSolveConstraintObsolete, normal, and SIMD_EPSILON.
Referenced by setFrames().
|
virtual |
enableFeedback will allow to read the applied linear and angular impulse use getAppliedImpulse, getAppliedLinearImpulse and getAppliedAngularImpulse to read feedback information
Definition at line 289 of file btTypedConstraint.h.
References m_needsFeedback, and needsFeedback().
btScalar getAppliedImpulse | ( | ) | const |
getAppliedImpulse is an estimated total applied impulse. This feedback could be used to determine breaking constraints or playing sounds.
Definition at line 296 of file btTypedConstraint.h.
References btAssert, m_appliedImpulse, and m_needsFeedback.
btScalar getBreakingImpulseThreshold | ( | ) | const |
Definition at line 191 of file btTypedConstraint.h.
References m_breakingImpulseThreshold.
btTypedConstraintType getConstraintType | ( | ) | const |
Definition at line 302 of file btTypedConstraint.h.
btScalar getDbgDrawSize | ( | ) |
Definition at line 311 of file btTypedConstraint.h.
References m_dbgDrawSize.
|
static |
|
pure virtual |
internal method used by the constraint solver, don't use them directly
|
pure virtual |
internal method used by the constraint solver, don't use them directly
btJointFeedback * getJointFeedback | ( | ) | const |
Definition at line 267 of file btTypedConstraint.h.
References m_jointFeedback.
|
protected |
internal method used by the constraint solver, don't use them directly
Definition at line 54 of file btTypedConstraint.cpp.
References pos.
Referenced by get_limit_motor_info2(), getInfo2Internal(), getInfo2InternalUsingFrameOffset(), and getInfo2NonVirtual().
int getOverrideNumSolverIterations | ( | ) | const |
Definition at line 150 of file btTypedConstraint.h.
References m_overrideNumSolverIterations.
|
pure virtual |
return the local value of parameter
const btRigidBody& getRigidBodyA | ( | ) | const |
Definition at line 214 of file btTypedConstraint.h.
References m_rbA.
const btRigidBody& getRigidBodyB | ( | ) | const |
Definition at line 218 of file btTypedConstraint.h.
References m_rbB.
int getUid | ( | ) | const |
Definition at line 277 of file btTypedConstraint.h.
References m_userConstraintId.
int getUserConstraintId | ( | ) | const |
Definition at line 247 of file btTypedConstraint.h.
References m_userConstraintId.
void* getUserConstraintPtr | ( | ) |
Definition at line 257 of file btTypedConstraint.h.
References m_userConstraintPtr.
int getUserConstraintType | ( | ) | const |
Definition at line 232 of file btTypedConstraint.h.
btScalar internalGetAppliedImpulse | ( | ) |
internal method used by the constraint solver, don't use them directly
Definition at line 186 of file btTypedConstraint.h.
References m_appliedImpulse.
internal method used by the constraint solver, don't use them directly
Definition at line 181 of file btTypedConstraint.h.
References m_appliedImpulse.
bool isEnabled | ( | ) | const |
Definition at line 201 of file btTypedConstraint.h.
References m_isEnabled.
Referenced by convertJoints(), and solveSingleIteration().
bool needsFeedback | ( | ) | const |
Definition at line 282 of file btTypedConstraint.h.
References m_needsFeedback.
Referenced by enableFeedback().
btTypedConstraint& operator= | ( | btTypedConstraint & | other | ) |
Definition at line 89 of file btTypedConstraint.h.
|
virtual |
fills the dataBuffer and returns the struct name (and 0 on failure)
Definition at line 196 of file btTypedConstraint.h.
References m_breakingImpulseThreshold, and threshold.
Definition at line 307 of file btTypedConstraint.h.
References m_dbgDrawSize.
Definition at line 206 of file btTypedConstraint.h.
References enabled, and m_isEnabled.
void setJointFeedback | ( | btJointFeedback * | jointFeedback | ) |
Definition at line 262 of file btTypedConstraint.h.
References m_jointFeedback.
void setOverrideNumSolverIterations | ( | int | overideNumIterations | ) |
override the number of constraint solver iterations used to solve this constraint -1 will use the default number of iterations, as specified in SolverInfo.m_numIterations
Definition at line 157 of file btTypedConstraint.h.
References m_overrideNumSolverIterations.
override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). If no axis is provided, it uses the default axis for this constraint.
|
virtual |
internal method used by the constraint solver, don't use them directly
Definition at line 166 of file btTypedConstraint.h.
References void.
void setUserConstraintId | ( | int | uid | ) |
Definition at line 242 of file btTypedConstraint.h.
References m_userConstraintId.
Definition at line 252 of file btTypedConstraint.h.
References m_userConstraintPtr, and ptr.
void setUserConstraintType | ( | int | userConstraintType | ) |
Definition at line 237 of file btTypedConstraint.h.
|
virtual |
internal method used by the constraint solver, don't use them directly
solve angular part
Definition at line 212 of file btTypedConstraint.h.
References btAssert, btMax(), btTransform, btVector3, btTransformUtil::calculateVelocity(), btRigidBody::computeAngularImpulseDenominator(), blender::math::dot(), btRigidBody::getCenterOfMassPosition(), btRigidBody::getCenterOfMassTransform(), btRigidBody::getInvInertiaTensorWorld(), btRigidBody::getInvMass(), getRigidBodyA(), getRigidBodyB(), btTransformUtil::integrateTransform(), m_accMotorImpulse, m_accSwingLimitImpulse, m_accTwistLimitImpulse, m_angularOnly, m_appliedImpulse, m_biasFactor, m_bMotorEnabled, m_bNormalizedMotorStrength, m_damping, m_kSwing, m_kTwist, m_maxMotorImpulse, m_qTarget, m_rbA, m_rbAFrame, m_rbB, m_rbBFrame, m_relaxationFactor, m_solveSwingLimit, m_solveTwistLimit, m_swingAxis, m_swingCorrection, m_swingLimitRatio, m_twistAxis, m_twistAxisA, m_twistCorrection, m_twistLimitRatio, m_useSolveConstraintObsolete, normal, and SIMD_EPSILON.
|
virtual |
Definition at line 109 of file btTypedConstraint.h.
union { ... } |
btTypedConstraint __pad0__ |
TypedConstraint is the baseclass for Bullet constraints and vehicles.
Definition at line 75 of file btTypedConstraint.h.
btJointFeedback |
Definition at line 64 of file btTypedConstraint.h.
Referenced by convertJoints(), internalInitMultipleJoints(), and writeBackJoints().
btVector3 m_appliedForceBodyA |
Definition at line 67 of file btTypedConstraint.h.
btVector3 m_appliedForceBodyB |
Definition at line 69 of file btTypedConstraint.h.
|
protected |
Definition at line 99 of file btTypedConstraint.h.
Referenced by getAppliedImpulse(), internalGetAppliedImpulse(), and internalSetAppliedImpulse().
btVector3 m_appliedTorqueBodyA |
Definition at line 68 of file btTypedConstraint.h.
btVector3 m_appliedTorqueBodyB |
Definition at line 70 of file btTypedConstraint.h.
btScalar m_breakingImpulseThreshold |
Definition at line 84 of file btTypedConstraint.h.
Referenced by getBreakingImpulseThreshold(), and setBreakingImpulseThreshold().
|
protected |
Definition at line 100 of file btTypedConstraint.h.
Referenced by getDbgDrawSize(), and setDbgDrawSize().
bool m_isEnabled |
Definition at line 85 of file btTypedConstraint.h.
Referenced by isEnabled(), and setEnabled().
|
protected |
Definition at line 101 of file btTypedConstraint.h.
Referenced by getJointFeedback(), and setJointFeedback().
bool m_needsFeedback |
Definition at line 86 of file btTypedConstraint.h.
Referenced by enableFeedback(), getAppliedImpulse(), and needsFeedback().
int m_overrideNumSolverIterations |
Definition at line 87 of file btTypedConstraint.h.
Referenced by getOverrideNumSolverIterations(), and setOverrideNumSolverIterations().
|
protected |
Definition at line 97 of file btTypedConstraint.h.
Referenced by btHingeConstraint(), buildAngularJacobian(), buildJacobian(), buildLinearJacobian(), calcAnchorPos(), calculateTransforms(), get_limit_motor_info2(), getAncorInA(), getHingeAngle(), btGearConstraint::getInfo2(), getInfo2NonVirtual(), getRigidBodyA(), initParams(), setAxis(), setFrames(), setMotorTarget(), and solveConstraintObsolete().
|
protected |
Definition at line 98 of file btTypedConstraint.h.
Referenced by buildAngularJacobian(), buildJacobian(), buildLinearJacobian(), calcAnchorPos(), calculateTransforms(), get_limit_motor_info2(), getHingeAngle(), btGearConstraint::getInfo2(), getInfo2NonVirtual(), getRigidBodyB(), initParams(), setAxis(), setFrames(), setMotorTarget(), and solveConstraintObsolete().
int m_userConstraintId |
Definition at line 80 of file btTypedConstraint.h.
Referenced by getUid(), getUserConstraintId(), btRaycastVehicle::getUserConstraintId(), setUserConstraintId(), and btRaycastVehicle::setUserConstraintId().
void* m_userConstraintPtr |
Definition at line 81 of file btTypedConstraint.h.
Referenced by getUserConstraintPtr(), and setUserConstraintPtr().