PPL API Reference
Overview Core Algorithm Abstractions Utilities Parallel Methods
Modules Class Hierarchy Classes Functions
Todo List Bug List Dead Code
List of all members | Classes
MedialAxis2D Class Reference

2D Medial Axis construction using Segment Delaunay Graph More...

Classes

struct  MedialEdge
 Medial axis edge structure. More...
 
struct  PolygonSegment
 

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.
 
Accessors
tuple< WorkspaceSkeleton, VertexClearanceMapType, EdgeClearanceMapType > GetSkeleton (size_t _t=0)
 
vector< ClearanceType > AnnotateSegment (MedialEdge &_e)
 Calculete the clearance annotation of the interpolated points.
 
double GetVertexClearance (size_t _i)
 
Point3d GetVertexClearanceWitness (size_t _i)
 

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::GraphType SkeletonGraphType
 
typedef unordered_map< WorkspaceSkeleton::VD, ClearanceType > VertexClearanceMapType
 
typedef stapl::sequential::graph< stapl::UNDIRECTED, stapl::MULTIEDGES, Point2, MedialEdgeMedialAxisGraph
 Underlying medial axis graph type.
 
typedef vector< PolygonSegmentPolygonSegments
 
typedef unordered_map< WorkspaceSkeleton::ED, vector< ClearanceType >, edgeHashEdgeClearanceMapType
 

Detailed Description

2D Medial Axis construction using Segment Delaunay Graph

Member Function Documentation

◆ AddSegments() [1/2]

void MedialAxis2D::AddSegments ( vector< pair< Point3d, Point3d > > &  _s)

Add a set of insert segments

Parameters
_sSegments.

◆ AddSegments() [2/2]

void MedialAxis2D::AddSegments ( vector< Point3d > &  _p,
vector< pair< size_t, size_t > > &  _s 
)

Add a set of insert segments

Parameters
_pPoints.
_sSegments.

◆ AddPoints()

void MedialAxis2D::AddPoints ( vector< Point3d > &  _p)

Add a set of points

Parameters
_pPoints.

◆ GetSkeleton()

tuple< WorkspaceSkeleton, MedialAxis2D::VertexClearanceMapType, MedialAxis2D::EdgeClearanceMapType > MedialAxis2D::GetSkeleton ( size_t  _t = 0)

Get the workspace skeleton from the medial axis

Parameters
_tPass 0 for entire graph, 1 for free space and 2 for obstacle space

The documentation for this class was generated from the following files: