21#ifndef GENERATED_AGX_PHYSICS_BROADPHASEPAIR_H_PLUGIN
22#define GENERATED_AGX_PHYSICS_BROADPHASEPAIR_H_PLUGIN
24#define AGX_ENTITY_WRAPPER 1
30# pragma warning( disable : 4505 )
32# pragma warning( disable : 4251 )
34# pragma warning( disable : 4355 )
36# pragma warning( disable: 4714 )
52namespace agx {
namespace Physics {
class GeometryContactPtr; }}
53namespace agx {
namespace Physics {
class WarmStartingDataPtr; }}
60 class BroadPhasePairModel;
61 class BroadPhasePairData;
62 class BroadPhasePairPtr;
63 class BroadPhasePairInstance;
64 class BroadPhasePairSemantics;
101 virtual void configure(agx::TiXmlElement* eEntity)
override;
109 #ifndef AGX_PHYSICS_BROADPHASEPAIR_DATA_SET_OVERRIDE
110 #define AGX_PHYSICS_BROADPHASEPAIR_DATA_SET
111 class AGXPHYSICS_EXPORT BroadPhasePairData :
public agx::Physics::GeometryPairData
114 BroadPhasePairInstance operator[] (
size_t index);
129 BroadPhasePairData();
132 virtual ~BroadPhasePairData() {}
133 virtual void setNumElements(
agx::Index numElements)
override;
136 BroadPhasePairData& operator= (
const BroadPhasePairData&) {
return *
this; }
162 friend class BroadPhasePairPtr;
163 friend class BroadPhasePairInstance;
164 BroadPhasePairSemantics();
218 BroadPhasePairInstance();
219 BroadPhasePairInstance(BroadPhasePairData* data,
agx::Index index);
224 BroadPhasePairData* getData();
225 const BroadPhasePairData* getData()
const;
257 inline BroadPhasePairInstance
agx::Physics::BroadPhasePairData::operator[] (
size_t index) {
return BroadPhasePairInstance(
this, (
agx::Index)index); }
264 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
271 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
279 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
280 EntityPtr::getModel()->fullPath().c_str(), BroadPhasePairModel::instance()->fullPath().c_str());
288 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
289 EntityPtr::getModel()->fullPath().c_str(), BroadPhasePairModel::instance()->fullPath().c_str());
295 AGX_FORCE_INLINE BroadPhasePairSemantics* BroadPhasePairPtr::operator->() {
return (BroadPhasePairSemantics* )
this; }
296 AGX_FORCE_INLINE const BroadPhasePairSemantics* BroadPhasePairPtr::operator->()
const {
return (
const BroadPhasePairSemantics* )
this; }
301 AGX_FORCE_INLINE agx::UInt8 const& BroadPhasePairPtr::state()
const { verifyIndex();
return getData()->state[calculateIndex()]; }
311 AGX_FORCE_INLINE BroadPhasePairInstance::BroadPhasePairInstance(BroadPhasePairData* data,
agx::Index index) :
agx::Physics::GeometryPairInstance(data, index) {}
316 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
323 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
332 AGX_FORCE_INLINE agx::UInt8 const& BroadPhasePairInstance::state()
const { verifyIndex();
return getData()->state[getIndex()]; }
354#undef AGX_ENTITY_WRAPPER
355#undef AGX_ENTITY_NAMESPACE
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGX_TYPE_BINDING(_Type, _Name)
#define AGXPHYSICS_EXPORT
Type-specific Array used for fast access into the data held by a Buffer.
Entity instance provides access to a single instance in an EntityStorage.
bool isInstanceOf(agxData::EntityModel *model) const
agxData::EntityData * getData()
Accessor to a entity instance stored in a EntityStorage, to allow SOA (structure of arrays) data to b...
EntityPtr & operator=(const EntityPtr &other)=default
bool isInstanceOf(agxData::EntityModel *model) const
agxData::EntityData * getData()
agxData::EntityInstance instance()
Data storage for a collection of entity instances of a specified EntityModel.
agx::String fullPath() const
Abstract description of the data attributes for the Physics.BroadPhasePair entity.
void construct(agx::Physics::BroadPhasePairPtr broadPhasePair)
BroadPhasePairModel(const agx::String &name="BroadPhasePair")
virtual void construct(agxData::EntityPtr instance) override
virtual ~BroadPhasePairModel()
virtual agxData::EntityData * createData(agxData::EntityStorage *storage) override
static agxData::EntityStorage * defaultStorage()
static agxData::ScalarAttributeT< agx::Physics::GeometryContactPtr > * contactAttribute
virtual void configure(agx::TiXmlElement *eEntity) override
static agxData::ScalarAttributeT< agx::UInt8 > * stateAttribute
static BroadPhasePairPtr createInstance()
Create and return a pointer to a new instance in the default storage for this entity model.
static BroadPhasePairModel * instance()
static agxData::ArrayAttributeT< agx::Physics::WarmStartingDataPtr > * warmStartingDataAttribute
virtual void shutdownCleanup() override
This is part of internal cleanup and should not be called by users.
virtual void initAttributeAccessors() override
Pointer to a entity instance of type Physics.BroadPhasePair.
AGXPHYSICS_EXPORT BroadPhasePairPtr(const agxData::EntityInstance &instance)
const BroadPhasePairData * getData() const
BroadPhasePairInstance InstanceType
AGXPHYSICS_EXPORT BroadPhasePairPtr(agxData::EntityStorage *storage, agx::Index id)
AGXPHYSICS_EXPORT agx::UInt8 & state()
AGXPHYSICS_EXPORT agxData::Array< agx::Physics::WarmStartingDataPtr > & warmStartingData()
AGXPHYSICS_EXPORT agx::Physics::GeometryContactPtr & contact()
AGXPHYSICS_EXPORT BroadPhasePairInstance instance()
AGXPHYSICS_EXPORT const BroadPhasePairSemantics * operator->() const
AGXPHYSICS_EXPORT const BroadPhasePairInstance instance() const
BroadPhasePairData * getData()
AGXPHYSICS_EXPORT BroadPhasePairPtr(const agxData::EntityPtr &ptr)
AGXPHYSICS_EXPORT agx::Physics::GeometryContactPtr const & contact() const
AGXPHYSICS_EXPORT BroadPhasePairPtr()
BroadPhasePairModel ModelType
AGXPHYSICS_EXPORT agx::UInt8 const & state() const
AGXPHYSICS_EXPORT BroadPhasePairSemantics * operator->()
BroadPhasePairData DataType
AGXPHYSICS_EXPORT agxData::Array< agx::Physics::WarmStartingDataPtr > const & warmStartingData() const
Abstract description of the data attributes for the Physics.GeometryPair entity.
Pointer to a entity instance of type Physics.GeometryPair.
Vector containing 'raw' data.
#define agxAssertN(expr, format,...)
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
Contains classes for low level data storage for AGX.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.