120 size_t numContacts );
147 bool debugRenderContacts=
false,
#define AGXTERRAIN_EXPORT
The geometry representation used by the collision detection engine.
Simulation is a class that bridges the collision space agxCollide::Space and the dynamic simulation s...
Shovel object used to interact with a terrain via an active zone that converts solid terrain to dynam...
ExcavationMode
Enum for describing the different excavation modes of a shovel:
A terrain model based a 3D grid model with overlapping height field that can be deformed by interacti...
Main material class which acts as a holder of a Surface Material and a Bulk material.
The rigid body class, combining a geometric model and a frame of reference.
The agxTerrain namespace contains a 3D model for a dynamic deformable Terrain and related classes.
AGXTERRAIN_EXPORT void setShovelAggregateContactMaterialFromParticles(agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, Shovel *shovel)
agxCollide::LocalGeometryContactVector AGXTERRAIN_EXPORT computeAggregatePairContacts(agxTerrain::Shovel *shovel1, agxTerrain::Shovel *shovel2, agx::ContactMaterial *contactMaterial=nullptr, bool debugRenderContacts=false, agx::Real size=0.1)
Computes the contact set between two aggregate in the cut top plane of shovel one.
agx::Real AGXTERRAIN_EXPORT estimateContactDepth(agx::ContactMaterial *contactMaterial, Shovel *shovel, agx::Real bodyMass, agx::Real contactVelocity, agx::Real contactGravity, agx::Real contactArea, agx::Real elasticRestLength, size_t numContacts)
Utility method for estimating the contact depth of a shovel <-> aggregate contact from contact veloci...
AGXTERRAIN_EXPORT void setShovelAggregateContactMaterialProperties(agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, const agx::RealVector &weights, Terrain *terrain, Shovel *shovel)
Set the shovel-aggregate contact material properties from a source contact material that should eithe...
AGXTERRAIN_EXPORT agx::Material * findShovelMaterial(agxTerrain::Shovel *shovel)
Find the agx::Material on the first contact valid contact geometry in the specified shovel.
AGXTERRAIN_EXPORT void setShovelExplicitShovelContactMaterial(agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, const agx::ContactMaterial *sourceMaterial, agx::Real excavationStiffnessMultiplier)
Set the shovel-aggregate contact material properties from a source contact material that should be a ...
AGXTERRAIN_EXPORT bool isValidContactGeometry(agxCollide::Geometry *geometry)
Checks if the specified geometry is valid for creating aggregate contacts against.
AGXTERRAIN_EXPORT agxCollide::Geometry * getFirstContactValidGeometry(const agx::RigidBody *shovelBody)
Get first contact valid geometry in the shovel rigid body for contact.
agx::Vec3 AGXTERRAIN_EXPORT calculateGravityVector(agxSDK::Simulation *simulation, const agx::Vec3 &position)
Utility method for calculating the gravity vector given a point.
agx::Real AGXTERRAIN_EXPORT calculateGv(const agx::Vec3 &normal, const agx::Vec3 &point, const agx::RigidBody *rb1, const agx::RigidBody *rb2)
Utility method for calculating the relative velocity of two bodies in a contact normal direction.
AGXTERRAIN_EXPORT bool setupShovelAggregateContactMaterial(agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, Shovel::ExcavationMode mode, Terrain *terrain, Shovel *shovel, agx::Vec3Vector &points)
Configure the contact material that is to be used in shovel-aggregate contacts.