The complete physical system with bodies, interactions, data layout, time stepper, and solver.
More...
|
| | 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::Constraint * | getConstraint (const agx::Uuid &uuid) |
| | Find and return a pointer to a Constraint with the given uuid.
|
| |
| const agx::Constraint * | getConstraint (const agx::Uuid &uuid) const |
| | Find (linear search) and return a pointer to a Constraint with the given uuid.
|
| |
| Constraint * | getConstraint (const Name &name) |
| | Find (linear search) the first Constraint object in the system that matches the name.
|
| |
| const Constraint * | getConstraint (const Name &name) const |
| | Find (linear search) the first Constraint object in the system that matches the name.
|
| |
| agx::ConstraintRefSetVector & | getConstraints () |
| |
| const agx::ConstraintRefSetVector & | getConstraints () const |
| |
| bool | getEnableContactWarmstarting () const |
| |
| agx::RigidBodyPtrSetVector & | getEnabledRigidBodies () |
| |
| const agx::RigidBodyPtrSetVector & | getEnabledRigidBodies () const |
| |
| bool | getEnableSolverDataExtraction () const |
| |
| const agxCollide::GeometryContactPtrVector * | getGeometryContacts () const |
| | Get the geometry contacts to be resolved.
|
| |
| const agx::InteractionRefSetVector & | getInteractions () const |
| |
| agx::Vec3 | getLinearMomentum () const |
| | Return the total linear momentum in the system.
|
| |
| agx::ObserverFrame * | getObserverFrame (const agx::Uuid &uuid) |
| | Find and return a pointer to a ObserverFrame with the given uuid.
|
| |
| const agx::ObserverFrame * | getObserverFrame (const agx::Uuid &uuid) const |
| | Find (linear search) and return a pointer to a ObserverFrame with the given uuid.
|
| |
| ObserverFrame * | getObserverFrame (const Name &name) |
| | Find (linear search) the first ObserverFrame object in the system that matches the name.
|
| |
| const ObserverFrame * | getObserverFrame (const Name &name) const |
| | Find (linear search) the first ObserverFrame object in the system that matches the name.
|
| |
| ObserverFrameRefSetVector & | getObserverFrames () |
| |
| const ObserverFrameRefSetVector & | getObserverFrames () const |
| |
| agx::RigidBodyRefVector & | getRigidBodies () |
| |
| const agx::RigidBodyRefVector & | getRigidBodies () const |
| |
| agx::RigidBody * | getRigidBody (const agx::Uuid &uuid) |
| | Find (linear search) and return a pointer to a RigidBody with the given uuid.
|
| |
| const agx::RigidBody * | getRigidBody (const agx::Uuid &uuid) const |
| | Find (linear search) and return a pointer to a RigidBody with the given uuid.
|
| |
| RigidBody * | getRigidBody (const Name &name) |
| | Find (linear search) the first Physical in the system that matches the name.
|
| |
| const RigidBody * | getRigidBody (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::StrongInteractionRefSetVector & | getStrongInteractions () const |
| |
| agx::TimeGovernor * | getTimeGovernor () |
| |
| const agx::TimeGovernor * | getTimeGovernor () 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.
|
| |
| | 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::Device * | getDevice () |
| |
| template<typename T > |
| T * | getDevice () |
| |
| const agx::Device * | getDevice () const |
| |
| template<typename T > |
| const T * | getDevice () const |
| |
| size_t | getNumObjects (const agx::Name &name) const |
| |
| agx::Object * | getObject (const agx::Name &name, agx::Model *model, size_t index=0) |
| |
| const agx::Object * | getObject (const agx::Name &name, agx::Model *model, size_t index=0) const |
| |
| agx::Object * | getObject (const agx::Name &name, size_t index=0) |
| |
| template<typename T > |
| T * | getObject (const agx::Name &name, size_t index=0) |
| |
| const agx::Object * | getObject (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::ObjectRefVector & | getObjects () 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 Object * | getResourceImpl (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) |
| |
| | 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::Object * | getAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) |
| |
| const agx::Object * | getAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) const |
| |
| agx::Object * | getContext () |
| |
| template<typename T > |
| T * | getContext () |
| |
| const agx::Object * | getContext () const |
| |
| template<typename T > |
| const T * | getContext () const |
| |
| agx::UInt32 | getId () const |
| |
| const agx::Name & | getImplementationName () const |
| |
| agx::Model * | getModel () |
| |
| const agx::Model * | getModel () const |
| |
| const agx::Name & | getName () const |
| |
| agx::Object * | getNextSibling () |
| |
| const agx::Object * | getNextSibling () 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::Object * | getResource (const agx::Path &path, agx::Model *model=nullptr) |
| |
| const agx::Object * | getResource (const agx::Path &path, agx::Model *model=nullptr) const |
| |
| virtual agx::Object * | getResourceImpl (const agx::Path &path, agx::Model *model) |
| |
| agx::Object * | getRootContext () |
| |
| const agx::Object * | getRootContext () 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 |
| |
| | 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.
|
| |
|
| static agx::Model * | ClassModel () |
| |
| static Component * | _load (TiXmlElement *eComponent, Device *device) |
| |
| static agx::Model * | ClassModel () |
| |
| static Component * | load (const Path &path, const Name &implementation, Device *device, const Path &_namespace=Path()) |
| |
| static Component * | load (const String &path, const Path &_namespace=Path()) |
| |
| static Component * | load (const String &path, Device *device, const Path &_namespace=Path()) |
| |
| static Component * | load (TiXmlElement *eComponent, Device *device) |
| |
| static agx::Model * | ClassModel () |
| |
| 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 Object * | load (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 Object * | load (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 Object * | load (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).
|
| |
| template<typename T > |
| static bool | ValidateCast (const Referenced *object) |
| |
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.