AGX Dynamics 2.41.1.2
Loading...
Searching...
No Matches
agx::DynamicsSystem Class Reference

The complete physical system with bodies, interactions, data layout, time stepper, and solver. More...

#include <DynamicsSystem.h>

+ Inheritance diagram for agx::DynamicsSystem:

Public Member Functions

 DynamicsSystem ()
 Default constructor.
 
 DynamicsSystem (agx::Device *device)
 Create a DynamicsSystem with a specific device.
 
bool add (agx::Constraint *constraint)
 Add a constraint from the simulation.
 
bool add (agx::Interaction *interaction)
 Add an Interaction to the system.
 
bool add (agx::ObserverFrame *observerFrame)
 Add a ObserverFrame to the system.
 
bool add (agx::RigidBody *rigidBody)
 Add a RigidBody to the system.
 
void disableSolverDataExtraction ()
 Disable solver data extraction.
 
void enableSolverDataExtraction (const agx::String &filename, const agx::String &solverDataGroup)
 Enable solver data extraction.
 
agx::Vec3 getAngularMomentum () const
 Return the total angular momentum in the system.
 
agx::ConstraintgetConstraint (const agx::Uuid &uuid)
 Find and return a pointer to a Constraint with the given uuid.
 
const agx::ConstraintgetConstraint (const agx::Uuid &uuid) const
 Find (linear search) and return a pointer to a Constraint with the given uuid.
 
ConstraintgetConstraint (const Name &name)
 Find (linear search) the first Constraint object in the system that matches the name.
 
const ConstraintgetConstraint (const Name &name) const
 Find (linear search) the first Constraint object in the system that matches the name.
 
agx::ConstraintRefSetVectorgetConstraints ()
 
const agx::ConstraintRefSetVectorgetConstraints () const
 
bool getEnableContactWarmstarting () const
 
agx::RigidBodyPtrSetVectorgetEnabledRigidBodies ()
 
const agx::RigidBodyPtrSetVectorgetEnabledRigidBodies () const
 
bool getEnableSolverDataExtraction () const
 
const agxCollide::GeometryContactPtrVectorgetGeometryContacts () const
 Get the geometry contacts to be resolved.
 
const agx::InteractionRefSetVectorgetInteractions () const
 
agx::Vec3 getLinearMomentum () const
 Return the total linear momentum in the system.
 
agx::ObserverFramegetObserverFrame (const agx::Uuid &uuid)
 Find and return a pointer to a ObserverFrame with the given uuid.
 
const agx::ObserverFramegetObserverFrame (const agx::Uuid &uuid) const
 Find (linear search) and return a pointer to a ObserverFrame with the given uuid.
 
ObserverFramegetObserverFrame (const Name &name)
 Find (linear search) the first ObserverFrame object in the system that matches the name.
 
const ObserverFramegetObserverFrame (const Name &name) const
 Find (linear search) the first ObserverFrame object in the system that matches the name.
 
ObserverFrameRefSetVectorgetObserverFrames ()
 
const ObserverFrameRefSetVectorgetObserverFrames () const
 
agx::RigidBodyRefVectorgetRigidBodies ()
 
const agx::RigidBodyRefVectorgetRigidBodies () const
 
agx::RigidBodygetRigidBody (const agx::Uuid &uuid)
 Find (linear search) and return a pointer to a RigidBody with the given uuid.
 
const agx::RigidBodygetRigidBody (const agx::Uuid &uuid) const
 Find (linear search) and return a pointer to a RigidBody with the given uuid.
 
RigidBodygetRigidBody (const Name &name)
 Find (linear search) the first Physical in the system that matches the name.
 
const RigidBodygetRigidBody (const Name &name) const
 Find (linear search) the first Physical in the system that matches the name.
 
agx::Solver * getSolver ()
 
const agx::Solver * getSolver () const
 
const agx::StrongInteractionRefSetVectorgetStrongInteractions () const
 
agx::TimeGovernorgetTimeGovernor ()
 
const agx::TimeGovernorgetTimeGovernor () const
 
bool remove (agx::Constraint *constraint)
 Remove a constraint from the simulation.
 
bool remove (agx::Interaction *interaction)
 Remove the specified Interaction from the system.
 
bool remove (agx::ObserverFrame *observerFrame)
 Schedule a ObserverFrame for removal.
 
bool remove (agx::RigidBody *rigidBody)
 Schedule a RigidBody for removal.
 
void setEnableContactWarmstarting (bool enable)
 Contact warmstarting adds an extra step to the solver where the previous timesteps contact data is matched to the current timesteps data so the previous forces can be used by the solver to find a solution faster when direct friction is used.
 
void setGeometryContacts (const agxCollide::GeometryContactPtrVector *contacts)
 Set the geometry contacts to resolve.
 
void setTimeGovernor (agx::TimeGovernor *tg)
 Replace the current iTimeGovernor with the specified one.
 
void stepForward ()
 Step the Dynamics system forward using dt calculated from the current TimeGovernor.
 
- Public Member Functions inherited from agx::Component
 Component (const agx::Name &name=agx::Name(), agx::Model *model=agx::Component::ClassModel(), agx::Device *device=nullptr)
 
virtual void addObject (agx::Object *object, bool assignContext=true)
 Add an object to the component.
 
virtual String autoComplete (const String &partialName, StringVector &matchingNames) const
 
virtual void buildNavigationTree (agxJson::Value &eNode) const override
 
void configure (Model *model)
 
virtual void configure (TiXmlElement *eComponent) override
 
agx::DevicegetDevice ()
 
template<typename T >
T * getDevice ()
 
const agx::DevicegetDevice () const
 
template<typename T >
const T * getDevice () const
 
size_t getNumObjects (const agx::Name &name) const
 
agx::ObjectgetObject (const agx::Name &name, agx::Model *model, size_t index=0)
 
const agx::ObjectgetObject (const agx::Name &name, agx::Model *model, size_t index=0) const
 
agx::ObjectgetObject (const agx::Name &name, size_t index=0)
 
template<typename T >
T * getObject (const agx::Name &name, size_t index=0)
 
const agx::ObjectgetObject (const agx::Name &name, size_t index=0) const
 
template<typename T >
const T * getObject (const agx::Name &name, size_t index=0) const
 
const agx::ObjectRefVectorgetObjects () const
 
template<typename T >
void getObjects (agx::ObjectPtrVector &result, bool recursive=false) const
 
void getObjects (agx::ObjectPtrVector &result, const agx::Model *model, bool recursive=false) const
 
virtual ObjectgetResourceImpl (const Path &path, agx::Model *model) override
 
virtual void printSubtree () const override
 
void printSubtree (std::ostream &stream, int depth=0) const
 
virtual void rebind () override
 
void removeAllObjects ()
 Remove all components.
 
virtual void removeObject (agx::Object *object)
 Remove an object from the component.
 
void removeObject (const agx::Name &name, size_t index=0)
 Remove an object with a specified name (and optional index) from the component.
 
virtual void snapshot (TiXmlNode *eParent, const String &directory) const override
 
void traverse (ComponentVisitor *)
 
void traverse (const TraverseCallback &callback)
 
- Public Member Functions inherited from agx::Object
 Object (const Name &name=Name(), Model *model=Object::ClassModel())
 
void addListener (EventListener *listener)
 
virtual void buildNavigationTree (agxJson::Value &eNode) const
 
virtual void configure (TiXmlElement *)
 
agx::String fullName () const
 
agx::String fullPath () const
 
agx::String fullPath (const agx::Object *root) const
 
template<typename T >
T * getAutoScopedResource (const agx::Path &path)
 
template<typename T >
const T * getAutoScopedResource (const agx::Path &path) const
 
agx::ObjectgetAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::ObjectgetAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) const
 
agx::ObjectgetContext ()
 
template<typename T >
T * getContext ()
 
const agx::ObjectgetContext () const
 
template<typename T >
const T * getContext () const
 
agx::UInt32 getId () const
 
const agx::NamegetImplementationName () const
 
agx::ModelgetModel ()
 
const agx::ModelgetModel () const
 
const agx::NamegetName () const
 
agx::ObjectgetNextSibling ()
 
const agx::ObjectgetNextSibling () const
 
agx::Path getPath () const
 
agx::Path getPath (const agx::Object *root) const
 
template<typename T >
T * getResource (const agx::Path &path)
 
template<typename T >
const T * getResource (const agx::Path &path) const
 
agx::ObjectgetResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::ObjectgetResource (const agx::Path &path, agx::Model *model=nullptr) const
 
virtual agx::ObjectgetResourceImpl (const agx::Path &path, agx::Model *model)
 
agx::ObjectgetRootContext ()
 
const agx::ObjectgetRootContext () const
 
bool hasListener (EventListener *listener)
 
bool hasParent (const agx::Object *node) const
 
bool isUnique () const
 
virtual void printSubtree () const
 
virtual void rebind ()
 
void removeListener (EventListener *listener)
 
virtual void save (TiXmlElement *) const
 
virtual void setContext (agx::Object *context)
 
void setId (UInt32 id)
 
void setModel (agx::Model *model)
 Set the object model (handled automatically).
 
void setName (const agx::Name &name)
 Set the name of the object.
 
virtual void snapshot (TiXmlNode *, const String &) const
 
- Public Member Functions inherited from agx::Referenced
 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.
 
Referencedoperator= (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.
 

Static Public Member Functions

static agx::ModelClassModel ()
 
- Static Public Member Functions inherited from agx::Component
static Component_load (TiXmlElement *eComponent, Device *device)
 
static agx::ModelClassModel ()
 
static Componentload (const Path &path, const Name &implementation, Device *device, const Path &_namespace=Path())
 
static Componentload (const String &path, const Path &_namespace=Path())
 
static Componentload (const String &path, Device *device, const Path &_namespace=Path())
 
static Componentload (TiXmlElement *eComponent, Device *device)
 
- Static Public Member Functions inherited from agx::Object
static agx::ModelClassModel ()
 
static agx::String generateName (const agx::String &bindPath)
 
static const HashSet< Object * > & getActiveObjects ()
 
static bool getEnableRebind ()
 Should rebinding be allowed? Right now a global setting.
 
static Objectload (const String &path, Device *device, const String &type, const String &attribute, const String &value)
 
template<typename T >
static T * load (const String &path, Device *device, const String &type, const String &attribute, const String &value)
 
static Objectload (const String &path, Device *device, const String &type="", size_t instance=0)
 
template<typename T >
static T * load (const String &path, Device *device, const String &type="", size_t instance=0)
 
static void load (const String &path, Device *device, ObjectPtrVector &loadedObjects)
 
static Objectload (TiXmlElement *eObject, Device *device)
 
template<typename T >
static T * load (TiXmlElement *eObject, Device *device)
 
static TiXmlDocument openDocument (const String &path)
 
static void setEnableRebind (bool flag)
 Sets if rebinding of objects should be allowed (Right now a global setting).
 
- Static Public Member Functions inherited from agx::Referenced
template<typename T >
static bool ValidateCast (const Referenced *object)
 

Protected Member Functions

virtual ~DynamicsSystem ()
 Destructor.
 
- Protected Member Functions inherited from agx::Component
virtual ~Component ()
 
String expandAutoCompletionMatch (const String &query, const StringVector &matchingNames) const
 
void setDevice (Device *device)
 
- Protected Member Functions inherited from agx::Object
virtual ~Object ()
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 

Additional Inherited Members

- Public Types inherited from agx::Component
typedef Event2< Component *, Object * > ObjectEvent
 Event when adding removing child objects.
 
typedef Callback1< Object * > TraverseCallback
 
- Public Types inherited from agx::Object
typedef agx::observer_ptr< const EventEventConstObserver
 
typedef agx::ref_ptr< const EventEventConstRef
 
typedef agx::observer_ptr< EventEventObserver
 
typedef agx::Vector< EventObserverEventObserverVector
 
typedef agx::VectorPOD< Event * > EventPtrVector
 
typedef agx::ref_ptr< EventEventRef
 
typedef agx::Vector< EventRefEventRefVector
 
- Public Attributes inherited from agx::Component
ObjectEvent addObjectEvent
 
ObjectEvent removeObjectEvent
 
- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandlergetDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Detailed Description

The complete physical system with bodies, interactions, data layout, time stepper, and solver.

The DynamicsSystem class holds all the data necessary to perform time integration.

Definition at line 63 of file DynamicsSystem.h.

Constructor & Destructor Documentation

◆ DynamicsSystem() [1/2]

agx::DynamicsSystem::DynamicsSystem ( )

Default constructor.

◆ DynamicsSystem() [2/2]

agx::DynamicsSystem::DynamicsSystem ( agx::Device device)

Create a DynamicsSystem with a specific device.

◆ ~DynamicsSystem()

virtual agx::DynamicsSystem::~DynamicsSystem ( )
protectedvirtual

Destructor.

Member Function Documentation

◆ add() [1/4]

bool agx::DynamicsSystem::add ( agx::Constraint constraint)

Add a constraint from the simulation.

Returns
true if the constraint was added successfully, false if constraint was already added.

◆ add() [2/4]

bool agx::DynamicsSystem::add ( agx::Interaction interaction)

Add an Interaction to the system.

Returns
false if Interaction already existed and therefore could not be added

◆ add() [3/4]

bool agx::DynamicsSystem::add ( agx::ObserverFrame observerFrame)

Add a ObserverFrame to the system.

If the observer frame was previously scheduled for removal this observer frame will now be enabled.

Returns
false if the observer frame already existed and therefore could not be added

◆ add() [4/4]

bool agx::DynamicsSystem::add ( agx::RigidBody rigidBody)

Add a RigidBody to the system.

If the body was previously scheduled for removal this body will now be enabled.

Returns
false if body already existed and therefore could not be added

◆ ClassModel()

static agx::Model * agx::DynamicsSystem::ClassModel ( )
static

◆ disableSolverDataExtraction()

void agx::DynamicsSystem::disableSolverDataExtraction ( )

Disable solver data extraction.

See also
enableSolverDataExtraction

◆ enableSolverDataExtraction()

void agx::DynamicsSystem::enableSolverDataExtraction ( const agx::String filename,
const agx::String solverDataGroup 
)

Enable solver data extraction.

Extracted data will be stored to disk in a HDF5 file with the given name. Extracted data will be collected in a group named after the date and time at the time of the call.

May be called when solver data extraction is already enabled. In that case future data will be stored in a new group in (possibly) a new HDF5 archive. A counter will be added to the group name in order to avoid overwriting previous extractions.

Parameters
filenameThe filename of the HDF5 archive to write into.
solverDataGroupName of the group in the HDF5 archive where solver data for this run will be stored.

◆ getAngularMomentum()

agx::Vec3 agx::DynamicsSystem::getAngularMomentum ( ) const

Return the total angular momentum in the system.

◆ getConstraint() [1/4]

agx::Constraint * agx::DynamicsSystem::getConstraint ( const agx::Uuid uuid)

Find and return a pointer to a Constraint with the given uuid.

Parameters
uuid- uuid of the requested constraint
Returns
pointer to the found Constraint, null if not found

◆ getConstraint() [2/4]

const agx::Constraint * agx::DynamicsSystem::getConstraint ( const agx::Uuid uuid) const

Find (linear search) and return a pointer to a Constraint with the given uuid.

Parameters
uuid- uuid of the requested constraint
Returns
const pointer to the found constraint, null if not found

◆ getConstraint() [3/4]

Constraint * agx::DynamicsSystem::getConstraint ( const Name name)

Find (linear search) the first Constraint object in the system that matches the name.

Returns
a pointer to the found Constraint, nullptr if none found.

◆ getConstraint() [4/4]

const Constraint * agx::DynamicsSystem::getConstraint ( const Name name) const

Find (linear search) the first Constraint object in the system that matches the name.

Returns
a pointer to the found Constraint, nullptr if none found.

◆ getConstraints() [1/2]

agx::ConstraintRefSetVector & agx::DynamicsSystem::getConstraints ( )
Returns
All constraints in the system.

◆ getConstraints() [2/2]

const agx::ConstraintRefSetVector & agx::DynamicsSystem::getConstraints ( ) const
Returns
All constraints in the system.

◆ getEnableContactWarmstarting()

bool agx::DynamicsSystem::getEnableContactWarmstarting ( ) const
Returns
True if contact warmstarting is enabled.

◆ getEnabledRigidBodies() [1/2]

RigidBodyPtrSetVector & agx::DynamicsSystem::getEnabledRigidBodies ( )
inline
Returns
a set of all enabled bodies in this system

Definition at line 464 of file DynamicsSystem.h.

◆ getEnabledRigidBodies() [2/2]

const RigidBodyPtrSetVector & agx::DynamicsSystem::getEnabledRigidBodies ( ) const
inline
Returns
a set of all enabled bodies in this system

Definition at line 469 of file DynamicsSystem.h.

◆ getEnableSolverDataExtraction()

bool agx::DynamicsSystem::getEnableSolverDataExtraction ( ) const
Returns
true if solver data extraction is currently enabled, false otherwise.

◆ getGeometryContacts()

const agxCollide::GeometryContactPtrVector * agx::DynamicsSystem::getGeometryContacts ( ) const
inline

Get the geometry contacts to be resolved.

Definition at line 479 of file DynamicsSystem.h.

◆ getInteractions()

const agx::InteractionRefSetVector & agx::DynamicsSystem::getInteractions ( ) const
Returns
a set of all added interactions (ForceFields etc) in this system

◆ getLinearMomentum()

agx::Vec3 agx::DynamicsSystem::getLinearMomentum ( ) const

Return the total linear momentum in the system.

◆ getObserverFrame() [1/4]

agx::ObserverFrame * agx::DynamicsSystem::getObserverFrame ( const agx::Uuid uuid)

Find and return a pointer to a ObserverFrame with the given uuid.

Parameters
uuid- uuid of the requested observer frame
Returns
pointer to the found observer frame, null if not found

◆ getObserverFrame() [2/4]

const agx::ObserverFrame * agx::DynamicsSystem::getObserverFrame ( const agx::Uuid uuid) const

Find (linear search) and return a pointer to a ObserverFrame with the given uuid.

Parameters
uuid- uuid of the requested observer frame
Returns
const pointer to the found observer frame, null if not found

◆ getObserverFrame() [3/4]

ObserverFrame * agx::DynamicsSystem::getObserverFrame ( const Name name)

Find (linear search) the first ObserverFrame object in the system that matches the name.

Returns
a pointer to the found observer frame, nullptr if none found.

◆ getObserverFrame() [4/4]

const ObserverFrame * agx::DynamicsSystem::getObserverFrame ( const Name name) const

Find (linear search) the first ObserverFrame object in the system that matches the name.

Returns
a pointer to the found observer frame, nullptr if none found.

◆ getObserverFrames() [1/2]

ObserverFrameRefSetVector & agx::DynamicsSystem::getObserverFrames ( )
Returns
All observer frames in the system.

◆ getObserverFrames() [2/2]

const ObserverFrameRefSetVector & agx::DynamicsSystem::getObserverFrames ( ) const
Returns
All observer frames in the system.

◆ getRigidBodies() [1/2]

agx::RigidBodyRefVector & agx::DynamicsSystem::getRigidBodies ( )
Returns
a vector of all bodies in the DynamicsSystem, both enabled and disabled

◆ getRigidBodies() [2/2]

const agx::RigidBodyRefVector & agx::DynamicsSystem::getRigidBodies ( ) const
Returns
a vector of all bodies in the DynamicsSystem, both enabled and disabled

◆ getRigidBody() [1/4]

agx::RigidBody * agx::DynamicsSystem::getRigidBody ( const agx::Uuid uuid)

Find (linear search) and return a pointer to a RigidBody with the given uuid.

Parameters
uuid- uuid of the requested rigid body
Returns
pointer to the found RigidBody, null if not found

◆ getRigidBody() [2/4]

const agx::RigidBody * agx::DynamicsSystem::getRigidBody ( const agx::Uuid uuid) const

Find (linear search) and return a pointer to a RigidBody with the given uuid.

Parameters
uuid- uuid of the requested rigid body
Returns
pointer to the found RigidBody, null if not found

◆ getRigidBody() [3/4]

RigidBody * agx::DynamicsSystem::getRigidBody ( const Name name)

Find (linear search) the first Physical in the system that matches the name.

Returns
a pointer to the found RigidBody, 0 if none found.

◆ getRigidBody() [4/4]

const RigidBody * agx::DynamicsSystem::getRigidBody ( const Name name) const

Find (linear search) the first Physical in the system that matches the name.

Returns
a pointer to the found RigidBody, 0 if none found.

◆ getSolver() [1/2]

Solver * agx::DynamicsSystem::getSolver ( )
inline
Returns
the solver.

Definition at line 484 of file DynamicsSystem.h.

◆ getSolver() [2/2]

const Solver * agx::DynamicsSystem::getSolver ( ) const
inline
Returns
the solver.

Definition at line 485 of file DynamicsSystem.h.

◆ getStrongInteractions()

const agx::StrongInteractionRefSetVector & agx::DynamicsSystem::getStrongInteractions ( ) const
Returns
a set of all added strong interactions in this system

◆ getTimeGovernor() [1/2]

agx::TimeGovernor * agx::DynamicsSystem::getTimeGovernor ( )
Returns
a pointer to the current TimeGovernor

◆ getTimeGovernor() [2/2]

const agx::TimeGovernor * agx::DynamicsSystem::getTimeGovernor ( ) const
Returns
a pointer to the current TimeGovernor

◆ remove() [1/4]

bool agx::DynamicsSystem::remove ( agx::Constraint constraint)

Remove a constraint from the simulation.

Returns
true if constraint was removed.

◆ remove() [2/4]

bool agx::DynamicsSystem::remove ( agx::Interaction interaction)

Remove the specified Interaction from the system.

Returns
true if removal was successful

◆ remove() [3/4]

bool agx::DynamicsSystem::remove ( agx::ObserverFrame observerFrame)

Schedule a ObserverFrame for removal.

Returns
true if removal was successful

◆ remove() [4/4]

bool agx::DynamicsSystem::remove ( agx::RigidBody rigidBody)

Schedule a RigidBody for removal.

As the body can be part of contacts etc. we cannot really completely remove it It will not show up in search for bodies. until the beginning of next time step.

Side effect: Will disable the body

Returns
true if removal was successful

◆ setEnableContactWarmstarting()

void agx::DynamicsSystem::setEnableContactWarmstarting ( bool  enable)

Contact warmstarting adds an extra step to the solver where the previous timesteps contact data is matched to the current timesteps data so the previous forces can be used by the solver to find a solution faster when direct friction is used.

If using auto-generated ContactMaterials and default settings, enabling this is not recommended and will just add some overhead. But if a FrictionModel with DIRECT solvetype is used, enabling this is recommended.

The state data used to match contacts for warmstarting is not serialized. This means that storing and then restoring the simulation can give slightly different trajectories compared to running the simulation non-stop.

See also
agx::FrictionModel

◆ setGeometryContacts()

void agx::DynamicsSystem::setGeometryContacts ( const agxCollide::GeometryContactPtrVector contacts)
inline

Set the geometry contacts to resolve.

Definition at line 474 of file DynamicsSystem.h.

◆ setTimeGovernor()

void agx::DynamicsSystem::setTimeGovernor ( agx::TimeGovernor tg)

Replace the current iTimeGovernor with the specified one.

Parameters
tg- pointer to an TimeGovernor

◆ stepForward()

void agx::DynamicsSystem::stepForward ( )

Step the Dynamics system forward using dt calculated from the current TimeGovernor.


The documentation for this class was generated from the following file: