MEPP2 Project
copy_graph_cgal_point_set.hpp
Go to the documentation of this file.
1 // Copyright (c) 2012-2019 University of Lyon and CNRS (France).
2 // All rights reserved.
3 //
4 // This file is part of MEPP2; you can redistribute it and/or modify
5 // it under the terms of the GNU Lesser General Public License as
6 // published by the Free Software Foundation; either version 3 of
7 // the License, or (at your option) any later version.
8 //
9 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
10 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
11 #pragma once
12 
16 
17 
18 namespace FEVV {
19 namespace Filters {
20 
21 
26 template< typename PointCloudT >
27 struct CopyGraphParameters< FEVV::CGALPointSet, PointCloudT > :
28  CopyPCParameters< FEVV::CGALPointSet, PointCloudT >
29 { };
30 
31 
36 // note: overloading because function partial specialization is not allowed.
37 template< typename PointCloudT,
38  typename Parameters,
39  // = CopyGraphParameters< FEVV::CGALPointSet, PointCloudT > >
40  typename GeometryTraitsS,
41  typename GeometryTraitsT >
42 void
44  const FEVV::PMapsContainer &pmaps_s,
45  PointCloudT &pc_t,
46  FEVV::PMapsContainer &pmaps_t,
47  const Parameters &params,
48  const GeometryTraitsS &gt_s,
49  const GeometryTraitsT &gt_t)
50 {
52  pc_s, pmaps_s, pc_t, pmaps_t, params, gt_s, gt_t);
53 }
54 
55 
60 template< typename PointCloudT >
61 struct CopyGraphParameters< PointCloudT, FEVV::CGALPointSet > :
62  CopyPCParameters< PointCloudT, FEVV::CGALPointSet >
63 { };
64 
65 
70 // note: overloading because function partial specialization is not allowed.
71 template< typename PointCloudT,
72  typename Parameters,
73  // = CopyGraphParameters< PointCloudT, FEVV::CGALPointSet > >
74  typename GeometryTraitsS,
75  typename GeometryTraitsT >
76 void
77 copy_graph(const PointCloudT &pc_s,
78  const FEVV::PMapsContainer &pmaps_s,
79  FEVV::CGALPointSet &pc_t,
80  FEVV::PMapsContainer &pmaps_t,
81  const Parameters &params,
82  const GeometryTraitsS &gt_s,
83  const GeometryTraitsT &gt_t)
84 {
86  pc_s, pmaps_s, pc_t, pmaps_t, params, gt_s, gt_t);
87 }
88 
89 
95 template< >
97  CopyPCParameters< FEVV::CGALPointSet, FEVV::CGALPointSet >
98 { };
99 
100 
106 // note: overloading because function partial specialization is not allowed.
107 template< typename Parameters,
108  // = CopyGraphParameters< FEVV::CGALPointSet, FEVV::CGALPointSet > >
109  typename GeometryTraitsS,
110  typename GeometryTraitsT >
111 void
113  const FEVV::PMapsContainer &pmaps_s,
114  FEVV::CGALPointSet &pc_t,
115  FEVV::PMapsContainer &pmaps_t,
116  const Parameters &params,
117  const GeometryTraitsS &gt_s,
118  const GeometryTraitsT &gt_t)
119 {
121  pc_s, pmaps_s, pc_t, pmaps_t, params, gt_s, gt_t);
122 }
123 
124 
125 } // namespace Filters
126 } // namespace FEVV
FEVV::Filters::copy_graph
void copy_graph(const FEVV::CGALPointSet &pc_s, const FEVV::PMapsContainer &pmaps_s, PointCloudT &pc_t, FEVV::PMapsContainer &pmaps_t, const Parameters &params, const GeometryTraitsS &gt_s, const GeometryTraitsT &gt_t)
Overloading of copy_graph() for CGAL Point Set copy from.
Definition: copy_graph_cgal_point_set.hpp:43
FEVV::CGALPointSet
CGAL::Point_set_3< CGALPointSetPoint > CGALPointSet
Definition: DataStructures_cgal_point_set.h:71
copy_point_cloud.hpp
DataStructures_cgal_point_set.h
copy_graph.hpp
FEVV::Filters::CopyPCParameters
Definition: copy_point_cloud.hpp:44
FEVV::Filters::CopyGraphParameters
Definition: copy_graph.hpp:55
FEVV::PMapsContainer
std::map< std::string, boost::any > PMapsContainer
Definition: properties.h:99
FEVV
Interfaces for plugins These interfaces will be used for different plugins.
Definition: Assert.h:16
FEVV::Filters::copy_point_cloud
void copy_point_cloud(const PointCloudS &pc_s, const PMapsContainer &pmaps_s, PointCloudT &pc_t, PMapsContainer &pmaps_t, const Parameters &params, const GeometryTraitsS &gt_s, const GeometryTraitsT &)
Copy a source point cloud into a target point cloud. Copy standard properties too.
Definition: copy_point_cloud.hpp:77
FEVV::Filters::Parameters
Parameters contains the compression parameters except the stopping criteria.
Definition: Parameters.h:46