aimstil  5.0.5
til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy > Class Template Referenceabstract

#include <cathier/triangle_mesh_geodesic_map.h>

Inheritance diagram for til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >:
Collaboration diagram for til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >:

Public Types

typedef Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy > Self
 
typedef TPrec precision_type
 
typedef TStoragePolicy::DistCollection DistCollection
 
typedef TStoragePolicy::Label Label
 
typedef TStoragePolicy::LabelCollection LabelCollection
 
typedef TNeighborhoods::value_type Neighborhood
 
typedef std::size_t VertexIndex
 
typedef std::priority_queue< std::pair< VertexIndex, TPrec >, std::vector< std::pair< VertexIndex, TPrec > >, Greater_Pair2< VertexIndex, TPrec > > Queue
 
- Public Types inherited from til::DistanceMapLabels
enum  { UNACTIVE = 0, DONE, ACTIVE }
 

Public Member Functions

 Mesh_distance_map (const TVertices &vertices, const TNeighborhoods &neighc)
 
 Mesh_distance_map (const TVertices &vertices, const TNeighborhoods &neighc, const TStopGhost &sp)
 
virtual ~Mesh_distance_map ()
 
TStopGhost & stopGhost ()
 
const TStopGhost & stopGhost () const
 
shared_ptr< const DistCollectiondistanceMap () const
 Get computed distance map. More...
 
shared_ptr< const LabelCollectionlabels () const
 
shared_ptr< DistCollectiondistanceMap ()
 
shared_ptr< LabelCollectionlabels ()
 
void init (VertexIndex iVertex)
 Initialize to compute the geodesic distance to a single point. More...
 
template<typename TVertexIndex >
void init (std::vector< TVertexIndex > &startPoints, std::vector< TPrec > &startDist)
 Initialize to compute the geodesic distance to a list a points with predefined distance values. More...
 
void process ()
 

Protected Member Functions

virtual TPrec distanceEstimate (VertexIndex iVertex)=0
 

Protected Attributes

const TVertices & m_vertices
 
const TNeighborhoods & m_neighc
 
shared_ptr< LabelCollectionm_pLabel
 
shared_ptr< DistCollectionm_pDist
 
TPrec F
 
Queue m_queue
 
TStopGhost m_stopGhost
 
bool m_allDone
 

Detailed Description

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
class til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >

Definition at line 153 of file triangle_mesh_geodesic_map.h.

Member Typedef Documentation

◆ DistCollection

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
typedef TStoragePolicy::DistCollection til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::DistCollection

Definition at line 179 of file triangle_mesh_geodesic_map.h.

◆ Label

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
typedef TStoragePolicy::Label til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::Label

Definition at line 180 of file triangle_mesh_geodesic_map.h.

◆ LabelCollection

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
typedef TStoragePolicy::LabelCollection til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::LabelCollection

Definition at line 181 of file triangle_mesh_geodesic_map.h.

◆ Neighborhood

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
typedef TNeighborhoods::value_type til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::Neighborhood

Definition at line 186 of file triangle_mesh_geodesic_map.h.

◆ precision_type

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
typedef TPrec til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::precision_type

Definition at line 176 of file triangle_mesh_geodesic_map.h.

◆ Queue

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
typedef std::priority_queue< std::pair<VertexIndex, TPrec>, std::vector<std::pair<VertexIndex, TPrec> >, Greater_Pair2<VertexIndex, TPrec> > til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::Queue

Definition at line 194 of file triangle_mesh_geodesic_map.h.

◆ Self

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
typedef Mesh_distance_map<TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy> til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::Self

Definition at line 174 of file triangle_mesh_geodesic_map.h.

◆ VertexIndex

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
typedef std::size_t til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::VertexIndex

Definition at line 188 of file triangle_mesh_geodesic_map.h.

Constructor & Destructor Documentation

◆ Mesh_distance_map() [1/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::Mesh_distance_map ( const TVertices &  vertices,
const TNeighborhoods &  neighc 
)

◆ Mesh_distance_map() [2/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::Mesh_distance_map ( const TVertices &  vertices,
const TNeighborhoods &  neighc,
const TStopGhost &  sp 
)

◆ ~Mesh_distance_map()

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
virtual til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::~Mesh_distance_map ( )
inlinevirtual

Definition at line 203 of file triangle_mesh_geodesic_map.h.

Member Function Documentation

◆ distanceEstimate()

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
virtual TPrec til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::distanceEstimate ( VertexIndex  iVertex)
protectedpure virtual

◆ distanceMap() [1/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
shared_ptr<const DistCollection> til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::distanceMap ( ) const
inline

Get computed distance map.

Important warning: the raw computation table is returned. If you did not use the default stop policy, it is very likely that this raw distance map contains bad estimates at extra points, used as intermediate stage for internal computations. So, you should be careful that you collect also the point labels and consider the distance only of those points labeled as "DONE".

Definition at line 215 of file triangle_mesh_geodesic_map.h.

◆ distanceMap() [2/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
shared_ptr<DistCollection> til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::distanceMap ( )
inline

Definition at line 217 of file triangle_mesh_geodesic_map.h.

◆ init() [1/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
void til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::init ( VertexIndex  iVertex)

Initialize to compute the geodesic distance to a single point.

◆ init() [2/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
template<typename TVertexIndex >
void til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::init ( std::vector< TVertexIndex > &  startPoints,
std::vector< TPrec > &  startDist 
)

Initialize to compute the geodesic distance to a list a points with predefined distance values.

This is actually very helpful to approximate the distance to objects that are NOT mesh points. For exemple, the distance to a point that is inside a triangle, or even a line or a curve.

◆ labels() [1/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
shared_ptr<const LabelCollection> til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::labels ( ) const
inline

Definition at line 216 of file triangle_mesh_geodesic_map.h.

◆ labels() [2/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
shared_ptr<LabelCollection> til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::labels ( )
inline

Definition at line 218 of file triangle_mesh_geodesic_map.h.

◆ process()

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
void til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::process ( )

◆ stopGhost() [1/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
TStopGhost& til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::stopGhost ( )
inline

Definition at line 207 of file triangle_mesh_geodesic_map.h.

◆ stopGhost() [2/2]

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
const TStopGhost& til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::stopGhost ( ) const
inline

Definition at line 208 of file triangle_mesh_geodesic_map.h.

Member Data Documentation

◆ F

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
TPrec til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::F
protected

Definition at line 253 of file triangle_mesh_geodesic_map.h.

◆ m_allDone

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
bool til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::m_allDone
protected

Definition at line 256 of file triangle_mesh_geodesic_map.h.

◆ m_neighc

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
const TNeighborhoods& til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::m_neighc
protected

Definition at line 246 of file triangle_mesh_geodesic_map.h.

◆ m_pDist

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
shared_ptr<DistCollection> til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::m_pDist
protected

Definition at line 250 of file triangle_mesh_geodesic_map.h.

◆ m_pLabel

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
shared_ptr<LabelCollection> til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::m_pLabel
protected

Definition at line 248 of file triangle_mesh_geodesic_map.h.

◆ m_queue

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
Queue til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::m_queue
protected

Definition at line 254 of file triangle_mesh_geodesic_map.h.

◆ m_stopGhost

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
TStopGhost til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::m_stopGhost
protected

Definition at line 255 of file triangle_mesh_geodesic_map.h.

◆ m_vertices

template<typename TVertices, typename TNeighborhoods, typename TPrec, typename TStopGhost = ghost::GMapStop_None, typename TStoragePolicy = policy::GMap_DefaultStorage_sparse_vect_dbl>
const TVertices& til::Mesh_distance_map< TVertices, TNeighborhoods, TPrec, TStopGhost, TStoragePolicy >::m_vertices
protected

Definition at line 244 of file triangle_mesh_geodesic_map.h.


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