mirror of https://github.com/CGAL/cgal
new documentation
This commit is contained in:
parent
412674e027
commit
97763061f7
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The concept `ConstrainedDelaunayTriangulationCellBase_3` refines the concept
|
||||
`TriangulationCellBase_3` and is the base cell class for
|
||||
the `CGAL::Constrained_Delaunay_triangulation_3` class template.
|
||||
the `CGAL::make_constrained_Delaunay_triangulation_3()` function template.
|
||||
|
||||
\cgalRefines{TriangulationCellBase_3}
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ public:
|
|||
/// The following functions return a reference to an object of type
|
||||
/// `CGAL::Constrained_Delaunay_triangulation_cell_data_3`, that contains
|
||||
/// the per-cell data required by the implementation of the
|
||||
/// `CGAL::Constrained_Delaunay_triangulation_3` class template.
|
||||
/// `CGAL::make_constrained_Delaunay_triangulation_3()` function template.
|
||||
/// @{
|
||||
CGAL::Constrained_Delaunay_triangulation_cell_data_3& cdt_3_data();
|
||||
const CGAL::Constrained_Delaunay_triangulation_cell_data_3& cdt_3_data() const;
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
\ingroup PkgCT_3Concepts
|
||||
\cgalConcept
|
||||
|
||||
The concept `ConstrainedDelaunayTriangulationTraits_3` describes the requirements
|
||||
for the first template parameter `Traits` of the class template `CGAL::Constrained_Delaunay_triangulation_3`.
|
||||
It defines the geometric objects (points, segments...) forming the triangulation together
|
||||
with a few geometric predicates and constructions on these objects.
|
||||
The concept `ConstrainedDelaunayTriangulationTraits_3` specifies the requirements
|
||||
for the geometric traits class of the triangulation used as the first template
|
||||
parameter `Triangulation_3` in the function template
|
||||
`CGAL::make_constrained_Delaunay_triangulation_3()`.
|
||||
|
||||
\cgalRefines{DelaunayTriangulationTraits_3}
|
||||
|
||||
|
|
@ -14,7 +14,7 @@ with a few geometric predicates and constructions on these objects.
|
|||
\cgalHasModelsBare{all %CGAL kernels}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\todo add the requirements in the concept `ConstrainedDelaunayTriangulationTraits_3`
|
||||
\todo Add the requirements in the concept `ConstrainedDelaunayTriangulationTraits_3`.
|
||||
|
||||
*/
|
||||
class ConstrainedDelaunayTriangulationTraits_3 {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
The concept `ConstrainedDelaunayTriangulationVertexBase_3` refines the concept
|
||||
`TriangulationVertexBase_3` and is the base vertex class for
|
||||
the `CGAL::Constrained_Delaunay_triangulation_3` class template.
|
||||
the `CGAL::make_constrained_Delaunay_triangulation_3()` function template.
|
||||
|
||||
\cgalRefines{TriangulationVertexBase_3}
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ public:
|
|||
/// The following functions return a reference to an object of type
|
||||
/// `CGAL::Constrained_Delaunay_triangulation_vertex_data_3`, that contains
|
||||
/// the per-vertex data required by the implementation of the
|
||||
/// `CGAL::Constrained_Delaunay_triangulation_3` class template.
|
||||
/// `CGAL::make_constrained_Delaunay_triangulation_3()` function template.
|
||||
/// @{
|
||||
CGAL::Constrained_Delaunay_triangulation_vertex_data_3& cdt_3_data();
|
||||
const CGAL::Constrained_Delaunay_triangulation_vertex_data_3& cdt_3_data() const;
|
||||
|
|
|
|||
|
|
@ -4,13 +4,15 @@
|
|||
\defgroup PkgCT_3Concepts Concepts
|
||||
\ingroup PkgCT_3Ref
|
||||
|
||||
\defgroup PkgCT_3MainClasses Main Classes
|
||||
\defgroup PkgCT_3Functions Function Templates
|
||||
\ingroup PkgCT_3Ref
|
||||
|
||||
\defgroup PkgCT_3Classes Classes
|
||||
\ingroup PkgCT_3Ref
|
||||
|
||||
\addtogroup PkgCT_3Ref
|
||||
\cgalPkgDescriptionBegin{3D Constrained Triangulations,PkgCT_3}
|
||||
\cgalPkgPicture{cdt3-small.png}
|
||||
\todo Choose an image
|
||||
|
||||
\cgalPkgSummaryBegin
|
||||
\cgalPkgAuthors{Laurent Rineau}
|
||||
|
|
@ -39,12 +41,12 @@
|
|||
- `ConstrainedDelaunayTriangulationVertexBase_3`
|
||||
- `ConstrainedDelaunayTriangulationCellBase_3`
|
||||
|
||||
\cgalCRPSection{Classes}
|
||||
\cgalCRPSection{Functions Templates}
|
||||
|
||||
\cgalCRPSubsection{Main Classes}
|
||||
- `CGAL::Constrained_Delaunay_triangulation_3<Traits, Triangulation_3>`
|
||||
- `CGAL::make_constrained_Delaunay_triangulation_3()`
|
||||
|
||||
\cgalCRPSubsection{Classes}
|
||||
|
||||
\cgalCRPSubsection{Secondary Classes}
|
||||
- `CGAL::Constrained_Delaunay_triangulation_vertex_base_3`
|
||||
- `CGAL::Constrained_Delaunay_triangulation_cell_base_3`
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@
|
|||
# error "Compiler needs <format>"
|
||||
#endif
|
||||
|
||||
#if DOXYGEN_RUNNING
|
||||
#if 0
|
||||
|
||||
namespace CGAL {
|
||||
|
||||
|
|
|
|||
|
|
@ -26,10 +26,11 @@
|
|||
namespace CGAL {
|
||||
|
||||
/**
|
||||
* @ingroup PkgCT_3Classes
|
||||
* @brief Cell base class for the 3D Constrained Delaunay Triangulation.
|
||||
*
|
||||
* This class is derived from the `Triangulation_cell_base_3` class and provides additional functionality
|
||||
* required by `Constrained_Delaunay_triangulation_3`.
|
||||
* required by `make_constrained_Delaunay_triangulation_3()`.
|
||||
*
|
||||
* @tparam Gt The geometric traits class, which must be a model of `ConstrainedDelaunayTriangulationTraits_3`.
|
||||
* It should be the same as the geometric traits class of the triangulation.
|
||||
|
|
|
|||
|
|
@ -29,11 +29,12 @@
|
|||
namespace CGAL {
|
||||
|
||||
/**
|
||||
* @ingroup PkgCT_3Classes
|
||||
* @brief The Constrained_Delaunay_triangulation_vertex_base_3 class is a vertex base class for the
|
||||
* Constrained Delaunay Triangulation in 3D.
|
||||
*
|
||||
* This class is derived from the `Triangulation_vertex_base_3` class and provides additional functionality
|
||||
* required by `Constrained_Delaunay_triangulation_3`.
|
||||
* required by `make_constrained_Delaunay_triangulation_3()`.
|
||||
*
|
||||
* @tparam Gt The geometric traits class, model of `DelaunayTriangulationTraits_3`.
|
||||
* It must be the same as the geometric traits class of the triangulation.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,94 @@
|
|||
// Copyright (c) 2024 GeometryFactory Sarl (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-or-later OR LicenseRef-Commercial
|
||||
//
|
||||
// Author(s) : Laurent Rineau
|
||||
|
||||
#ifndef CGAL_MAKE_CONSTRAINED_DELAUNAY_TRIANGULATION_3_H
|
||||
#define CGAL_MAKE_CONSTRAINED_DELAUNAY_TRIANGULATION_3_H
|
||||
|
||||
#include <CGAL/license/Constrained_triangulation_3.h>
|
||||
|
||||
#include <CGAL/Constrained_Delaunay_triangulation_3.h>
|
||||
#include <CGAL/Constrained_Delaunay_triangulation_cell_data_3.h>
|
||||
#include <CGAL/Constrained_Delaunay_triangulation_vertex_base_3.h>
|
||||
|
||||
namespace CGAL {
|
||||
|
||||
/*!
|
||||
* \ingroup PkgCT_3Functions
|
||||
* \brief Create a 3D constrained Delaunay triangulation conforming to the faces of a polygon mesh.
|
||||
*
|
||||
* The polygon mesh represents the polygonal constraints that will be enforced during the triangulation process.
|
||||
*
|
||||
* By default, each face of the polygon mesh is considered as a polygonal constraint for the triangulation. The
|
||||
* named parameter `face_patch_map` can be used to describe bigger polygonal constraints, possibly with holes. If
|
||||
* used, the argument of that parameter must be a property map that maps each face of the polygon mesh to a patch
|
||||
* identifier. Faces with the same patch identifier are considered as part of the same surface patch. Each of those
|
||||
* surface patches (defined as the union of the mesh faces with a given patch id) is supposed to be a polygon or a
|
||||
* polygon with holes, with coplanar vertices (or almost coplanar up to the precision of the number type used).
|
||||
*
|
||||
* The generated triangulation will be constrained to conform to the faces of the polygon mesh, or to the surface patches
|
||||
* described by the `face_patch_map` property map if provided.
|
||||
*
|
||||
* \tparam Triangulation_3 An instance of the `Triangulation_3` class template.
|
||||
* - Its `Geom_traits` type must be a model of `ConstrainedDelaunayTriangulationTraits_3`,
|
||||
* - Its point type must be constructible from the point type of the polygon mesh,
|
||||
* - its `Vertex` type must be a model of `ConstrainedDelaunayTriangulationVertexBase_3`, and
|
||||
* - its `Cell` type must be a model of `ConstrainedDelaunayTriangulationCellBase_3`.
|
||||
* \tparam PolygonMesh a model of `FaceListGraph`
|
||||
* \tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters"
|
||||
*
|
||||
* \param mesh The polygon mesh representing the constraints.
|
||||
* \param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below
|
||||
*
|
||||
* \cgalNamedParamsBegin
|
||||
* \cgalParamNBegin{vertex_point_map}
|
||||
* \cgalParamDescription{a property map associating points to the vertices of `mesh`}
|
||||
* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits<PolygonMesh>::%vertex_descriptor`
|
||||
* as key type and `%Traits::Point_3` as value type}
|
||||
* \cgalParamDefault{`boost::get(CGAL::vertex_point, mesh)`}
|
||||
* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t`
|
||||
* must be available in `PolygonMesh`.}
|
||||
* \cgalParamNEnd
|
||||
* \cgalParamNBegin{geom_traits}
|
||||
* \cgalParamDescription{an instance of a geometric traits class}
|
||||
* \cgalParamType{`Traits`}
|
||||
* \cgalParamDefault{the default constructed traits object `Traits{}`}
|
||||
* \cgalParamNEnd
|
||||
* \cgalParamNBegin{face_patch_map}
|
||||
* \cgalParamDescription{a property map associating a patch identifier to each face of `mesh`}
|
||||
* \cgalParamType{a class model of `ReadWritePropertyMap` with `boost::graph_traits<PolygonMesh>::%face_descriptor`
|
||||
* as key type and with any value type that is a *regular* type}
|
||||
* \cgalParamExtra{If this parameter is omitted, each face of the mesh is considered as a separate patch.}
|
||||
* \cgalParamExtra{Faces with the same patch identifier are considered as part of the same surface patch.}
|
||||
* \cgalParamNEnd
|
||||
* \cgalNamedParamsEnd
|
||||
*
|
||||
* \todo Create a documentation page to describe the concept *regular*, and link it to https://en.cppreference.com/w/cpp/concepts/regular
|
||||
*/
|
||||
template <typename Triangulation_3, typename PolygonMesh, typename NamedParams = parameters::Default_named_parameters>
|
||||
Triangulation_3
|
||||
make_constrained_Delaunay_triangulation_3(const PolygonMesh& mesh, const NamedParams& np = parameters::default_values())
|
||||
{
|
||||
Constrained_Delaunay_triangulation_3<typename Triangulation_3::Geom_traits, Triangulation_3> cdt(mesh, np);
|
||||
return std::move(cdt).triangulation();
|
||||
}
|
||||
|
||||
} // end namespace CGAL
|
||||
|
||||
#endif // CGAL_MAKE_CONSTRAINED_DELAUNAY_TRIANGULATION_3_H
|
||||
Loading…
Reference in New Issue