1 #ifndef GEOMETRIC_2D_CSPACE_H 2 #define GEOMETRIC_2D_CSPACE_H 5 #include <KrisLibrary/math3d/geometry2d.h> 13 enum Type { AABB, Triangle, Circle, Box };
15 int NumObstacles()
const;
16 Type ObstacleType(
int obstacle)
const;
17 int ObstacleIndex(
int obstacle)
const;
19 const char* ObstacleTypeName(
int obstacle)
const;
22 void Add(
const AABB2D& bbox);
23 void Add(
const Box2D& box);
30 void DrawOutlinesGL()
const;
31 void ToPolygons(vector<vector<Vector2> >& polys)
const;
34 Real Distance(
const Vector2& x)
const;
35 Real Distance(
const Circle2D& circle)
const;
37 bool Collides(
const Vector2& x)
const;
39 bool Collides(
const Circle2D& circle)
const;
40 bool Collides(
const Box2D& box)
const;
45 Real Distance(
const Vector2& x,
int obstacle)
const;
46 Real Distance(
const Circle2D& circle,
int obstacle)
const;
48 bool Collides(
const Vector2& x,
int obstacle)
const;
49 bool Collides(
const Segment2D& s,
int obstacle)
const;
50 bool Collides(
const Circle2D& circle,
int obstacle)
const;
51 bool Collides(
const Box2D& box,
int obstacle)
const;
52 bool Collides(
const Triangle2D& tri,
int obstacle)
const;
60 vector<Circle2D> circles;
61 vector<Triangle2D> triangles;
73 void InitConstraints();
76 Real ObstacleDistance(
const Vector2& x)
const;
77 Real ObstacleDistance(
const Circle2D& circle)
const;
78 bool ObstacleOverlap(
const Segment2D& s)
const;
79 bool ObstacleOverlap(
const Circle2D& circle)
const;
80 bool ObstacleOverlap(
const Box2D& box)
const;
81 bool ObstacleOverlap(
const Triangle2D& tri)
const;
82 bool ObstacleOverlap(
const Segment2D& s,
int obstacle)
const;
84 virtual int NumDimensions()
const {
return 2; }
86 virtual void SampleNeighborhood(
const Config& c,Real r,
Config& x);
87 virtual EdgePlannerPtr PathChecker(
const Config& a,
const Config& b);
88 virtual EdgePlannerPtr PathChecker(
const Config& a,
const Config& b,
int obstacle);
94 Real visibilityEpsilon;
104 virtual int NumDimensions() {
return translationOnly ? 2:3; }
105 virtual bool Contains(
const Config& x);
106 virtual Real ObstacleDistance(
const Config& x);
110 bool translationOnly;
Real Sample(const Interval &s)
Uniformly samples the given intervals.
Definition: sample.cpp:116
A 2D circle class.
Definition: Circle2D.h:16
A 2D triangle class.
Definition: Triangle2D.h:25
Definition: Geometric2DCSpace.h:10
a 2D cspace whose obstacles are geometric primitives.
Definition: Geometric2DCSpace.h:69
Vector Config
an alias for Vector
Definition: RobotKinematics3D.h:14
Motion planning configuration space base class. The configuration space implements an interpolation s...
Definition: CSpace.h:39
Definition: Geometric2DCSpace.h:98
Definition: rayprimitives.h:132
A 2D boxThe box is the unit square [0,1]^2 set in the scaled local coordinate system. That is, one corner is at the origin, and it has dimensions [dims.x,dims.y] in the coordinates given by {xbasis,ybasis}.
Definition: Box2D.h:20
A generic 2D geometric primitive class.
Definition: geometry2d.h:24
A 2D segment class.
Definition: Segment2D.h:17
Contains all the definitions in the Math3D package.
Definition: AnyGeometry.h:13
A 2D vector class.
Definition: math3d/primitives.h:41
A 2D axis-aligned bounding box.
Definition: AABB2D.h:13
A simple map from keys to values.
Definition: PropertyMap.h:27
A subset of a CSpace, which establishes a constraint for a configuration must meet. Mathematically, this is a set S which imposes the constraint [q in S].
Definition: CSet.h:20
virtual Real ObstacleDistance(const Config &x)
for local planners using obstacle distance
Definition: Geometric2DCSpace.h:90