AGX Dynamics 2.40.0.0
Loading...
Searching...
No Matches
agxData::BufferT< T > Class Template Reference

#include <Buffer.h>

+ Inheritance diagram for agxData::BufferT< T >:

Public Types

typedef const T * const_iterator
 
typedef T * iterator
 
typedef T Type
 
typedef T value_type
 
- Public Types inherited from agxData::Buffer
typedef agx::Event1< Buffer * > Event
 
typedef agx::Callback2< Buffer *, const agx::IndexRange & > RangeCallback
 Specify a custom element initializer callback.
 
- 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 Member Functions

 BufferT ()
 
 BufferT (const agx::Name &name)
 
T & at (size_t index)
 
const T & at (size_t index) const
 
T & back ()
 
const T & back () const
 
iterator begin ()
 
const_iterator begin () const
 
void clear ()
 
void commit ()
 
void commit (agx::Index index)
 
void commit (agx::IndexRange32 range)
 
void commit (const agx::IndexVector &indexList)
 
void commit (const agxData::IndexArray &indexList)
 
template<typename T2 >
bool contains (const T2 &value) const
 
iterator end ()
 
const_iterator end () const
 
template<typename T2 >
size_t find (const T2 &value) const
 
T & front ()
 
const T & front () const
 
T & operator[] (size_t index)
 
const T & operator[] (size_t index) const
 
void pop_back ()
 
void push_back (const T &value)
 
- Public Member Functions inherited from agxData::Buffer
 Buffer (const agx::Name &name, const agxData::Format *format)
 
 Buffer (const agxData::Format *format)
 
void addListener (EventListener *listener)
 
void * allocateBackBuffer ()
 
virtual void buildNavigationTree (agxJson::Value &eNode) const override
 
size_t capacity () const
 
void clear ()
 Clear the buffer.
 
Bufferclone () const
 Clone the buffer.
 
Bufferclone (const agx::IndexRange &range) const
 Clone a subset of the buffer.
 
Bufferclone (const agx::IndexVector &indices) const
 
Bufferclone (const agxData::IndexArray &indices) const
 
void commit ()
 
void commit (agx::Index index)
 
void commit (agx::IndexRange32 range)
 
void commit (const agxData::IndexArray &indexList)
 
virtual void configure (agx::TiXmlElement *eBuffer) override
 
void deleteOverflowBuffer (void *buffer, size_t numElements)
 
bool empty () const
 
template<typename T >
agxData::Array< T > & getArray ()
 Convenience method to get an direct data array.
 
agxData::AbstractArraygetArray ()
 
template<typename T >
Array< T > & getArray ()
 
template<typename T >
const agxData::Array< T > & getArray () const
 
const agxData::AbstractArraygetArray () const
 
template<typename T >
const Array< T > & getArray () const
 
agxData::AttributegetAttribute ()
 
const agxData::AttributegetAttribute () const
 
agxData::ValuegetDefaultValue ()
 
const agxData::ValuegetDefaultValue () const
 
template<typename T >
T & getElement (size_t index)
 
void * getElement (size_t index)
 
template<typename T >
const T & getElement (size_t index) const
 
const void * getElement (size_t index) const
 
size_t getElementArraySize () const
 
BuffergetElementBuffer ()
 If the buffer contains arrays/vectors, the actual elements are stored in another buffer.
 
const BuffergetElementBuffer () const
 
agxData::FormatgetFormat ()
 
const agxData::FormatgetFormat () const
 
BuffergetGlobalOrderBuffer ()
 If the buffer is used as a global result, we provide a permutation buffer for parallel determinism.
 
const BuffergetGlobalOrderBuffer () const
 
agx::GlobalResultBuffergetGlobalResult ()
 
const agx::GlobalResultBuffergetGlobalResult () const
 
BuffergetOrCreateGlobalOrderBuffer ()
 
BuffergetOriginalBuffer ()
 
const BuffergetOriginalBuffer () const
 
const agxData::Value::Event::CallbackTypegetReserveCallback () const
 
const agxData::Value::Event::CallbackTypegetResizeCallback () const
 
agx::UInt64 getRevision () const
 
agxData::EntityStoragegetStorage ()
 
const agxData::EntityStoragegetStorage () const
 
agxData::TypegetType ()
 
const agxData::TypegetType () const
 
bool hasListener (EventListener *listener)
 
void initialize (const agx::IndexRange &range)
 Initialize a range of elements.
 
void * kernelOverflowReallocation (size_t size)
 
void presize (size_t size, size_t initialSize)
 
void print () const
 Print the buffer.
 
void print (agx::IndexRange range) const
 
void print (std::ostream &stream) const
 
void print (std::ostream &stream, agx::IndexRange range) const
 
void * ptr ()
 Get access to the raw data buffer.
 
template<typename T >
T * ptr ()
 
const void * ptr () const
 
template<typename T >
const T * ptr () const
 
void registerSharedContainer (agx::Container *container)
 
void removeListener (EventListener *listener)
 
void reserve (size_t size)
 Reserve space for future buffer expansion.
 
void resize (size_t size, bool initializeElements=true)
 Resize the buffer.
 
void setDefaultValue (agxData::Value *value)
 Set the default element value.
 
void setElementBuffer (Buffer *buffer)
 Set the element buffer, internal use only.
 
void setElementDestructor (const RangeCallback &callback)
 
void setElementInitializer (const RangeCallback &callback)
 
void setRevision (agx::UInt64 revision)
 
size_t size () const
 
virtual void snapshot (agx::TiXmlNode *eParent, const agx::String &directory) const override
 
void swapBackBuffer (void *backBuffer)
 
void unregisterSharedContainer (agx::Container *container)
 
- 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

template<typename T2 >
static bool ValidateCast (const agx::Referenced *object)
 
- Static Public Member Functions inherited from agxData::Buffer
static agx::ModelClassModel ()
 
static void copy (Buffer *target, const Buffer *source)
 Copy one buffer to another.
 
static void copy (Buffer *target, size_t targetOffset, const Buffer *source, size_t sourceOffset, size_t numElements)
 
static void copyGather (Buffer *target, const Buffer *source, const agxData::IndexArray &indices)
 
static void copyScatter (Buffer *target, const Buffer *source, const agxData::IndexArray &indices)
 
static Bufferload (agx::TiXmlElement *eBuffer, agx::Device *device)
 
- 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 ~BufferT ()
 
- Protected Member Functions inherited from agxData::Buffer
virtual ~Buffer ()
 
virtual void reallocate (size_t size)
 
- 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 Attributes inherited from agxData::Buffer
agxData::ValueRefT< agx::UIntcapacityParameter
 
Event reallocationEvent
 Triggered when buffer is reallocated.
 
agxData::ValueRefT< agx::UIntsizeParameter
 
- Public Attributes inherited from agx::Component
ObjectEvent addObjectEvent
 
ObjectEvent removeObjectEvent
 
- Static Public Attributes inherited from agxData::Buffer
static agx::UInt ALIGNMENT
 
static agx::Real CAPACITY_MULTIPLIER
 
static agx::UInt MIN_BUFFER_CAPACITY
 
- Static Protected Member Functions inherited from agxData::Buffer
static void destroyElements (Buffer *buffer, const agx::IndexRange &range)
 
static void initializeElements (Buffer *buffer, const agx::IndexRange &range)
 
- 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 agxData::Buffer
agx::ByteAllocator m_allocator
 
AbstractArray m_array
 
Attributem_attribute
 
size_t m_capacity
 
agxData::ValueRef m_defaultElementValue
 
RangeCallback m_destructor
 
agxData::BufferRef m_elementBuffer
 
EventDispatch m_eventDispatch
 
FormatRef m_format
 
agxData::BufferRef m_globalOrderBuffer
 
agx::GlobalResultBufferm_globalResult
 
bool m_initElements
 
RangeCallback m_initializer
 
agxData::Bufferm_originalBuffer
 
void * m_ptr
 
agxData::Value::Event::CallbackType m_reserveCallback
 
agxData::Value::Event::CallbackType m_resizeCallback
 
agx::UInt64 m_revision
 
agx::Containerm_sharedContainer
 
agxData::ShareHandleRef m_shareHandle
 
size_t m_size
 
EntityStoragem_storage
 
bool m_usedResizeMethod
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Detailed Description

template<typename T>
class agxData::BufferT< T >

Definition at line 396 of file Buffer.h.

Member Typedef Documentation

◆ const_iterator

template<typename T >
typedef const T* agxData::BufferT< T >::const_iterator

Definition at line 406 of file Buffer.h.

◆ iterator

template<typename T >
typedef T* agxData::BufferT< T >::iterator

Definition at line 405 of file Buffer.h.

◆ Type

template<typename T >
typedef T agxData::BufferT< T >::Type

Definition at line 403 of file Buffer.h.

◆ value_type

template<typename T >
typedef T agxData::BufferT< T >::value_type

Definition at line 404 of file Buffer.h.

Constructor & Destructor Documentation

◆ BufferT() [1/2]

template<typename T >
agxData::BufferT< T >::BufferT

Definition at line 952 of file Buffer.h.

◆ BufferT() [2/2]

template<typename T >
agxData::BufferT< T >::BufferT ( const agx::Name name)

Definition at line 957 of file Buffer.h.

◆ ~BufferT()

template<typename T >
agxData::BufferT< T >::~BufferT
protectedvirtual

Definition at line 962 of file Buffer.h.

Member Function Documentation

◆ at() [1/2]

template<typename T >
T & agxData::BufferT< T >::at ( size_t  index)

Definition at line 1038 of file Buffer.h.

◆ at() [2/2]

template<typename T >
const T & agxData::BufferT< T >::at ( size_t  index) const

Definition at line 1044 of file Buffer.h.

◆ back() [1/2]

template<typename T >
T & agxData::BufferT< T >::back

Definition at line 1062 of file Buffer.h.

◆ back() [2/2]

template<typename T >
const T & agxData::BufferT< T >::back

Definition at line 1068 of file Buffer.h.

◆ begin() [1/2]

template<typename T >
BufferT< T >::iterator agxData::BufferT< T >::begin

Definition at line 1076 of file Buffer.h.

◆ begin() [2/2]

template<typename T >
BufferT< T >::const_iterator agxData::BufferT< T >::begin

Definition at line 1082 of file Buffer.h.

◆ clear()

template<typename T >
void agxData::BufferT< T >::clear

Definition at line 1004 of file Buffer.h.

References m_size.

◆ commit() [1/5]

template<typename T >
void agxData::BufferT< T >::commit

Definition at line 1100 of file Buffer.h.

References agxData::Buffer::commit().

◆ commit() [2/5]

template<typename T >
void agxData::BufferT< T >::commit ( agx::Index  index)

Definition at line 1112 of file Buffer.h.

References agxData::Buffer::commit().

◆ commit() [3/5]

template<typename T >
void agxData::BufferT< T >::commit ( agx::IndexRange32  range)

Definition at line 1106 of file Buffer.h.

References agxData::Buffer::commit().

◆ commit() [4/5]

template<typename T >
void agxData::BufferT< T >::commit ( const agx::IndexVector indexList)

◆ commit() [5/5]

template<typename T >
void agxData::BufferT< T >::commit ( const agxData::IndexArray indexList)

Definition at line 1118 of file Buffer.h.

References agxData::Buffer::commit().

◆ contains()

template<typename T >
template<typename T2 >
bool agxData::BufferT< T >::contains ( const T2 &  value) const

Definition at line 1014 of file Buffer.h.

◆ end() [1/2]

template<typename T >
BufferT< T >::iterator agxData::BufferT< T >::end

Definition at line 1088 of file Buffer.h.

◆ end() [2/2]

template<typename T >
BufferT< T >::const_iterator agxData::BufferT< T >::end

Definition at line 1094 of file Buffer.h.

◆ find()

template<typename T >
template<typename T2 >
size_t agxData::BufferT< T >::find ( const T2 &  value) const

Definition at line 1020 of file Buffer.h.

◆ front() [1/2]

template<typename T >
T & agxData::BufferT< T >::front

Definition at line 1050 of file Buffer.h.

◆ front() [2/2]

template<typename T >
const T & agxData::BufferT< T >::front

Definition at line 1056 of file Buffer.h.

◆ operator[]() [1/2]

template<typename T >
T & agxData::BufferT< T >::operator[] ( size_t  index)

Definition at line 1026 of file Buffer.h.

◆ operator[]() [2/2]

template<typename T >
const T & agxData::BufferT< T >::operator[] ( size_t  index) const

Definition at line 1032 of file Buffer.h.

◆ pop_back()

template<typename T >
void agxData::BufferT< T >::pop_back

Definition at line 994 of file Buffer.h.

References agxAssert, and m_size.

◆ push_back()

template<typename T >
void agxData::BufferT< T >::push_back ( const T &  value)

Definition at line 983 of file Buffer.h.

References agxData::Buffer::CAPACITY_MULTIPLIER, m_capacity, and m_size.

◆ ValidateCast()

template<typename T >
template<typename T2 >
bool agxData::BufferT< T >::ValidateCast ( const agx::Referenced object)
static

Definition at line 945 of file Buffer.h.

References agxData::Buffer::getFormat().


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