mirror of https://github.com/CGAL/cgal
Restore the PMP_properties_Surface_mesh.h and remove the private copy constructor of Gwdwg to let the default one be used, as it does not allow memory. This allows Surface only meshing to work with surface_mesh.
This commit is contained in:
parent
95960c3b58
commit
360031a14a
|
|
@ -146,11 +146,6 @@ struct Graph_with_descriptor_with_graph
|
||||||
Graph_with_descriptor_with_graph(Graph& graph)
|
Graph_with_descriptor_with_graph(Graph& graph)
|
||||||
: graph(&graph)
|
: graph(&graph)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
// private:
|
|
||||||
// disable copy-constructor to avoid non-wanted copies
|
|
||||||
// AF: Why was this private??
|
|
||||||
Graph_with_descriptor_with_graph(const Graph_with_descriptor_with_graph&){}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
#include <CGAL/Bbox_3.h>
|
#include <CGAL/Bbox_3.h>
|
||||||
#include "CGAL/boost/graph/Graph_with_descriptor_with_graph.h"
|
#include "CGAL/boost/graph/Graph_with_descriptor_with_graph.h"
|
||||||
#include <Polyhedron_type.h>
|
#include <Polyhedron_type.h>
|
||||||
|
#include <CGAL/boost/graph/PMP_properties_Surface_mesh.h>
|
||||||
|
|
||||||
#include <Scene_c3t3_item.h>
|
#include <Scene_c3t3_item.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
#include "Kernel_type.h"
|
#include "Kernel_type.h"
|
||||||
#include "Meshing_thread.h"
|
#include "Meshing_thread.h"
|
||||||
#include "Scene_surface_mesh_item.h"
|
#include "Scene_surface_mesh_item.h"
|
||||||
|
|
||||||
namespace CGAL
|
namespace CGAL
|
||||||
{
|
{
|
||||||
template<typename Graph_>
|
template<typename Graph_>
|
||||||
|
|
|
||||||
|
|
@ -18,200 +18,4 @@ typedef boost::graph_traits<SMesh>::face_descriptor face_descriptor;
|
||||||
typedef boost::graph_traits<SMesh>::vertex_descriptor vertex_descriptor;
|
typedef boost::graph_traits<SMesh>::vertex_descriptor vertex_descriptor;
|
||||||
typedef boost::graph_traits<SMesh>::halfedge_descriptor halfedge_descriptor;
|
typedef boost::graph_traits<SMesh>::halfedge_descriptor halfedge_descriptor;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace CGAL{
|
|
||||||
SMesh::Property_map<boost::graph_traits<SMesh>::halfedge_descriptor,bool>
|
|
||||||
inline get(CGAL::halfedge_is_feature_t, SMesh& smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh >::halfedge_descriptor halfedge_descriptor;
|
|
||||||
return smesh.add_property_map<halfedge_descriptor,bool>("h:is_feature").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template < typename I>
|
|
||||||
SMesh::Property_map< boost::graph_traits<SMesh >::face_descriptor,I>
|
|
||||||
inline get(CGAL::face_patch_id_t<I>, SMesh& smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh >::face_descriptor face_descriptor;
|
|
||||||
return smesh.add_property_map<face_descriptor,I>("f:patch_id").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CGAL::static_property_map<boost::graph_traits<SMesh> ::face_descriptor,std::pair<int,int> >
|
|
||||||
inline get(CGAL::face_patch_id_t<void>, SMesh & smesh)
|
|
||||||
{
|
|
||||||
typedef CGAL::static_property_map<boost::graph_traits<SMesh>::face_descriptor,
|
|
||||||
std::pair<int,int> > Pmap;
|
|
||||||
|
|
||||||
return Pmap(std::make_pair(0,1));
|
|
||||||
}
|
|
||||||
|
|
||||||
SMesh::Property_map< boost::graph_traits<SMesh >::face_descriptor,int>
|
|
||||||
inline get(CGAL::face_selection_t, SMesh& smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh >::face_descriptor face_descriptor;
|
|
||||||
return smesh.add_property_map<face_descriptor,int>("f:selection").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SMesh::Property_map< boost::graph_traits<SMesh >::vertex_descriptor,int>
|
|
||||||
inline get(CGAL::vertex_selection_t, SMesh& smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh >::vertex_descriptor vertex_descriptor;
|
|
||||||
return smesh.add_property_map<vertex_descriptor,int>("v:selection").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
SMesh::Property_map< boost::graph_traits<SMesh >::vertex_descriptor,int>
|
|
||||||
inline get(CGAL::vertex_num_feature_edges_t, SMesh& smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh >::vertex_descriptor vertex_descriptor;
|
|
||||||
return smesh.add_property_map<vertex_descriptor,int>("v:nfe").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template < typename Patch_ID>
|
|
||||||
SMesh::Property_map< boost::graph_traits<SMesh >::vertex_descriptor,std::set<int> >
|
|
||||||
inline get(CGAL::vertex_incident_patches_t<Patch_ID>, SMesh& smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh >::vertex_descriptor vertex_descriptor;
|
|
||||||
return smesh.add_property_map<vertex_descriptor,std::set<int> >("v:ip").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
SMesh::Property_map< boost::graph_traits<SMesh >::vertex_descriptor,std::size_t>
|
|
||||||
inline get(CGAL::vertex_time_stamp_t, SMesh & smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh>::vertex_descriptor vertex_descriptor;
|
|
||||||
return smesh.add_property_map<vertex_descriptor,std::size_t>("v:time_stamp").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SMesh::Property_map< boost::graph_traits<SMesh>::halfedge_descriptor,std::size_t>
|
|
||||||
inline get(CGAL::halfedge_time_stamp_t, SMesh& smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh>::halfedge_descriptor halfedge_descriptor;
|
|
||||||
return smesh.add_property_map<halfedge_descriptor,std::size_t>("h:time_stamp").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SMesh::Property_map< boost::graph_traits<SMesh>::face_descriptor,std::size_t>
|
|
||||||
inline get(CGAL::face_time_stamp_t, SMesh& smesh)
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh>::face_descriptor face_descriptor;
|
|
||||||
return smesh.add_property_map<face_descriptor,std::size_t>("v:time_stamp").first;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
namespace boost
|
|
||||||
{
|
|
||||||
template<>
|
|
||||||
struct property_map<SMesh, CGAL::halfedge_is_feature_t>
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh>::halfedge_descriptor halfedge_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<halfedge_descriptor, bool> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<typename I>
|
|
||||||
struct property_map<SMesh, CGAL::face_patch_id_t<I> >
|
|
||||||
{
|
|
||||||
typedef boost::graph_traits<SMesh>::face_descriptor face_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<face_descriptor, I> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct property_map<SMesh, CGAL::face_patch_id_t<void> >
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef typename boost::graph_traits<SMesh>::face_descriptor face_descriptor;
|
|
||||||
|
|
||||||
typedef CGAL::static_property_map< boost::graph_traits<SMesh>::face_descriptor,std::pair<int,int> > type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
template<>
|
|
||||||
struct property_map<SMesh, CGAL::vertex_selection_t>
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef boost::graph_traits<SMesh>::vertex_descriptor vertex_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<vertex_descriptor, int> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<>
|
|
||||||
struct property_map<SMesh, CGAL::face_selection_t>
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef boost::graph_traits<SMesh>::face_descriptor face_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<face_descriptor, int> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<>
|
|
||||||
struct property_map<SMesh, CGAL::vertex_num_feature_edges_t>
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef boost::graph_traits<SMesh>::vertex_descriptor vertex_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<vertex_descriptor, int> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<typename Patch_ID>
|
|
||||||
struct property_map<SMesh, CGAL::vertex_incident_patches_t<Patch_ID>>
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef boost::graph_traits<SMesh>::vertex_descriptor vertex_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<vertex_descriptor, std::set<int>> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template<>
|
|
||||||
struct property_map<SMesh, CGAL::vertex_time_stamp_t>
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef boost::graph_traits<SMesh>::vertex_descriptor vertex_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<vertex_descriptor, std::size_t> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<>
|
|
||||||
struct property_map<SMesh, CGAL::halfedge_time_stamp_t>
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef boost::graph_traits<SMesh >::halfedge_descriptor halfedge_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<halfedge_descriptor, std::size_t> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
template<>
|
|
||||||
struct property_map<SMesh, CGAL::face_time_stamp_t>
|
|
||||||
{
|
|
||||||
|
|
||||||
typedef boost::graph_traits<SMesh >::face_descriptor face_descriptor;
|
|
||||||
|
|
||||||
typedef SMesh::Property_map<face_descriptor, std::size_t> type;
|
|
||||||
typedef type const_type;
|
|
||||||
};
|
|
||||||
} //boost
|
|
||||||
|
|
||||||
|
|
||||||
#endif // SMESH_TYPE_H
|
#endif // SMESH_TYPE_H
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#ifdef USE_SURFACE_MESH
|
#ifdef USE_SURFACE_MESH
|
||||||
#include "Scene_surface_mesh_item.h"
|
#include "Scene_surface_mesh_item.h"
|
||||||
|
#include <CGAL/boost/graph/PMP_properties_Surface_mesh.h>
|
||||||
#else
|
#else
|
||||||
#include "Polyhedron_type.h"
|
#include "Polyhedron_type.h"
|
||||||
#include <CGAL/boost/graph/PMP_properties_Polyhedron_3.h>
|
#include <CGAL/boost/graph/PMP_properties_Polyhedron_3.h>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,251 @@
|
||||||
|
// Copyright (c) 2017 GeometryFactory (France). All rights reserved.
|
||||||
|
//
|
||||||
|
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU Lesser General Public License as
|
||||||
|
// published by the Free Software Foundation; either version 3 of the License,
|
||||||
|
// or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// Licensees holding a valid commercial license may use this file in
|
||||||
|
// accordance with the commercial license agreement provided with the software.
|
||||||
|
//
|
||||||
|
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||||
|
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
//
|
||||||
|
// $URL$
|
||||||
|
// $Id$
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Author(s) : Andreas Fabri
|
||||||
|
|
||||||
|
#ifndef CGAL_PMP_PROPERTIES_SURFACE_MESH_H
|
||||||
|
#define CGAL_PMP_PROPERTIES_SURFACE_MESH_H
|
||||||
|
|
||||||
|
#include <CGAL/license/Surface_mesh.h>
|
||||||
|
#include <CGAL/Surface_mesh.h>
|
||||||
|
#include <CGAL/Polygon_mesh_processing/properties.h>
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
template <typename P, typename I>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::face_patch_id_t<I> >
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::face_descriptor face_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<face_descriptor, I> type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::face_patch_id_t<void> >
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::face_descriptor face_descriptor;
|
||||||
|
|
||||||
|
typedef CGAL::static_property_map<typename boost::graph_traits<CGAL::Surface_mesh<P> >::face_descriptor,std::pair<int,int> > type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template<typename P>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::halfedge_is_feature_t>
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::halfedge_descriptor halfedge_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<halfedge_descriptor, bool> type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::vertex_selection_t>
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::vertex_descriptor vertex_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<vertex_descriptor, int> type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::face_selection_t>
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::face_descriptor face_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<face_descriptor, int> type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::vertex_num_feature_edges_t>
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::vertex_descriptor vertex_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<vertex_descriptor, int> type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P, typename I>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::vertex_incident_patches_t<I> >
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::vertex_descriptor vertex_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<vertex_descriptor, std::set<I> > type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::vertex_time_stamp_t>
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::vertex_descriptor vertex_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<vertex_descriptor, std::size_t> type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::halfedge_time_stamp_t>
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::halfedge_descriptor halfedge_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<halfedge_descriptor, std::size_t> type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
struct property_map<CGAL::Surface_mesh<P>, CGAL::face_time_stamp_t>
|
||||||
|
{
|
||||||
|
|
||||||
|
typedef typename boost::graph_traits<CGAL::Surface_mesh<P> >::face_descriptor face_descriptor;
|
||||||
|
|
||||||
|
typedef typename CGAL::Surface_mesh<P>::template Property_map<face_descriptor, std::size_t> type;
|
||||||
|
typedef type const_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
namespace CGAL {
|
||||||
|
|
||||||
|
template <typename P, typename Property_tag>
|
||||||
|
struct Get_pmap_of_surface_mesh {
|
||||||
|
typedef typename boost::property_map<Surface_mesh<P>, Property_tag >::type type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename P, typename I>
|
||||||
|
typename boost::lazy_disable_if<
|
||||||
|
boost::is_const<P>,
|
||||||
|
Get_pmap_of_surface_mesh<P, CGAL::face_patch_id_t<I> >
|
||||||
|
>::type
|
||||||
|
inline get(CGAL::face_patch_id_t<I>, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::face_descriptor face_descriptor;
|
||||||
|
return smesh. template add_property_map<face_descriptor,I>("f:patch_id").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(Tag) \
|
||||||
|
typename boost::lazy_disable_if< \
|
||||||
|
boost::is_const<P>, \
|
||||||
|
Get_pmap_of_surface_mesh<P, Tag > \
|
||||||
|
>::type
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(CGAL::face_patch_id_t<void>)
|
||||||
|
inline get(CGAL::face_patch_id_t<void>, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef CGAL::static_property_map<typename boost::graph_traits<Surface_mesh<P> >::face_descriptor,std::pair<int,int> > Pmap;
|
||||||
|
|
||||||
|
return Pmap(std::make_pair(0,1));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(CGAL::halfedge_is_feature_t)
|
||||||
|
inline get(CGAL::halfedge_is_feature_t, Surface_mesh<P>& smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::halfedge_descriptor halfedge_descriptor;
|
||||||
|
return smesh. template add_property_map<halfedge_descriptor,bool>("h:is_feature").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(CGAL::face_selection_t)
|
||||||
|
inline get(CGAL::face_selection_t, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::face_descriptor face_descriptor;
|
||||||
|
return smesh. template add_property_map<face_descriptor,int>("f:selection").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(CGAL::vertex_selection_t)
|
||||||
|
inline get(CGAL::vertex_selection_t, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::vertex_descriptor vertex_descriptor;
|
||||||
|
return smesh. template add_property_map<vertex_descriptor,int>("v:selection").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(CGAL::vertex_num_feature_edges_t)
|
||||||
|
inline get(CGAL::vertex_num_feature_edges_t, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::vertex_descriptor vertex_descriptor;
|
||||||
|
return smesh. template add_property_map<vertex_descriptor,int>("v:nfe").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename P, typename I>
|
||||||
|
typename boost::lazy_disable_if<
|
||||||
|
boost::is_const<P>,
|
||||||
|
Get_pmap_of_surface_mesh<P, CGAL::vertex_incident_patches_t<I> >
|
||||||
|
>::type
|
||||||
|
inline get(CGAL::vertex_incident_patches_t<I>, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::vertex_descriptor vertex_descriptor;
|
||||||
|
return smesh. template add_property_map<vertex_descriptor,std::set<I> >("v:ip").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(CGAL::vertex_time_stamp_t)
|
||||||
|
inline get(CGAL::vertex_time_stamp_t, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::vertex_descriptor vertex_descriptor;
|
||||||
|
return smesh. template add_property_map<vertex_descriptor,std::size_t>("v:time_stamp").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(CGAL::halfedge_time_stamp_t)
|
||||||
|
inline get(CGAL::halfedge_time_stamp_t, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::halfedge_descriptor halfedge_descriptor;
|
||||||
|
return smesh. template add_property_map<halfedge_descriptor,std::size_t>("h:time_stamp").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <typename P>
|
||||||
|
CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE(CGAL::face_time_stamp_t)
|
||||||
|
inline get(CGAL::face_time_stamp_t, Surface_mesh<P> & smesh)
|
||||||
|
{
|
||||||
|
typedef typename boost::graph_traits<Surface_mesh<P> >::face_descriptor face_descriptor;
|
||||||
|
return smesh. template add_property_map<face_descriptor,std::size_t>("v:time_stamp").first;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace CGAL
|
||||||
|
|
||||||
|
#undef CGAL_PMP_PROPERTY_SURFACE_MESH_RETURN_TYPE
|
||||||
|
|
||||||
|
#endif //CGAL_PMP_PROPERTIES_SURFACE_MESH_H
|
||||||
Loading…
Reference in New Issue