AGX Dynamics 2.42.3.1
Loading...
Searching...
No Matches
agx::ArrayParameter Class Reference

Array parameter. More...

#include <Parameter.h>

+ Inheritance diagram for agx::ArrayParameter:

Public Member Functions

 ArrayParameter (const agx::Name &name, agxData::Format *format, UInt8 accessMode, agxData::Buffer *binding)
 
 ArrayParameter (const agx::Name &name, agxData::Format *format, UInt8 accessMode=agxData::READ, const Path &bindPath=Path())
 
 ArrayParameter (const agx::Name &name, agxData::Type *type, UInt8 accessMode, agxData::Buffer *binding)
 
 ArrayParameter (const agx::Name &name, agxData::Type *type, UInt8 accessMode=agxData::READ, const Path &bindPath=Path())
 
virtual void commit () override
 
virtual void configure (TiXmlElement *eParameter) override
 
template<typename T >
agxData::Array< T > & get ()
 Access the data of the current buffer binding.
 
template<typename T >
const agxData::Array< T > & get () const
 
agxData::Buffer * getBuffer ()
 
const agxData::Buffer * getBuffer () const
 
GlobalResultBuffer * getGlobalResult ()
 
const GlobalResultBuffer * getGlobalResult () const
 
UInt getGlobalResultMode () const
 
size_t getLocalSize () const
 
size_t getNumElements () const
 
virtual Object * getResourceImpl (const Path &path, agx::Model *model) override
 
const agxData::Type * getType () const override
 
agxData::Type * getType () override
 
virtual bool hasGlobalResult () const override
 
virtual bool isValid () const override
 
void setGlobalResultMode (UInt mode)
 Set the global result mode.
 
void setLocalSize (size_t numElements)
 Create a local memory allocation.
 
virtual void update () override
 
- Public Member Functions inherited from agx::Parameter
void bind (agx::Object *binding)
 Set explicit binding.
 
void bind (const agx::Path &path)
 Set parameter bind path.
 
virtual void commit ()=0
 
UInt8 getAccessMode () const
 
agx::Object * getBinding ()
 
const agx::Object * getBinding () const
 
const agx::Path & getBindPath () const
 
agxData::Format * getFormat ()
 
const agxData::Format * getFormat () const
 
size_t getIndex () const
 
MetaType getMetaType () const
 
const agx::String & getMetaTypeName () const
 
virtual Object * getResourceImpl (const Path &path, agx::Model *model) override
 
agx::Task * getTask ()
 
const agx::Task * getTask () const
 
virtual agxData::Type * getType ()
 
virtual const agxData::Type * getType () const
 
virtual bool hasGlobalResult () const
 
bool isRequired () const
 
virtual bool isValid () const =0
 
bool needCommit ()
 
bool needUpdate ()
 
virtual void rebind () override
 
void set (agx::Object *binding)
 Set the parameter, alias for bind.
 
void setRequired (bool flag)
 Set if the parameter is required, default is true.
 
void unbind ()
 Remove current binding and bind path.
 
virtual void update ()=0
 
- 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.
 

Static Public Member Functions

static agx::Model * ClassModel ()
 
static ArrayParameter * load (TiXmlElement *eParameter, Device *device)
 
- Static Public Member Functions inherited from agx::Parameter
static agx::Model * ClassModel ()
 
- 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)
 

Protected Member Functions

virtual ~ArrayParameter ()
 
virtual void _bind (Object *binding) override
 
virtual void prepareGlobalResultSorting (size_t numJobs) override
 
- Protected Member Functions inherited from agx::Parameter
 Parameter (Model *model, MetaType type, const Name &name, agxData::Format *format, UInt8 accessMode, const Path &bindPath=Path())
 
virtual ~Parameter ()
 
virtual void _bind (Object *binding)=0
 
- 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 Types inherited from agx::Parameter
typedef Event1< Parameter * > Event
 
enum  MetaType {
  SCALAR , ARRAY , POINTER , ENTITY_DATA ,
  ENTITY_PTR , ENTITY_INSTANCE , UNRESOLVED
}
 Specify which kind of parameter. More...
 
- 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 Attributes inherited from agx::Parameter
Event bindEvent
 
Event unbindEvent
 
Event updateEvent
 
- 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::Parameter
const UInt8 m_accessMode
 
ObjectObserver m_binding
 
Path m_bindPath
 
agxData::FormatRef m_format
 
size_t m_index
 
UInt8 m_metaType
 
bool m_needCommit
 
bool m_needUpdate
 
bool m_required
 
Task * m_task
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Detailed Description

Array parameter.

Definition at line 328 of file Parameter.h.

Constructor & Destructor Documentation

◆ ArrayParameter() [1/4]

agx::ArrayParameter::ArrayParameter ( const agx::Name &  name,
agxData::Type *  type,
UInt8  accessMode = agxData::READ,
const Path &  bindPath = Path() 
)

◆ ArrayParameter() [2/4]

agx::ArrayParameter::ArrayParameter ( const agx::Name &  name,
agxData::Type *  type,
UInt8  accessMode,
agxData::Buffer *  binding 
)

◆ ArrayParameter() [3/4]

agx::ArrayParameter::ArrayParameter ( const agx::Name &  name,
agxData::Format *  format,
UInt8  accessMode = agxData::READ,
const Path &  bindPath = Path() 
)

◆ ArrayParameter() [4/4]

agx::ArrayParameter::ArrayParameter ( const agx::Name &  name,
agxData::Format *  format,
UInt8  accessMode,
agxData::Buffer *  binding 
)

◆ ~ArrayParameter()

virtual agx::ArrayParameter::~ArrayParameter ( )
protectedvirtual

Member Function Documentation

◆ _bind()

virtual void agx::ArrayParameter::_bind ( Object *  binding)
overrideprotectedvirtual

Implements agx::Parameter.

◆ ClassModel()

static agx::Model * agx::ArrayParameter::ClassModel ( )
static

◆ commit()

virtual void agx::ArrayParameter::commit ( )
overridevirtual

Implements agx::Parameter.

◆ configure()

virtual void agx::ArrayParameter::configure ( TiXmlElement *  eParameter)
overridevirtual

Reimplemented from agx::Object.

◆ get() [1/2]

template<typename T >
agxData::Array< T > & agx::ArrayParameter::get

Access the data of the current buffer binding.

Definition at line 771 of file Parameter.h.

References agxAssertN, agx::Object::getPath(), agx::Parameter::m_format, and agx::Parameter::m_required.

◆ get() [2/2]

template<typename T >
const agxData::Array< T > & agx::ArrayParameter::get

Definition at line 780 of file Parameter.h.

◆ getBuffer() [1/2]

agxData::Buffer * agx::ArrayParameter::getBuffer ( )
Returns
The current buffer binding.

Definition at line 765 of file Parameter.h.

Referenced by getNumElements().

◆ getBuffer() [2/2]

const agxData::Buffer * agx::ArrayParameter::getBuffer ( ) const

Definition at line 766 of file Parameter.h.

◆ getGlobalResult() [1/2]

GlobalResultBuffer * agx::ArrayParameter::getGlobalResult ( )
Returns
The global result.

Definition at line 791 of file Parameter.h.

◆ getGlobalResult() [2/2]

const GlobalResultBuffer * agx::ArrayParameter::getGlobalResult ( ) const

Definition at line 792 of file Parameter.h.

◆ getGlobalResultMode()

UInt agx::ArrayParameter::getGlobalResultMode ( ) const
Returns
The global result mode.

Definition at line 794 of file Parameter.h.

◆ getLocalSize()

size_t agx::ArrayParameter::getLocalSize ( ) const
Returns
The local memory size, number of elements (not bytes).

Definition at line 782 of file Parameter.h.

◆ getNumElements()

size_t agx::ArrayParameter::getNumElements ( ) const
Returns
The number of elements of the currently bound buffer.

Definition at line 784 of file Parameter.h.

References agxAssert, getBuffer(), agxData::Buffer::getElementArraySize(), and agxData::Buffer::size().

◆ getResourceImpl()

virtual Object * agx::ArrayParameter::getResourceImpl ( const Path &  path,
agx::Model *  model 
)
overridevirtual

Reimplemented from agx::Parameter.

◆ getType() [1/2]

const agxData::Type * agx::ArrayParameter::getType ( ) const
overridevirtual

Reimplemented from agx::Parameter.

Definition at line 768 of file Parameter.h.

◆ getType() [2/2]

agxData::Type * agx::ArrayParameter::getType ( )
overridevirtual
Returns
The parameter type.

Reimplemented from agx::Parameter.

Definition at line 767 of file Parameter.h.

◆ hasGlobalResult()

virtual bool agx::ArrayParameter::hasGlobalResult ( ) const
overridevirtual
Returns
True if the parameter has a global result

Reimplemented from agx::Parameter.

◆ isValid()

virtual bool agx::ArrayParameter::isValid ( ) const
overridevirtual
Returns
True if the parameter has a valid binding.

Implements agx::Parameter.

◆ load()

static ArrayParameter * agx::ArrayParameter::load ( TiXmlElement *  eParameter,
Device *  device 
)
static

◆ prepareGlobalResultSorting()

virtual void agx::ArrayParameter::prepareGlobalResultSorting ( size_t  numJobs)
overrideprotectedvirtual

Reimplemented from agx::Parameter.

◆ setGlobalResultMode()

void agx::ArrayParameter::setGlobalResultMode ( UInt  mode)

Set the global result mode.

◆ setLocalSize()

void agx::ArrayParameter::setLocalSize ( size_t  numElements)

Create a local memory allocation.

Eg. __local in OpenCL.

◆ update()

virtual void agx::ArrayParameter::update ( )
overridevirtual

Implements agx::Parameter.


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