|
AGX Dynamics 2.41.0.0
|
agx::Object is a refcounted object with a name. More...
#include <Object.h>
Inheritance diagram for agx::Object:Classes | |
| class | Event |
Public Types | |
| typedef agx::observer_ptr< const Event > | EventConstObserver |
| typedef agx::ref_ptr< const Event > | EventConstRef |
| typedef agx::observer_ptr< Event > | EventObserver |
| typedef agx::Vector< EventObserver > | EventObserverVector |
| typedef agx::VectorPOD< Event * > | EventPtrVector |
| typedef agx::ref_ptr< Event > | EventRef |
| typedef agx::Vector< EventRef > | EventRefVector |
Public Member Functions | |
| 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 |
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. | |
| 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 Public Member Functions | |
| 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). | |
Static Public Member Functions inherited from agx::Referenced | |
| template<typename T > | |
| static bool | ValidateCast (const Referenced *object) |
Protected Member Functions | |
| virtual | ~Object () |
Protected Member Functions inherited from agx::Referenced | |
| virtual | ~Referenced () |
| Destructor. | |
| void | allocateObserverVector () const |
| void | deleteUsingDeleteHandler () const |
Additional Inherited Members | |
Static Protected Member Functions inherited from agx::Referenced | |
| static DeleteHandler * | getDeleteHandler () |
| 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 |
agx::Object is a refcounted object with a name.
It is used together with the subclass agx::Component to build hierarchies of objects, which can be accessed dynamically at runtime using string paths.
| typedef agx::observer_ptr< const Event > agx::Object::EventConstObserver |
| typedef agx::ref_ptr< const Event > agx::Object::EventConstRef |
| typedef agx::observer_ptr< Event > agx::Object::EventObserver |
| typedef agx::VectorPOD< Event *> agx::Object::EventPtrVector |
| typedef agx::ref_ptr< Event > agx::Object::EventRef |
| typedef agx::Vector< EventRef> agx::Object::EventRefVector |
| agx::Object::Object | ( | const Name & | name = Name(), |
| Model * | model = Object::ClassModel() |
||
| ) |
|
protectedvirtual |
| void agx::Object::addListener | ( | EventListener * | listener | ) |
|
virtual |
Reimplemented in agx::Component, agx::Model, agx::Pointer, agxData::Buffer, and agxData::Value.
|
static |
|
inlinevirtual |
| agx::String agx::Object::fullName | ( | ) | const |
Referenced by agxData::Buffer::getElement(), and agxData::Buffer::ptr().
| agx::String agx::Object::fullPath | ( | ) | const |
| agx::String agx::Object::fullPath | ( | const agx::Object * | root | ) | const |
|
static |
| T * agx::Object::getAutoScopedResource | ( | const agx::Path & | path | ) |
Definition at line 441 of file Object.h.
References getAutoScopedResource(), and agx::Referenced::is().
| const T * agx::Object::getAutoScopedResource | ( | const agx::Path & | path | ) | const |
| agx::Object * agx::Object::getAutoScopedResource | ( | const agx::Path & | path, |
| agx::Model * | model = nullptr |
||
| ) |
Referenced by getAutoScopedResource().
| const agx::Object * agx::Object::getAutoScopedResource | ( | const agx::Path & | path, |
| agx::Model * | model = nullptr |
||
| ) | const |
| Object * agx::Object::getContext | ( | ) |
Definition at line 386 of file Object.h.
Referenced by agxData::Value::get(), getContext(), and agx::Model::getNamespace().
| T * agx::Object::getContext |
Definition at line 414 of file Object.h.
References getContext().
| const T * agx::Object::getContext |
Definition at line 420 of file Object.h.
References getContext().
|
static |
Should rebinding be allowed? Right now a global setting.
| UInt32 agx::Object::getId | ( | ) | const |
Definition at line 383 of file Object.h.
Referenced by agxData::EntityStorage::indexToId().
| const agx::Name & agx::Object::getImplementationName | ( | ) | const |
| const Name & agx::Object::getName | ( | ) | const |
Definition at line 382 of file Object.h.
Referenced by agxData::Value::get(), agxData::EntityStorage::get(), agxData::FormatBinding< T >::getFormat(), and agxData::EntityPtr::operator()().
| agx::Object * agx::Object::getNextSibling | ( | ) |
| const agx::Object * agx::Object::getNextSibling | ( | ) | const |
| agx::Path agx::Object::getPath | ( | ) | const |
Referenced by agx::ArrayParameter::get(), agx::PointerParameter::get(), agx::ScalarParameter::get(), agx::Component::getObject(), agxData::EntityInstance::verifyIndex(), and agxData::EntityPtr::verifyIndex().
| agx::Path agx::Object::getPath | ( | const agx::Object * | root | ) | const |
| root | A node along the parent path from this object. |
| T * agx::Object::getResource | ( | const agx::Path & | path | ) |
Definition at line 427 of file Object.h.
References getResource(), and agx::Referenced::is().
| const T * agx::Object::getResource | ( | const agx::Path & | path | ) | const |
| agx::Object * agx::Object::getResource | ( | const agx::Path & | path, |
| agx::Model * | model = nullptr |
||
| ) |
Referenced by getResource().
| const agx::Object * agx::Object::getResource | ( | const agx::Path & | path, |
| agx::Model * | model = nullptr |
||
| ) | const |
|
virtual |
| agx::Object * agx::Object::getRootContext | ( | ) |
| const agx::Object * agx::Object::getRootContext | ( | ) | const |
| bool agx::Object::hasListener | ( | EventListener * | listener | ) |
| bool agx::Object::hasParent | ( | const agx::Object * | node | ) | const |
|
static |
|
static |
|
static |
Referenced by load().
|
static |
|
static |
|
inlinevirtual |
Reimplemented in agx::Component.
|
inlinevirtual |
Reimplemented in agxData::FunctionValue, agx::Clock, agx::Component, agx::Kernel, agx::Parameter, agx::Task, agxData::Value, and agxIO::KeyEvent.
| void agx::Object::removeListener | ( | EventListener * | listener | ) |
|
inlinevirtual |
Reimplemented in agx::Clock.
|
virtual |
Reimplemented in agxData::FunctionValue, and agx::Task.
|
static |
Sets if rebinding of objects should be allowed (Right now a global setting).
Allowing it when adding larger parts to the system tree might hit performance, so it might be smarter to disable it first, then add, and then enable again.
| void agx::Object::setId | ( | UInt32 | id | ) |
| void agx::Object::setModel | ( | agx::Model * | model | ) |
Set the object model (handled automatically).
References agx::getModel().
| void agx::Object::setName | ( | const agx::Name & | name | ) |
Set the name of the object.
|
inlinevirtual |
Reimplemented in agx::Component.