|
| | ConstraintHolder () |
| |
| bool | add (agx::ConstraintImplementation *constraint) |
| | Add 'interface less' constraint implementation.
|
| |
| void | clear () |
| | Remove all constraints.
|
| |
| bool | remove (agx::ConstraintImplementation *constraint) |
| | Remove constraint implementation.
|
| |
| 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.
|
| |
|
| enum | SolveType { DIRECT = 1
, ITERATIVE = (1<<2)
, DIRECT_AND_ITERATIVE = (DIRECT | ITERATIVE)
} |
| | Specifies in what solvers the constraint will be solved. More...
|
| |
| 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.
|
| |
| agx::ConstraintImplementation * | m_implementation |
| |
| Mutex | m_mutex |
| |
| ObserverContainer | m_observers |
| |
| AtomicValue | m_refCount |
| |
Utility class to hold custom implementations of constraints.
Add this constraint to a simulation then by adding implementation to this holder the implementations makes it to the solver.
Definition at line 524 of file agxUtil.h.