Go to the documentation of this file.
14 #ifndef _SCL_SECURE_NO_WARNINGS
15 #define _SCL_SECURE_NO_WARNINGS
21 #include <QStringList>
24 #ifndef Q_MOC_RUN // MT : very important to avoid the error : ' Parse error at
42 #endif // FEVV_USE_CGAL
43 #ifdef FEVV_USE_OPENMESH
45 #endif // FEVV_USE_OPENMESH
48 #endif // FEVV_USE_AIF
51 #endif // FEVV_USE_AIF
62 #if(FEVV_USE_QT5) // see at the end of .cpp for QT4
63 Q_PLUGIN_METADATA(IID
"PointCloudCurvaturePlugin")
92 std::cerr <<
"BaseWindow is null or not initialized." << std::endl;
97 template<
typename HalfedgeGraph >
100 std::cout <<
"Running filter PointCloudCurvature..." << std::endl;
103 auto pm =
get(boost::vertex_point, *pc);
107 FEVV::make_vertex_property_map< HalfedgeGraph, double >(*pc);
123 double radius =
m_radius * max_bb_size;
127 std::cout <<
"Running filter PointCloudCurvature... done." << std::endl;
131 template<
typename HalfedgeGraph >
133 HalfedgeGraph *_mesh,
139 if(dialog.exec() == QDialog::Accepted)
163 #if 0 // Point cloud only
164 #ifdef FEVV_USE_OPENMESH
169 applyHG< MeshOpenMesh >(_adapter, _mesh, pmaps_bag);
174 void apply(BaseAdapterVisu *_adapter,
178 applyHG< MeshLCC >(_adapter, _mesh, pmaps_bag);
181 void apply(BaseAdapterVisu *_adapter,
185 applyHG< MeshSurface >(_adapter, _mesh, pmaps_bag);
188 void apply(BaseAdapterVisu *_adapter,
192 applyHG< MeshPolyhedron >(_adapter, _mesh, pmaps_bag);
197 void apply(BaseAdapterVisu *_adapter,
201 applyHG< MeshAIF >(_adapter, _mesh, pmaps_bag);
204 #endif // Point cloud only
207 void apply(BaseAdapterVisu *_adapter,
211 applyHG< FEVV::CGALPointSet >(_adapter, pc, pmaps_bag);
216 void apply(BaseAdapterVisu *_adapter,
220 applyHG< FEVV::PCLPointCloud >(_adapter, pc, pmaps_bag);
226 return QStringList() <<
"PointCloudCurvaturePlugin";
virtual bool isInit() const
void put_property_map(PropertyT p, const MeshT &, PMapsContainer &pmaps, const typename PMap_traits< PropertyT, MeshT >::pmap_type &pmap)
CGAL::Point_set_3< CGALPointSetPoint > CGALPointSet
PointCloudCurvaturePlugin()=default
CGAL::Linear_cell_complex_for_combinatorial_map< 2, 3, CGALLCCTraits, CGALItem > MeshLCC
This class is intended to provide some standard message boxes to all plugins.
pcl::PointCloud< PCLEnrichedPoint > PCLPointCloud
virtual Viewer * getViewer()
CGAL::Surface_mesh< CGALPoint > MeshSurface
void point_cloud_curvature(const PointCloud &pc, const PointMap &pm, unsigned int k, double radius, VertexCurvatureMap &v_curvm, VertexColorMap &v_cm, const GeometryTraits >)
Compute the curvature for each point of the point cloud using the nearest neighbors.
SimpleWindow is a specialization of QMainWindow. This class the Main Window.
std::map< std::string, boost::any > PMapsContainer
void draw_or_redraw_mesh(HalfedgeGraph *_g, PMapsContainer *_pmaps, bool _redraw=false, bool _recomputeNT_if_redraw=false, std::string _mesh_filename=std::string(""), bool _recreateOSGobj_if_redraw=true, float _step=0.)
void addParameters(BaseWindow *_window) override
FEVV::PCLPointCloudPointMap::value_type get(const FEVV::PCLPointCloudPointMap &pm, FEVV::PCLPointCloudPointMap::key_type key)
Specialization of get(point_map, key) for PCLPointCloud.
SimpleViewer is a specialization of osgViewer::CompositeViewer. This class is a widget where we are a...
void onModificationParam(std::string _pluginName, BasePlugin *_plugin)
Interfaces for plugins These interfaces will be used for different plugins.
double get_max_bb_size(const HalfedgeGraph &g, PointMap &pm, GeometryTraits >)
Gets the maximum size of the object bounding box.
void setParameters(unsigned int k, double radius, bool knn_search)
QStringList Generic_plugins() const override
void process(HalfedgeGraph *pc, FEVV::PMapsContainer *pmaps_bag)
OpenMesh::PolyMesh_ArrayKernelT< MyTraits > MeshOpenMesh
~PointCloudCurvaturePlugin()=default
virtual void apply(BaseAdapterVisu *, void *, FEVV::PMapsContainer *) override
void getParameters(unsigned int &k, double &radius, bool &knn_search)
CGAL::Polyhedron_3< CGALKernel, CGAL::Polyhedron_items_with_id_3 > MeshPolyhedron
PMap_traits< PropertyT, MeshT >::pmap_type make_property_map(PropertyT, const MeshT &m)
void applyHG(BaseAdapterVisu *_adapter, HalfedgeGraph *_mesh, FEVV::PMapsContainer *pmaps_bag)
FEVV::DataStructures::AIF::AIFMesh MeshAIF
bool Generic_plugin(const QString &) override