Collision Checker
collision Namespace Reference

Namespaces

 detail
 
 geometry_queries
 
 raytrace
 
 serialize
 
 solvers
 
 test
 
 trajectory_queries
 

Classes

class  AABB
 
class  CollisionChecker
 CollisionChecker can contain collision objects and their groups (such as ShapeGroup and TimeVariantCollisionObject) More...
 
class  CollisionObject
 Base class for CollisionObjects and some of their groups. More...
 
class  CollisionObjectEx
 Provides functionality to use different collision solvers. More...
 
class  CollisionRequest
 Universal structure specifying collision request properties. More...
 
class  CollisionResult
 Structure holding result for a collision request. More...
 
class  DistanceRequest
 
class  DistanceResult
 
class  ICollisionChecker
 External interface to a CollisionChecker (with or without an acceleration structure) More...
 
class  ICollisionContainer
 
class  LineSegment
 
class  Point
 A point in space. More...
 
class  Polygon
 Polygon contains Triangles and Vertices. More...
 
class  PrimitiveCollisionChecker
 PrimitiveCollisionChecker can group any kinds of CollisionObjects. More...
 
class  RectangleAABB
 Axis-aligned rectangle. More...
 
class  RectangleOBB
 Oriented rectangle. More...
 
class  Shape
 Base prototype for the shape of an obstacle. More...
 
class  ShapeGroup
 ShapeGroup can contain simple shapes. More...
 
class  Sphere
 Circle. More...
 
class  TimeVariantCollisionObject
 TimeVariantCollisionObject can contain a different CollisionObject or ShapeGroup at each time step. More...
 
struct  TrajectoryQueryResult
 
struct  TrajectoryQueryResultCollisionTime
 
struct  TrajectoryRequest
 
struct  TrajectoryRequestCollisionTime
 
class  Triangle
 Triangle. More...
 

Typedefs

typedef std::shared_ptr< CollisionCheckerCollisionCheckerPtr
 
typedef std::shared_ptr< const CollisionCheckerCollisionCheckerConstPtr
 
typedef std::shared_ptr< CollisionObjectCollisionObjectPtr
 
typedef std::shared_ptr< const CollisionObjectCollisionObjectConstPtr
 
typedef std::shared_ptr< ShapeShapePtr
 
typedef std::shared_ptr< const ShapeShapeConstPtr
 
typedef std::shared_ptr< RectangleAABBRectangleAABBPtr
 
typedef std::shared_ptr< const RectangleAABBRectangleAABBConstPtr
 
typedef std::shared_ptr< RectangleOBBRectangleOBBPtr
 
typedef std::shared_ptr< const RectangleOBBRectangleOBBConstPtr
 
typedef std::shared_ptr< ShapeGroupShapeGroupPtr
 
typedef std::shared_ptr< const ShapeGroupShapeGroupConstPtr
 
typedef std::shared_ptr< PolygonPolygonPtr
 
typedef std::shared_ptr< const PolygonPolygonConstPtr
 
typedef ShapeType ShapeType
 
typedef std::shared_ptr< TriangleTrianglePtr
 
typedef std::shared_ptr< const TriangleTriangleConstPtr
 
typedef std::shared_ptr< PrimitiveCollisionCheckerPrimitiveCollisionCheckerPtr
 
typedef std::shared_ptr< const PrimitiveCollisionCheckerPrimitiveCollisionCheckerConstPtr
 
template<typename T >
using aligned_vector = std::vector< T, boost::alignment::aligned_allocator< T, 16 > >
 
typedef std::shared_ptr< TimeVariantCollisionObjectTimeVariantCollisionObjectPtr
 
typedef std::shared_ptr< const TimeVariantCollisionObjectTimeVariantCollisionObjectConstPtr
 

Enumerations

enum  CollisionObjectClass { OBJ_CLASS_UNKNOWN = 0, OBJ_CLASS_SHAPE = 1, OBJ_CLASS_SHAPEGROUP = 2, OBJ_CLASS_TVOBSTACLE = 3 }
 
enum  CollisionObjectType {
  OBJ_TYPE_UNKNOWN = 0, OBJ_TYPE_AABB_BOX = 1, OBJ_TYPE_OBB_BOX = 2, OBJ_TYPE_SPHERE = 3,
  OBJ_TYPE_POINT = 4, OBJ_TYPE_TRIANGLE = 5, OBJ_TYPE_POLYGON = 6, OBJ_TYPE_SHAPEGROUP = 7,
  OBJ_TYPE_TVOBSTACLE = COL_OBJECT_TYPES_COUNT - 1
}
 
enum  ShapeType {
  TYPE_POINT, TYPE_RECTANGLE_AABB, TYPE_RECTANGLE_OBB, TYPE_SPHERE,
  TYPE_TRIANGLE, TYPE_POLYGON
}
 
enum  CollisionSolverType { COL_DEFAULT = 0, COL_FCL = 1 }
 
enum  DistanceSolverType { DIST_DEFAULT = 0, DIST_FCL = 1 }
 
enum  DistanceRequestType { DRT_DISTANCE = 0, DRT_TOLERANCE_NEG = 1 }
 
enum  DistanceNodeType { DNT_NARROWPHASE = 0, DNT_AABB = 1 }
 
enum  TrajectoryRequestBroadphaseClass { BC_UNIFORMGRID = 0, BC_FCL, BC_BOX2D }
 

Functions

RectangleOBBConstPtr create_obb_from_points (Eigen::Vector2d pt1, Eigen::Vector2d pt2, double rect_width)
 
int generate_rectangles_from_vertex_list (std::vector< Eigen::Vector2d > &verts, collision::ShapeGroup *sg_rects_ptr, double rect_width)
 
std::size_t collide_binary (const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
 
std::size_t distance (const CollisionObject &obj1, const CollisionObject &obj2, DistanceResult &res, const DistanceRequest &req)
 

Variables

constexpr int COL_OBJECT_TYPES_COUNT = 9
 

Typedef Documentation

◆ aligned_vector

template<typename T >
using collision::aligned_vector = typedef std::vector<T, boost::alignment::aligned_allocator<T, 16> >

Definition at line 9 of file declarations.h.

◆ CollisionCheckerConstPtr

typedef std::shared_ptr< const CollisionChecker > collision::CollisionCheckerConstPtr

Definition at line 24 of file collision_checker.h.

◆ CollisionCheckerPtr

Definition at line 22 of file collision_checker.h.

◆ CollisionObjectConstPtr

typedef std::shared_ptr<const CollisionObject> collision::CollisionObjectConstPtr

Definition at line 41 of file collision_object.h.

◆ CollisionObjectPtr

Definition at line 38 of file collision_object.h.

◆ PolygonConstPtr

typedef std::shared_ptr<const Polygon> collision::PolygonConstPtr

Definition at line 23 of file polygon.h.

◆ PolygonPtr

typedef std::shared_ptr<Polygon> collision::PolygonPtr

Definition at line 22 of file polygon.h.

◆ PrimitiveCollisionCheckerConstPtr

◆ PrimitiveCollisionCheckerPtr

◆ RectangleAABBConstPtr

typedef std::shared_ptr<const RectangleAABB> collision::RectangleAABBConstPtr

Definition at line 101 of file collision_object.h.

◆ RectangleAABBPtr

typedef std::shared_ptr<RectangleAABB> collision::RectangleAABBPtr

Definition at line 100 of file collision_object.h.

◆ RectangleOBBConstPtr

typedef std::shared_ptr<const RectangleOBB> collision::RectangleOBBConstPtr

Definition at line 104 of file collision_object.h.

◆ RectangleOBBPtr

typedef std::shared_ptr<RectangleOBB> collision::RectangleOBBPtr

Definition at line 103 of file collision_object.h.

◆ ShapeConstPtr

typedef std::shared_ptr< const Shape > collision::ShapeConstPtr

Definition at line 98 of file collision_object.h.

◆ ShapeGroupConstPtr

typedef std::shared_ptr< const ShapeGroup > collision::ShapeGroupConstPtr

Definition at line 20 of file polygon.h.

◆ ShapeGroupPtr

typedef std::shared_ptr< ShapeGroup > collision::ShapeGroupPtr

Definition at line 17 of file polygon.h.

◆ ShapePtr

typedef std::shared_ptr<Shape> collision::ShapePtr

Definition at line 97 of file collision_object.h.

◆ ShapeType

Definition at line 22 of file shape.h.

◆ TimeVariantCollisionObjectConstPtr

◆ TimeVariantCollisionObjectPtr

◆ TriangleConstPtr

typedef std::shared_ptr<const Triangle> collision::TriangleConstPtr

Definition at line 96 of file triangle.h.

◆ TrianglePtr

typedef std::shared_ptr<Triangle> collision::TrianglePtr

Definition at line 95 of file triangle.h.

Enumeration Type Documentation

◆ CollisionObjectClass

Enumerator
OBJ_CLASS_UNKNOWN 
OBJ_CLASS_SHAPE 
OBJ_CLASS_SHAPEGROUP 
OBJ_CLASS_TVOBSTACLE 

Definition at line 6 of file collision_object_types.h.

◆ CollisionObjectType

Enumerator
OBJ_TYPE_UNKNOWN 
OBJ_TYPE_AABB_BOX 
OBJ_TYPE_OBB_BOX 
OBJ_TYPE_SPHERE 
OBJ_TYPE_POINT 
OBJ_TYPE_TRIANGLE 
OBJ_TYPE_POLYGON 
OBJ_TYPE_SHAPEGROUP 
OBJ_TYPE_TVOBSTACLE 

Definition at line 15 of file collision_object_types.h.

◆ CollisionSolverType

Enumerator
COL_DEFAULT 
COL_FCL 

Definition at line 4 of file collision_requests.h.

◆ DistanceNodeType

Enumerator
DNT_NARROWPHASE 
DNT_AABB 

Definition at line 6 of file distance_requests.h.

◆ DistanceRequestType

Enumerator
DRT_DISTANCE 
DRT_TOLERANCE_NEG 

Definition at line 5 of file distance_requests.h.

◆ DistanceSolverType

Enumerator
DIST_DEFAULT 
DIST_FCL 

Definition at line 4 of file distance_requests.h.

◆ ShapeType

Enumerator
TYPE_POINT 
TYPE_RECTANGLE_AABB 
TYPE_RECTANGLE_OBB 
TYPE_SPHERE 
TYPE_TRIANGLE 
TYPE_POLYGON 

Definition at line 13 of file shape.h.

◆ TrajectoryRequestBroadphaseClass

Enumerator
BC_UNIFORMGRID 
BC_FCL 
BC_BOX2D 

Definition at line 9 of file trajectory_queries.h.

Function Documentation

◆ collide_binary()

std::size_t collision::collide_binary ( const CollisionObject obj1,
const CollisionObject obj2,
CollisionResult res,
const CollisionRequest req 
)

Definition at line 51 of file collision_queries.cc.

◆ create_obb_from_points()

RectangleOBBConstPtr collision::create_obb_from_points ( Eigen::Vector2d  pt1,
Eigen::Vector2d  pt2,
double  rect_width 
)

Definition at line 9 of file utils.h.

◆ distance()

std::size_t collision::distance ( const CollisionObject obj1,
const CollisionObject obj2,
DistanceResult res,
const DistanceRequest req 
)

Definition at line 95 of file distance_queries.cc.

◆ generate_rectangles_from_vertex_list()

int collision::generate_rectangles_from_vertex_list ( std::vector< Eigen::Vector2d > &  verts,
collision::ShapeGroup sg_rects_ptr,
double  rect_width 
)

Definition at line 30 of file utils.h.

Variable Documentation

◆ COL_OBJECT_TYPES_COUNT

constexpr int collision::COL_OBJECT_TYPES_COUNT = 9

Definition at line 13 of file collision_object_types.h.