21#ifndef GENERATED_AGX_PHYSICS_CONSTRAINTFORCES_H_PLUGIN
22#define GENERATED_AGX_PHYSICS_CONSTRAINTFORCES_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 )
57 class ConstraintForcesModel;
58 class ConstraintForcesData;
59 class ConstraintForcesPtr;
60 class ConstraintForcesInstance;
61 class ConstraintForcesSemantics;
111 virtual void configure(agx::TiXmlElement* eEntity)
override;
119 #ifndef AGX_PHYSICS_CONSTRAINTFORCES_DATA_SET_OVERRIDE
120 #define AGX_PHYSICS_CONSTRAINTFORCES_DATA_SET
124 ConstraintForcesInstance operator[] (
size_t index);
165 ConstraintForcesData();
168 virtual ~ConstraintForcesData() {}
169 virtual void setNumElements(
agx::Index numElements)
override;
172 ConstraintForcesData& operator= (
const ConstraintForcesData&) {
return *
this; }
199 agx::Real const& getCurrentSpeed1()
const;
200 agx::Real const& getCurrentSpeed2()
const;
207 void setBody1Force(
agx::Vec3 const& value);
208 void setBody2Force(
agx::Vec3 const& value);
209 void setBody1Torque(
agx::Vec3 const& value);
210 void setBody2Torque(
agx::Vec3 const& value);
211 void setMotor1Force(
agx::Real const& value);
212 void setMotor2Force(
agx::Real const& value);
213 void setLock1Force(
agx::Real const& value);
214 void setLock2Force(
agx::Real const& value);
215 void setRange1Force(
agx::Real const& value);
216 void setRange2Force(
agx::Real const& value);
219 void setCurrentSpeed1(
agx::Real const& value);
220 void setCurrentSpeed2(
agx::Real const& value);
224 friend class ConstraintForcesPtr;
225 friend class ConstraintForcesInstance;
226 ConstraintForcesSemantics();
345 ConstraintForcesInstance();
346 ConstraintForcesInstance(ConstraintForcesData* data,
agx::Index index);
351 ConstraintForcesData* getData();
352 const ConstraintForcesData* getData()
const;
449 inline ConstraintForcesInstance
agx::Physics::ConstraintForcesData::operator[] (
size_t index) {
return ConstraintForcesInstance(
this, (
agx::Index)index); }
456 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
463 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
471 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
472 EntityPtr::getModel()->fullPath().c_str(), ConstraintForcesModel::instance()->fullPath().c_str());
480 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
481 EntityPtr::getModel()->fullPath().c_str(), ConstraintForcesModel::instance()->fullPath().c_str());
487 AGX_FORCE_INLINE ConstraintForcesSemantics* ConstraintForcesPtr::operator->() {
return (ConstraintForcesSemantics* )
this; }
488 AGX_FORCE_INLINE const ConstraintForcesSemantics* ConstraintForcesPtr::operator->()
const {
return (
const ConstraintForcesSemantics* )
this; }
493 AGX_FORCE_INLINE agx::Name const& ConstraintForcesPtr::name()
const { verifyIndex();
return getData()->name[calculateIndex()]; }
496 AGX_FORCE_INLINE agx::Name const& ConstraintForcesPtr::type()
const { verifyIndex();
return getData()->type[calculateIndex()]; }
498 AGX_FORCE_INLINE agx::Vec3& ConstraintForcesPtr::body1Force() { verifyIndex();
return getData()->body1Force[calculateIndex()]; }
499 AGX_FORCE_INLINE agx::Vec3 const& ConstraintForcesPtr::body1Force()
const { verifyIndex();
return getData()->body1Force[calculateIndex()]; }
501 AGX_FORCE_INLINE agx::Vec3& ConstraintForcesPtr::body2Force() { verifyIndex();
return getData()->body2Force[calculateIndex()]; }
502 AGX_FORCE_INLINE agx::Vec3 const& ConstraintForcesPtr::body2Force()
const { verifyIndex();
return getData()->body2Force[calculateIndex()]; }
504 AGX_FORCE_INLINE agx::Vec3& ConstraintForcesPtr::body1Torque() { verifyIndex();
return getData()->body1Torque[calculateIndex()]; }
505 AGX_FORCE_INLINE agx::Vec3 const& ConstraintForcesPtr::body1Torque()
const { verifyIndex();
return getData()->body1Torque[calculateIndex()]; }
507 AGX_FORCE_INLINE agx::Vec3& ConstraintForcesPtr::body2Torque() { verifyIndex();
return getData()->body2Torque[calculateIndex()]; }
508 AGX_FORCE_INLINE agx::Vec3 const& ConstraintForcesPtr::body2Torque()
const { verifyIndex();
return getData()->body2Torque[calculateIndex()]; }
510 AGX_FORCE_INLINE agx::Real& ConstraintForcesPtr::motor1Force() { verifyIndex();
return getData()->motor1Force[calculateIndex()]; }
511 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::motor1Force()
const { verifyIndex();
return getData()->motor1Force[calculateIndex()]; }
513 AGX_FORCE_INLINE agx::Real& ConstraintForcesPtr::motor2Force() { verifyIndex();
return getData()->motor2Force[calculateIndex()]; }
514 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::motor2Force()
const { verifyIndex();
return getData()->motor2Force[calculateIndex()]; }
516 AGX_FORCE_INLINE agx::Real& ConstraintForcesPtr::lock1Force() { verifyIndex();
return getData()->lock1Force[calculateIndex()]; }
517 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::lock1Force()
const { verifyIndex();
return getData()->lock1Force[calculateIndex()]; }
519 AGX_FORCE_INLINE agx::Real& ConstraintForcesPtr::lock2Force() { verifyIndex();
return getData()->lock2Force[calculateIndex()]; }
520 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::lock2Force()
const { verifyIndex();
return getData()->lock2Force[calculateIndex()]; }
522 AGX_FORCE_INLINE agx::Real& ConstraintForcesPtr::range1Force() { verifyIndex();
return getData()->range1Force[calculateIndex()]; }
523 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::range1Force()
const { verifyIndex();
return getData()->range1Force[calculateIndex()]; }
525 AGX_FORCE_INLINE agx::Real& ConstraintForcesPtr::range2Force() { verifyIndex();
return getData()->range2Force[calculateIndex()]; }
526 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::range2Force()
const { verifyIndex();
return getData()->range2Force[calculateIndex()]; }
529 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::angle1()
const { verifyIndex();
return getData()->angle1[calculateIndex()]; }
532 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::angle2()
const { verifyIndex();
return getData()->angle2[calculateIndex()]; }
534 AGX_FORCE_INLINE agx::Real& ConstraintForcesPtr::currentSpeed1() { verifyIndex();
return getData()->currentSpeed1[calculateIndex()]; }
535 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::currentSpeed1()
const { verifyIndex();
return getData()->currentSpeed1[calculateIndex()]; }
537 AGX_FORCE_INLINE agx::Real& ConstraintForcesPtr::currentSpeed2() { verifyIndex();
return getData()->currentSpeed2[calculateIndex()]; }
538 AGX_FORCE_INLINE agx::Real const& ConstraintForcesPtr::currentSpeed2()
const { verifyIndex();
return getData()->currentSpeed2[calculateIndex()]; }
547 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
554 "Entity type mismatch. Storage contains entity data for type \'%s\', instance pointer is of type \'%s\'",
563 AGX_FORCE_INLINE agx::Name const& ConstraintForcesInstance::name()
const { verifyIndex();
return getData()->name[getIndex()]; }
566 AGX_FORCE_INLINE agx::Name const& ConstraintForcesInstance::type()
const { verifyIndex();
return getData()->type[getIndex()]; }
568 AGX_FORCE_INLINE agx::Vec3& ConstraintForcesInstance::body1Force() { verifyIndex();
return getData()->body1Force[getIndex()]; }
569 AGX_FORCE_INLINE agx::Vec3 const& ConstraintForcesInstance::body1Force()
const { verifyIndex();
return getData()->body1Force[getIndex()]; }
571 AGX_FORCE_INLINE agx::Vec3& ConstraintForcesInstance::body2Force() { verifyIndex();
return getData()->body2Force[getIndex()]; }
572 AGX_FORCE_INLINE agx::Vec3 const& ConstraintForcesInstance::body2Force()
const { verifyIndex();
return getData()->body2Force[getIndex()]; }
574 AGX_FORCE_INLINE agx::Vec3& ConstraintForcesInstance::body1Torque() { verifyIndex();
return getData()->body1Torque[getIndex()]; }
575 AGX_FORCE_INLINE agx::Vec3 const& ConstraintForcesInstance::body1Torque()
const { verifyIndex();
return getData()->body1Torque[getIndex()]; }
577 AGX_FORCE_INLINE agx::Vec3& ConstraintForcesInstance::body2Torque() { verifyIndex();
return getData()->body2Torque[getIndex()]; }
578 AGX_FORCE_INLINE agx::Vec3 const& ConstraintForcesInstance::body2Torque()
const { verifyIndex();
return getData()->body2Torque[getIndex()]; }
580 AGX_FORCE_INLINE agx::Real& ConstraintForcesInstance::motor1Force() { verifyIndex();
return getData()->motor1Force[getIndex()]; }
581 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::motor1Force()
const { verifyIndex();
return getData()->motor1Force[getIndex()]; }
583 AGX_FORCE_INLINE agx::Real& ConstraintForcesInstance::motor2Force() { verifyIndex();
return getData()->motor2Force[getIndex()]; }
584 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::motor2Force()
const { verifyIndex();
return getData()->motor2Force[getIndex()]; }
586 AGX_FORCE_INLINE agx::Real& ConstraintForcesInstance::lock1Force() { verifyIndex();
return getData()->lock1Force[getIndex()]; }
587 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::lock1Force()
const { verifyIndex();
return getData()->lock1Force[getIndex()]; }
589 AGX_FORCE_INLINE agx::Real& ConstraintForcesInstance::lock2Force() { verifyIndex();
return getData()->lock2Force[getIndex()]; }
590 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::lock2Force()
const { verifyIndex();
return getData()->lock2Force[getIndex()]; }
592 AGX_FORCE_INLINE agx::Real& ConstraintForcesInstance::range1Force() { verifyIndex();
return getData()->range1Force[getIndex()]; }
593 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::range1Force()
const { verifyIndex();
return getData()->range1Force[getIndex()]; }
595 AGX_FORCE_INLINE agx::Real& ConstraintForcesInstance::range2Force() { verifyIndex();
return getData()->range2Force[getIndex()]; }
596 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::range2Force()
const { verifyIndex();
return getData()->range2Force[getIndex()]; }
599 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::angle1()
const { verifyIndex();
return getData()->angle1[getIndex()]; }
602 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::angle2()
const { verifyIndex();
return getData()->angle2[getIndex()]; }
604 AGX_FORCE_INLINE agx::Real& ConstraintForcesInstance::currentSpeed1() { verifyIndex();
return getData()->currentSpeed1[getIndex()]; }
605 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::currentSpeed1()
const { verifyIndex();
return getData()->currentSpeed1[getIndex()]; }
607 AGX_FORCE_INLINE agx::Real& ConstraintForcesInstance::currentSpeed2() { verifyIndex();
return getData()->currentSpeed2[getIndex()]; }
608 AGX_FORCE_INLINE agx::Real const& ConstraintForcesInstance::currentSpeed2()
const { verifyIndex();
return getData()->currentSpeed2[getIndex()]; }
618AGX_TYPE_BINDING(
agx::Physics::ConstraintForcesInstance, "Physics.ConstraintForcesInstance")
624#undef AGX_ENTITY_WRAPPER
625#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()
An abstract description of a data entity stored using SOA (structure of arrays) pattern in a EntitySt...
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
Representation of a name string.
Abstract description of the data attributes for the Physics.ConstraintForces entity.
virtual ~ConstraintForcesModel()
static agxData::ScalarAttributeT< agx::Real > * motor2ForceAttribute
static agxData::ScalarAttributeT< agx::Name > * typeAttribute
static agxData::ScalarAttributeT< agx::Real > * angle2Attribute
static agxData::ScalarAttributeT< agx::Real > * lock2ForceAttribute
static agxData::ScalarAttributeT< agx::Real > * currentSpeed2Attribute
static ConstraintForcesPtr createInstance()
Create and return a pointer to a new instance in the default storage for this entity model.
ConstraintForcesModel(const agx::String &name="ConstraintForces")
static agxData::EntityStorage * defaultStorage()
static agxData::ScalarAttributeT< agx::Vec3 > * body2ForceAttribute
static agxData::ScalarAttributeT< agx::Vec3 > * body1TorqueAttribute
void construct(agx::Physics::ConstraintForcesPtr constraintForces)
static agxData::ScalarAttributeT< agx::Vec3 > * body1ForceAttribute
virtual void initAttributeAccessors() override
static agxData::ScalarAttributeT< agx::Real > * range2ForceAttribute
static ConstraintForcesModel * instance()
static agxData::ScalarAttributeT< agx::Real > * lock1ForceAttribute
static agxData::ScalarAttributeT< agx::Vec3 > * body2TorqueAttribute
static agxData::ScalarAttributeT< agx::Real > * range1ForceAttribute
virtual void construct(agxData::EntityPtr instance) override
static agxData::ScalarAttributeT< agx::Name > * nameAttribute
static agxData::ScalarAttributeT< agx::Real > * motor1ForceAttribute
virtual agxData::EntityData * createData(agxData::EntityStorage *storage) override
static agxData::ScalarAttributeT< agx::Real > * currentSpeed1Attribute
virtual void configure(agx::TiXmlElement *eEntity) override
static agxData::ScalarAttributeT< agx::Real > * angle1Attribute
virtual void shutdownCleanup() override
This is part of internal cleanup and should not be called by users.
Pointer to a entity instance of type Physics.ConstraintForces.
AGXPHYSICS_EXPORT agx::Name const & name() const
AGXPHYSICS_EXPORT ConstraintForcesPtr()
AGXPHYSICS_EXPORT agx::Real const & angle2() const
AGXPHYSICS_EXPORT const ConstraintForcesInstance instance() const
AGXPHYSICS_EXPORT agx::Vec3 const & body1Force() const
AGXPHYSICS_EXPORT agx::Vec3 const & body1Torque() const
AGXPHYSICS_EXPORT agx::Real const & range2Force() const
AGXPHYSICS_EXPORT agx::Real & motor2Force()
AGXPHYSICS_EXPORT agx::Vec3 & body2Force()
AGXPHYSICS_EXPORT agx::Real & angle2()
AGXPHYSICS_EXPORT ConstraintForcesPtr(const agxData::EntityPtr &ptr)
AGXPHYSICS_EXPORT agx::Vec3 const & body2Torque() const
AGXPHYSICS_EXPORT agx::Real const & lock1Force() const
AGXPHYSICS_EXPORT agx::Real & motor1Force()
AGXPHYSICS_EXPORT agx::Real & lock1Force()
AGXPHYSICS_EXPORT agx::Real & range2Force()
const ConstraintForcesData * getData() const
ConstraintForcesData DataType
ConstraintForcesModel ModelType
AGXPHYSICS_EXPORT agx::Vec3 & body1Torque()
AGXPHYSICS_EXPORT agx::Real const & angle1() const
AGXPHYSICS_EXPORT agx::Real const & currentSpeed2() const
AGXPHYSICS_EXPORT agx::Real & currentSpeed1()
AGXPHYSICS_EXPORT agx::Name & name()
AGXPHYSICS_EXPORT agx::Real & lock2Force()
AGXPHYSICS_EXPORT const ConstraintForcesSemantics * operator->() const
AGXPHYSICS_EXPORT ConstraintForcesPtr(agxData::EntityStorage *storage, agx::Index id)
ConstraintForcesInstance InstanceType
ConstraintForcesData * getData()
AGXPHYSICS_EXPORT ConstraintForcesPtr(const agxData::EntityInstance &instance)
AGXPHYSICS_EXPORT ConstraintForcesSemantics * operator->()
AGXPHYSICS_EXPORT ConstraintForcesInstance instance()
AGXPHYSICS_EXPORT agx::Name & type()
AGXPHYSICS_EXPORT agx::Vec3 const & body2Force() const
AGXPHYSICS_EXPORT agx::Real & range1Force()
AGXPHYSICS_EXPORT agx::Name const & type() const
AGXPHYSICS_EXPORT agx::Real const & currentSpeed1() const
AGXPHYSICS_EXPORT agx::Real const & motor2Force() const
AGXPHYSICS_EXPORT agx::Real & currentSpeed2()
AGXPHYSICS_EXPORT agx::Real const & lock2Force() const
AGXPHYSICS_EXPORT agx::Vec3 & body2Torque()
AGXPHYSICS_EXPORT agx::Real const & range1Force() const
AGXPHYSICS_EXPORT agx::Vec3 & body1Force()
AGXPHYSICS_EXPORT agx::Real & angle1()
AGXPHYSICS_EXPORT agx::Real const & motor1Force() const
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.
AGXCORE_EXPORT Type * getType(const agx::String &name)
The agx namespace contains the dynamics/math part of the AGX Dynamics API.