KrisLibrary  1.0.0
Grid2DCSpace.h
1 #ifndef GRID_2D_CSPACE_H
2 #define GRID_2D_CSPACE_H
3 
4 #include "CSpaceHelpers.h"
5 #include <KrisLibrary/math3d/Circle2D.h>
6 #include <KrisLibrary/math3d/Triangle2D.h>
7 #include <KrisLibrary/math3d/AABB2D.h>
8 #include "Tabular.h"
9 using namespace Math3D;
10 
16 class Grid2DCSpace : public BoxCSpace
17 {
18 public:
19  Grid2DCSpace(int m,int n,const AABB2D& domain);
20  void WorldToGrid(const Vector2& world,Vector2& grid);
21  void GridToWorld(const Vector2& grid,Vector2& world);
22  void Add(const Triangle2D& tri,bool obstacle=true);
23  void Add(const AABB2D& bbox,bool obstacle=true);
24  //void Add(const Polygon2D& poly,bool obstacle=true);
25  void Add(const Circle2D& sphere,bool obstacle=true);
26  void Rasterize(CSpace* space);
27  void DrawGL();
28 
29  virtual void SampleNeighborhood(const Config& c,Real r,Config& x);
30  virtual EdgePlannerPtr PathChecker(const InterpolatorPtr& b);
31  virtual Real Distance(const Config& x, const Config& y);
32 
33  bool euclideanSpace;
34  std::shared_ptr<Tabular2DSet> occupied;
35 };
36 
37 #endif
A 2D circle class.
Definition: Circle2D.h:16
A simple CSpace that lets you add geometric obstacles as blocked off grid cells.
Definition: Grid2DCSpace.h:16
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:39
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
Definition: CSpaceHelpers.h:63