KrisLibrary  1.0.0
Grid2DCSpace.h
1 #ifndef GRID_2D_CSPACE_H
2 #define GRID_2D_CSPACE_H
3 
4 #include "CSpace.h"
5 #include "Interpolator.h"
6 #include <KrisLibrary/math3d/Circle2D.h>
7 #include <KrisLibrary/math3d/Triangle2D.h>
8 #include <KrisLibrary/math3d/AABB2D.h>
9 #include <KrisLibrary/structs/array2d.h>
10 using namespace Math3D;
11 
12 class Grid2DCSpace : public CSpace
13 {
14 public:
15  Grid2DCSpace(int m,int n);
16  void WorldToGrid(const Vector2& world,Vector2& grid);
17  void GridToWorld(const Vector2& grid,Vector2& world);
18  void Add(const Triangle2D& tri,bool obstacle=true);
19  void Add(const AABB2D& bbox,bool obstacle=true);
20  //void Add(const Polygon2D& poly,bool obstacle=true);
21  void Add(const Circle2D& sphere,bool obstacle=true);
22  void Rasterize(CSpace* space);
23  void DrawGL();
24 
25  virtual void Sample(Config& x);
26  virtual void SampleNeighborhood(const Config& c,Real r,Config& x);
27  virtual bool IsFeasible(const Config& x);
28  virtual EdgePlannerPtr PathChecker(const InterpolatorPtr& b);
29  virtual Real Distance(const Config& x, const Config& y);
30 
31  bool euclideanSpace;
32  AABB2D domain;
33  Array2D<bool> occupied;
34 };
35 
36 #endif
Real Sample(const Interval &s)
Uniformly samples the given intervals.
Definition: sample.cpp:116
A 2D circle class.
Definition: Circle2D.h:16
Definition: Grid2DCSpace.h:12
A 2D triangle class.
Definition: Triangle2D.h:25
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:34
Contains all the definitions in the Math3D package.
Definition: AnyGeometry.h:12
A 2D vector class.
Definition: math3d/primitives.h:41
A 2D axis-aligned bounding box.
Definition: AABB2D.h:13