![]() |
Parasol Planning Library (PPL)
|
2D Medial Axis construction using Segment Delaunay Graph More...
#include <MedialAxis2D.h>
Data Structures | |
| struct | edgeHash |
| struct | MedialEdge |
| Medial axis edge structure. More... | |
| struct | PolygonSegment |
Public Types | |
Local types | |
{ | |
| typedef CGAL::Simple_cartesian< double > | CK |
| typedef CGAL::Segment_Delaunay_graph_filtered_traits_2< CK, CGAL::Field_with_sqrt_tag > | Gt |
| typedef CGAL::Segment_Delaunay_graph_2< Gt > | SDG2 |
| typedef SDG2::Site_2 | Site2 |
| typedef SDG2::Point_2 | Point2 |
| typedef SDG2::Edge | Edge2 |
| typedef SDG2::Data_structure | DS |
| typedef Gt::Segment_2 | Segment2 |
| typedef CGAL::Parabola_segment_2< Gt > | Parabola2 |
| typedef pair< double, Point3d > | ClearanceType |
| typedef WorkspaceSkeleton | SkeletonGraphType |
| typedef unordered_map< WorkspaceSkeleton::VD, ClearanceType > | VertexClearanceMapType |
| typedef stapl::sequential::graph< stapl::UNDIRECTED, stapl::MULTIEDGES, Point2, MedialEdge > | MedialAxisGraph |
| Underlying medial axis graph type. More... | |
| typedef vector< PolygonSegment > | PolygonSegments |
| typedef unordered_map< WorkspaceSkeleton::ED, vector< ClearanceType >, edgeHash > | EdgeClearanceMapType |
Public Member Functions | |
Construction | |
| MedialAxis2D () | |
| MedialAxis2D (vector< GMSPolyhedron > &_polys, const Boundary *_b, vector< Boundary * > _bndrys=vector< Boundary * >()) | |
Modifiers | |
| void | AddSegments (vector< pair< Point3d, Point3d >> &_s) |
| void | AddSegments (vector< Point3d > &_p, vector< pair< size_t, size_t >> &_s) |
| void | AddPoints (vector< Point3d > &_p) |
| void | BuildMedialAxis () |
| Filter out medial axis edges. More... | |
Accessors | |
| tuple< WorkspaceSkeleton, VertexClearanceMapType, EdgeClearanceMapType > | GetSkeleton (size_t _t=0) |
| vector< ClearanceType > | AnnotateSegment (MedialEdge &_e) |
| Calculete the clearance annotation of the interpolated points. More... | |
| double | GetVertexClearance (size_t _i) |
| Point3d | GetVertexClearanceWitness (size_t _i) |
2D Medial Axis construction using Segment Delaunay Graph
| typedef CGAL::Simple_cartesian<double> MedialAxis2D::CK |
| typedef pair<double,Point3d> MedialAxis2D::ClearanceType |
| typedef SDG2::Data_structure MedialAxis2D::DS |
| typedef SDG2::Edge MedialAxis2D::Edge2 |
| typedef unordered_map<WorkspaceSkeleton::ED,vector<ClearanceType>, edgeHash> MedialAxis2D::EdgeClearanceMapType |
| typedef CGAL::Segment_Delaunay_graph_filtered_traits_2<CK, CGAL::Field_with_sqrt_tag> MedialAxis2D::Gt |
| typedef stapl::sequential::graph<stapl::UNDIRECTED,stapl::MULTIEDGES, Point2, MedialEdge> MedialAxis2D::MedialAxisGraph |
Underlying medial axis graph type.
| typedef CGAL::Parabola_segment_2<Gt> MedialAxis2D::Parabola2 |
| typedef SDG2::Point_2 MedialAxis2D::Point2 |
| typedef vector<PolygonSegment> MedialAxis2D::PolygonSegments |
| typedef CGAL::Segment_Delaunay_graph_2<Gt> MedialAxis2D::SDG2 |
| typedef Gt::Segment_2 MedialAxis2D::Segment2 |
| typedef SDG2::Site_2 MedialAxis2D::Site2 |
| typedef unordered_map<WorkspaceSkeleton::VD, ClearanceType> MedialAxis2D::VertexClearanceMapType |
|
inline |
| MedialAxis2D::MedialAxis2D | ( | vector< GMSPolyhedron > & | _polys, |
| const Boundary * | _b, | ||
| vector< Boundary * > | _bndrys = vector<Boundary*>() |
||
| ) |
| void MedialAxis2D::AddPoints | ( | vector< Point3d > & | _p | ) |
Add a set of points
| _p | Points. |
| void MedialAxis2D::AddSegments | ( | vector< pair< Point3d, Point3d >> & | _s | ) |
Add a set of insert segments
| _s | Segments. |
| void MedialAxis2D::AddSegments | ( | vector< Point3d > & | _p, |
| vector< pair< size_t, size_t >> & | _s | ||
| ) |
Add a set of insert segments
| _p | Points. |
| _s | Segments. |
| vector< MedialAxis2D::ClearanceType > MedialAxis2D::AnnotateSegment | ( | MedialEdge & | _e | ) |
Calculete the clearance annotation of the interpolated points.
| void MedialAxis2D::BuildMedialAxis | ( | ) |
Filter out medial axis edges.
| tuple< WorkspaceSkeleton, MedialAxis2D::VertexClearanceMapType, MedialAxis2D::EdgeClearanceMapType > MedialAxis2D::GetSkeleton | ( | size_t | _t = 0 | ) |
Get the workspace skeleton from the medial axis
| _t | Pass 0 for entire graph, 1 for free space and 2 for obstacle space |
| double MedialAxis2D::GetVertexClearance | ( | size_t | _i | ) |
| Point3d MedialAxis2D::GetVertexClearanceWitness | ( | size_t | _i | ) |