1#ifndef BT_REDUCED_SOFT_BODY_H
2#define BT_REDUCED_SOFT_BODY_H
4#include "../btSoftBody.h"
239 #if defined(BT_CLAMP_VELOCITY_TO) && BT_CLAMP_VELOCITY_TO > 0
242 fmax(-BT_CLAMP_VELOCITY_TO,
243 fmin(BT_CLAMP_VELOCITY_TO, v.
getX()))
246 fmax(-BT_CLAMP_VELOCITY_TO,
247 fmin(BT_CLAMP_VELOCITY_TO, v.
getY()))
250 fmax(-BT_CLAMP_VELOCITY_TO,
251 fmin(BT_CLAMP_VELOCITY_TO, v.
getZ()))
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
void applyFullSpaceNodalForce(const btVector3 &f_ext, int n_node)
btMatrix3x3 m_invInertiaTensorWorldInitial
void predictIntegratedTransform(btScalar dt, btTransform &predictedTransform)
void applyTorqueImpulse(const btVector3 &torque)
btVector3 m_angularVelocityFromReduced
btAlignedObjectArray< btScalar > tDenseArray
const btVector3 computeNodeFullVelocity(const btTransform &ref_trans, int n_node) const
~btReducedDeformableBody()
btMatrix3x3 m_interpolateInvInertiaTensorWorld
void applyInternalVelocityChanges()
btVector3 getRelativePos(int n_node)
btAlignedObjectArray< int > m_fixedNodes
btReducedDeformableBody(btSoftBodyWorldInfo *worldInfo, int node_count, const btVector3 *x, const btScalar *m)
btVector3 m_linearVelocity
btVector3 m_internalDeltaAngularVelocity
btVector3 m_internalDeltaLinearVelocity
virtual void transform(const btTransform &trs)
tDenseArray m_internalDeltaReducedVelocity
void mapToFullVelocity(const btTransform &ref_trans)
void endOfTimeStepZeroing()
const btVector3 & getAngularVelocity() const
void updateInertiaTensor()
tDenseArray m_reducedVelocityBuffer
btVector3 m_internalDeltaAngularVelocityFromReduced
btScalar m_angularDamping
void setRigidAngularVelocity(const btVector3 &omega)
btVector3 m_angularFactor
btMatrix3x3 m_invInertiaTensorWorld
void setReducedModes(int num_modes, int full_size)
void updateReducedVelocity(btScalar solverdt)
void disableReducedModes(const bool rigid_only)
btAlignedObjectArray< btVector3 > TVStack
const btVector3 & getLinearVelocity() const
btVector3 m_linearVelocityFromReduced
void updateModesByRotation(const btMatrix3x3 &rotation)
virtual btMatrix3x3 getImpulseFactor(int n_node)
bool isReducedModesOFF() const
void setRigidVelocity(const btVector3 &v)
btVector3 m_angularVelocity
const btVector3 internalComputeNodeDeltaVelocity(const btTransform &ref_trans, int n_node) const
tDenseArray m_reducedVelocity
const btVector3 computeTotalAngularMomentum() const
btAlignedObjectArray< btAlignedObjectArray< btScalar > > tDenseMatrix
void applyCentralImpulse(const btVector3 &impulse)
void updateExternalForceProjectMatrix(bool initialized)
void applyReducedElasticForce(const tDenseArray &reduce_dofs)
void updateLocalMomentArm()
void internalApplyFullSpaceImpulse(const btVector3 &impulse, const btVector3 &rel_pos, int n_node, btScalar dt)
void applyReducedDampingForce(const tDenseArray &reduce_vel)
void setDamping(const btScalar alpha, const btScalar beta)
void setStiffnessScale(const btScalar ks)
btMatrix3x3 m_invInertiaLocal
void setMassScale(const btScalar rho)
tDenseArray m_reducedForceExternal
void applyDamping(btScalar timeStep)
void updateInitialInertiaTensor(const btMatrix3x3 &rotation)
tDenseArray m_reducedForceDamping
tDenseArray m_reducedForceElastic
btScalar getTotalMass() const
void internalApplyRigidImpulse(const btVector3 &impulse, const btVector3 &rel_pos)
void setFixedNodes(const int n_node)
tDenseArray m_reducedDofs
void setMassProps(const tDenseArray &mass_array)
virtual void transformTo(const btTransform &trs)
tDenseArray m_eigenvalues
virtual void scale(const btVector3 &scl)
void internalInitialization()
void applyRigidGravity(const btVector3 &gravity, btScalar dt)
void updateReducedDofs(btScalar solverdt)
btTransform m_rigidTransformWorld
void proceedToTransform(btScalar dt, bool end_of_time_step)
void mapToFullPosition(const btTransform &ref_trans)
btAlignedObjectArray< int > m_contactNodesList
void updateRestNodalPositions()
void updateLocalInertiaTensorFromNodes()
virtual void setTotalMass(btScalar mass, bool fromfaces=false)
btTransform & getRigidTransform()
tDenseArray m_reducedDofsBuffer
The btSoftBody is an class to simulate cloth and volumetric soft bodies.
btVector3 can be used to represent 3D points and vectors.
const btScalar & getZ() const
Return the z value.
void setZ(btScalar _z)
Set the z value.
void setY(btScalar _y)
Set the y value.
void setX(btScalar _x)
Set the x value.
const btScalar & getY() const
Return the y value.
const btScalar & getX() const
Return the x value.