mirror of https://github.com/CGAL/cgal
Merge branch 'Weights-v2.0-GF-5.5.x' into Weights-v2.0-GF-master
This commit is contained in:
commit
491a77397c
|
|
@ -13,6 +13,8 @@
|
|||
#include <CGAL/assertions.h>
|
||||
#include <CGAL/boost/graph/properties.h>
|
||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
#include <CGAL/Kernel_traits.h>
|
||||
|
||||
#include <boost/mpl/if.hpp>
|
||||
|
||||
#ifndef OPEN_MESH_CLASS
|
||||
|
|
@ -231,8 +233,8 @@ public:
|
|||
#if defined(CGAL_USE_OM_POINTS)
|
||||
const_cast<OpenMesh&>(*pm.sm_).set_point(v,p);
|
||||
#else
|
||||
const_cast<OpenMesh&>(*pm.sm_).set_point
|
||||
(v, typename OpenMesh::Point((float)p[0], (float)p[1], (float)p[2]));
|
||||
typedef typename CGAL::Kernel_traits<typename OpenMesh::Point>::type FT;
|
||||
const_cast<OpenMesh&>(*pm.sm_).set_point(v, typename OpenMesh::Point(FT(p[0]), FT(p[1]), FT(p[2])));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,19 +22,10 @@ public:
|
|||
mesh.request_face_normals();
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
|
||||
struct MyTraits : public OpenMesh::DefaultTraits
|
||||
{
|
||||
typedef OpenMesh::Vec3d Point;
|
||||
typedef OpenMesh::Vec3d Normal;
|
||||
};
|
||||
|
||||
typedef OpenMesh::TriMesh_ArrayKernelT<MyTraits> Mesh;
|
||||
typedef OpenMesh::TriMesh_ArrayKernelT<OpenMesh::DefaultTraitsDouble> Mesh;
|
||||
Mesh mesh;
|
||||
|
||||
|
||||
private:
|
||||
void display_info()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,14 +13,7 @@
|
|||
|
||||
#include <CGAL/Timer.h>
|
||||
|
||||
struct DoubleTraits : public OpenMesh::DefaultTraits
|
||||
{
|
||||
typedef OpenMesh::Vec3d Point;
|
||||
typedef OpenMesh::Vec3d Normal;
|
||||
};
|
||||
|
||||
|
||||
typedef OpenMesh::PolyMesh_ArrayKernelT<DoubleTraits> Mesh;
|
||||
typedef OpenMesh::PolyMesh_ArrayKernelT<OpenMesh::DefaultTraitsDouble> Mesh;
|
||||
typedef Mesh::Point Point;
|
||||
typedef boost::graph_traits<Mesh>::vertex_descriptor vertex_descriptor;
|
||||
typedef boost::graph_traits<Mesh>::vertex_iterator vertex_iterator;
|
||||
|
|
|
|||
|
|
@ -193,6 +193,9 @@ public:
|
|||
// Surface_mesh_deformation -> Surface_mesh_deformation.h (default version)
|
||||
// Surface_mesh_parameterizer -> Orbifold_Tutte_parameterizer_3.h (default version)
|
||||
// Surface_mesh_skeletonization -> Mean_curvature_flow_skeletonization.h (clamped version)
|
||||
//
|
||||
// The API is a bit awkward: the template parameters VertexPointMap and GeomTraits
|
||||
// are only meaningful in the API that calls the operator with a single parameter.
|
||||
template<typename PolygonMesh,
|
||||
typename VertexPointMap = typename GetVertexPointMap<PolygonMesh>::type,
|
||||
typename GeomTraits = typename Kernel_traits<
|
||||
|
|
@ -202,8 +205,6 @@ class Cotangent_weight
|
|||
using vertex_descriptor = typename boost::graph_traits<PolygonMesh>::vertex_descriptor;
|
||||
using halfedge_descriptor = typename boost::graph_traits<PolygonMesh>::halfedge_descriptor;
|
||||
|
||||
using FT = typename GeomTraits::FT;
|
||||
|
||||
private:
|
||||
// These class members are used only when the constructor initializing them
|
||||
// is used, but Surface_mesh_deformation has its own weight API locked
|
||||
|
|
@ -224,12 +225,14 @@ public:
|
|||
// Common API whether mesh/vpm/traits are initialized in the constructor,
|
||||
// or passed in the operator()
|
||||
template <typename VPM, typename GT>
|
||||
FT operator()(const halfedge_descriptor he,
|
||||
typename GT::FT
|
||||
operator()(const halfedge_descriptor he,
|
||||
const PolygonMesh& pmesh,
|
||||
const VPM vpm,
|
||||
const GT& traits) const
|
||||
{
|
||||
using Point_ref = typename boost::property_traits<VPM>::reference;
|
||||
using FT = typename GT::FT;
|
||||
|
||||
if(is_border(he, pmesh))
|
||||
return FT{0};
|
||||
|
|
@ -265,7 +268,8 @@ public:
|
|||
|
||||
// That is the API called by Surface_mesh_deformation
|
||||
template <typename VPM>
|
||||
FT operator()(const halfedge_descriptor he,
|
||||
auto // kernel_traits<VPM::value_type>::type::FT
|
||||
operator()(const halfedge_descriptor he,
|
||||
const PolygonMesh& pmesh,
|
||||
const VPM vpm) const
|
||||
{
|
||||
|
|
@ -286,7 +290,7 @@ public:
|
|||
m_bound_from_below(bound_from_below)
|
||||
{ }
|
||||
|
||||
FT operator()(const halfedge_descriptor he) const
|
||||
typename GeomTraits::FT operator()(const halfedge_descriptor he) const
|
||||
{
|
||||
CGAL_precondition(m_pmesh_ptr != nullptr);
|
||||
return this->operator()(he, *m_pmesh_ptr, m_vpm, m_traits);
|
||||
|
|
|
|||
Loading…
Reference in New Issue