Parasol Planning Library (PPL)
Data Structures
MedialAxis2D Class Reference

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< GtSDG2
 
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< GtParabola2
 
typedef pair< double, Point3d > ClearanceType
 
typedef WorkspaceSkeleton SkeletonGraphType
 
typedef unordered_map< WorkspaceSkeleton::VD, ClearanceTypeVertexClearanceMapType
 
typedef stapl::sequential::graph< stapl::UNDIRECTED, stapl::MULTIEDGES, Point2, MedialEdgeMedialAxisGraph
 Underlying medial axis graph type. More...
 
typedef vector< PolygonSegmentPolygonSegments
 
typedef unordered_map< WorkspaceSkeleton::ED, vector< ClearanceType >, edgeHashEdgeClearanceMapType
 

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, EdgeClearanceMapTypeGetSkeleton (size_t _t=0)
 
vector< ClearanceTypeAnnotateSegment (MedialEdge &_e)
 Calculete the clearance annotation of the interpolated points. More...
 
double GetVertexClearance (size_t _i)
 
Point3d GetVertexClearanceWitness (size_t _i)
 

Detailed Description

2D Medial Axis construction using Segment Delaunay Graph

Member Typedef Documentation

◆ CK

typedef CGAL::Simple_cartesian<double> MedialAxis2D::CK

◆ ClearanceType

typedef pair<double,Point3d> MedialAxis2D::ClearanceType

◆ DS

typedef SDG2::Data_structure MedialAxis2D::DS

◆ Edge2

typedef SDG2::Edge MedialAxis2D::Edge2

◆ EdgeClearanceMapType

◆ Gt

typedef CGAL::Segment_Delaunay_graph_filtered_traits_2<CK, CGAL::Field_with_sqrt_tag> MedialAxis2D::Gt

◆ MedialAxisGraph

typedef stapl::sequential::graph<stapl::UNDIRECTED,stapl::MULTIEDGES, Point2, MedialEdge> MedialAxis2D::MedialAxisGraph

Underlying medial axis graph type.

◆ Parabola2

typedef CGAL::Parabola_segment_2<Gt> MedialAxis2D::Parabola2

◆ Point2

typedef SDG2::Point_2 MedialAxis2D::Point2

◆ PolygonSegments

◆ SDG2

typedef CGAL::Segment_Delaunay_graph_2<Gt> MedialAxis2D::SDG2

◆ Segment2

typedef Gt::Segment_2 MedialAxis2D::Segment2

◆ Site2

typedef SDG2::Site_2 MedialAxis2D::Site2

◆ SkeletonGraphType

◆ VertexClearanceMapType

Constructor & Destructor Documentation

◆ MedialAxis2D() [1/2]

MedialAxis2D::MedialAxis2D ( )
inline

◆ MedialAxis2D() [2/2]

MedialAxis2D::MedialAxis2D ( vector< GMSPolyhedron > &  _polys,
const Boundary _b,
vector< Boundary * >  _bndrys = vector<Boundary*>() 
)

Member Function Documentation

◆ AddPoints()

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

Add a set of points

Parameters
_pPoints.

◆ 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.

◆ AnnotateSegment()

vector< MedialAxis2D::ClearanceType > MedialAxis2D::AnnotateSegment ( MedialEdge _e)

Calculete the clearance annotation of the interpolated points.

◆ BuildMedialAxis()

void MedialAxis2D::BuildMedialAxis ( )

Filter out medial axis edges.

◆ 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

◆ GetVertexClearance()

double MedialAxis2D::GetVertexClearance ( size_t  _i)

◆ GetVertexClearanceWitness()

Point3d MedialAxis2D::GetVertexClearanceWitness ( size_t  _i)

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