17#ifndef AGXDATA_ENTITYDATA_H
18#define AGXDATA_ENTITYDATA_H
30 class EntityDataParameter;
82 size_t idToIndex(
size_t id)
const;
87 size_t indexToId(
size_t index)
const;
100 Array< EntityPtr > instance;
113 void commitInstanceBatch();
116 friend class EntityStorage;
117 friend class EntityModel;
121 EntityData(EntityStorage *storage);
123 virtual ~EntityData();
126 void setGlobalOrderBuffer(Buffer *buffer);
128 void bind(
const Attribute *attribute, Buffer *buffer);
130 void realloactionCallback(Buffer *buffer);
131 void registerArray(
const Attribute *attribute, AbstractArray *array);
132 void unregisterArray(
const Attribute *attribute);
134 virtual void setNumElements(
agx::UInt32 numElements);
139 EntityStorage *m_storage;
146 bool m_hasBatchInstances;
159 AGX_FORCE_INLINE EntityStorage *EntityData::getStorage() {
return m_storage; }
164 agxVerifyN(m_globalResult,
"%s: No global result is active", getPath().c_str());
165 return m_globalResult->allocateResult(numElements);
170 agxAssertN(m_globalOrder.buffer(),
"%s: Data set does not have a global ordering buffer", getPath().c_str());
171 return m_globalOrder[index];
#define AGX_DECLARE_POINTER_TYPES(type)
Abstract representation of a value.
Transactions are used to reserve exclusive memory areas in which the threads can write their data.
GlobalResult is used by kernels to generate result data from different threads.
A model is an abstract representation of the class of an agx::Object.
#define agxAssertN(expr, format,...)
#define agxVerifyN(expr, format,...)
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
Contains classes for low level data storage for AGX.
Array< agx::Index > IndexArray
agxData::EntityData * EntityDataPtr
AGXTERRAIN_EXPORT TimingStorage & getStorage()
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
AGXCORE_EXPORT Model * getModel(const Path &path, const Path &_namespace=Path())