21#ifndef GENERATED_AGX_PHYSICS_PARTICLEGEOMETRYCONTACT_H_PLUGIN
22#define GENERATED_AGX_PHYSICS_PARTICLEGEOMETRYCONTACT_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 )
53namespace agx {
namespace Physics {
class GeometryPtr; }}
60 class ParticleGeometryContactModel;
61 class ParticleGeometryContactData;
62 class ParticleGeometryContactPtr;
63 class ParticleGeometryContactInstance;
64 class ParticleGeometryContactSemantics;
120 virtual void configure(agx::TiXmlElement* eEntity)
override;
128 #ifndef AGX_PHYSICS_PARTICLEGEOMETRYCONTACT_DATA_SET_OVERRIDE
129 #define AGX_PHYSICS_PARTICLEGEOMETRYCONTACT_DATA_SET
130 class AGXPHYSICS_EXPORT ParticleGeometryContactData :
public agx::Physics::ContactData
133 ParticleGeometryContactInstance operator[] (
size_t index);
186 ParticleGeometryContactData();
189 virtual ~ParticleGeometryContactData() {}
190 virtual void setNumElements(
agx::Index numElements)
override;
193 ParticleGeometryContactData& operator= (
const ParticleGeometryContactData&) {
return *
this; }
201 class
AGXPHYSICS_EXPORT ParticleGeometryContactSemantics : public
agx::Physics::ContactSemantics
222 agx::Real const& getImpactNormalForce()
const;
223 agx::Real const& getContactEnergy()
const;
247 void setLocalForce(
agx::Vec3 const& value);
248 void setImpactNormalForce(
agx::Real const& value);
249 void setContactEnergy(
agx::Real const& value);
250 void setIsImpacting(
agx::Bool const& value);
253 void setNext(
agx::Int const& value);
257 friend class ParticleGeometryContactPtr;
258 friend class ParticleGeometryContactInstance;
259 ParticleGeometryContactSemantics();
288 const ParticleGeometryContactData*
getData()
const;
408 ParticleGeometryContactInstance();
409 ParticleGeometryContactInstance(ParticleGeometryContactData* data,
agx::Index index);
414 ParticleGeometryContactData* getData();
415 const ParticleGeometryContactData* getData()
const;
501 agx::Real const& impactNormalForce()
const;
542 inline ParticleGeometryContactInstance
agx::Physics::ParticleGeometryContactData::operator[] (
size_t index) {
return ParticleGeometryContactInstance(
this, (
agx::Index)index); }
549 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
556 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
564 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
565 EntityPtr::getModel()->fullPath().c_str(), ParticleGeometryContactModel::instance()->fullPath().c_str());
573 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
574 EntityPtr::getModel()->fullPath().c_str(), ParticleGeometryContactModel::instance()->fullPath().c_str());
580 AGX_FORCE_INLINE ParticleGeometryContactSemantics* ParticleGeometryContactPtr::operator->() {
return (ParticleGeometryContactSemantics* )
this; }
581 AGX_FORCE_INLINE const ParticleGeometryContactSemantics* ParticleGeometryContactPtr::operator->()
const {
return (
const ParticleGeometryContactSemantics* )
this; }
585 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactPtr::particle() { verifyIndex();
return getData()->particle[calculateIndex()]; }
586 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactPtr::particle()
const { verifyIndex();
return getData()->particle[calculateIndex()]; }
588 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactPtr::geometry() { verifyIndex();
return getData()->geometry[calculateIndex()]; }
589 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactPtr::geometry()
const { verifyIndex();
return getData()->geometry[calculateIndex()]; }
592 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactPtr::body()
const { verifyIndex();
return getData()->body[calculateIndex()]; }
594 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactPtr::particleId() { verifyIndex();
return getData()->particleId[calculateIndex()]; }
595 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactPtr::particleId()
const { verifyIndex();
return getData()->particleId[calculateIndex()]; }
597 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactPtr::geometryId() { verifyIndex();
return getData()->geometryId[calculateIndex()]; }
598 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactPtr::geometryId()
const { verifyIndex();
return getData()->geometryId[calculateIndex()]; }
603 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactPtr::faceIndex() { verifyIndex();
return getData()->faceIndex[calculateIndex()]; }
604 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactPtr::faceIndex()
const { verifyIndex();
return getData()->faceIndex[calculateIndex()]; }
606 AGX_FORCE_INLINE agx::UInt8& ParticleGeometryContactPtr::faceFeature() { verifyIndex();
return getData()->faceFeature[calculateIndex()]; }
607 AGX_FORCE_INLINE agx::UInt8 const& ParticleGeometryContactPtr::faceFeature()
const { verifyIndex();
return getData()->faceFeature[calculateIndex()]; }
609 AGX_FORCE_INLINE agx::Bool& ParticleGeometryContactPtr::enabled() { verifyIndex();
return getData()->enabled[calculateIndex()]; }
610 AGX_FORCE_INLINE agx::Bool const& ParticleGeometryContactPtr::enabled()
const { verifyIndex();
return getData()->enabled[calculateIndex()]; }
612 AGX_FORCE_INLINE agx::Vec3& ParticleGeometryContactPtr::point() { verifyIndex();
return getData()->point[calculateIndex()]; }
613 AGX_FORCE_INLINE agx::Vec3 const& ParticleGeometryContactPtr::point()
const { verifyIndex();
return getData()->point[calculateIndex()]; }
615 AGX_FORCE_INLINE agx::Vec3f& ParticleGeometryContactPtr::normal() { verifyIndex();
return getData()->normal[calculateIndex()]; }
616 AGX_FORCE_INLINE agx::Vec3f const& ParticleGeometryContactPtr::normal()
const { verifyIndex();
return getData()->normal[calculateIndex()]; }
618 AGX_FORCE_INLINE agx::Vec3f& ParticleGeometryContactPtr::tangentU() { verifyIndex();
return getData()->tangentU[calculateIndex()]; }
619 AGX_FORCE_INLINE agx::Vec3f const& ParticleGeometryContactPtr::tangentU()
const { verifyIndex();
return getData()->tangentU[calculateIndex()]; }
621 AGX_FORCE_INLINE agx::Vec3f& ParticleGeometryContactPtr::tangentV() { verifyIndex();
return getData()->tangentV[calculateIndex()]; }
622 AGX_FORCE_INLINE agx::Vec3f const& ParticleGeometryContactPtr::tangentV()
const { verifyIndex();
return getData()->tangentV[calculateIndex()]; }
624 AGX_FORCE_INLINE agx::Real& ParticleGeometryContactPtr::depth() { verifyIndex();
return getData()->depth[calculateIndex()]; }
625 AGX_FORCE_INLINE agx::Real const& ParticleGeometryContactPtr::depth()
const { verifyIndex();
return getData()->depth[calculateIndex()]; }
627 AGX_FORCE_INLINE agx::Vec3f& ParticleGeometryContactPtr::velocity() { verifyIndex();
return getData()->velocity[calculateIndex()]; }
628 AGX_FORCE_INLINE agx::Vec3f const& ParticleGeometryContactPtr::velocity()
const { verifyIndex();
return getData()->velocity[calculateIndex()]; }
630 AGX_FORCE_INLINE agx::Vec3& ParticleGeometryContactPtr::localForce() { verifyIndex();
return getData()->localForce[calculateIndex()]; }
631 AGX_FORCE_INLINE agx::Vec3 const& ParticleGeometryContactPtr::localForce()
const { verifyIndex();
return getData()->localForce[calculateIndex()]; }
633 AGX_FORCE_INLINE agx::Real& ParticleGeometryContactPtr::impactNormalForce() { verifyIndex();
return getData()->impactNormalForce[calculateIndex()]; }
634 AGX_FORCE_INLINE agx::Real const& ParticleGeometryContactPtr::impactNormalForce()
const { verifyIndex();
return getData()->impactNormalForce[calculateIndex()]; }
636 AGX_FORCE_INLINE agx::Real& ParticleGeometryContactPtr::contactEnergy() { verifyIndex();
return getData()->contactEnergy[calculateIndex()]; }
637 AGX_FORCE_INLINE agx::Real const& ParticleGeometryContactPtr::contactEnergy()
const { verifyIndex();
return getData()->contactEnergy[calculateIndex()]; }
639 AGX_FORCE_INLINE agx::Bool& ParticleGeometryContactPtr::isImpacting() { verifyIndex();
return getData()->isImpacting[calculateIndex()]; }
640 AGX_FORCE_INLINE agx::Bool const& ParticleGeometryContactPtr::isImpacting()
const { verifyIndex();
return getData()->isImpacting[calculateIndex()]; }
642 AGX_FORCE_INLINE agx::Real32& ParticleGeometryContactPtr::timeStamp() { verifyIndex();
return getData()->timeStamp[calculateIndex()]; }
643 AGX_FORCE_INLINE agx::Real32 const& ParticleGeometryContactPtr::timeStamp()
const { verifyIndex();
return getData()->timeStamp[calculateIndex()]; }
645 AGX_FORCE_INLINE agx::Real32& ParticleGeometryContactPtr::charContactTime() { verifyIndex();
return getData()->charContactTime[calculateIndex()]; }
646 AGX_FORCE_INLINE agx::Real32 const& ParticleGeometryContactPtr::charContactTime()
const { verifyIndex();
return getData()->charContactTime[calculateIndex()]; }
648 AGX_FORCE_INLINE agx::Int& ParticleGeometryContactPtr::next() { verifyIndex();
return getData()->next[calculateIndex()]; }
649 AGX_FORCE_INLINE agx::Int const& ParticleGeometryContactPtr::next()
const { verifyIndex();
return getData()->next[calculateIndex()]; }
652 AGX_FORCE_INLINE ParticleGeometryContactInstance::ParticleGeometryContactInstance() {}
653 AGX_FORCE_INLINE ParticleGeometryContactInstance::ParticleGeometryContactInstance(ParticleGeometryContactData* data,
agx::Index index) :
agx::Physics::ContactInstance(data, index) {}
658 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
665 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
673 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactInstance::particle() { verifyIndex();
return getData()->particle[getIndex()]; }
674 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactInstance::particle()
const { verifyIndex();
return getData()->particle[getIndex()]; }
676 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactInstance::geometry() { verifyIndex();
return getData()->geometry[getIndex()]; }
677 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactInstance::geometry()
const { verifyIndex();
return getData()->geometry[getIndex()]; }
680 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactInstance::body()
const { verifyIndex();
return getData()->body[getIndex()]; }
682 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactInstance::particleId() { verifyIndex();
return getData()->particleId[getIndex()]; }
683 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactInstance::particleId()
const { verifyIndex();
return getData()->particleId[getIndex()]; }
685 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactInstance::geometryId() { verifyIndex();
return getData()->geometryId[getIndex()]; }
686 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactInstance::geometryId()
const { verifyIndex();
return getData()->geometryId[getIndex()]; }
691 AGX_FORCE_INLINE agx::UInt32& ParticleGeometryContactInstance::faceIndex() { verifyIndex();
return getData()->faceIndex[getIndex()]; }
692 AGX_FORCE_INLINE agx::UInt32 const& ParticleGeometryContactInstance::faceIndex()
const { verifyIndex();
return getData()->faceIndex[getIndex()]; }
694 AGX_FORCE_INLINE agx::UInt8& ParticleGeometryContactInstance::faceFeature() { verifyIndex();
return getData()->faceFeature[getIndex()]; }
695 AGX_FORCE_INLINE agx::UInt8 const& ParticleGeometryContactInstance::faceFeature()
const { verifyIndex();
return getData()->faceFeature[getIndex()]; }
697 AGX_FORCE_INLINE agx::Bool& ParticleGeometryContactInstance::enabled() { verifyIndex();
return getData()->enabled[getIndex()]; }
698 AGX_FORCE_INLINE agx::Bool const& ParticleGeometryContactInstance::enabled()
const { verifyIndex();
return getData()->enabled[getIndex()]; }
700 AGX_FORCE_INLINE agx::Vec3& ParticleGeometryContactInstance::point() { verifyIndex();
return getData()->point[getIndex()]; }
701 AGX_FORCE_INLINE agx::Vec3 const& ParticleGeometryContactInstance::point()
const { verifyIndex();
return getData()->point[getIndex()]; }
703 AGX_FORCE_INLINE agx::Vec3f& ParticleGeometryContactInstance::normal() { verifyIndex();
return getData()->normal[getIndex()]; }
704 AGX_FORCE_INLINE agx::Vec3f const& ParticleGeometryContactInstance::normal()
const { verifyIndex();
return getData()->normal[getIndex()]; }
706 AGX_FORCE_INLINE agx::Vec3f& ParticleGeometryContactInstance::tangentU() { verifyIndex();
return getData()->tangentU[getIndex()]; }
707 AGX_FORCE_INLINE agx::Vec3f const& ParticleGeometryContactInstance::tangentU()
const { verifyIndex();
return getData()->tangentU[getIndex()]; }
709 AGX_FORCE_INLINE agx::Vec3f& ParticleGeometryContactInstance::tangentV() { verifyIndex();
return getData()->tangentV[getIndex()]; }
710 AGX_FORCE_INLINE agx::Vec3f const& ParticleGeometryContactInstance::tangentV()
const { verifyIndex();
return getData()->tangentV[getIndex()]; }
712 AGX_FORCE_INLINE agx::Real& ParticleGeometryContactInstance::depth() { verifyIndex();
return getData()->depth[getIndex()]; }
713 AGX_FORCE_INLINE agx::Real const& ParticleGeometryContactInstance::depth()
const { verifyIndex();
return getData()->depth[getIndex()]; }
715 AGX_FORCE_INLINE agx::Vec3f& ParticleGeometryContactInstance::velocity() { verifyIndex();
return getData()->velocity[getIndex()]; }
716 AGX_FORCE_INLINE agx::Vec3f const& ParticleGeometryContactInstance::velocity()
const { verifyIndex();
return getData()->velocity[getIndex()]; }
718 AGX_FORCE_INLINE agx::Vec3& ParticleGeometryContactInstance::localForce() { verifyIndex();
return getData()->localForce[getIndex()]; }
719 AGX_FORCE_INLINE agx::Vec3 const& ParticleGeometryContactInstance::localForce()
const { verifyIndex();
return getData()->localForce[getIndex()]; }
721 AGX_FORCE_INLINE agx::Real& ParticleGeometryContactInstance::impactNormalForce() { verifyIndex();
return getData()->impactNormalForce[getIndex()]; }
722 AGX_FORCE_INLINE agx::Real const& ParticleGeometryContactInstance::impactNormalForce()
const { verifyIndex();
return getData()->impactNormalForce[getIndex()]; }
724 AGX_FORCE_INLINE agx::Real& ParticleGeometryContactInstance::contactEnergy() { verifyIndex();
return getData()->contactEnergy[getIndex()]; }
725 AGX_FORCE_INLINE agx::Real const& ParticleGeometryContactInstance::contactEnergy()
const { verifyIndex();
return getData()->contactEnergy[getIndex()]; }
727 AGX_FORCE_INLINE agx::Bool& ParticleGeometryContactInstance::isImpacting() { verifyIndex();
return getData()->isImpacting[getIndex()]; }
728 AGX_FORCE_INLINE agx::Bool const& ParticleGeometryContactInstance::isImpacting()
const { verifyIndex();
return getData()->isImpacting[getIndex()]; }
730 AGX_FORCE_INLINE agx::Real32& ParticleGeometryContactInstance::timeStamp() { verifyIndex();
return getData()->timeStamp[getIndex()]; }
731 AGX_FORCE_INLINE agx::Real32 const& ParticleGeometryContactInstance::timeStamp()
const { verifyIndex();
return getData()->timeStamp[getIndex()]; }
733 AGX_FORCE_INLINE agx::Real32& ParticleGeometryContactInstance::charContactTime() { verifyIndex();
return getData()->charContactTime[getIndex()]; }
734 AGX_FORCE_INLINE agx::Real32 const& ParticleGeometryContactInstance::charContactTime()
const { verifyIndex();
return getData()->charContactTime[getIndex()]; }
736 AGX_FORCE_INLINE agx::Int& ParticleGeometryContactInstance::next() { verifyIndex();
return getData()->next[getIndex()]; }
737 AGX_FORCE_INLINE agx::Int const& ParticleGeometryContactInstance::next()
const { verifyIndex();
return getData()->next[getIndex()]; }
740 AGX_FORCE_INLINE ParticleGeometryContactSemantics::ParticleGeometryContactSemantics() {}
747AGX_TYPE_BINDING(
agx::Physics::ParticleGeometryContactInstance, "Physics.ParticleGeometryContactInstance")
753#undef AGX_ENTITY_WRAPPER
754#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
Pointer to a entity instance of type Physics.Geometry.
Abstract description of the data attributes for the Physics.ParticleGeometryContact entity.
virtual void shutdownCleanup() override
This is part of internal cleanup and should not be called by users.
static ParticleGeometryContactPtr createInstance()
Create and return a pointer to a new instance in the default storage for this entity model.
void construct(agx::Physics::ParticleGeometryContactPtr particleGeometryContact)
static agxData::ScalarAttributeT< agx::Vec3 > * pointAttribute
ParticleGeometryContactPtr PtrT
static agxData::ScalarAttributeT< agx::UInt32 > * geometryIdAttribute
static agxData::ScalarAttributeT< agx::UInt32 > * bodyAttribute
static agxData::ScalarAttributeT< agx::Vec3f > * velocityAttribute
static agxData::ScalarAttributeT< agx::Int > * nextAttribute
static agxData::ScalarAttributeT< agx::Real32 > * timeStampAttribute
static agxData::ScalarAttributeT< agx::Vec3f > * normalAttribute
virtual agxData::EntityData * createData(agxData::EntityStorage *storage) override
static agxData::ScalarAttributeT< agx::Vec3f > * tangentVAttribute
static agxData::ScalarAttributeT< agx::Physics::GeometryPtr > * geometryPtrAttribute
static agxData::ScalarAttributeT< agx::Real32 > * charContactTimeAttribute
static agxData::ScalarAttributeT< agx::Real > * depthAttribute
ParticleGeometryContactModel(const agx::String &name="ParticleGeometryContact")
static ParticleGeometryContactModel * instance()
static agxData::ScalarAttributeT< agx::UInt32 > * particleIdAttribute
static agxData::ScalarAttributeT< agx::Bool > * isImpactingAttribute
static agxData::ScalarAttributeT< agx::UInt32 > * particleAttribute
static agxData::ScalarAttributeT< agx::Bool > * enabledAttribute
static agxData::ScalarAttributeT< agx::UInt32 > * faceIndexAttribute
static agxData::ScalarAttributeT< agx::Vec3 > * localForceAttribute
virtual void construct(agxData::EntityPtr instance) override
virtual ~ParticleGeometryContactModel()
virtual void configure(agx::TiXmlElement *eEntity) override
static agxData::ScalarAttributeT< agx::Real > * impactNormalForceAttribute
virtual void initAttributeAccessors() override
static agxData::ScalarAttributeT< agx::UInt8 > * faceFeatureAttribute
static agxData::EntityStorage * defaultStorage()
static agxData::ScalarAttributeT< agx::Real > * contactEnergyAttribute
static agxData::ScalarAttributeT< agx::UInt32 > * geometryAttribute
static agxData::ScalarAttributeT< agx::Vec3f > * tangentUAttribute
Pointer to a entity instance of type Physics.ParticleGeometryContact.
AGXPHYSICS_EXPORT agx::Physics::GeometryPtr & geometryPtr()
AGXPHYSICS_EXPORT agx::Real const & depth() const
AGXPHYSICS_EXPORT agx::UInt32 const & particleId() const
AGXPHYSICS_EXPORT agx::Vec3f & tangentU()
AGXPHYSICS_EXPORT agx::UInt32 const & geometryId() const
AGXPHYSICS_EXPORT ParticleGeometryContactPtr()
AGXPHYSICS_EXPORT agx::Vec3 const & point() const
AGXPHYSICS_EXPORT agx::Real const & impactNormalForce() const
AGXPHYSICS_EXPORT agx::Vec3f & tangentV()
AGXPHYSICS_EXPORT ParticleGeometryContactPtr(const agxData::EntityPtr &ptr)
AGXPHYSICS_EXPORT agx::Vec3f const & normal() const
AGXPHYSICS_EXPORT agx::UInt32 const & particle() const
AGXPHYSICS_EXPORT agx::Vec3f const & tangentV() const
AGXPHYSICS_EXPORT ParticleGeometryContactPtr(const agxData::EntityInstance &instance)
AGXPHYSICS_EXPORT agx::UInt32 & geometryId()
AGXPHYSICS_EXPORT agx::Bool const & isImpacting() const
AGXPHYSICS_EXPORT agx::Vec3 & point()
ParticleGeometryContactModel ModelType
AGXPHYSICS_EXPORT agx::Real32 const & charContactTime() const
AGXPHYSICS_EXPORT agx::UInt32 const & geometry() const
AGXPHYSICS_EXPORT agx::Real & depth()
AGXPHYSICS_EXPORT agx::Real32 & charContactTime()
AGXPHYSICS_EXPORT agx::Vec3f & normal()
AGXPHYSICS_EXPORT agx::UInt8 & faceFeature()
The face feature of shape 2 in contact (e.g. voronoi region on triangle for trimesh).
AGXPHYSICS_EXPORT agx::Vec3f const & tangentU() const
ParticleGeometryContactInstance InstanceType
ParticleGeometryContactData DataType
AGXPHYSICS_EXPORT agx::UInt8 const & faceFeature() const
The face feature of shape 2 in contact (e.g. voronoi region on triangle for trimesh).
AGXPHYSICS_EXPORT agx::Real & contactEnergy()
AGXPHYSICS_EXPORT agx::Int & next()
AGXPHYSICS_EXPORT agx::UInt32 & particleId()
AGXPHYSICS_EXPORT agx::UInt32 & faceIndex()
The face index of shape 2 in contact (e.g. index of triangle for trimesh).
AGXPHYSICS_EXPORT agx::Real const & contactEnergy() const
AGXPHYSICS_EXPORT agx::Physics::GeometryPtr const & geometryPtr() const
AGXPHYSICS_EXPORT agx::Real & impactNormalForce()
AGXPHYSICS_EXPORT agx::Vec3f & velocity()
AGXPHYSICS_EXPORT agx::UInt32 & particle()
AGXPHYSICS_EXPORT agx::Vec3 & localForce()
ParticleGeometryContactData * getData()
AGXPHYSICS_EXPORT agx::Vec3 const & localForce() const
AGXPHYSICS_EXPORT agx::Vec3f const & velocity() const
AGXPHYSICS_EXPORT ParticleGeometryContactSemantics * operator->()
AGXPHYSICS_EXPORT agx::UInt32 & geometry()
AGXPHYSICS_EXPORT agx::Int const & next() const
AGXPHYSICS_EXPORT ParticleGeometryContactPtr(agxData::EntityStorage *storage, agx::Index id)
AGXPHYSICS_EXPORT agx::UInt32 const & body() const
AGXPHYSICS_EXPORT agx::Bool const & enabled() const
AGXPHYSICS_EXPORT agx::Bool & enabled()
AGXPHYSICS_EXPORT agx::UInt32 const & faceIndex() const
The face index of shape 2 in contact (e.g. index of triangle for trimesh).
AGXPHYSICS_EXPORT agx::Real32 const & timeStamp() const
AGXPHYSICS_EXPORT const ParticleGeometryContactSemantics * operator->() const
AGXPHYSICS_EXPORT agx::UInt32 & body()
AGXPHYSICS_EXPORT agx::Bool & isImpacting()
AGXPHYSICS_EXPORT ParticleGeometryContactInstance instance()
AGXPHYSICS_EXPORT const ParticleGeometryContactInstance instance() const
const ParticleGeometryContactData * getData() const
AGXPHYSICS_EXPORT agx::Real32 & timeStamp()
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.