MEPP2 Project
Namespaces | Typedefs | Functions
cmdm.h File Reference
#include "FEVV/DataStructures/DataStructures_cgal_surface_mesh.h"
#include "FEVV/Wrappings/Geometry_traits_cgal_surface_mesh.h"
#include "FEVV/Wrappings/properties_surface_mesh.h"
#include <CGAL/AABB_tree.h>
#include <CGAL/AABB_traits.h>
#include <CGAL/AABB_face_graph_triangle_primitive.h>
#include "FEVV/Filters/Generic/generic_reader.hpp"
#include "FEVV/Filters/Generic/generic_writer.hpp"
#include "curvature_cmdm.hpp"
#include <FEVV/Filters/Generic/AABB/get_max_bb_size.hpp>
#include <FEVV/Filters/CGAL/Surface_mesh/CMDM/rgb_to_lab.h>
#include <FEVV/Filters/CGAL/Surface_mesh/CMDM/transfo_lab2lab2000hl.h>
#include <boost/foreach.hpp>
Include dependency graph for cmdm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 FEVV
 Interfaces for plugins These interfaces will be used for different plugins.
 
 FEVV::Filters
 

Typedefs

using FEVV::Triangle = CGALKernel::Triangle_3
 
using FEVV::Segment = CGALKernel::Segment_3
 
using FEVV::Ray = CGALKernel::Ray_3
 
using FEVV::Vertex_Descriptor = MeshSurface::Vertex_index
 

Functions

template<typename Point3d , typename Vector >
bool FEVV::Filters::sphere_clip_vector_cmdm (Point3d &o, double r, const Point3d &p, Vector &v)
 
template<typename VertexIterator , typename HalfedgeGraph , typename PointMap , typename CMDMNearestMap >
void FEVV::Filters::compute_geometry_statistics (const HalfedgeGraph &, const PointMap &pm_degr, const CMDMNearestMap &nearest_pmap, const VertexIterator p_vertex, std::vector< double > &tab_distance1, std::vector< double > &tab_distance2, std::vector< CGALPoint > &tab_point1, std::vector< CGALPoint > &tab_point2, double *tab_f1, double *tab_f2, double *tab_f3, double radius)
 Calculates the local geometry-based features per vertex. More...
 
template<typename VertexIterator , typename HalfedgeGraph , typename PointMap , typename CMDMNearestMap >
void FEVV::Filters::compute_color_statistics (const HalfedgeGraph &, const PointMap &pm_degr, const CMDMNearestMap &nearest_pmap, const VertexIterator p_vertex, std::vector< std::array< double, 3 > > &tab_color1, std::vector< std::array< double, 3 > > &tab_color2, std::vector< CGALPoint > &tab_point1, std::vector< CGALPoint > &tab_point2, double *tab_f4, double *tab_f5, double *tab_f6, double *tab_f7, double *tab_f8, double radius)
 Calculates the local color-based features per vertex. More...
 
template<typename HalfedgeGraph , typename VertexColorMap = typename FEVV:: PMap_traits< FEVV::vertex_color_t, MeshSurface >::pmap_type>
VertexColorMap FEVV::Filters::Get_VertexColorMap (const HalfedgeGraph &m_poly, FEVV::PMapsContainer &pmaps, std::vector< double > &init_grid_L, std::vector< double > &grid_L, std::vector< std::vector< std::pair< double, double > > > &init_grid_AB)
 Retrieve the color (RGB values) of each vertex of the mesh and transform it into the working color space LAB2000HL. More...
 
template<typename CMDMMap , typename HalfedgeGraph , typename CMDMNearestMap , typename TagMap , typename PointMap , typename FaceIterator = typename boost::graph_traits< HalfedgeGraph >::face_iterator>
void FEVV::Filters::matching_multires_init_cmdm (const HalfedgeGraph &m_poly_degrad, CMDMMap &cmdm_degrad, CMDMNearestMap &cmdmm_degrad, TagMap &tag_map, const PointMap &pm_degrad, const HalfedgeGraph &m_poly_original, CGAL::SM_Face_index *tab_matched_facet)
 Initialize the matching process. More...
 
template<typename PointMap , typename HalfedgeGraph , typename FaceNormalMap , typename VertexCMDMMap >
double FEVV::Filters::process_CMDM_multires (const HalfedgeGraph &m_poly_degrad, const PointMap &pm_degrad, const FaceNormalMap &fnm_degrad, FEVV::PMapsContainer &pmaps_degrad, const HalfedgeGraph &m_poly_original, const PointMap &pm_original, const FaceNormalMap &fnm_original, FEVV::PMapsContainer &pmaps_original, const int nb_level, VertexCMDMMap &cmdm_pmap, const double maxdim, double &CMDM_value)
 
template<typename HalfedgeGraph , typename CurvatureVertexMap , typename CMDMCurvatureMatchMap , typename VertexColorMap >
void FEVV::Filters::matching_multires_update (const HalfedgeGraph &m_poly_degrad, const HalfedgeGraph &m_poly_orig, CGALPoint *tab_pm_orig, CGALPoint *tab_cmdmm_degrad, const CurvatureVertexMap curv_orig, const VertexColorMap vcm_orig, CMDMCurvatureMatchMap curvmatch_pmap, VertexColorMap colmatch_pmap, CGAL::SM_Face_index *tab_matched_facet)
 Updates the matching process. More...
 
template<typename VertexIterator , typename HalfedgeGraph , typename TagMap , typename CurvatureVertexMap , typename CMDMCurvatureMatchMap , typename VertexColorMap >
void FEVV::Filters::process_cmdm_per_vertex (const HalfedgeGraph &m_degr, CGALPoint *tab_pm_degr, const TagMap &tags_pmap, CGALPoint *tab_nearest_pmap, const CurvatureVertexMap &curv_pmap_degr, const VertexColorMap &col_pmap_degr, const CMDMCurvatureMatchMap &curvmatch_pmap, const VertexColorMap &colmatch_pmap, const VertexIterator &p_vertex, double radius, std::vector< CGALPoint > &tab_point1, std::vector< CGALPoint > &tab_point2, std::vector< double > &tab_distance1, std::vector< double > &tab_distance2, std::vector< std::array< double, 3 > > &tab_color1, std::vector< std::array< double, 3 > > &tab_color2)
 Computes the local neighborhoods. More...
 
template<typename HalfedgeGraph , typename CurvatureVertexMap >
void FEVV::Filters::kmax_kmean_cmdm (const HalfedgeGraph &mesh, CurvatureVertexMap &curv_vmap, const double coef)
 Computes the mean curvature field (kmin+kmax)/2 and normalize it according to the size of the model. More...
 
template<typename HalfedgeGraph , typename GeometryTraits = FEVV::Geometry_traits< HalfedgeGraph >, typename PointMap , typename FaceNormalMap , typename VertexCMDMMap >
double FEVV::Filters::process_CMDM_multires (const HalfedgeGraph &m_poly_degrad, const PointMap &pm_degrad, const FaceNormalMap &fnm_degrad, FEVV::PMapsContainer &pmaps_degrad, const HalfedgeGraph &m_poly_original, const PointMap &pm_original, const FaceNormalMap &fnm_original, FEVV::PMapsContainer &pmaps_original, const int nb_level, VertexCMDMMap &cmdm_pmap, double &CMDM_value)
 Computes the multiscale CMDM metric. More...