MEPP2 Project
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry > Class Template Reference

Preprocessing class is dedicated to provide a list of preprocessings that are needed to guarantee that the following progressive compression will work properly with a "decompressible" binary file.
More...

#include <Preprocessing.h>

Collaboration diagram for FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >:
Collaboration graph

Classes

struct  P
 

Public Member Functions

 Preprocessing (HalfedgeGraph &g, PointMap &pm)
 
void process_mesh_before_quantization ()
 Suppress all small connected components (isolated vertices and isolated edges). To apply before quantization.
More...
 
void process_mesh_after_quantization ()
 Move duplicate vertex positions. To apply after quantization.
More...
 

Private Member Functions

void erase_small_connnected_components ()
 Erase isolated edges and vertices. More...
 
bool check_if_mesh_with_borders ()
 
void move_duplicates_after_quantization ()
 
bool are_duplicates () const
 
Point move_duplicate (vertex_descriptor v, int cas)
 
void get_new_pos (const std::vector< vertex_descriptor > &doublons, int size_doublons, std::set< P > &new_pos)
 

Private Attributes

HalfedgeGraph & _g
 
PointMap & _pm
 
std::map< Point, vertex_descriptor, std::less< Point > > _position
 

Detailed Description

template<typename HalfedgeGraph, typename PointMap, typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
class FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >

Preprocessing class is dedicated to provide a list of preprocessings that are needed to guarantee that the following progressive compression will work properly with a "decompressible" binary file.

Definition at line 50 of file Preprocessing.h.

Constructor & Destructor Documentation

◆ Preprocessing()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::Preprocessing ( HalfedgeGraph &  g,
PointMap &  pm 
)
inline

Definition at line 53 of file Preprocessing.h.

Member Function Documentation

◆ are_duplicates()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
bool FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::are_duplicates ( ) const
inlineprivate

Definition at line 167 of file Preprocessing.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ check_if_mesh_with_borders()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
bool FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::check_if_mesh_with_borders ( )
inlineprivate

Definition at line 125 of file Preprocessing.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ erase_small_connnected_components()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
void FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::erase_small_connnected_components ( )
inlineprivate

Erase isolated edges and vertices.

Definition at line 86 of file Preprocessing.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_new_pos()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
void FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::get_new_pos ( const std::vector< vertex_descriptor > &  doublons,
int  size_doublons,
std::set< P > &  new_pos 
)
inlineprivate

Definition at line 245 of file Preprocessing.h.

Here is the call graph for this function:

◆ move_duplicate()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
Point FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::move_duplicate ( vertex_descriptor  v,
int  cas 
)
inlineprivate

Definition at line 190 of file Preprocessing.h.

Here is the call graph for this function:

◆ move_duplicates_after_quantization()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
void FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::move_duplicates_after_quantization ( )
inlineprivate

Definition at line 140 of file Preprocessing.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_mesh_after_quantization()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
void FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::process_mesh_after_quantization ( )
inline

Move duplicate vertex positions. To apply after quantization.

Definition at line 72 of file Preprocessing.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_mesh_before_quantization()

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
void FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::process_mesh_before_quantization ( )
inline

Suppress all small connected components (isolated vertices and isolated edges). To apply before quantization.

Definition at line 61 of file Preprocessing.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _g

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
HalfedgeGraph& FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::_g
private

Definition at line 334 of file Preprocessing.h.

◆ _pm

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
PointMap& FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::_pm
private

Definition at line 335 of file Preprocessing.h.

◆ _position

template<typename HalfedgeGraph , typename PointMap , typename vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor, typename halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor, typename edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator, typename vertex_iterator = typename boost::graph_traits< HalfedgeGraph >::vertex_iterator, typename Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point, typename Geometry = typename FEVV::Geometry_traits< HalfedgeGraph >>
std::map< Point, vertex_descriptor, std::less< Point > > FEVV::Filters::Preprocessing< HalfedgeGraph, PointMap, vertex_descriptor, halfedge_descriptor, edge_iterator, vertex_iterator, Point, Geometry >::_position
private

Definition at line 336 of file Preprocessing.h.


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