AGX Dynamics 2.42.1.1
Loading...
Searching...
No Matches
agxData::Buffer Class Reference

Abstract representation of a data buffer. More...

#include <Buffer.h>

+ Inheritance diagram for agxData::Buffer:

Public Types

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

 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
 Returns All child objects of a specified type in the result container.
 
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 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)
 

Public Attributes

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

static agx::UInt ALIGNMENT
 
static agx::Real CAPACITY_MULTIPLIER
 
static agx::UInt MIN_BUFFER_CAPACITY
 

Protected Member Functions

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
 

Static Protected Member Functions

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

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

Abstract representation of a data buffer.

The buffer has a name and data format/type. The buffer is an agx::Object and can be inserted in the system hierarchy.

Definition at line 55 of file Buffer.h.

Member Typedef Documentation

◆ Event

Definition at line 82 of file Buffer.h.

◆ RangeCallback

Specify a custom element initializer callback.

Definition at line 285 of file Buffer.h.

Constructor & Destructor Documentation

◆ Buffer() [1/2]

agxData::Buffer::Buffer ( const agx::Name name,
const agxData::Format format 
)

◆ Buffer() [2/2]

agxData::Buffer::Buffer ( const agxData::Format format)

◆ ~Buffer()

virtual agxData::Buffer::~Buffer ( )
protectedvirtual

Reimplemented in agxGL::Buffer.

Member Function Documentation

◆ addListener()

void agxData::Buffer::addListener ( EventListener *  listener)

◆ allocateBackBuffer()

void * agxData::Buffer::allocateBackBuffer ( )

◆ buildNavigationTree()

virtual void agxData::Buffer::buildNavigationTree ( agxJson::Value &  eNode) const
overridevirtual

Reimplemented from agx::Component.

◆ capacity()

size_t agxData::Buffer::capacity ( ) const
Returns
The capacity of the buffer.

Definition at line 460 of file Buffer.h.

References m_capacity.

Referenced by getElement().

◆ ClassModel()

static agx::Model * agxData::Buffer::ClassModel ( )
static

◆ clear()

void agxData::Buffer::clear ( )

Clear the buffer.

◆ clone() [1/4]

Buffer * agxData::Buffer::clone ( ) const

Clone the buffer.

◆ clone() [2/4]

Buffer * agxData::Buffer::clone ( const agx::IndexRange range) const

Clone a subset of the buffer.

◆ clone() [3/4]

Buffer * agxData::Buffer::clone ( const agx::IndexVector indices) const

◆ clone() [4/4]

Buffer * agxData::Buffer::clone ( const agxData::IndexArray indices) const

◆ commit() [1/4]

void agxData::Buffer::commit ( )

◆ commit() [2/4]

void agxData::Buffer::commit ( agx::Index  index)

◆ commit() [3/4]

void agxData::Buffer::commit ( agx::IndexRange32  range)

◆ commit() [4/4]

void agxData::Buffer::commit ( const agxData::IndexArray indexList)

◆ configure()

virtual void agxData::Buffer::configure ( agx::TiXmlElement *  eBuffer)
overridevirtual

◆ copy() [1/2]

static void agxData::Buffer::copy ( Buffer target,
const Buffer source 
)
static

Copy one buffer to another.

◆ copy() [2/2]

static void agxData::Buffer::copy ( Buffer target,
size_t  targetOffset,
const Buffer source,
size_t  sourceOffset,
size_t  numElements 
)
static

◆ copyGather()

static void agxData::Buffer::copyGather ( Buffer target,
const Buffer source,
const agxData::IndexArray indices 
)
static

◆ copyScatter()

static void agxData::Buffer::copyScatter ( Buffer target,
const Buffer source,
const agxData::IndexArray indices 
)
static

◆ deleteOverflowBuffer()

void agxData::Buffer::deleteOverflowBuffer ( void *  buffer,
size_t  numElements 
)

◆ destroyElements()

static void agxData::Buffer::destroyElements ( Buffer buffer,
const agx::IndexRange range 
)
staticprotected

◆ empty()

bool agxData::Buffer::empty ( ) const
Returns
True if the buffer is empty.

Definition at line 461 of file Buffer.h.

References m_size.

◆ getArray() [1/6]

template<typename T >
agxData::Array< T > & agxData::Buffer::getArray ( )

Convenience method to get an direct data array.

Referenced by agxData::AbstractArray::init(), and agxData::AbstractArray::setRange().

◆ getArray() [2/6]

AbstractArray & agxData::Buffer::getArray ( )

Definition at line 495 of file Buffer.h.

References m_array.

◆ getArray() [3/6]

template<typename T >
Array< T > & agxData::Buffer::getArray ( )

Definition at line 483 of file Buffer.h.

References agxAssertN, m_array, and m_format.

◆ getArray() [4/6]

template<typename T >
const agxData::Array< T > & agxData::Buffer::getArray ( ) const

◆ getArray() [5/6]

const AbstractArray & agxData::Buffer::getArray ( ) const

Definition at line 496 of file Buffer.h.

References m_array.

◆ getArray() [6/6]

template<typename T >
const Array< T > & agxData::Buffer::getArray ( ) const

Definition at line 490 of file Buffer.h.

◆ getAttribute() [1/2]

Attribute * agxData::Buffer::getAttribute ( )
Returns
The attribute which the buffer holds data, nullptr if not part of a storage.

Definition at line 471 of file Buffer.h.

References m_attribute.

◆ getAttribute() [2/2]

const Attribute * agxData::Buffer::getAttribute ( ) const

Definition at line 472 of file Buffer.h.

References m_attribute.

◆ getDefaultValue() [1/2]

agxData::Value * agxData::Buffer::getDefaultValue ( )
Returns
The default element value.

Definition at line 479 of file Buffer.h.

References m_defaultElementValue.

◆ getDefaultValue() [2/2]

const agxData::Value * agxData::Buffer::getDefaultValue ( ) const

Definition at line 480 of file Buffer.h.

References m_defaultElementValue.

◆ getElement() [1/4]

template<typename T >
T & agxData::Buffer::getElement ( size_t  index)
Returns
A specific element in the buffer.

Definition at line 517 of file Buffer.h.

References agxAssert, agxAssertN, capacity(), agx::Object::fullName(), getFormat(), agx::Referenced::is(), agxCore::isShutdown(), and m_ptr.

Referenced by agxData::EntityStorage::get(), and getElement().

◆ getElement() [2/4]

void * agxData::Buffer::getElement ( size_t  index)
Returns
The raw data of a specific element in the buffer.

Definition at line 535 of file Buffer.h.

References agxAssert, capacity(), getFormat(), agxData::Format::getSize(), and m_ptr.

◆ getElement() [3/4]

template<typename T >
const T & agxData::Buffer::getElement ( size_t  index) const

Definition at line 529 of file Buffer.h.

◆ getElement() [4/4]

const void * agxData::Buffer::getElement ( size_t  index) const

Definition at line 542 of file Buffer.h.

References getElement().

◆ getElementArraySize()

size_t agxData::Buffer::getElementArraySize ( ) const
Returns
The array size. (used for ArrayAttribute in an EntityStorage)

Definition at line 466 of file Buffer.h.

References agx::ref_ptr< T >::get().

Referenced by agxData::EntityStorage::dereferenceMultipliedAttribute(), and agx::ArrayParameter::getNumElements().

◆ getElementBuffer() [1/2]

Buffer * agxData::Buffer::getElementBuffer ( )

If the buffer contains arrays/vectors, the actual elements are stored in another buffer.

Definition at line 554 of file Buffer.h.

References m_elementBuffer.

◆ getElementBuffer() [2/2]

const Buffer * agxData::Buffer::getElementBuffer ( ) const

Definition at line 555 of file Buffer.h.

References m_elementBuffer.

◆ getFormat() [1/2]

Format * agxData::Buffer::getFormat ( )

◆ getFormat() [2/2]

const Format * agxData::Buffer::getFormat ( ) const

Definition at line 477 of file Buffer.h.

References m_format.

◆ getGlobalOrderBuffer() [1/2]

Buffer * agxData::Buffer::getGlobalOrderBuffer ( )

If the buffer is used as a global result, we provide a permutation buffer for parallel determinism.

Definition at line 557 of file Buffer.h.

References m_globalOrderBuffer.

◆ getGlobalOrderBuffer() [2/2]

const Buffer * agxData::Buffer::getGlobalOrderBuffer ( ) const

Definition at line 558 of file Buffer.h.

References m_globalOrderBuffer.

◆ getGlobalResult() [1/2]

agx::GlobalResultBuffer * agxData::Buffer::getGlobalResult ( )
Returns
The global result bound to this buffer.

Definition at line 548 of file Buffer.h.

References m_globalResult.

◆ getGlobalResult() [2/2]

const agx::GlobalResultBuffer * agxData::Buffer::getGlobalResult ( ) const

Definition at line 549 of file Buffer.h.

References m_globalResult.

◆ getOrCreateGlobalOrderBuffer()

Buffer * agxData::Buffer::getOrCreateGlobalOrderBuffer ( )

◆ getOriginalBuffer() [1/2]

Buffer * agxData::Buffer::getOriginalBuffer ( )

◆ getOriginalBuffer() [2/2]

const Buffer * agxData::Buffer::getOriginalBuffer ( ) const

◆ getReserveCallback()

const agxData::Value::Event::CallbackType & agxData::Buffer::getReserveCallback ( ) const

◆ getResizeCallback()

const agxData::Value::Event::CallbackType & agxData::Buffer::getResizeCallback ( ) const

◆ getRevision()

agx::UInt64 agxData::Buffer::getRevision ( ) const
Returns
The revision counter

Definition at line 464 of file Buffer.h.

References m_revision.

◆ getStorage() [1/2]

EntityStorage * agxData::Buffer::getStorage ( )
Returns
The storage which the buffer is part of.

Definition at line 468 of file Buffer.h.

References m_storage.

Referenced by agxData::Vector< T >::Vector().

◆ getStorage() [2/2]

const EntityStorage * agxData::Buffer::getStorage ( ) const

Definition at line 469 of file Buffer.h.

References m_storage.

◆ getType() [1/2]

Type * agxData::Buffer::getType ( )
Returns
The type of the buffer.

Definition at line 474 of file Buffer.h.

References m_format.

◆ getType() [2/2]

const Type * agxData::Buffer::getType ( ) const

Definition at line 475 of file Buffer.h.

References m_format.

◆ hasListener()

bool agxData::Buffer::hasListener ( EventListener *  listener)

◆ initialize()

void agxData::Buffer::initialize ( const agx::IndexRange range)

Initialize a range of elements.

◆ initializeElements()

static void agxData::Buffer::initializeElements ( Buffer buffer,
const agx::IndexRange range 
)
staticprotected

◆ kernelOverflowReallocation()

void * agxData::Buffer::kernelOverflowReallocation ( size_t  size)

◆ load()

static Buffer * agxData::Buffer::load ( agx::TiXmlElement *  eBuffer,
agx::Device device 
)
static

◆ presize()

void agxData::Buffer::presize ( size_t  size,
size_t  initialSize 
)

◆ print() [1/4]

void agxData::Buffer::print ( ) const

Print the buffer.

◆ print() [2/4]

void agxData::Buffer::print ( agx::IndexRange  range) const

◆ print() [3/4]

void agxData::Buffer::print ( std::ostream &  stream) const

◆ print() [4/4]

void agxData::Buffer::print ( std::ostream &  stream,
agx::IndexRange  range 
) const

◆ ptr() [1/4]

void * agxData::Buffer::ptr ( )

Get access to the raw data buffer.

Definition at line 499 of file Buffer.h.

References m_ptr.

Referenced by agxData::AbstractArray::sync().

◆ ptr() [2/4]

template<typename T >
T * agxData::Buffer::ptr

◆ ptr() [3/4]

const void * agxData::Buffer::ptr ( ) const

Definition at line 500 of file Buffer.h.

References m_ptr.

◆ ptr() [4/4]

template<typename T >
const T * agxData::Buffer::ptr

Definition at line 510 of file Buffer.h.

◆ reallocate()

virtual void agxData::Buffer::reallocate ( size_t  size)
protectedvirtual

Reimplemented in agxGL::Buffer.

◆ registerSharedContainer()

void agxData::Buffer::registerSharedContainer ( agx::Container container)

◆ removeListener()

void agxData::Buffer::removeListener ( EventListener *  listener)

◆ reserve()

void agxData::Buffer::reserve ( size_t  size)

Reserve space for future buffer expansion.

◆ resize()

void agxData::Buffer::resize ( size_t  size,
bool  initializeElements = true 
)

Resize the buffer.

◆ setDefaultValue()

void agxData::Buffer::setDefaultValue ( agxData::Value value)

Set the default element value.

◆ setElementBuffer()

void agxData::Buffer::setElementBuffer ( Buffer buffer)

Set the element buffer, internal use only.

◆ setElementDestructor()

void agxData::Buffer::setElementDestructor ( const RangeCallback callback)

◆ setElementInitializer()

void agxData::Buffer::setElementInitializer ( const RangeCallback callback)

◆ setRevision()

void agxData::Buffer::setRevision ( agx::UInt64  revision)

◆ size()

size_t agxData::Buffer::size ( ) const
Returns
The size of the buffer.

Definition at line 459 of file Buffer.h.

References m_size.

Referenced by agx::ArrayParameter::getNumElements(), agxData::AbstractArray::init(), and agxData::AbstractArray::setRange().

◆ snapshot()

virtual void agxData::Buffer::snapshot ( agx::TiXmlNode *  eParent,
const agx::String directory 
) const
overridevirtual

◆ swapBackBuffer()

void agxData::Buffer::swapBackBuffer ( void *  backBuffer)

◆ unregisterSharedContainer()

void agxData::Buffer::unregisterSharedContainer ( agx::Container container)

Member Data Documentation

◆ ALIGNMENT

agx::UInt agxData::Buffer::ALIGNMENT
static

Definition at line 67 of file Buffer.h.

◆ CAPACITY_MULTIPLIER

agx::Real agxData::Buffer::CAPACITY_MULTIPLIER
static

◆ capacityParameter

agxData::ValueRefT<agx::UInt> agxData::Buffer::capacityParameter

Definition at line 79 of file Buffer.h.

◆ m_allocator

agx::ByteAllocator agxData::Buffer::m_allocator
protected

Definition at line 341 of file Buffer.h.

◆ m_array

AbstractArray agxData::Buffer::m_array
protected

Definition at line 342 of file Buffer.h.

Referenced by getArray().

◆ m_attribute

Attribute* agxData::Buffer::m_attribute
protected

Definition at line 346 of file Buffer.h.

Referenced by getAttribute().

◆ m_capacity

size_t agxData::Buffer::m_capacity
protected

Definition at line 337 of file Buffer.h.

Referenced by capacity().

◆ m_defaultElementValue

agxData::ValueRef agxData::Buffer::m_defaultElementValue
protected

Definition at line 348 of file Buffer.h.

Referenced by getDefaultValue().

◆ m_destructor

RangeCallback agxData::Buffer::m_destructor
protected

Definition at line 358 of file Buffer.h.

◆ m_elementBuffer

agxData::BufferRef agxData::Buffer::m_elementBuffer
protected

Definition at line 349 of file Buffer.h.

Referenced by getElementBuffer().

◆ m_eventDispatch

EventDispatch agxData::Buffer::m_eventDispatch
protected

Definition at line 355 of file Buffer.h.

◆ m_format

FormatRef agxData::Buffer::m_format
protected

Definition at line 347 of file Buffer.h.

Referenced by getArray(), getFormat(), and getType().

◆ m_globalOrderBuffer

agxData::BufferRef agxData::Buffer::m_globalOrderBuffer
protected

Definition at line 350 of file Buffer.h.

Referenced by getGlobalOrderBuffer().

◆ m_globalResult

agx::GlobalResultBuffer* agxData::Buffer::m_globalResult
protected

Definition at line 354 of file Buffer.h.

Referenced by getGlobalResult().

◆ m_initElements

bool agxData::Buffer::m_initElements
protected

Definition at line 343 of file Buffer.h.

◆ m_initializer

RangeCallback agxData::Buffer::m_initializer
protected

Definition at line 357 of file Buffer.h.

◆ m_originalBuffer

agxData::Buffer* agxData::Buffer::m_originalBuffer
protected

Definition at line 362 of file Buffer.h.

◆ m_ptr

void* agxData::Buffer::m_ptr
protected

Definition at line 340 of file Buffer.h.

Referenced by getElement(), and ptr().

◆ m_reserveCallback

agxData::Value::Event::CallbackType agxData::Buffer::m_reserveCallback
protected

Definition at line 353 of file Buffer.h.

◆ m_resizeCallback

agxData::Value::Event::CallbackType agxData::Buffer::m_resizeCallback
protected

Definition at line 352 of file Buffer.h.

◆ m_revision

agx::UInt64 agxData::Buffer::m_revision
protected

Definition at line 338 of file Buffer.h.

Referenced by getRevision().

◆ m_sharedContainer

agx::Container* agxData::Buffer::m_sharedContainer
protected

Definition at line 351 of file Buffer.h.

◆ m_shareHandle

agxData::ShareHandleRef agxData::Buffer::m_shareHandle
protected

Definition at line 361 of file Buffer.h.

◆ m_size

size_t agxData::Buffer::m_size
protected

Definition at line 336 of file Buffer.h.

Referenced by empty(), and size().

◆ m_storage

EntityStorage* agxData::Buffer::m_storage
protected

Definition at line 345 of file Buffer.h.

Referenced by getStorage().

◆ m_usedResizeMethod

bool agxData::Buffer::m_usedResizeMethod
protected

Definition at line 344 of file Buffer.h.

◆ MIN_BUFFER_CAPACITY

agx::UInt agxData::Buffer::MIN_BUFFER_CAPACITY
static

Definition at line 66 of file Buffer.h.

◆ reallocationEvent

Event agxData::Buffer::reallocationEvent

Triggered when buffer is reallocated.

Definition at line 85 of file Buffer.h.

◆ sizeParameter

agxData::ValueRefT<agx::UInt> agxData::Buffer::sizeParameter

Definition at line 78 of file Buffer.h.


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