A prismatic joint keeps a fixed relative orientation between the attached bodies but allows them to slide along a given axis.
More...
|
| Prismatic (const PrismaticFrame &pf, RigidBody *rb1, RigidBody *rb2=0) |
| Create a Prismatic joint given a prismatic frame (world coordinates) and one or two rigid bodies.
|
|
| Prismatic (const Vec3 &axis, RigidBody *rb1, RigidBody *rb2=nullptr) |
| Create a Prismatic joint given the prismatic axis and one or two rigid bodies.
|
|
| Prismatic (RigidBody *rb1, Frame *rb1AttachmentFrame, RigidBody *rb2=nullptr, Frame *rb2AttachmentFrame=nullptr) |
| Create a Prismatic joint given attachment frames and one or two rigid bodies.
|
|
| AGXSTREAM_DECLARE_SERIALIZABLE_BASE (agx::Prismatic) |
|
virtual int | getNumDOF () const override |
|
agx::Real | getAngle () const |
| This method return the current angle for the 1D constraint.
|
|
agx::Real | getCurrentSpeed () const |
| This methods return the current speed for the 1D constraint.
|
|
agx::ElectricMotorController * | getElectricMotorController () |
|
const agx::ElectricMotorController * | getElectricMotorController () const |
|
agx::FrictionController * | getFrictionController () |
|
const agx::FrictionController * | getFrictionController () const |
|
agx::Lock1D * | getLock1D () |
|
const agx::Lock1D * | getLock1D () const |
|
agx::Motor1D * | getMotor1D () |
|
const agx::Motor1D * | getMotor1D () const |
|
agx::Range1D * | getRange1D () |
|
const agx::Range1D * | getRange1D () const |
|
agx::Bool | addElementaryConstraint (const agx::Name &name, agx::ElementaryConstraint *elementaryConstraint) |
| Add elementary constraint (like Spherical, Dot1, Dot2 etc) given name.
|
|
agx::Bool | addSecondaryConstraint (const agx::Name &name, agx::ElementaryConstraint *secondaryConstraint) |
| Add secondary constraint (like motor, range and/or lock etc) given name.
|
|
| AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE (agx::Constraint) |
|
template<typename T > |
T * | as () |
| Try to do dynamic_cast on the constraint and return a pointer to the casted constraint.
|
|
template<typename T > |
const T * | as () const |
| Try to do dynamic_cast on the constraint and return a pointer to the casted constraint.
|
|
RealVector | calculateCurrentViolation () const |
| Calculates the current violation of the ordinary degrees of freedom of this constraint, e.g., three translational and two rotational (total 5 elements) of a hinge, i.e., controllers DOF are not included.
|
|
agx::UInt | calculateNumActiveRows () const |
| Calculates the current number of active rows, including both elementary and secondary constraints.
|
|
template<typename T > |
ref_ptr< T > | createFromBody (Vec3 bodyPoint, Vec3 bodyAxis, RigidBody *rb1, RigidBody *rb2) |
|
template<typename T > |
ref_ptr< T > | createFromWorld (Vec3 worldPoint, Vec3 worldAxis, RigidBody *rb1, RigidBody *rb2) |
|
agx::Attachment * | getAttachment (agx::UInt i) const |
|
agx::RigidBodyAttachment * | getAttachment (const agx::RigidBody *rb) const |
|
agx::AttachmentPair * | getAttachmentPair () const |
|
agx::RigidBody * | getBodyAt (agx::UInt i) |
|
const agx::RigidBody * | getBodyAt (agx::UInt i) const |
|
virtual agx::Real | getCompliance (agx::UInt dof) const |
| Get the compliance for DOF i.
|
|
agx::Real | getCurrentForce (agx::UInt dof) const |
| Consider using getLastForce instead.
|
|
virtual Real | getDamping (agx::UInt dof) const |
| Get the damping for DOF dof .
|
|
virtual agx::Real | getElasticity (agx::UInt dof) const |
| Get the elasticity for DOF i.
|
|
agx::ElementaryConstraint * | getElementaryConstraint (const agx::UInt index) const |
|
agx::ElementaryConstraint * | getElementaryConstraintGivenName (const agx::Name &name) const |
| Find elementary constraint given name.
|
|
agx::Bool | getEnable () const |
|
agx::Bool | getEnableComputeForces () const |
|
bool | getEnableDebugRendering () const |
|
bool | getEnableLinearization () const |
|
agx::UInt32 | getEntityId () const |
|
agx::RangeReal | getForceRange (agx::UInt dof=0) const |
| Get the force range for DOF dof .
|
|
agx::Bool | getLastForce (agx::UInt bodyIndex, agx::Vec3 &retForce, agx::Vec3 &retTorque, agx::Bool giveForceAtCm=false) const |
| If 'compute forces' is enabled, returns the last force and torque applied by this constraint on the body with bodyIndex .
|
|
agx::Bool | getLastForce (const agx::RigidBody *rb, agx::Vec3 &retForce, agx::Vec3 &retTorque, agx::Bool giveForceAtCm=false) const |
| If 'compute forces' is enabled, returns the last force and torque applied by this constraint on the body rb .
|
|
agx::Bool | getLastLocalForce (agx::UInt bodyIndex, agx::Vec3 &retForce, agx::Vec3 &retTorque, agx::Bool giveForceAtCm=false) const |
| If 'compute forces' is enabled, returns the last force and torque applied by this constraint on the body with bodyIndex .
|
|
agx::Bool | getLastLocalForce (const agx::RigidBody *rb, agx::Vec3 &retForce, agx::Vec3 &retTorque, agx::Bool giveForceAtCm=false) const |
| If 'compute forces' is enabled, returns the last force and torque applied by this constraint on the body rb .
|
|
agx::UInt | getNumBodies () const |
| returns the number of bodies involved
|
|
virtual int | getNumDOF () const =0 |
|
agx::UInt | getNumElementaryConstraints () const |
|
agx::UInt | getNumSecondaryConstraints () const |
|
virtual agx::RegularizationParameters * | getRegularizationParameters (agx::UInt i) |
|
virtual const agx::RegularizationParameters * | getRegularizationParameters (agx::UInt i) const |
|
agx::ConstraintImplementation * | getRep () |
|
const agx::ConstraintImplementation * | getRep () const |
|
agx::ElementaryConstraint * | getSecondaryConstraint (const agx::UInt index) const |
|
agx::ElementaryConstraint * | getSecondaryConstraintGivenName (const agx::Name &name) const |
| Find secondary constraint given name.
|
|
agx::Constraint::SolveType | getSolveType () const |
|
agx::Bool | getValid () const |
|
agx::Bool | isEnabled () const |
|
virtual agx::Bool | rebind () |
| Rebind this constraint, i.e., use current state as the initial configuration.
|
|
agx::Bool | removeElementaryConstraint (agx::ElementaryConstraint *elementaryConstraint) |
| Remove elementary constraint.
|
|
agx::Bool | removeElementaryConstraint (const agx::Name &name) |
| Remove elementary constraint.
|
|
agx::Bool | removeSecondaryConstraint (agx::ElementaryConstraint *secondaryConstraint) |
| Remove secondary constraint.
|
|
agx::Bool | removeSecondaryConstraint (const agx::Name &name) |
| Remove secondary constraint.
|
|
virtual void | render (class agxRender::RenderManager *mgr, float scale) const =0 |
| Inherited method of how to render this constraint into DebugRenderer.
|
|
void | restore (agxStream::InputArchive &in) override |
|
virtual void | restoreLightData (agxStream::StorageStream &str) override |
|
void | setCompliance (agx::Real compliance) |
| Set the compliance of this constraint for all DOFs.
|
|
virtual void | setCompliance (agx::Real compliance, agx::Int dof) |
| Set the compliance of this constraint for the i:th DOF.
|
|
void | setDamping (agx::Real damping) |
| Set the damping of this constraint for all DOFs.
|
|
virtual void | setDamping (agx::Real damping, agx::Int dof) |
| Set the damping of this constraint for the i:th DOF.
|
|
virtual void | setElasticity (agx::Real elasticity) |
| Set the elasticity of this constraint for all DOFs.
|
|
virtual void | setElasticity (agx::Real elasticity, agx::Int dof) |
| Set the elasticity of this constraint for the i:th DOF.
|
|
virtual void | setEnable (agx::Bool enable) |
| Enable/disable a constraint.
|
|
void | setEnableComputeForces (agx::Bool enable) |
| Enable (or disable) computation of the forces applied to the dynamic bodies in this constraint.
|
|
void | setEnableDebugRendering (agx::Bool enable) |
| Enable/disable debug rendering of this constraint.
|
|
void | setEnableLinearization (bool enable) |
| Pass true to enable linearization of constraint compliance.
|
|
void | setForceRange (agx::RangeReal forceRange) |
| Assign force range for all DOF of the elementary constraints.
|
|
void | setForceRange (agx::RangeReal forceRange, agx::Int dof) |
| Assign force range, of an elementary constraint, for a given DOF.
|
|
void | setForceRange (agx::Real lower, agx::Real upper, agx::Int dof) |
| Assign force range, of an elementary constraint, for a given DOF.
|
|
void | setSolveType (agx::Constraint::SolveType solveType) |
| Specify the solve type for this constraint.
|
|
void | store (agxStream::OutputArchive &out) const override |
|
virtual void | storeLightData (agxStream::StorageStream &str) const override |
|
| Interaction () |
| Default constructor.
|
|
| AGXSTREAM_DECLARE_SERIALIZABLE_BASE (agx::Interaction) |
|
const agx::Name & | getName () const |
|
agx::PropertyContainer * | getPropertyContainer () |
|
const agx::PropertyContainer * | getPropertyContainer () const |
|
agxSDK::SimulationProxy * | getSimulationProxy () const |
|
agx::Bool | hasPropertyContainer () const |
|
virtual void | postSystemCallback (agx::DynamicsSystem *) |
| Called after all post step events, after solve.
|
|
virtual void | preSystemCallback (agx::DynamicsSystem *) |
| Called after all pre step events, before solve.
|
|
void | setName (const agx::Name &name) |
| Name this interaction.
|
|
void | setPropertyContainer (agx::PropertyContainer *propertyContainer) |
| Assign a new property container.
|
|
virtual void | updateForce (agx::DynamicsSystem *dynamicsSystem) |
| This virtual method is implemented so that it computes the interaction forces on all the physical bodies implicated.
|
|
| Referenced () |
| Default constructor.
|
|
| Referenced (const Referenced &) |
|
template<typename T > |
T * | as () |
| Subclass casting.
|
|
template<typename T > |
const T * | as () const |
|
template<typename T > |
T * | asSafe () |
| Safe subclass casting, return nullptr if template type does not match.
|
|
template<typename T > |
const T * | asSafe () const |
|
int | getReferenceCount () const |
|
template<typename T > |
bool | is () const |
| Subclass test.
|
|
Referenced & | operator= (const Referenced &) |
| Assignment operator. Will increment the number of references to the referenced object.
|
|
void | reference (void *ptr=nullptr) const |
| Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it.
|
|
void | unreference (void *ptr=nullptr) const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it.
|
|
void | unreference_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it.
|
|
virtual | ~Serializable () |
| Destructor for normal C++ use but hidden from SWIG bindings.
|
|
virtual const char * | getClassName () const |
|
bool | getEnableSerialization () const |
|
bool | getEnableUuidGeneration () |
|
agx::UInt32 | getIndex () const |
| This index is given at creation of this object.
|
|
virtual StorageAgent * | getStorageAgent () const =0 |
|
agx::Uuid | getUuid () const |
|
bool | isFinished () const |
|
void | setEnableSerialization (bool flag) |
| Set to false to disable serialization of this object.
|
|
void | setFinished () |
| Tells this class that it is restored correctly and should not be deleted during destruction of an Archive.
|
|
void | setUuid (const agx::Uuid &uuid) |
| Explicitly set a Uuid on a serializable object.
|
|
|
static agxStream::Serializable * | create (agxStream::InputArchive &) |
|
static agx::Constraint1DOF * | safeCast (const agx::Constraint *constraint) |
| Utility method for not so type safe languages.
|
|
static agx::Bool | calculateFramesFromBody (agx::Vec3 bodyPoint, agx::Vec3 bodyAxis, agx::Vec3 secondBodyAxis, const agx::RigidBody *body, agx::Frame *bodyFrame, const agx::RigidBody *otherBody, agx::Frame *otherFrame) |
| Calculates the constraint attachment frames given point and axes in body coordinates of body .
|
|
static agx::Bool | calculateFramesFromBody (agx::Vec3 bodyPoint, agx::Vec3 bodyAxis, const agx::RigidBody *body, agx::Frame *bodyFrame, const agx::RigidBody *otherBody, agx::Frame *otherFrame) |
| Calculates the constraint attachment frames given point and axis in body coordinates of body .
|
|
static agx::Bool | calculateFramesFromWorld (agx::Vec3 worldPoint, agx::Vec3 worldAxis, agx::Vec3 secondWorldAxis, const agx::RigidBody *rb1, agx::Frame *rb1Frame, const agx::RigidBody *rb2, agx::Frame *rb2Frame) |
| Given a point and two axes in world, this function calculates each local attachment frame for one or two bodies.
|
|
static agx::Bool | calculateFramesFromWorld (agx::Vec3 worldPoint, agx::Vec3 worldAxis, const agx::RigidBody *rb1, agx::Frame *rb1Frame, const agx::RigidBody *rb2, agx::Frame *rb2Frame) |
| Given a point and an axis in world, this function calculates each local attachment frame for one or two bodies.
|
|
template<typename T > |
static agx::ref_ptr< T > | createFromBody (agx::Vec3 bodyPoint, agx::Vec3 bodyAxis, agx::RigidBody *rb1, agx::RigidBody *rb2=nullptr) |
| Creates a constraint given a point and an axis in rb1 model frame.
|
|
template<typename T > |
static agx::ref_ptr< T > | createFromWorld (agx::Vec3 worldPoint, agx::Vec3 worldAxis, agx::RigidBody *rb1, agx::RigidBody *rb2=nullptr) |
| Creates a constraint given a point and an axis in world frame.
|
|
static agxStream::Serializable * | create (agxStream::InputArchive &) |
|
template<typename T > |
static bool | ValidateCast (const Referenced *object) |
|
static void | setEnableUuidGeneration (bool flag) |
| Specify if there should be UUID:s generated for each new Serializable object. By default it is enabled.
|
|
A prismatic joint keeps a fixed relative orientation between the attached bodies but allows them to slide along a given axis.
Hydraulics and elevators are examples of using a Prismatic constraint.
Definition at line 66 of file Prismatic.h.