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

Uniform_quantization is a class dedicated to the XYZ uniform quantization of vertex coordinates stored in the mesh point map. More...

#include <Uniform_quantization.h>

Collaboration diagram for FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >:
Collaboration graph

Classes

struct  boundingBox
 

Public Member Functions

 Uniform_quantization (const HalfedgeGraph &g, PointMap &pm, int nb_bits)
 
double get_quantization_step () const
 
void point_quantization (bool recompute_quanti_param=false)
 Quantizes all vertex positions stored in the point map. More...
 
Point quantize (const Point &p)
 
std::vector< double > get_bb_dimension () const
 
std::vector< double > get_init_coord () const
 
double get_diagonal () const
 
int get_nb_bits_quantization () const
 

Protected Member Functions

void find_min_and_max ()
 
void set_bounding_box ()
 
void set_quantization_step ()
 

Private Attributes

const HalfedgeGraph & _g
 
PointMap & _pm
 Topology remains the same. More...
 
const int _nb_bits
 Point map changes. More...
 
double _quantization_step
 
std::pair< double, char > _max_length
 
Point _p_min
 
Point _p_max
 
boundingBox _bb
 

Detailed Description

template<typename HalfedgeGraph, typename PointMap, typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
class FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >

Uniform_quantization is a class dedicated to the XYZ uniform quantization of vertex coordinates stored in the mesh point map.

Definition at line 48 of file Uniform_quantization.h.

Constructor & Destructor Documentation

◆ Uniform_quantization()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::Uniform_quantization ( const HalfedgeGraph &  g,
PointMap &  pm,
int  nb_bits 
)
inline

Definition at line 52 of file Uniform_quantization.h.

Here is the call graph for this function:

Member Function Documentation

◆ find_min_and_max()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
void FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::find_min_and_max ( )
inlineprotected

Definition at line 60 of file Uniform_quantization.h.

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

◆ get_bb_dimension()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
std::vector<double> FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::get_bb_dimension ( ) const
inline

Definition at line 228 of file Uniform_quantization.h.

Here is the caller graph for this function:

◆ get_diagonal()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
double FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::get_diagonal ( ) const
inline

Definition at line 250 of file Uniform_quantization.h.

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

◆ get_init_coord()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
std::vector<double> FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::get_init_coord ( ) const
inline

Definition at line 239 of file Uniform_quantization.h.

Here is the caller graph for this function:

◆ get_nb_bits_quantization()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
int FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::get_nb_bits_quantization ( ) const
inline

Definition at line 257 of file Uniform_quantization.h.

Here is the caller graph for this function:

◆ get_quantization_step()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
double FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::get_quantization_step ( ) const
inline

Definition at line 156 of file Uniform_quantization.h.

◆ point_quantization()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
void FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::point_quantization ( bool  recompute_quanti_param = false)
inline

Quantizes all vertex positions stored in the point map.

Definition at line 159 of file Uniform_quantization.h.

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

◆ quantize()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
Point FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::quantize ( const Point p)
inline

Quantizes a Point p according to quantization parameters. The mesh point map is not modified. Returns the quantized XYZ point.

Definition at line 200 of file Uniform_quantization.h.

◆ set_bounding_box()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
void FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::set_bounding_box ( )
inlineprotected

Definition at line 117 of file Uniform_quantization.h.

Here is the caller graph for this function:

◆ set_quantization_step()

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
void FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::set_quantization_step ( )
inlineprotected

Definition at line 128 of file Uniform_quantization.h.

Here is the caller graph for this function:

Member Data Documentation

◆ _bb

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
boundingBox FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::_bb
private

Definition at line 266 of file Uniform_quantization.h.

◆ _g

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
const HalfedgeGraph& FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::_g
private

Definition at line 259 of file Uniform_quantization.h.

◆ _max_length

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
std::pair<double,char> FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::_max_length
private

Definition at line 263 of file Uniform_quantization.h.

◆ _nb_bits

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
const int FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::_nb_bits
private

Point map changes.

Definition at line 261 of file Uniform_quantization.h.

◆ _p_max

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
Point FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::_p_max
private

Definition at line 265 of file Uniform_quantization.h.

◆ _p_min

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
Point FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::_p_min
private

Definition at line 264 of file Uniform_quantization.h.

◆ _pm

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

Topology remains the same.

Definition at line 260 of file Uniform_quantization.h.

◆ _quantization_step

template<typename HalfedgeGraph , typename PointMap , typename Vector = typename FEVV::Geometry_traits<HalfedgeGraph>::Vector, typename Point = typename FEVV::Geometry_traits<HalfedgeGraph>::Point, typename Geometry = FEVV::Geometry_traits<HalfedgeGraph>, typename vertex_descriptor = typename boost::graph_traits<HalfedgeGraph>::vertex_descriptor, typename vertex_iterator = typename boost::graph_traits<HalfedgeGraph>::vertex_iterator>
double FEVV::Filters::Uniform_quantization< HalfedgeGraph, PointMap, Vector, Point, Geometry, vertex_descriptor, vertex_iterator >::_quantization_step
private

Definition at line 262 of file Uniform_quantization.h.


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