rename headers, rm unnecessary files, clean, edit changes.md

This commit is contained in:
Konstantinos Katrioplas 2018-06-06 16:37:36 +02:00
parent 60cbb2fc6a
commit a634d6a0bc
11 changed files with 68 additions and 102 deletions

View File

@ -20,12 +20,12 @@ Release date: September 2018
### CGAL and Boost Property Maps
- Addition of a read-write property map to convert on-the-fly geometric
- Addition of a read-write property map to convert on-the-fly geometric
object from Cartesian kernels
### 2D Triangulations
- Added a new type of intersection to deal with insertion of a constraints
- Added a new type of intersection to deal with insertion of a constraints
intersecting in a Constrained_triangulation_2.
### Interpolation
@ -52,6 +52,12 @@ Release date: September 2018
- Guarantee that constrained vertices are kept in the mesh after calling `isotropic_remeshing()`
(and not only the points associated to constrained vertices as it was before).
- Mesh smoothing functionality which improves the quality of triangle elements
based on geometric characteristics.
- Shape smoothing functionality that smoothes the surface of a triangle mesh
using the mean curvature flow to perform noise removal.
### 3D Mesh Generation
- **Breaking change:** The template parameters of the class template
@ -96,7 +102,7 @@ Release date: April 2018
introduced by CMake 2.8.12 and CMake 3.0: instead of setting CMake
variables, the script now defines imported targets and uses link
interfaces.
That is mostly backward-compatible with existing usages of CGAL CMake
scripts. The only non-compatible effect is that the `CMAKE_BUILD_TYPE`
and compilation flags are no longer copied from the `CGAL_DIR` to the

View File

@ -2,7 +2,7 @@
#include <fstream>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/Polygon_mesh_processing/mesh_smoothing.h>
#include <CGAL/Polygon_mesh_processing/smooth_mesh.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Surface_mesh<K::Point_3> Mesh;

View File

@ -2,7 +2,7 @@
#include <fstream>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/Polygon_mesh_processing/shape_smoothing.h>
#include <CGAL/Polygon_mesh_processing/smooth_shape.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Surface_mesh<K::Point_3> Mesh;

View File

@ -1,76 +0,0 @@
// Copyright (c) 2018 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
// 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$
// SPDX-License-Identifier: GPL-3.0+
//
//
// Author(s) : Konstantinos Katrioplas (konst.katrioplas@gmail.com)
#ifndef CGAL_POLYGON_MESH_PROCESSING_INTERNAL_CONSTRAINTS_MAP_H
#define CGAL_POLYGON_MESH_PROCESSING_INTERNAL_CONSTRAINTS_MAP_H
#include <CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h>
#include <CGAL/property_map.h>
namespace CGAL {
namespace Polygon_mesh_processing {
namespace internal {
template<typename PolygonMesh, typename VertexPointMap,
typename CotangentValue = CGAL::internal::Cotangent_value_Meyer<PolygonMesh, VertexPointMap> >
struct Edge_cotangent_weight : CotangentValue
{
Edge_cotangent_weight(PolygonMesh& pmesh_, VertexPointMap vpmap_)
: CotangentValue(pmesh_, vpmap_)
{}
PolygonMesh& pmesh()
{
return CotangentValue::pmesh();
}
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor;
typedef typename boost::graph_traits<PolygonMesh>::vertex_descriptor vertex_descriptor;
double operator()(halfedge_descriptor he)
{
if(is_border_edge(he, pmesh()))
{
halfedge_descriptor h1 = next(he, pmesh());
vertex_descriptor vs = source(he, pmesh());
vertex_descriptor vt = target(he, pmesh());
vertex_descriptor v1 = target(h1, pmesh());
return (CotangentValue::operator ()(vs, v1, vt));
}
else
{
halfedge_descriptor h1 = next(he, pmesh());
halfedge_descriptor h2 = prev(opposite(he, pmesh()), pmesh());
vertex_descriptor vs = source(he, pmesh());
vertex_descriptor vt = target(he, pmesh());
vertex_descriptor v1 = target(h1, pmesh());
vertex_descriptor v2 = source(h2, pmesh());
return ( CotangentValue::operator()(vs, v1, vt) + CotangentValue::operator()(vs, v2, vt) ) / 2.0; }
}
};
}
}
}
#endif //CGAL_POLYGON_MESH_PROCESSING_INTERNAL_CONSTRAINTS_MAP_H

View File

@ -19,8 +19,8 @@
//
// Author(s) : Konstantinos Katrioplas (konst.katrioplas@gmail.com)
#ifndef CGAL_POLYGON_MESH_PROCESSING_CURVATURE_FLOW_NEW_IMPL_H
#define CGAL_POLYGON_MESH_PROCESSING_CURVATURE_FLOW_NEW_IMPL_H
#ifndef CGAL_POLYGON_MESH_PROCESSING_INTERNAL_CURVATURE_FLOW_IMPL_H
#define CGAL_POLYGON_MESH_PROCESSING_INTERNAL_CURVATURE_FLOW_IMPL_H
#include <CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h>
@ -28,7 +28,7 @@
#include <CGAL/Polygon_mesh_processing/Weights.h>
#include <CGAL/Polygon_mesh_processing/internal/named_function_params.h>
#include <CGAL/Polygon_mesh_processing/internal/named_params_helper.h>
#include <CGAL/Polygon_mesh_processing/internal/Smoothing/constraints_map.h>
#include <CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_helpers.h>
#include <boost/graph/graph_traits.hpp>
#include <boost/property_map/property_map.hpp>
#include <CGAL/utility.h>
@ -53,6 +53,7 @@ private:
typedef typename GeomTraits::FT NT;
typedef typename GeomTraits::Point_3 Point;
typedef typename boost::property_traits<VertexPointMap>::reference Point_ref;
typedef CGAL::Triple<int, int, double> Triplet;
typedef typename boost::graph_traits<PolygonMesh>::vertex_descriptor vertex_descriptor;
@ -233,7 +234,7 @@ private:
BOOST_FOREACH(vertex_descriptor vi, vrange_)
{
int index = vimap_[vi];
Point p = get(vpmap_, vi);
Point_ref p = get(vpmap_, vi);
bx.set(index, p.x());
by.set(index, p.y());
bz.set(index, p.z());
@ -299,4 +300,4 @@ private:
} // PMP
} // CGAL
#endif // CGAL_POLYGON_MESH_PROCESSING_CURVATURE_FLOW_NEW_IMPL_H
#endif // CGAL_POLYGON_MESH_PROCESSING_INTERNAL_CURVATURE_FLOW_NEW_IMPL_H

View File

@ -19,8 +19,8 @@
//
// Author(s) : Konstantinos Katrioplas (konst.katrioplas@gmail.com)
#ifndef CGAL_POLYGON_MESH_PROCESSING_SMOOTHING_EVALUATION_H
#define CGAL_POLYGON_MESH_PROCESSING_SMOOTHING_EVALUATION_H
#ifndef CGAL_POLYGON_MESH_PROCESSING_INTERNAL_SMOOTHING_EVALUATION_H
#define CGAL_POLYGON_MESH_PROCESSING_INTERNAL_SMOOTHING_EVALUATION_H
#include <CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h>
@ -152,4 +152,4 @@ private:
}
#endif // CGAL_POLYGON_MESH_PROCESSING_SMOOTHING_EVALUATION_H
#endif // CGAL_POLYGON_MESH_PROCESSING_INTERNAL_SMOOTHING_EVALUATION_H

View File

@ -31,6 +31,44 @@ namespace CGAL {
namespace Polygon_mesh_processing {
namespace internal {
template<typename PolygonMesh, typename VertexPointMap,
typename CotangentValue = CGAL::internal::Cotangent_value_Meyer<PolygonMesh, VertexPointMap> >
struct Edge_cotangent_weight : CotangentValue
{
Edge_cotangent_weight(PolygonMesh& pmesh_, VertexPointMap vpmap_)
: CotangentValue(pmesh_, vpmap_)
{}
PolygonMesh& pmesh()
{
return CotangentValue::pmesh();
}
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor;
typedef typename boost::graph_traits<PolygonMesh>::vertex_descriptor vertex_descriptor;
double operator()(halfedge_descriptor he)
{
if(is_border_edge(he, pmesh()))
{
halfedge_descriptor h1 = next(he, pmesh());
vertex_descriptor vs = source(he, pmesh());
vertex_descriptor vt = target(he, pmesh());
vertex_descriptor v1 = target(h1, pmesh());
return (CotangentValue::operator ()(vs, v1, vt));
}
else
{
halfedge_descriptor h1 = next(he, pmesh());
halfedge_descriptor h2 = prev(opposite(he, pmesh()), pmesh());
vertex_descriptor vs = source(he, pmesh());
vertex_descriptor vt = target(he, pmesh());
vertex_descriptor v1 = target(h1, pmesh());
vertex_descriptor v2 = source(h2, pmesh());
return ( CotangentValue::operator()(vs, v1, vt) + CotangentValue::operator()(vs, v2, vt) ) / 2.0; }
}
};
template <typename PolygonMesh, typename Descriptor, typename Triangle>
void construct_triangle(const Descriptor& f, const PolygonMesh& mesh_, Triangle& triangle)
{

View File

@ -19,8 +19,8 @@
//
// Author(s) : Konstantinos Katrioplas (konst.katrioplas@gmail.com)
#ifndef CGAL_POLYGON_MESH_PROCESSING_MESH_SMOOTHING_H
#define CGAL_POLYGON_MESH_PROCESSING_MESH_SMOOTHING_H
#ifndef CGAL_POLYGON_MESH_PROCESSING_SMOOTH_MESH_H
#define CGAL_POLYGON_MESH_PROCESSING_SMOOTH_MESH_H
#include <CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h>
@ -28,8 +28,8 @@
#include <CGAL/Polygon_mesh_processing/internal/Smoothing/smoothing_evaluation.h>
#include <CGAL/Polygon_mesh_processing/internal/named_function_params.h>
#include <CGAL/Polygon_mesh_processing/internal/named_params_helper.h>
#include <CGAL/Polygon_mesh_processing/internal/Smoothing/constraints_map.h>
#include <CGAL/Polygon_mesh_processing/distance.h>
#include <CGAL/property_map.h>
#ifdef CGAL_PMP_SMOOTHING_VERBOSE
#include <CGAL/Timer.h>
@ -341,4 +341,4 @@ void aspect_ratio_evaluation(PolygonMesh& pmesh, const char* filename)
} // namespace Polygon_mesh_processing
} // namespace CGAL
#endif // CGAL_POLYGON_MESH_PROCESSING_MESH_SMOOTHING_H
#endif // CGAL_POLYGON_MESH_PROCESSING_SMOOTH_MESH_H

View File

@ -19,22 +19,19 @@
//
// Author(s) : Konstantinos Katrioplas (konst.katrioplas@gmail.com)
#ifndef CGAL_POLYGON_MESH_PROCESSING_SHAPE_SMOOTHING_H
#define CGAL_POLYGON_MESH_PROCESSING_sHAPE_SMOOTHING_H
#ifndef CGAL_POLYGON_MESH_PROCESSING_SMOOTH_SHAPE_H
#define CGAL_POLYGON_MESH_PROCESSING_SMOOTH_SHAPE_H
#include <CGAL/license/Polygon_mesh_processing/meshing_hole_filling.h>
#include <boost/graph/graph_traits.hpp>
#include <boost/property_map/property_map.hpp>
#if defined(CGAL_EIGEN3_ENABLED)
#include <CGAL/Eigen_solver_traits.h>
#endif
#include <CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_impl.h>
#include <CGAL/Polygon_mesh_processing/internal/Smoothing/curvature_flow_explicit_impl.h>
#include <CGAL/Polygon_mesh_processing/internal/Smoothing/constraints_map.h>
#include <CGAL/utility.h>
#include <CGAL/property_map.h>
#ifdef CGAL_PMP_SMOOTHING_VERBOSE
#include <CGAL/Timer.h>
@ -415,4 +412,4 @@ void solve_mcf(const FaceRange& faces, PolygonMesh& mesh, const double time,
} //Polygon_mesh_processing
} //CGAL
#endif // CGAL_POLYGON_MESH_PROCESSING_SHAPE_SMOOTHING_H
#endif // CGAL_POLYGON_MESH_PROCESSING_SMOOTH_SHAPE_H

View File

@ -1,7 +1,7 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Polygon_mesh_processing/mesh_smoothing.h>
#include <CGAL/Polygon_mesh_processing/smooth_mesh.h>
#include <boost/graph/graph_traits.hpp>
#include <fstream>

View File

@ -3,7 +3,7 @@
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Polyhedron_items_with_id_3.h>
#include <CGAL/utility.h>
#include <CGAL/Polygon_mesh_processing/shape_smoothing.h>
#include <CGAL/Polygon_mesh_processing/smooth_shape.h>
#include <boost/graph/graph_traits.hpp>
#include <fstream>