Parasol Planning Library (PPL)
PropertyMap< EdgeProperty, VertexProperty > Class Template Reference

#include <PropertyMap.h>

Public Types

Local Types
typedef WorkspaceSkeleton GraphType
 Graph type is a directed multiedge graph of points and paths. More...
 
typedef WorkspaceSkeleton::VD VD
 
typedef WorkspaceSkeleton::ED ED
 
typedef GraphType::vertex_iterator vertex_iterator
 
typedef GraphType::adj_edge_iterator adj_edge_iterator
 
typedef function< bool(EdgeProperty &)> EdgeFilterFunction
 
typedef function< bool(VertexProperty &)> VertexFilterFunction
 
typedef unordered_map< ED, EdgeProperty, edgeHashEdgeMapType
 
typedef unordered_map< VD, VertexProperty > VertexMapType
 

Public Member Functions

Constructors
 PropertyMap ()=default
 
 PropertyMap (WorkspaceSkeleton *_ws)
 
Sub-graph Generators
WorkspaceSkeletonGetEdgeFilteredSkeleton (EdgeFilterFunction &&_f)
 
WorkspaceSkeletonGetVertexFilteredSkeleton (VertexFilterFunction &&_f)
 
Accessors
void SetSkeleton (WorkspaceSkeleton *_ws)
 
VertexMapTypeGetVertexMap ()
 
EdgeMapTypeGetEdgeMap ()
 
void SetVertexMap (VertexMapType &_vMap)
 
void SetEdgeMap (EdgeMapType &_eMap)
 
void SetVertexProperty (const VD &_v, const VertexProperty &_vp)
 Individual accessors. More...
 
void SetEdgeProperty (const ED &_e, const EdgeProperty &_ep)
 
VertexProperty & GetVertexProperty (const VD &_v)
 
EdgeProperty & GetEdgeProperty (const ED &_e)
 
IO
void Write (const std::string &_file)
 
void Read (const std::string &_file)
 

Detailed Description

template<typename EdgeProperty, typename VertexProperty = void>
class PropertyMap< EdgeProperty, VertexProperty >

Property map of the workspace skeleton.

To use just edge property map, use default vertex property.

Member Typedef Documentation

◆ adj_edge_iterator

template<typename EdgeProperty , typename VertexProperty = void>
typedef GraphType::adj_edge_iterator PropertyMap< EdgeProperty, VertexProperty >::adj_edge_iterator

◆ ED

template<typename EdgeProperty , typename VertexProperty = void>
typedef WorkspaceSkeleton::ED PropertyMap< EdgeProperty, VertexProperty >::ED

◆ EdgeFilterFunction

template<typename EdgeProperty , typename VertexProperty = void>
typedef function<bool(EdgeProperty&)> PropertyMap< EdgeProperty, VertexProperty >::EdgeFilterFunction

Filter function types. The filter function removes the properties or skeleton elemets for which the function returns true.

◆ EdgeMapType

template<typename EdgeProperty , typename VertexProperty = void>
typedef unordered_map<ED, EdgeProperty, edgeHash> PropertyMap< EdgeProperty, VertexProperty >::EdgeMapType

◆ GraphType

template<typename EdgeProperty , typename VertexProperty = void>
typedef WorkspaceSkeleton PropertyMap< EdgeProperty, VertexProperty >::GraphType

Graph type is a directed multiedge graph of points and paths.

◆ VD

template<typename EdgeProperty , typename VertexProperty = void>
typedef WorkspaceSkeleton::VD PropertyMap< EdgeProperty, VertexProperty >::VD

◆ vertex_iterator

template<typename EdgeProperty , typename VertexProperty = void>
typedef GraphType::vertex_iterator PropertyMap< EdgeProperty, VertexProperty >::vertex_iterator

◆ VertexFilterFunction

template<typename EdgeProperty , typename VertexProperty = void>
typedef function<bool(VertexProperty&)> PropertyMap< EdgeProperty, VertexProperty >::VertexFilterFunction

◆ VertexMapType

template<typename EdgeProperty , typename VertexProperty = void>
typedef unordered_map<VD, VertexProperty> PropertyMap< EdgeProperty, VertexProperty >::VertexMapType

Constructor & Destructor Documentation

◆ PropertyMap() [1/2]

template<typename EdgeProperty , typename VertexProperty = void>
PropertyMap< EdgeProperty, VertexProperty >::PropertyMap ( )
default

◆ PropertyMap() [2/2]

template<typename EdgeProperty , typename VertexProperty = void>
PropertyMap< EdgeProperty, VertexProperty >::PropertyMap ( WorkspaceSkeleton _ws)
inline

Member Function Documentation

◆ GetEdgeFilteredSkeleton()

template<typename EdgeProperty , typename VertexProperty >
WorkspaceSkeleton * PropertyMap< EdgeProperty, VertexProperty >::GetEdgeFilteredSkeleton ( EdgeFilterFunction &&  _f)

Compute the graph in terms of filter funtion then replace the old graph with the annotated one.

Parameters
_fFilter functor: Delete edges for which function returns true.
Returns
A reference to the annotated workspace skeleton.

◆ GetEdgeMap()

template<typename EdgeProperty , typename VertexProperty = void>
EdgeMapType& PropertyMap< EdgeProperty, VertexProperty >::GetEdgeMap ( )
inline

◆ GetEdgeProperty()

template<typename EdgeProperty , typename VertexProperty >
EdgeProperty & PropertyMap< EdgeProperty, VertexProperty >::GetEdgeProperty ( const ED _e)

◆ GetVertexFilteredSkeleton()

template<typename EdgeProperty , typename VertexProperty >
WorkspaceSkeleton * PropertyMap< EdgeProperty, VertexProperty >::GetVertexFilteredSkeleton ( VertexFilterFunction &&  _f)

Compute the graph in terms of filter funtion then replace the old graph with the annotated one.

Parameters
_fFilter functor: Delete vertices for which function returns true.
Returns
A reference to the annotated workspace skeleton.

◆ GetVertexMap()

template<typename EdgeProperty , typename VertexProperty = void>
VertexMapType& PropertyMap< EdgeProperty, VertexProperty >::GetVertexMap ( )
inline

◆ GetVertexProperty()

template<typename EdgeProperty , typename VertexProperty >
VertexProperty & PropertyMap< EdgeProperty, VertexProperty >::GetVertexProperty ( const VD _v)

◆ Read()

template<typename EdgeProperty , typename VertexProperty >
void PropertyMap< EdgeProperty, VertexProperty >::Read ( const std::string &  _file)

Reads the graph from a file.

Parameters
_filethe output file name.

◆ SetEdgeMap()

template<typename EdgeProperty , typename VertexProperty = void>
void PropertyMap< EdgeProperty, VertexProperty >::SetEdgeMap ( EdgeMapType _eMap)
inline

◆ SetEdgeProperty()

template<typename EdgeProperty , typename VertexProperty >
void PropertyMap< EdgeProperty, VertexProperty >::SetEdgeProperty ( const ED _e,
const EdgeProperty &  _ep 
)

◆ SetSkeleton()

template<typename EdgeProperty , typename VertexProperty = void>
void PropertyMap< EdgeProperty, VertexProperty >::SetSkeleton ( WorkspaceSkeleton _ws)
inline

◆ SetVertexMap()

template<typename EdgeProperty , typename VertexProperty = void>
void PropertyMap< EdgeProperty, VertexProperty >::SetVertexMap ( VertexMapType _vMap)
inline

◆ SetVertexProperty()

template<typename EdgeProperty , typename VertexProperty >
void PropertyMap< EdgeProperty, VertexProperty >::SetVertexProperty ( const VD _v,
const VertexProperty &  _vp 
)

Individual accessors.

◆ Write()

template<typename EdgeProperty , typename VertexProperty >
void PropertyMap< EdgeProperty, VertexProperty >::Write ( const std::string &  _file)

Writes the graph to a file.

Parameters
_filethe output file name.

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