53 for (
size_t j = 0; j < 2; ++j)
54 if (geos[j]->getRigidBody())
56 if (geos[j]->getRigidBody() ==
m_bodies[i])
62 using ExecuteFilter::match;
313 CONTACT_FILTER = 1 << 0,
315 DEFAULT=CONTACT_FILTER | CONSTRAINT
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
#define AGX_DECLARE_VECTOR_TYPES(type)
The geometry representation used by the collision detection engine.
virtual bool match(const agxCollide::Geometry *g0, const agxCollide::Geometry *g1) const override
Inherited from agxSDK::ExecuteFilter.
void addBody(agx::RigidBody *body)
agx::RigidBodyRefVector m_bodies
Friction model that follows a tire's orientation in the world, based on the tire's frame.
virtual void calculateTangentPlane(const agxCollide::Geometry *geometry1, const agxCollide::Geometry *geometry2, const agx::Vec3 &point, const agx::Vec3 &normal, const agx::Real depth, agx::Vec3 &ret_u, agx::Vec3 &ret_v) const override
Inherited from IterativeProjectedConeFriction, the only change.
TireFriction(const agx::Frame *referenceFrame)
Constructor given frame.
agx::FrameConstObserver m_refFrame
agx::Vec3 getTireCenterWorld() const
void setImplicitFrictionMultiplier(const agx::Vec2 &implicitFrictionMultiplier)
Set the implicit friction multiplier in order to get different behavior for different friction direct...
agx::ref_ptr< agxUtil::GeneralStepListener< TwoBodyTire > > m_stepCallback
static TwoBodyTirePtrVector findAll(const agxSDK::Simulation *simulation, const agx::Name &name)
Find all TwoBodyTires with given name.
agx::Real getOuterRadius() const
agx::Vec2 m_implicitFrictionMultiplier
Flags getEnable() const
Get current enabled flags.
virtual void pre(const agx::TimeStamp &)
virtual agx::Real getLoadedRadius() const override
Gets the current loaded radius.
agx::Vec2 getImplicitFrictionMultiplier() const
agx::ref_ptr< agxUtil::GeneralContactEventListener< TwoBodyTire > > m_contactCallback
void setEnable(Flags flags)
Set flags for this tire to enable or disable certain features.
agx::RigidBody * getHubRigidBody()
virtual bool isValid() const
agx::Hinge * getHinge()
Gets the hinge (with active Lock1D) connecting the tire to the hub.
agx::Real getInnerRadius() const
agx::RigidBody * getTireRigidBody()
const agx::RigidBody * getTireRigidBody() const
void separation(const agx::TimeStamp &, agxCollide::GeometryPair &)
virtual agx::Real getStiffness(DeformationMode mode)
Gets the stiffness for a deformation mode.
TwoBodyTire(agx::RigidBody *tireBody, agx::Real outerRadius, agx::RigidBody *hubBody, agx::Real innerRadius, const agx::AffineMatrix4x4 &localTransform=agx::AffineMatrix4x4())
Construct tire given rigid body (with wheel geometry/geometries) and radius.
agx::Vec3 getTireAxisWorld() const
virtual bool setDampingCoefficient(const agx::Real dampingCoefficient, DeformationMode mode)
Sets the damping coefficient for a deformation mode.
static TwoBodyTire * find(agxSDK::Simulation *simulation, const agx::Name &name)
Search the given simulation for a TwoBodyTire with the given name.
const agx::RigidBody * getHubRigidBody() const
virtual bool setStiffness(const agx::Real stiffness, DeformationMode mode)
Sets the stiffness for a deformation mode.
virtual void post(const agx::TimeStamp &)
agxSDK::ContactEventListener::KeepContactPolicy contact(const agx::TimeStamp &, agxCollide::GeometryContact *gc)
static TwoBodyTirePtrVector findAll(const agxSDK::Simulation *simulation)
Finds all TwoBodyTire in the given simulation.
agxSDK::ContactEventListener::KeepContactPolicy handleContacts(const agx::TimeStamp &, agxCollide::GeometryContact *gc)
static TwoBodyTire * find(agxSDK::Assembly *assembly, const agx::Name &name)
Search the given assembly for a TwoBodyTire with the given name.
virtual void addNotification(agxSDK::Simulation *simulation) override
Called when this assembly is added to a simulation (given that it not already is in the simulation).
agxSDK::ContactEventListener::KeepContactPolicy impact(const agx::TimeStamp &, agxCollide::GeometryContact *gc)
const agx::Frame * getReferenceFrame() const
virtual void preCollide(const agx::TimeStamp &)
virtual void last(const agx::TimeStamp &)
agx::Vector< agx::ContactMaterialRef > m_contactMaterials
agx::RigidBodyObserver m_hubBody
agx::Vector< agxCollide::LocalGeometryContact > m_contacts
agx::UInt32 m_collisionGroup
virtual agx::Real getDampingCoefficient(DeformationMode mode)
Gets the damping coefficient for a deformation mode.
agx::RigidBodyObserver m_tireBody
void initBodies(agx::Real outerRadius, agx::Real innerRadius)
An assembly is a collection of basic simulation objects, such as rigid bodies, constraints,...
virtual void removeNotification(agxSDK::Simulation *)
Called when this assembly is removed from a simulation.
virtual void addNotification(agxSDK::Simulation *)
Called when this assembly is added to a simulation (given that it not already is in the simulation).
Abstract base class that implements a filter that selects which events should trigger a Listener.
Simulation is a class that bridges the collision space agxCollide::Space and the dynamic simulation s...
Utility class to get step event callbacks to any class having the methods implemented.
The object defining a frame of reference and providing transformations operations.
The hinge constraint between two rigid bodies or one rigid body and the world.
Iterative Projected Cone Friction (IPC friction) model.
Representation of a name string.
The rigid body class, combining a geometric model and a frame of reference.
Vector containing 'raw' data.
void push_back(const T2 &value)
Contain classes for higher level modeling primitives, such as Tree, Terrain etc.
The agxSDK namespace contain classes to bridge the collision detection system and the dynamical simul...