|
AGX Dynamics 2.42.3.0
|
This class has two main responsibilities: More...
#include <TerrainContactGenerator.h>
Inheritance diagram for agxTerrain::TerrainContactGenerator:Public Member Functions | |
| TerrainContactGenerator () | |
| TerrainContactGenerator (Terrain *terrain) | |
| Default constructor. | |
| TerrainContactRefVector & | getTerrainContacts () |
| const TerrainContactRefVector & | getTerrainContacts () const |
| TerrainContactRefVector * | getTerrainContactVector () |
| void | onPost (agxSDK::Simulation *simulation) |
| Do post updates for the contact generator. | |
| void | onPre (agxSDK::Simulation *simulation) |
| Do pre updates for the contact generator. | |
| void | onRemove (agxSDK::Simulation *simulation) |
| Do cleanup when removed from the Simulation. | |
Public Member Functions inherited from agx::Referenced | |
| Referenced () | |
| Default constructor. | |
| Referenced (const Referenced &) | |
| template<typename T > | |
| T * | as () |
| Subclass casting. | |
| template<typename T > | |
| const T * | as () const |
| template<typename T > | |
| T * | asSafe () |
| Safe subclass casting, return nullptr if template type does not match. | |
| template<typename T > | |
| const T * | asSafe () const |
| int | getReferenceCount () const |
| template<typename T > | |
| bool | is () const |
| Subclass test. | |
| Referenced & | operator= (const Referenced &) |
| Assignment operator. Will increment the number of references to the referenced object. | |
| void | reference (void *ptr=nullptr) const |
| Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
| void | unreference (void *ptr=nullptr) const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
| void | unreference_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
Protected Member Functions | |
| virtual | ~TerrainContactGenerator () |
| Reference counted object - protected destructor. | |
| void | addNeighborIndex (const agx::Vec2i &index, std::queue< agx::Vec2i > &indicesToCheck, agx::HashSet< agx::Vec2i > &visitedIndices) const |
| void | buildTerrainContacts (agxSDK::Simulation *simulation) |
| Build the TerrainContact objects used in compaction calculations. | |
| void | collectTerrainContacts (agxSDK::Simulation *simulation) |
| Collect contacts between externally colliding geometries and the terrain (Does not include SoilParticleAggregateContacts). | |
| std::tuple< TerrainIndexToDepthTable, agx::Bound3 > | findIntersectingIndexInContact (const agxCollide::GeometryContactPtrVector &contacts) |
| Find the terrain grid indices intersecting with the colliding geometry via ray intersection tests. | |
| TerrainContact * | generateTerrainContact (const agxCollide::GeometryContactPtrVector &contacts, agxSDK::Simulation *simulation) |
| Get the current generated Terrain contacts. | |
| const agxCollide::Geometry * | getCollider (const agxCollide::GeometryContact *contact) const |
| Get the collider geometry in the geometry contact. | |
| agx::Real | getCurrentContactTime (const agxCollide::Geometry *geometry) const |
| agx::Real | getModifiedYoungsModuls (const agx::Vec3 &position, const agx::ContactMaterial *existingContactMaterial) const |
| Get modified Young's Modulus from depending on the compaction of the voxel of the specified position. | |
| bool | isSoilAggregateContact (agxCollide::GeometryContact *gc) const |
| void | modifyTerrainGeometryContacts () |
| Modifies current geometry contacts with updated parameters (such as Young's Modulus among others) for each point depending on the compaction of the voxel. | |
| bool | raycastTerrainVertexToGeometry (const agxCollide::Geometry *collider, const agx::Vec2i &hfIndex, agx::Real &depth) |
| Raycast in a terrain index in order to find intersection with a colliding geometry. | |
| void | registerContactingGeometry (const agxCollide::Geometry *geometry, agxSDK::Simulation *simulation) |
| void | unRegisterContactingGeometry (const agxCollide::Geometry *geometry) |
| void | unRegisterGeometriesNotInContact (const agxCollide::GeometryHashSet &geometriesInContact) |
| void | updateTerrainContactsWithForceData () |
| Update the TerrainContact objects with force data. | |
Protected Member Functions inherited from agx::Referenced | |
| virtual | ~Referenced () |
| Destructor. | |
| void | allocateObserverVector () const |
| void | deleteUsingDeleteHandler () const |
Additional Inherited Members | |
Static Public Member Functions inherited from agx::Referenced | |
| template<typename T > | |
| static bool | ValidateCast (const Referenced *object) |
Static Protected Member Functions inherited from agx::Referenced | |
| static DeleteHandler * | getDeleteHandler () |
| static void | setDeleteHandler (DeleteHandler *handler) |
| Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to. | |
Protected Attributes inherited from agx::Referenced | |
| Mutex | m_mutex |
| ObserverContainer | m_observers |
| AtomicValue | m_refCount |
This class has two main responsibilities:
The generated TerrainContact objects contains information about approximative area and volume overlap which is used in compaction and deformation calculations.
Definition at line 60 of file TerrainContactGenerator.h.
| agxTerrain::TerrainContactGenerator::TerrainContactGenerator | ( | Terrain * | terrain | ) |
Default constructor.
| agxTerrain::TerrainContactGenerator::TerrainContactGenerator | ( | ) |
|
protectedvirtual |
Reference counted object - protected destructor.
|
protected |
|
protected |
Build the TerrainContact objects used in compaction calculations.
|
protected |
Collect contacts between externally colliding geometries and the terrain (Does not include SoilParticleAggregateContacts).
|
protected |
Find the terrain grid indices intersecting with the colliding geometry via ray intersection tests.
| contacts | - The geometry contacts associated with the contact between the collider and the terrain object |
|
protected |
Get the current generated Terrain contacts.
|
protected |
Get the collider geometry in the geometry contact.
|
protected |
|
protected |
Get modified Young's Modulus from depending on the compaction of the voxel of the specified position.
| position | - The world position. |
| existingContactMaterial | - the existing contact material. |
| TerrainContactRefVector & agxTerrain::TerrainContactGenerator::getTerrainContacts | ( | ) |
| const TerrainContactRefVector & agxTerrain::TerrainContactGenerator::getTerrainContacts | ( | ) | const |
| TerrainContactRefVector * agxTerrain::TerrainContactGenerator::getTerrainContactVector | ( | ) |
|
protected |
|
protected |
Modifies current geometry contacts with updated parameters (such as Young's Modulus among others) for each point depending on the compaction of the voxel.
| void agxTerrain::TerrainContactGenerator::onPost | ( | agxSDK::Simulation * | simulation | ) |
Do post updates for the contact generator.
This does the following:
| void agxTerrain::TerrainContactGenerator::onPre | ( | agxSDK::Simulation * | simulation | ) |
| void agxTerrain::TerrainContactGenerator::onRemove | ( | agxSDK::Simulation * | simulation | ) |
Do cleanup when removed from the Simulation.
|
protected |
Raycast in a terrain index in order to find intersection with a colliding geometry.
| collider | - The colliding geometry to test ray intersection against. |
| hfIndex | - The index to raycast in. |
| depth | - The depth of the intersection of the geometry in the grid point. |
|
protected |
|
protected |
|
protected |
|
protected |
Update the TerrainContact objects with force data.