|
AGX Dynamics 2.41.3.0
|
Data storage for a collection of entity instances of a specified EntityModel. More...
#include <EntityStorage.h>
Inheritance diagram for agxData::EntityStorage:Public Types | |
| typedef agxData::LocalVector< std::pair< size_t, size_t > > | InstanceSwapLocalVector |
| typedef agx::VectorPOD< std::pair< size_t, size_t > > | InstanceSwapVector |
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 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 | |
| EntityStorage (agxData::EntityModel *entity, const agx::Name &name, size_t initialCapacity=32) | |
| EntityStorage (agxData::EntityModel *entity, size_t initialCapacity=32) | |
| void | addCustomAttribute (agxData::Attribute *attribute) |
| Add a custom attribute buffer. | |
| void | addListener (EventListener *listener) |
| size_t | capacity () const |
| void | clear () |
| Clears the storage. | |
| agxData::EntityStorage * | clone () const |
| void | commitPermutation (const agxData::IndexArray &permutation) |
| virtual void | configure (agx::TiXmlElement *eStorage) override |
| agxData::EntityPtr | copyInstance (size_t id, agxData::EntityStorage *target) |
| agxData::EntityPtr | copyInstance (size_t id, agxData::EntityStorage *target, size_t targetId) |
| agxData::EntityPtr | createInstance () |
| Creates a new instance and initializes it with default values. | |
| agxData::EntityRange | createInstances (size_t numInstances) |
| Create a range of entity instances. | |
| agxData::EntityStorage * | createSharedStorage () |
| Swap buffers with another storage. | |
| template<typename T > | |
| agxData::Array< T > | dereferenceMultipliedAttribute (const agxData::EntityPtr &entity, const agxData::ScalarAttributeT< T > *attribute) |
| template<typename T > | |
| const agxData::Array< T > | dereferenceMultipliedAttribute (const agxData::EntityPtr &entity, const agxData::ScalarAttributeT< T > *attribute) const |
| template<typename T > | |
| Array< T > | dereferenceMultipliedAttribute (const EntityPtr &entity, const ScalarAttributeT< T > *attribute) |
| template<typename T > | |
| const Array< T > | dereferenceMultipliedAttribute (const EntityPtr &entity, const ScalarAttributeT< T > *attribute) const |
| void | destroyInstance (agxData::EntityPtr instance) |
| void | destroyInstance (size_t id) |
| void | destroyInstances (agxData::EntityRange range) |
| template<typename VectorT > | |
| void | destroyInstances (const VectorT &instances) |
| bool | empty () const |
| template<typename T > | |
| T & | get (const agx::Name &attributeName, size_t index) |
| Slow but convenient accessor. | |
| agxData::Buffer * | getBuffer (const agx::Name &name) |
| agxData::Buffer * | getBuffer (const agxData::Attribute *attribute) |
| const agxData::BufferTable & | getBuffers () const |
| agxData::EntityData * | getData () |
| template<typename T > | |
| T * | getData () |
| template<typename T > | |
| const T * | getData () const |
| agxData::EntityModel * | getEntityModel () |
| const agxData::EntityModel * | getEntityModel () const |
| agxData::Buffer * | getGlobalOrderBuffer () |
| If the storage is used as a global result, we provide a permutation buffer for parallel determinism. | |
| const agxData::Buffer * | getGlobalOrderBuffer () const |
| If the storage is used as a global result, we provide a permutation buffer for parallel determinism. | |
| agxData::Buffer * | getIdToIndexBuffer () |
| const agxData::Buffer * | getIdToIndexBuffer () const |
| agxData::IndexArray & | getIdToIndexTable () |
| const agxData::IndexArray & | getIdToIndexTable () const |
| agxData::Buffer * | getInstanceBuffer () |
| const agxData::Buffer * | getInstanceBuffer () const |
| agxData::Array< EntityPtr > | getInstances () |
| template<typename T > | |
| agxData::Array< T > | getInstances () |
| template<typename T > | |
| Array< T > | getInstances () |
| const agxData::Array< EntityPtr > | getInstances () const |
| template<typename T > | |
| const agxData::Array< T > | getInstances () const |
| template<typename T > | |
| const Array< T > | getInstances () const |
| size_t | getNumBytes () const |
| agxData::Buffer * | getOrCreateGlobalOrderBuffer () |
| Create the global order buffer if not already allocated. | |
| agxData::Byte * | getPermutationBuffer (agxData::Attribute *attribute) |
| agxData::Byte * | getPermutationBuffer (size_t index) |
| bool | hasListener (EventListener *listener) |
| size_t | idToIndex (size_t id) const |
| Convert between instance id and data index. | |
| size_t | indexToId (size_t index) const |
| Convert between instance id and data index. | |
| void | keyFrameResize (size_t size, size_t capacity) |
| void | preDestroy (agxData::EntityPtr instance) |
| void | preparePermutation () |
| size_t | presize (size_t size, size_t initialSize=0) |
| void | print () const |
| void | print (std::ostream &stream) const |
| Reorder a subrange. | |
| void | printInstanceTable () const |
| void | removeListener (EventListener *listener) |
| void | reorder (const agxData::IndexArray &permutation) |
| Reorder the storage using a specified permutation. | |
| void | reorderAttributes (agx::IndexRange32 range, const agxData::IndexArray &permutation) |
| void | reserve (size_t size) |
| Reserve capacity in the storage. | |
| void | reset () |
| Clear the storage, and reset index-id tables. | |
| void | resize (size_t size, bool initializeElements=true) |
| void | restorePermutation (agxStream::InputArchive &archive, bool skip=false) |
| void | setEnableEvents (bool flag) |
| void | setUseInstanceTable (bool flag) |
| Set to false to disable instance pointer handling. | |
| size_t | size () const |
| void | storePermutation (agxStream::OutputArchive &archive) const |
| void | swapInstances (const InstanceSwapLocalVector &swaps) |
| void | swapInstances (const InstanceSwapVector &swaps) |
| agxData::EntityPtr | transferInstance (size_t id, agxData::EntityStorage *target) |
| void | unregisterBuffer (agxData::Buffer *buffer) |
| bool | useInstanceTable () const |
| void | verifyConsistency () |
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::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) |
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::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. | |
Public Member Functions inherited from agxData::AttributeContainer | |
| AttributeContainer () | |
| ~AttributeContainer () | |
| void * | getAttribute (const Attribute *attribute) |
| const void * | getAttribute (const Attribute *attribute) const |
| template<typename T > | |
| T & | getAttribute (const ScalarAttributeT< T > *attribute) |
| template<typename T > | |
| const T & | getAttribute (const ScalarAttributeT< T > *attribute) const |
| bool | hasAttribute (const Attribute *attribute) const |
Static Public Member Functions | |
| static agx::Model * | ClassModel () |
| static void | copy (agxData::EntityStorage *target, const agxData::EntityStorage *source) |
| static void | extractPermutation (agx::IndexVector &result, agxStream::InputArchive &archive) |
| static agxData::EntityStorage * | load (agx::TiXmlElement *eStorage, agx::Device *device) |
Static Public Member Functions inherited from agx::Component | |
| 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 Public Member Functions inherited from agx::Object | |
| 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) |
Public Attributes | |
| agxData::ValueRefT< agx::UInt > | capacityParameter |
| agxData::ValueRefT< agx::UInt > | sizeParameter |
Public Attributes inherited from agx::Component | |
| ObjectEvent | addObjectEvent |
| ObjectEvent | removeObjectEvent |
Static Public Attributes | |
| static const agx::Name | IdToIndexName |
| static const agx::Name | IndexToIdName |
Protected Member Functions | |
| EntityStorage (const agx::Name &name) | |
| EntityStorage (EntityModel *entity, const agx::Name &name, bool isFrameStorage, size_t capacity, size_t size) | |
| virtual | ~EntityStorage () |
| void | explicityRegisterBuffer (agxData::Buffer *buffer, agxData::Attribute *attribute) |
| virtual agx::Object * | getResourceImpl (const agx::Path &path, agx::Model *model) override |
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 | |
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 |
Data storage for a collection of entity instances of a specified EntityModel.
Each attribute is stored in a separate buffer. The storage is always packed, when a entity instance is destroyed it is overwritten by the last instance in the storage. The use of a id lookup table allow entity instances to use indirect addressing and remain valid when the data is permuted/reallocated.
Definition at line 72 of file EntityStorage.h.
| typedef agxData::LocalVector< std::pair<size_t, size_t> > agxData::EntityStorage::InstanceSwapLocalVector |
Definition at line 167 of file EntityStorage.h.
| typedef agx::VectorPOD< std::pair<size_t, size_t> > agxData::EntityStorage::InstanceSwapVector |
Definition at line 164 of file EntityStorage.h.
| agxData::EntityStorage::EntityStorage | ( | agxData::EntityModel * | entity, |
| size_t | initialCapacity = 32 |
||
| ) |
| agxData::EntityStorage::EntityStorage | ( | agxData::EntityModel * | entity, |
| const agx::Name & | name, | ||
| size_t | initialCapacity = 32 |
||
| ) |
|
protected |
|
protected |
|
protectedvirtual |
| void agxData::EntityStorage::addCustomAttribute | ( | agxData::Attribute * | attribute | ) |
Add a custom attribute buffer.
| void agxData::EntityStorage::addListener | ( | EventListener * | listener | ) |
| size_t agxData::EntityStorage::capacity | ( | ) | const |
Definition at line 444 of file EntityStorage.h.
References agxAssert, capacityParameter, agx::ref_ptr< T >::get(), and m_capacity.
|
static |
| void agxData::EntityStorage::clear | ( | ) |
Clears the storage.
| agxData::EntityStorage * agxData::EntityStorage::clone | ( | ) | const |
| void agxData::EntityStorage::commitPermutation | ( | const agxData::IndexArray & | permutation | ) |
|
overridevirtual |
|
static |
| agxData::EntityPtr agxData::EntityStorage::copyInstance | ( | size_t | id, |
| agxData::EntityStorage * | target | ||
| ) |
| agxData::EntityPtr agxData::EntityStorage::copyInstance | ( | size_t | id, |
| agxData::EntityStorage * | target, | ||
| size_t | targetId | ||
| ) |
| agxData::EntityPtr agxData::EntityStorage::createInstance | ( | ) |
Creates a new instance and initializes it with default values.
| agxData::EntityRange agxData::EntityStorage::createInstances | ( | size_t | numInstances | ) |
Create a range of entity instances.
| agxData::EntityStorage * agxData::EntityStorage::createSharedStorage | ( | ) |
Swap buffers with another storage.
Create a shared storage with the same buffer instances.
| agxData::Array< T > agxData::EntityStorage::dereferenceMultipliedAttribute | ( | const agxData::EntityPtr & | entity, |
| const agxData::ScalarAttributeT< T > * | attribute | ||
| ) |
Referenced by dereferenceMultipliedAttribute().
| const agxData::Array< T > agxData::EntityStorage::dereferenceMultipliedAttribute | ( | const agxData::EntityPtr & | entity, |
| const agxData::ScalarAttributeT< T > * | attribute | ||
| ) | const |
| Array< T > agxData::EntityStorage::dereferenceMultipliedAttribute | ( | const EntityPtr & | entity, |
| const ScalarAttributeT< T > * | attribute | ||
| ) |
Definition at line 704 of file EntityStorage.h.
References agxAssert, agxAssertN, agxData::EntityPtr::calculateIndex(), getBuffer(), agxData::Buffer::getElementArraySize(), agxData::EntityPtr::getId(), and agxData::EntityPtr::getStorage().
| const Array< T > agxData::EntityStorage::dereferenceMultipliedAttribute | ( | const EntityPtr & | entity, |
| const ScalarAttributeT< T > * | attribute | ||
| ) | const |
Definition at line 716 of file EntityStorage.h.
References dereferenceMultipliedAttribute().
| void agxData::EntityStorage::destroyInstance | ( | agxData::EntityPtr | instance | ) |
Definition at line 511 of file EntityStorage.h.
References destroyInstance(), and agxData::EntityPtr::getId().
Referenced by destroyInstance().
| void agxData::EntityStorage::destroyInstance | ( | size_t | id | ) |
| void agxData::EntityStorage::destroyInstances | ( | agxData::EntityRange | range | ) |
| void agxData::EntityStorage::destroyInstances | ( | const VectorT & | instances | ) |
Definition at line 724 of file EntityStorage.h.
References destroyInstances().
Referenced by destroyInstances().
| bool agxData::EntityStorage::empty | ( | ) | const |
Definition at line 443 of file EntityStorage.h.
References m_size.
|
protected |
|
static |
| T & agxData::EntityStorage::get | ( | const agx::Name & | attributeName, |
| size_t | index | ||
| ) |
Slow but convenient accessor.
Definition at line 486 of file EntityStorage.h.
References agxAbort, agxData::Buffer::getElement(), agx::Object::getName(), and agx::Container::size().
| agxData::Buffer * agxData::EntityStorage::getBuffer | ( | const agx::Name & | name | ) |
Referenced by dereferenceMultipliedAttribute().
| Buffer * agxData::EntityStorage::getBuffer | ( | const agxData::Attribute * | attribute | ) |
Definition at line 467 of file EntityStorage.h.
References agxData::Attribute::getId().
| const BufferTable & agxData::EntityStorage::getBuffers | ( | ) | const |
Definition at line 448 of file EntityStorage.h.
| EntityData * agxData::EntityStorage::getData | ( | ) |
Definition at line 520 of file EntityStorage.h.
Referenced by agx::Physics::HierarchicalGrid::countNumContacts(), and agxData::EntityPtr::getData().
| T * agxData::EntityStorage::getData |
Definition at line 523 of file EntityStorage.h.
| const T * agxData::EntityStorage::getData |
Definition at line 526 of file EntityStorage.h.
| EntityModel * agxData::EntityStorage::getEntityModel | ( | ) |
Definition at line 446 of file EntityStorage.h.
Referenced by agxData::EntityInstance::getModel(), agxData::EntityPtr::getModel(), and agxData::EntityPtr::isInstanceOf().
| const EntityModel * agxData::EntityStorage::getEntityModel | ( | ) | const |
Definition at line 447 of file EntityStorage.h.
| Buffer * agxData::EntityStorage::getGlobalOrderBuffer | ( | ) |
If the storage is used as a global result, we provide a permutation buffer for parallel determinism.
Definition at line 451 of file EntityStorage.h.
| const Buffer * agxData::EntityStorage::getGlobalOrderBuffer | ( | ) | const |
If the storage is used as a global result, we provide a permutation buffer for parallel determinism.
Definition at line 452 of file EntityStorage.h.
| Buffer * agxData::EntityStorage::getIdToIndexBuffer | ( | ) |
Definition at line 528 of file EntityStorage.h.
| const Buffer * agxData::EntityStorage::getIdToIndexBuffer | ( | ) | const |
Definition at line 529 of file EntityStorage.h.
| IndexArray & agxData::EntityStorage::getIdToIndexTable | ( | ) |
Definition at line 450 of file EntityStorage.h.
| const IndexArray & agxData::EntityStorage::getIdToIndexTable | ( | ) | const |
Definition at line 449 of file EntityStorage.h.
| Buffer * agxData::EntityStorage::getInstanceBuffer | ( | ) |
Definition at line 531 of file EntityStorage.h.
| const Buffer * agxData::EntityStorage::getInstanceBuffer | ( | ) | const |
Definition at line 532 of file EntityStorage.h.
Definition at line 454 of file EntityStorage.h.
| agxData::Array< T > agxData::EntityStorage::getInstances | ( | ) |
| Array< T > agxData::EntityStorage::getInstances | ( | ) |
Definition at line 458 of file EntityStorage.h.
References agxAssert, agx::Referenced::is(), and agxData::Array< T >::raw().
Definition at line 455 of file EntityStorage.h.
Referenced by agx::Physics::GranularBodySystem::getParticles().
| const agxData::Array< T > agxData::EntityStorage::getInstances | ( | ) | const |
| const Array< T > agxData::EntityStorage::getInstances | ( | ) | const |
Definition at line 465 of file EntityStorage.h.
| size_t agxData::EntityStorage::getNumBytes | ( | ) | const |
| agxData::Buffer * agxData::EntityStorage::getOrCreateGlobalOrderBuffer | ( | ) |
Create the global order buffer if not already allocated.
| Byte * agxData::EntityStorage::getPermutationBuffer | ( | agxData::Attribute * | attribute | ) |
Definition at line 730 of file EntityStorage.h.
References agxData::Attribute::getId(), and getPermutationBuffer().
Referenced by getPermutationBuffer().
| Byte * agxData::EntityStorage::getPermutationBuffer | ( | size_t | index | ) |
Definition at line 735 of file EntityStorage.h.
|
overrideprotectedvirtual |
Reimplemented from agx::Component.
| bool agxData::EntityStorage::hasListener | ( | EventListener * | listener | ) |
| size_t agxData::EntityStorage::idToIndex | ( | size_t | id | ) | const |
Convert between instance id and data index.
Definition at line 500 of file EntityStorage.h.
Referenced by agxData::EntityPtr::calculateIndex().
| size_t agxData::EntityStorage::indexToId | ( | size_t | index | ) | const |
Convert between instance id and data index.
Definition at line 505 of file EntityStorage.h.
References agx::Object::getId().
Referenced by agxData::EntityPtr::EntityPtr(), agxData::EntityInstance::calculateId(), agxData::EntityPtr::createWithIndex(), and agxData::EntityRange::operator[]().
| void agxData::EntityStorage::keyFrameResize | ( | size_t | size, |
| size_t | capacity | ||
| ) |
|
static |
| void agxData::EntityStorage::preDestroy | ( | agxData::EntityPtr | instance | ) |
| void agxData::EntityStorage::preparePermutation | ( | ) |
| size_t agxData::EntityStorage::presize | ( | size_t | size, |
| size_t | initialSize = 0 |
||
| ) |
| void agxData::EntityStorage::print | ( | ) | const |
| void agxData::EntityStorage::print | ( | std::ostream & | stream | ) | const |
Reorder a subrange.
| void agxData::EntityStorage::printInstanceTable | ( | ) | const |
| void agxData::EntityStorage::removeListener | ( | EventListener * | listener | ) |
| void agxData::EntityStorage::reorder | ( | const agxData::IndexArray & | permutation | ) |
Reorder the storage using a specified permutation.
| void agxData::EntityStorage::reorderAttributes | ( | agx::IndexRange32 | range, |
| const agxData::IndexArray & | permutation | ||
| ) |
| void agxData::EntityStorage::reserve | ( | size_t | size | ) |
Reserve capacity in the storage.
| void agxData::EntityStorage::reset | ( | ) |
Clear the storage, and reset index-id tables.
| void agxData::EntityStorage::resize | ( | size_t | size, |
| bool | initializeElements = true |
||
| ) |
| void agxData::EntityStorage::restorePermutation | ( | agxStream::InputArchive & | archive, |
| bool | skip = false |
||
| ) |
| void agxData::EntityStorage::setEnableEvents | ( | bool | flag | ) |
| void agxData::EntityStorage::setUseInstanceTable | ( | bool | flag | ) |
Set to false to disable instance pointer handling.
Saves memory for instance buffer and idToIndex table, but invalidates any usage of EntityPtr references to this storage.
| size_t agxData::EntityStorage::size | ( | ) | const |
Definition at line 442 of file EntityStorage.h.
References m_size.
Referenced by agxData::EntityInstance::verifyIndex().
| void agxData::EntityStorage::storePermutation | ( | agxStream::OutputArchive & | archive | ) | const |
| void agxData::EntityStorage::swapInstances | ( | const InstanceSwapLocalVector & | swaps | ) |
| void agxData::EntityStorage::swapInstances | ( | const InstanceSwapVector & | swaps | ) |
Referenced by agxData::EntityPtr::swapIndex().
| agxData::EntityPtr agxData::EntityStorage::transferInstance | ( | size_t | id, |
| agxData::EntityStorage * | target | ||
| ) |
| void agxData::EntityStorage::unregisterBuffer | ( | agxData::Buffer * | buffer | ) |
| bool agxData::EntityStorage::useInstanceTable | ( | ) | const |
Definition at line 445 of file EntityStorage.h.
| void agxData::EntityStorage::verifyConsistency | ( | ) |
| agxData::ValueRefT<agx::UInt> agxData::EntityStorage::capacityParameter |
Definition at line 90 of file EntityStorage.h.
Referenced by capacity().
|
static |
Definition at line 327 of file EntityStorage.h.
|
static |
Definition at line 328 of file EntityStorage.h.
| agxData::ValueRefT<agx::UInt> agxData::EntityStorage::sizeParameter |
Definition at line 89 of file EntityStorage.h.