17#ifndef AGXDATA_ATTRIBUTE_H
18#define AGXDATA_ATTRIBUTE_H
23# pragma warning( disable : 4505 )
278 template <
typename T>
291 template <
typename T>
303 template <
typename T>
317 template <
typename T>
328 ScalarAttributeT<T> m_elementAttribute;
331 template <
typename T>
342 ScalarAttributeT<T> m_elementAttribute;
347 template <
typename T>
#define AGX_DECLARE_POINTER_TYPES(type)
static ArrayAttribute * load(agx::TiXmlElement *eAttribute)
ArrayAttribute(const agx::Name &name, ScalarAttribute *elementAttribute, Type *arrayType)
static agx::Model * ClassModel()
virtual ~ArrayAttribute()
Type-specific Array used for fast access into the data held by a Buffer.
An abstract attribute description, part of an Entity.
void setEntity(EntityModel *entity)
void setDefaultFormat(agxData::Format *format)
agx::String fullName() const
EntityModel * getEntity() const
void setDefaultValue(agxData::Value *value)
Attribute(const agx::Name &name, agxData::Type *type, agxData::Format *defaultFormat=nullptr, agxData::Value *defaultValue=nullptr, agxData::Value *numElements=nullptr)
Constructor.
void setId(agx::Index id)
agxData::Value * getDefaultValue()
agxData::Format * getDefaultFormat()
static agx::Model * ClassModel()
agxData::Type * getType()
agxData::Value * getNumElements()
A container attribute (Array/Vector/HashSet)
static agx::Model * ClassModel()
ContainerAttribute(const agx::Name &name, ScalarAttribute *elementAttribute, Type *containerType)
ScalarAttribute * getElementAttribute()
virtual ~ContainerAttribute()
An abstract description of a data entity stored using SOA (structure of arrays) pattern in a EntitySt...
Data storage for a collection of entity instances of a specified EntityModel.
HashSetAttribute(const agx::Name &name, ScalarAttribute *elementAttribute, Type *hashSetType)
static agx::Model * ClassModel()
virtual ~HashSetAttribute()
static HashSetAttribute * load(agx::TiXmlElement *eAttribute)
virtual ~PointerAttribute()
static PointerAttribute * load(agx::TiXmlElement *eAttribute)
PointerAttribute(const agx::Name &name, Type *type, Format *defaultFormat=nullptr, agxData::Value *defaultValue=nullptr)
static agx::Model * ClassModel()
virtual ~ScalarAttributeT()
ScalarAttributeT(const agx::Name &name)
ScalarAttribute(const agx::Name &name, Type *type, Format *defaultFormat=nullptr, agxData::Value *defaultValue=nullptr, agxData::Value *numElementsExpression=nullptr)
static ScalarAttribute * load(agx::TiXmlElement *eAttribute)
virtual ~ScalarAttribute()
static agx::Model * ClassModel()
SharedAttribute(const agx::Name &name, Format *format, const agx::String &expression)
const agx::String & getExpression() const
static agx::Model * ClassModel()
static SharedAttribute * load(agx::TiXmlElement *eAttribute)
Abstract representation of a value.
static VectorAttribute * load(agx::TiXmlElement *eAttribute)
virtual ~VectorAttribute()
VectorAttribute(const agx::Name &name, ScalarAttribute *elementAttribute, Type *vectorType)
static agx::Model * ClassModel()
Inheritance with partial specialization due to bug with ref_ptr containers.
A model is an abstract representation of the class of an agx::Object.
Representation of a name string.
agx::Object is a refcounted object with a name.
Contains classes for low level data storage for AGX.
AGXCORE_EXPORT Type * getType(const agx::String &name)
std::ostream & operator<<(std::ostream &output, const Attribute &attribute)
AGXCORE_EXPORT EntityModel * getEntity(const agx::Path &path)
Get a entity with a specified path.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.