AGX Dynamics 2.37.3.3
Loading...
Searching...
No Matches
agxCollide Namespace Reference

This namespace consists of a set of classes for handling geometric intersection tests including boolean tests, penetration and contact sets. More...

Namespaces

namespace  agxGeometryQueries
 Implementations.
 
namespace  deprecated
 
namespace  ElasticRestLengthCalculator
 

Classes

class  BoundingAABB
 Axis aligned bounding box implementation. More...
 
class  Box
 A box shape for geometric intersection tests. More...
 
class  Capsule
 Implements a Capsule shape for geometric intersection tests. More...
 
class  ColliderTable
 
class  ColliderTableCleanup
 
class  CollisionGroupManager
 
class  CollisionMeshData
 Class for data sharing only to be used by Mesh, its internal classes and children. More...
 
class  Cone
 A right circular cone shape for geometric intersection tests. More...
 
class  ContactPoint
 A contact point in a contact data. More...
 
class  ContactReducer
 Class for contact reduction. More...
 
class  ContactRegionManager
 Class for merging contact regions and computing their normals. More...
 
class  Convex
 A convex class for geometric intersection tests. More...
 
class  ConvexFactory
 Class for creating convex meshes from a set of vertices and indices. More...
 
class  Cylinder
 A cylinder shape for geometric intersection tests. More...
 
class  DisabledCollisionsState
 Complete disabled collisions state in a simulation including disabled given name, group id (integer) and geometry pair. More...
 
class  FallbackConvexCollider
 This template class can be instantiated to use Convex-Convex for shape pairs where no explicit collider exists. More...
 
class  Geometry
 The geometry representation used by the collision detection engine. More...
 
class  GeometryCollider
 The geometry collider is responsible for finding contacts between two geometries. More...
 
class  GeometryContact
 A contact between two geometries. More...
 
struct  GeometryPtrPair
 
class  GroupIdCollection
 Collection of geometry group names and id's. More...
 
struct  GroupIdPair
 
class  HeightField
 A HeightField is a collision shape that can be created from a grid structure, like an image. More...
 
class  HeightFieldMeshData
 Class for data sharing only to be used by HeightField. More...
 
class  HierarchicalGrid
 
class  HollowCone
 A right circular hollow cone shape for geometric intersection tests. More...
 
class  HollowCylinder
 A hollow cylinder shape for geometric intersection tests. More...
 
class  Line
 A line shape for intersection tests, mostly for depth sensing and picking. More...
 
class  LineSegmentIntersectionFinder
 
class  LocalContactPoint
 
class  LocalGeometryContact
 
class  LocalParticleGeometryContact
 
class  LocalParticlePairContact
 
class  Mesh
 Mesh is a common base class for triangle meshes, such as Mesh or HeightField. More...
 
class  MeshData
 Stores triangle mesh data as triangle lists, i.e. More...
 
struct  NamePair
 
class  Plane
 
class  Polynomial
 
class  RegressionPlane
 A plane created from points using least squares minimization. More...
 
class  RenderData
 Class for storing rendering information for a Shape. More...
 
class  RenderMaterial
 Class for storing rendering material. More...
 
class  Shape
 Base class for a shape. More...
 
class  Space
 This class contains all Geometries and performs Broad Phase and Narrow Phase collision detection to calculate overlapping Geometry pairs. More...
 
class  SpaceListener
 Class for listening for add/remove geometry events for an associated Space. More...
 
class  Sphere
 A sphere class for geometric intersection tests. More...
 
class  SweepAndPrune
 
class  TriangleVoronoiRegion
 Class containing the Voronoi region of a triangle as an uint8_t. More...
 
class  Trimesh
 Triangle mesh for geometric intersection tests. More...
 
class  VoronoiGenerator
 
class  WireShape
 Internal class used by agxWire::Wire. More...
 

Typedefs

typedef agx::observer_ptr< const BoxBoxConstObserver
 
typedef agx::ref_ptr< const BoxBoxConstRef
 
typedef agx::observer_ptr< BoxBoxObserver
 
typedef agx::ref_ptr< BoxBoxRef
 
typedef agx::Vector< agx::Physics::BroadPhasePairPtr, agxData::BufferProxyAllocatorBroadPhasePairVector
 
typedef agx::observer_ptr< const CapsuleCapsuleConstObserver
 
typedef agx::ref_ptr< const CapsuleCapsuleConstRef
 
typedef agx::observer_ptr< CapsuleCapsuleObserver
 
typedef agx::ref_ptr< CapsuleCapsuleRef
 
typedef agx::observer_ptr< const CollisionGroupManagerCollisionGroupManagerConstObserver
 
typedef agx::ref_ptr< const CollisionGroupManagerCollisionGroupManagerConstRef
 
typedef agx::observer_ptr< CollisionGroupManagerCollisionGroupManagerObserver
 
typedef agx::ref_ptr< CollisionGroupManagerCollisionGroupManagerRef
 
typedef agx::ref_ptr< CollisionMeshDataCollisionMeshDataRef
 
typedef agx::observer_ptr< const ConeConeConstObserver
 
typedef agx::ref_ptr< const ConeConeConstRef
 
typedef agx::observer_ptr< ConeConeObserver
 
typedef agx::ref_ptr< ConeConeRef
 
typedef agx::ref_ptr< const CollisionMeshDataConstCollisionMeshDataRef
 
typedef agx::ref_ptr< const HeightFieldMeshDataConstHeightFieldMeshDataRef
 
typedef agx::ref_ptr< const MeshDataConstMeshDataRef
 
typedef agxData::Array< ContactPointContactPointVector
 
typedef agx::observer_ptr< const ConvexConvexConstObserver
 
typedef agx::ref_ptr< const ConvexConvexConstRef
 
typedef agx::observer_ptr< const ConvexFactoryConvexFactoryConstObserver
 
typedef agx::ref_ptr< const ConvexFactoryConvexFactoryConstRef
 
typedef agx::observer_ptr< ConvexFactoryConvexFactoryObserver
 
typedef agx::ref_ptr< ConvexFactoryConvexFactoryRef
 
typedef agx::observer_ptr< ConvexConvexObserver
 
typedef agx::ref_ptr< ConvexConvexRef
 
typedef agx::Vector< agxCollide::ConvexRefConvexRefVector
 
typedef agx::observer_ptr< const CylinderCylinderConstObserver
 
typedef agx::ref_ptr< const CylinderCylinderConstRef
 
typedef agx::observer_ptr< CylinderCylinderObserver
 
typedef agx::ref_ptr< CylinderCylinderRef
 
typedef agx::observer_ptr< const GeometryGeometryConstObserver
 
typedef agx::ref_ptr< const GeometryGeometryConstRef
 
typedef agx::VectorPOD< GeometryContact * > GeometryContactPtrVector
 
typedef agx::Vector< GeometryContactGeometryContactVector
 
typedef agx::HashSet< const Geometry * > GeometryHashSet
 
typedef agx::HashVector< const Geometry *, agx::observer_ptr< const Geometry > > GeometryHashVector
 
typedef agx::observer_ptr< GeometryGeometryObserver
 
typedef agx::Vector< GeometryObserverGeometryObserverVector
 
typedef agx::Vector< agxCollide::GeometryPair > GeometryPairVector
 
typedef agx::Vector< GeometryPtrPairGeometryPtrPairVector
 
typedef agx::VectorPOD< Geometry * > GeometryPtrVector
 
typedef agx::ref_ptr< GeometryGeometryRef
 
typedef agx::SetVector< agx::ref_ptr< agxCollide::Geometry > > GeometryRefSetVector
 
typedef agx::Vector< agx::ref_ptr< Geometry > > GeometryRefVector
 
typedef agx::HashTable< agxCollide::Geometry *, agx::ref_ptr< Geometry > > GeometryTable
 
typedef agx::Vector< GroupIdPairGroupIdPairVector
 
typedef agx::Vector< agx::NameGroupNameVector
 
typedef agx::observer_ptr< const HeightFieldHeightFieldConstObserver
 
typedef agx::ref_ptr< const HeightFieldHeightFieldConstRef
 
typedef agx::ref_ptr< HeightFieldMeshDataHeightFieldMeshDataRef
 
typedef agx::observer_ptr< HeightFieldHeightFieldObserver
 
typedef agx::ref_ptr< HeightFieldHeightFieldRef
 
typedef agx::observer_ptr< const HierarchicalGridHierarchicalGridConstObserver
 
typedef agx::ref_ptr< const HierarchicalGridHierarchicalGridConstRef
 
typedef agx::observer_ptr< HierarchicalGridHierarchicalGridObserver
 
typedef agx::ref_ptr< HierarchicalGridHierarchicalGridRef
 
typedef agx::observer_ptr< const HollowConeHollowConeConstObserver
 
typedef agx::ref_ptr< const HollowConeHollowConeConstRef
 
typedef agx::observer_ptr< HollowConeHollowConeObserver
 
typedef agx::ref_ptr< HollowConeHollowConeRef
 
typedef agx::observer_ptr< const HollowCylinderHollowCylinderConstObserver
 
typedef agx::ref_ptr< const HollowCylinderHollowCylinderConstRef
 
typedef agx::observer_ptr< HollowCylinderHollowCylinderObserver
 
typedef agx::ref_ptr< HollowCylinderHollowCylinderRef
 
typedef agx::observer_ptr< const LineLineConstObserver
 
typedef agx::ref_ptr< const LineLineConstRef
 
typedef agx::observer_ptr< LineLineObserver
 
typedef agx::ref_ptr< LineLineRef
 
typedef agx::VectorPOD< LocalContactPointLocalContactPointVector
 
typedef agx::Vector< LocalGeometryContactLocalGeometryContactVector
 
typedef agx::Vector< LocalParticleGeometryContactLocalParticleGeometryContactVector
 
typedef agx::Vector< LocalParticlePairContactLocalParticlePairContactVector
 
typedef agx::Vector< agx::Physics::GeometryPairPtr > LocalSeparationPairVector
 
typedef agx::observer_ptr< const MeshMeshConstObserver
 
typedef agx::ref_ptr< const MeshMeshConstRef
 
typedef agx::ref_ptr< MeshDataMeshDataRef
 
typedef agx::observer_ptr< MeshMeshObserver
 
typedef agx::ref_ptr< MeshMeshRef
 
typedef agx::Vector< NamePairNamePairVector
 
typedef agx::Vector< agx::Physics::ParticleGeometryContactPtr > ParticleGeometryContactVector
 
typedef std::pair< agx::Physics::ParticlePtr, agx::Physics::GeometryPtr > ParticleGeometryPair
 
typedef agx::Vector< ParticleGeometryPairParticleGeometryPairVector
 
typedef agx::Vector< agx::Physics::ParticlePairContactPtr > ParticlePairContactVector
 
typedef agx::observer_ptr< const PlanePlaneConstObserver
 
typedef agx::ref_ptr< const PlanePlaneConstRef
 
typedef agx::observer_ptr< PlanePlaneObserver
 
typedef agx::ref_ptr< PlanePlaneRef
 
typedef agx::observer_ptr< const RenderDataRenderDataConstObserver
 
typedef agx::ref_ptr< const RenderDataRenderDataConstRef
 
typedef agx::observer_ptr< RenderDataRenderDataObserver
 
typedef agx::ref_ptr< RenderDataRenderDataRef
 
typedef agx::observer_ptr< const RenderMaterialRenderMaterialConstObserver
 
typedef agx::ref_ptr< const RenderMaterialRenderMaterialConstRef
 
typedef agx::observer_ptr< RenderMaterialRenderMaterialObserver
 
typedef agx::ref_ptr< RenderMaterialRenderMaterialRef
 
typedef agx::HashTable< agx::UInt32, RenderMaterialRefRenderMaterialValueHashTable
 
typedef agx::Vector< agx::Physics::GeometryPairPtr, agxData::BufferProxyAllocatorSeparationPairVector
 
typedef agx::observer_ptr< const ShapeShapeConstObserver
 
typedef agx::ref_ptr< const ShapeShapeConstRef
 
typedef agx::observer_ptr< const ShapeGroup > ShapeGroupConstObserver
 
typedef agx::ref_ptr< const ShapeGroup > ShapeGroupConstRef
 
typedef agx::observer_ptr< ShapeGroup > ShapeGroupObserver
 
typedef agx::ref_ptr< ShapeGroup > ShapeGroupRef
 
typedef agx::observer_ptr< ShapeShapeObserver
 
typedef agx::Vector< ShapeObserverShapeObserverVector
 
typedef agx::VectorPOD< Shape * > ShapePtrVector
 
typedef agx::ref_ptr< ShapeShapeRef
 
typedef agx::Vector< agx::ref_ptr< Shape > > ShapeRefVector
 
typedef agx::observer_ptr< const SpaceSpaceConstObserver
 
typedef agx::ref_ptr< const SpaceSpaceConstRef
 
typedef agx::observer_ptr< SpaceSpaceObserver
 
typedef agx::ref_ptr< SpaceSpaceRef
 
typedef agx::observer_ptr< const SphereSphereConstObserver
 
typedef agx::ref_ptr< const SphereSphereConstRef
 
typedef agx::observer_ptr< SphereSphereObserver
 
typedef agx::ref_ptr< SphereSphereRef
 
typedef agx::observer_ptr< const SweepAndPruneSweepAndPruneConstObserver
 
typedef agx::ref_ptr< const SweepAndPruneSweepAndPruneConstRef
 
typedef agx::observer_ptr< SweepAndPruneSweepAndPruneObserver
 
typedef agx::ref_ptr< SweepAndPruneSweepAndPruneRef
 
typedef agx::observer_ptr< const TrimeshTrimeshConstObserver
 
typedef agx::ref_ptr< const TrimeshTrimeshConstRef
 
typedef agx::observer_ptr< TrimeshTrimeshObserver
 
typedef agx::ref_ptr< TrimeshTrimeshRef
 
typedef agx::observer_ptr< const VoronoiGeneratorVoronoiGeneratorConstObserver
 
typedef agx::ref_ptr< const VoronoiGeneratorVoronoiGeneratorConstRef
 
typedef agx::observer_ptr< VoronoiGeneratorVoronoiGeneratorObserver
 
typedef agx::ref_ptr< VoronoiGeneratorVoronoiGeneratorRef
 
typedef agx::observer_ptr< const WireShapeWireShapeConstObserver
 
typedef agx::ref_ptr< const WireShapeWireShapeConstRef
 
typedef agx::observer_ptr< WireShapeWireShapeObserver
 
typedef agx::ref_ptr< WireShapeWireShapeRef
 

Enumerations

enum class  ShapeDistanceResult : std::uint8_t { SUCCESS , OVERLAPPING_SHAPES , UNSUPPORTED_SHAPE_TYPES , FAILURE }
 Status values that can be returned when performing shape-shape distance computation. More...
 

Functions

 AGX_DECLARE_POINTER_TYPES (SpaceListener)
 
 AGX_STATIC_ASSERT (sizeof(ContactPoint)==sizeof(agx::Physics::ContactPointPtr))
 
AGXPHYSICS_EXPORT void collideConvexConvex (const Shape *convexShape1, const Shape *convexShape2, const agx::AffineMatrix4x4 &transform1, const agx::AffineMatrix4x4 &transform2, ShapeCollider::LocalContactPointVector &result, const agx::Real epaAccuracy=agx::AGX_EQUIVALENT_EPSILON)
 Collides two convex shapes (Box, Capsule, Convex, Cylinder, Sphere).
 
AGXPHYSICS_EXPORT agxCollide::ShapeDistanceResult computeGeometryDistance (const agxCollide::Geometry *geometry1, const agx::AffineMatrix4x4 &transform1, const agxCollide::Geometry *geometry2, const agx::AffineMatrix4x4 &transform2, agx::Vec3 &point1, agx::Vec3 &point2)
 Utility method to perform shape-shape minimum distance test between all compatible shape pairs, where one shape is taken from each geometry.
 
AGXPHYSICS_EXPORT agxCollide::ShapeDistanceResult computeShapeDistance (const agxCollide::Shape *shape1, const agx::AffineMatrix4x4 &transform1, const agxCollide::Shape *shape2, const agx::AffineMatrix4x4 &transform2, agx::Vec3 &point1, agx::Vec3 &point2)
 Utility function to compute the minimum distance between two shapes.
 
template void copyContactPoint (const agx::Physics::ContactPointPtr &, LocalContactPoint &)
 
template void copyContactPoint (const ContactPoint &, LocalContactPoint &)
 
template void copyContactPoint (const LocalContactPoint &, agx::Physics::ContactPointPtr &)
 
template void copyContactPoint (const LocalContactPoint &, ContactPoint &)
 
template<typename T1 , typename T2 >
void copyContactPoint (const T1 &from, T2 &to)
 Copy between the different kinds of contact points.
 
AGXPHYSICS_EXPORT void createSupportContactPoints (const agxCollide::Shape *shape1, const agxCollide::Shape *shape2, const agx::AffineMatrix4x4 &transform1, const agx::AffineMatrix4x4 &transform2, const agx::Vec3 &point, const agx::Vec3 &normal, const agx::Real deepestDepth, agxCollide::ShapeCollider::LocalContactPointVector &result, bool &keepOriginalPoint)
 Given 2 convex shapes and 1 contact point (which is assumed to be the deepest possible point) this function will create extra contact points.
 
AGXPHYSICS_EXPORT bool isPointInsideConvex (const agx::Vec3 &point, const agxCollide::Convex *convex)
 Check if a point in world coordinates is inside a given convex.
 
AGXPHYSICS_EXPORT std::ostream & operator<< (std::ostream &output, const agx::Physics::CollisionGroupPtr &group)
 
AGXPHYSICS_EXPORT std::ostream & operator<< (std::ostream &output, const agx::Physics::CollisionGroupSetPtr &set)
 
std::ostream & operator<< (std::ostream &output, const BoundingAABB &bound)
 
std::ostream & operator<< (std::ostream &output, const DisabledCollisionsState &state)
 

Detailed Description

This namespace consists of a set of classes for handling geometric intersection tests including boolean tests, penetration and contact sets.

Typedef Documentation

◆ BoxConstObserver

Definition at line 26 of file Box.h.

◆ BoxConstRef

Definition at line 26 of file Box.h.

◆ BoxObserver

Definition at line 26 of file Box.h.

◆ BoxRef

Definition at line 26 of file Box.h.

◆ BroadPhasePairVector

Definition at line 65 of file Space.h.

◆ CapsuleConstObserver

Definition at line 27 of file Capsule.h.

◆ CapsuleConstRef

Definition at line 27 of file Capsule.h.

◆ CapsuleObserver

Definition at line 27 of file Capsule.h.

◆ CapsuleRef

Definition at line 27 of file Capsule.h.

◆ CollisionGroupManagerConstObserver

◆ CollisionGroupManagerConstRef

◆ CollisionGroupManagerObserver

◆ CollisionGroupManagerRef

◆ CollisionMeshDataRef

◆ ConeConstObserver

Definition at line 29 of file Cone.h.

◆ ConeConstRef

Definition at line 29 of file Cone.h.

◆ ConeObserver

Definition at line 29 of file Cone.h.

◆ ConeRef

Definition at line 29 of file Cone.h.

◆ ConstCollisionMeshDataRef

◆ ConstHeightFieldMeshDataRef

◆ ConstMeshDataRef

Definition at line 71 of file MeshData.h.

◆ ContactPointVector

◆ ConvexConstObserver

Definition at line 31 of file Convex.h.

◆ ConvexConstRef

Definition at line 31 of file Convex.h.

◆ ConvexFactoryConstObserver

◆ ConvexFactoryConstRef

Definition at line 32 of file ConvexFactory.h.

◆ ConvexFactoryObserver

◆ ConvexFactoryRef

◆ ConvexObserver

Definition at line 31 of file Convex.h.

◆ ConvexRef

Definition at line 31 of file Convex.h.

◆ ConvexRefVector

◆ CylinderConstObserver

Definition at line 31 of file Cylinder.h.

◆ CylinderConstRef

Definition at line 31 of file Cylinder.h.

◆ CylinderObserver

Definition at line 31 of file Cylinder.h.

◆ CylinderRef

Definition at line 31 of file Cylinder.h.

◆ GeometryConstObserver

Definition at line 78 of file Geometry.h.

◆ GeometryConstRef

Definition at line 78 of file Geometry.h.

◆ GeometryContactPtrVector

◆ GeometryContactVector

◆ GeometryHashSet

Definition at line 81 of file Geometry.h.

◆ GeometryHashVector

Definition at line 80 of file Geometry.h.

◆ GeometryObserver

Definition at line 78 of file Geometry.h.

◆ GeometryObserverVector

◆ GeometryPairVector

typedef agx::Vector<agxCollide::GeometryPair > agxCollide::GeometryPairVector

Definition at line 37 of file agxcollide_vector_types.h.

◆ GeometryPtrPairVector

◆ GeometryPtrVector

◆ GeometryRef

Definition at line 78 of file Geometry.h.

◆ GeometryRefSetVector

◆ GeometryRefVector

◆ GeometryTable

◆ GroupIdPairVector

◆ GroupNameVector

◆ HeightFieldConstObserver

◆ HeightFieldConstRef

◆ HeightFieldMeshDataRef

◆ HeightFieldObserver

◆ HeightFieldRef

◆ HierarchicalGridConstObserver

◆ HierarchicalGridConstRef

◆ HierarchicalGridObserver

◆ HierarchicalGridRef

◆ HollowConeConstObserver

Definition at line 29 of file HollowCone.h.

◆ HollowConeConstRef

Definition at line 29 of file HollowCone.h.

◆ HollowConeObserver

◆ HollowConeRef

Definition at line 29 of file HollowCone.h.

◆ HollowCylinderConstObserver

◆ HollowCylinderConstRef

◆ HollowCylinderObserver

◆ HollowCylinderRef

◆ LineConstObserver

Definition at line 28 of file agxCollide/Line.h.

◆ LineConstRef

Definition at line 28 of file agxCollide/Line.h.

◆ LineObserver

Definition at line 28 of file agxCollide/Line.h.

◆ LineRef

Definition at line 28 of file agxCollide/Line.h.

◆ LocalContactPointVector

◆ LocalGeometryContactVector

◆ LocalParticleGeometryContactVector

◆ LocalParticlePairContactVector

◆ LocalSeparationPairVector

typedef agx::Vector<agx::Physics::GeometryPairPtr> agxCollide::LocalSeparationPairVector

Definition at line 67 of file Space.h.

◆ MeshConstObserver

Definition at line 36 of file Mesh.h.

◆ MeshConstRef

Definition at line 36 of file Mesh.h.

◆ MeshDataRef

Definition at line 70 of file MeshData.h.

◆ MeshObserver

Definition at line 36 of file Mesh.h.

◆ MeshRef

Definition at line 36 of file Mesh.h.

◆ NamePairVector

◆ ParticleGeometryContactVector

typedef agx::Vector<agx::Physics::ParticleGeometryContactPtr> agxCollide::ParticleGeometryContactVector

Definition at line 71 of file Space.h.

◆ ParticleGeometryPair

typedef std::pair<agx::Physics::ParticlePtr, agx::Physics::GeometryPtr> agxCollide::ParticleGeometryPair

Definition at line 68 of file Space.h.

◆ ParticleGeometryPairVector

◆ ParticlePairContactVector

typedef agx::Vector<agx::Physics::ParticlePairContactPtr> agxCollide::ParticlePairContactVector

Definition at line 72 of file Space.h.

◆ PlaneConstObserver

Definition at line 33 of file agxCollide/Plane.h.

◆ PlaneConstRef

Definition at line 33 of file agxCollide/Plane.h.

◆ PlaneObserver

Definition at line 33 of file agxCollide/Plane.h.

◆ PlaneRef

Definition at line 33 of file agxCollide/Plane.h.

◆ RenderDataConstObserver

Definition at line 30 of file RenderData.h.

◆ RenderDataConstRef

Definition at line 30 of file RenderData.h.

◆ RenderDataObserver

◆ RenderDataRef

Definition at line 30 of file RenderData.h.

◆ RenderMaterialConstObserver

◆ RenderMaterialConstRef

◆ RenderMaterialObserver

◆ RenderMaterialRef

◆ RenderMaterialValueHashTable

◆ SeparationPairVector

Definition at line 66 of file Space.h.

◆ ShapeConstObserver

Definition at line 46 of file Shape.h.

◆ ShapeConstRef

Definition at line 46 of file Shape.h.

◆ ShapeGroupConstObserver

Definition at line 48 of file Shape.h.

◆ ShapeGroupConstRef

typedef agx::ref_ptr< const ShapeGroup > agxCollide::ShapeGroupConstRef

Definition at line 48 of file Shape.h.

◆ ShapeGroupObserver

Definition at line 48 of file Shape.h.

◆ ShapeGroupRef

typedef agx::ref_ptr< ShapeGroup > agxCollide::ShapeGroupRef

Definition at line 48 of file Shape.h.

◆ ShapeObserver

Definition at line 46 of file Shape.h.

◆ ShapeObserverVector

Definition at line 47 of file Shape.h.

◆ ShapePtrVector

Definition at line 47 of file Shape.h.

◆ ShapeRef

Definition at line 46 of file Shape.h.

◆ ShapeRefVector

◆ SpaceConstObserver

Definition at line 74 of file Space.h.

◆ SpaceConstRef

Definition at line 74 of file Space.h.

◆ SpaceObserver

Definition at line 74 of file Space.h.

◆ SpaceRef

Definition at line 74 of file Space.h.

◆ SphereConstObserver

Definition at line 27 of file Sphere.h.

◆ SphereConstRef

Definition at line 27 of file Sphere.h.

◆ SphereObserver

Definition at line 27 of file Sphere.h.

◆ SphereRef

Definition at line 27 of file Sphere.h.

◆ SweepAndPruneConstObserver

◆ SweepAndPruneConstRef

Definition at line 35 of file SweepAndPrune.h.

◆ SweepAndPruneObserver

◆ SweepAndPruneRef

◆ TrimeshConstObserver

Definition at line 36 of file Trimesh.h.

◆ TrimeshConstRef

Definition at line 36 of file Trimesh.h.

◆ TrimeshObserver

Definition at line 36 of file Trimesh.h.

◆ TrimeshRef

Definition at line 36 of file Trimesh.h.

◆ VoronoiGeneratorConstObserver

◆ VoronoiGeneratorConstRef

◆ VoronoiGeneratorObserver

◆ VoronoiGeneratorRef

◆ WireShapeConstObserver

Definition at line 27 of file WireShape.h.

◆ WireShapeConstRef

Definition at line 27 of file WireShape.h.

◆ WireShapeObserver

◆ WireShapeRef

Definition at line 27 of file WireShape.h.

Enumeration Type Documentation

◆ ShapeDistanceResult

enum class agxCollide::ShapeDistanceResult : std::uint8_t
strong

Status values that can be returned when performing shape-shape distance computation.

Enumerator
SUCCESS 

Distance measurement successful.

OVERLAPPING_SHAPES 

Shapes overlap.

UNSUPPORTED_SHAPE_TYPES 

One or more input shapes is of a non-supported type (Shape::hasSupportFunction() returns false)

FAILURE 

Generic error, e.g supported shapes but invalid values such as some negative shape size.

Definition at line 35 of file ShapeDistance.h.

Function Documentation

◆ AGX_DECLARE_POINTER_TYPES()

agxCollide::AGX_DECLARE_POINTER_TYPES ( SpaceListener  )

◆ AGX_STATIC_ASSERT()

agxCollide::AGX_STATIC_ASSERT ( sizeof(ContactPoint = =sizeof(agx::Physics::ContactPointPtr))

◆ collideConvexConvex()

AGXPHYSICS_EXPORT void agxCollide::collideConvexConvex ( const Shape convexShape1,
const Shape convexShape2,
const agx::AffineMatrix4x4 transform1,
const agx::AffineMatrix4x4 transform2,
ShapeCollider::LocalContactPointVector &  result,
const agx::Real  epaAccuracy = agx::AGX_EQUIVALENT_EPSILON 
)

Collides two convex shapes (Box, Capsule, Convex, Cylinder, Sphere).

Parameters
convexShape1The first convex shape.
convexShape2The second convex shape.
transform1The transformation matrix from the first convex shape's local frame to world frame.
transform2The transformation matrix from the second convex shape's local frame to world frame.
resultThe contact point vector (probably non-empty from start) where resulting contact points get added.
epaAccuracyWhich accuracy does EPA have to reach in order to accept the found point as the deepest one?

Referenced by agxCollide::FallbackConvexCollider< ShapeType1, ShapeType2 >::_calculateContacts().

◆ computeGeometryDistance()

AGXPHYSICS_EXPORT agxCollide::ShapeDistanceResult agxCollide::computeGeometryDistance ( const agxCollide::Geometry geometry1,
const agx::AffineMatrix4x4 transform1,
const agxCollide::Geometry geometry2,
const agx::AffineMatrix4x4 transform2,
agx::Vec3 point1,
agx::Vec3 point2 
)

Utility method to perform shape-shape minimum distance test between all compatible shape pairs, where one shape is taken from each geometry.

The tests will use computeShapeDistance and the smallest distance will be returned in point1 and point2 if the return status is SUCCESS.

Note
: The transformation of the Geometry (geometry->getTransform) will NOT be used in this method. Reason being that the geometry might not be enabled (or even part of a Simulation) and hence might not be updated correctly. So if you explicitly set the transformation of any of the geometries you can use geometry1->getTransform() as your transform argument.
Parameters
geometry1- First geometry (with shapes) to be tested
transform1- Transform that transform the first geometry to the world coordinate system
geometry2- Second geometry (with shapes) to be tested
transform2- Transform that transform the second geometry to the world coordinate system
point1- The closest point on shape1
point2- The closest point on shape2
Returns
The result of the computation. See ShapeDistanceResult.

◆ computeShapeDistance()

AGXPHYSICS_EXPORT agxCollide::ShapeDistanceResult agxCollide::computeShapeDistance ( const agxCollide::Shape shape1,
const agx::AffineMatrix4x4 transform1,
const agxCollide::Shape shape2,
const agx::AffineMatrix4x4 transform2,
agx::Vec3 point1,
agx::Vec3 point2 
)

Utility function to compute the minimum distance between two shapes.

This method supports convex shapes for which Shape::hasSupportFunction() returns true. The function works directly on the shapes and does not need for the shapes to be part of agxCollide::Space or that e.g. BoundingBoxes are updated.

When the shapes do not overlap, SUCCESS IS returned and the position on each shape in global coordinates are written to point1 and point2. The distance is the magnitude of the vector between point1 and point2.

If the shapes do overlap, OVERLAPPING_SHAPES is returned and point1 and point2 are unchanged. More detailed contact information for this case, use the regular collision detection via Space.

For unsupported shape types or an unspecified error, two other return codes are also possible.

Parameters
shape1- First shape to be tested
transform1- Transform that transform the first shape to the world coordinate system
shape2- Second shape to be tested
transform2- Transform that transform the second shape to the world coordinate system
point1- The closest point on shape1
point2- The closest point on shape2
Returns
The result of the computation. See ShapeDistanceResult.

◆ copyContactPoint() [1/5]

template void agxCollide::copyContactPoint ( const agx::Physics::ContactPointPtr &  ,
LocalContactPoint  
)

◆ copyContactPoint() [2/5]

template void agxCollide::copyContactPoint ( const ContactPoint ,
LocalContactPoint  
)

◆ copyContactPoint() [3/5]

template void agxCollide::copyContactPoint ( const LocalContactPoint ,
agx::Physics::ContactPointPtr &   
)

◆ copyContactPoint() [4/5]

template void agxCollide::copyContactPoint ( const LocalContactPoint ,
ContactPoint  
)

◆ copyContactPoint() [5/5]

template<typename T1 , typename T2 >
void agxCollide::copyContactPoint ( const T1 &  from,
T2 &  to 
)

Copy between the different kinds of contact points.

Note that only the common members between all 3 classes are copied (so not e.g. material or localForce).

Definition at line 236 of file Contacts.h.

◆ createSupportContactPoints()

AGXPHYSICS_EXPORT void agxCollide::createSupportContactPoints ( const agxCollide::Shape shape1,
const agxCollide::Shape shape2,
const agx::AffineMatrix4x4 transform1,
const agx::AffineMatrix4x4 transform2,
const agx::Vec3 point,
const agx::Vec3 normal,
const agx::Real  deepestDepth,
agxCollide::ShapeCollider::LocalContactPointVector &  result,
bool &  keepOriginalPoint 
)

Given 2 convex shapes and 1 contact point (which is assumed to be the deepest possible point) this function will create extra contact points.

Parameters
shape1The first convex shape.
shape2The second convex shape.
transform1The transformation matrix from the first convex shape's local frame to world frame.
transform2The transformation matrix from the second convex shape's local frame to world frame.
pointThe first, deepest contact point.
normalThe contact normal belonging to the first, deepest contact point.
deepestDepthThe depth belonging to the first, deepest contact point.
resultThe contact point vector (probably non-empty from start) where resulting contact points get added.
keepOriginalPointResult: Should the original point be kept, or have we found better ones?

◆ isPointInsideConvex()

AGXPHYSICS_EXPORT bool agxCollide::isPointInsideConvex ( const agx::Vec3 point,
const agxCollide::Convex convex 
)

Check if a point in world coordinates is inside a given convex.

Parameters
pointThe point in world coordinates.
convexThe convex.

◆ operator<<() [1/4]

AGXPHYSICS_EXPORT std::ostream & agxCollide::operator<< ( std::ostream &  output,
const agx::Physics::CollisionGroupPtr &  group 
)

◆ operator<<() [2/4]

AGXPHYSICS_EXPORT std::ostream & agxCollide::operator<< ( std::ostream &  output,
const agx::Physics::CollisionGroupSetPtr &  set 
)

◆ operator<<() [3/4]

std::ostream & agxCollide::operator<< ( std::ostream &  output,
const BoundingAABB bound 
)
inline

Definition at line 224 of file BoundingAABB.h.

References agx::BoundT< T >::max(), and agx::BoundT< T >::min().

◆ operator<<() [4/4]

std::ostream & agxCollide::operator<< ( std::ostream &  output,
const DisabledCollisionsState state 
)