Improve documentation of Nef

This commit is contained in:
Andreas Fabri 2025-11-21 14:30:36 +00:00
parent 346f530d07
commit 2f1435c838
6 changed files with 28 additions and 25 deletions

View File

@ -20,7 +20,7 @@ polyhedra in a sorted way and add them one by one to `Nef_nary_union_3`.
*/
template< typename Nef_polyhedron_3 >
template< typename NefPolyhedron_3 >
class Nef_nary_union_3 {
public:

View File

@ -34,7 +34,7 @@ namespace CGAL {
`Quotient<Gmpz>` or any other number type modeling \f$\mathbb{Q}\f$.
The second parameter and the third parameter are for future considerations.
Neither `Nef_polyhedronItems_3` nor `Nef_polyhedronMarks` is
Neither `NefPolyhedronItems_3` nor `Nef_polyhedronMarks` is
specified, yet. Do not use any other than the default types for these two
template parameters.
@ -49,8 +49,8 @@ namespace CGAL {
\sa `CGAL::Polyhedron_3<Traits>`
*/
template< class Nef_polyhedronTraits_3,
class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3>
template< class NefPolyhedronTraits_3,
class NefPolyhedronItems_3 = CGAL::Default_items<NefPolyhedronTraits_3>
class Nef_polyhedronMarks = bool
> class Nef_polyhedron_3 {
public:
@ -79,7 +79,7 @@ public:
function `twin()` returns the opposite halfedge.
Looking at the incidence structure on a sphere map, the member function
`out_sedge` returns the first outgoing shalfedge, and `incident_sface`
`out_sedge()` returns the first outgoing shalfedge, and `incident_sface()`
returns the incident sface.
\cgalHeading{Creation}
@ -946,7 +946,7 @@ public:
}; /* end Volume */
/*!
traits class selected for `Nef_polyhedronTraits_3`.
traits class selected for `NefPolyhedronTraits_3`.
*/
typedef unspecified_type Traits;

View File

@ -4,7 +4,7 @@ namespace CGAL {
\ingroup PkgNef3IOFunctions
This function creates a 3D Nef polyhedron from an OFF file which
is read from input stream `in`. The purpose of `OFF_to_nef_3`
is read from input stream `in`. The purpose of `OFF_to_nef_3()`
is to create a Nef polyhedron from an OFF file that cannot be handled
by the `Nef_polyhedron_3` constructors. It handles double
coordinates while using a homogeneous kernel, non-coplanar facets,
@ -12,10 +12,12 @@ surfaces with boundaries, self-intersecting surfaces, and single
facets. Every closed volume gets marked. The function returns the
number of facets it could not handle.
@tparam NefPolyhedron_3 an object of type `Nef_polyhedron_3`.
\sa `CGAL::Nef_polyhedron_3<Traits>`
*/
template<class Nef_polyhedron_3>
std::size_t OFF_to_nef_3(std::istream& in, Nef_polyhedron_3& N);
template<class NefPolyhedron_3>
std::size_t OFF_to_nef_3(std::istream& in, NefPolyhedron_3& N);
} /* namespace CGAL */

View File

@ -1,12 +1,12 @@
namespace CGAL {
/// \ingroup PkgNef3IOFunctions
/// Converts an object of type `Nef_polyhedron_3` into a polygon mesh model of `MutableFaceGraph`.
/// Converts an object of type `NefPolyhedron_3` into a polygon mesh model of `MutableFaceGraph`.
/// Note that contrary to `Nef_polyhedron_3::convert_to_polyhedron()`, the output is not triangulated
/// (but faces with more than one connected component of the boundary).
/// The polygon mesh can be triangulated by setting `triangulate_all_faces` to `true` or by calling the function `triangulate_faces()`.
/// @tparam Nef_polyhedron an object of type `Nef_polyhedron_3`.
/// @tparam Polygon_mesh a model of `MutableFaceGraph` with an internal property map for `CGAL::vertex_point_t`.
/// The polygon mesh can be triangulated by setting `triangulate_all_faces` to `true` or by calling the function `Polygon_mesh_processing::triangulate_faces()`.
/// @tparam NefPolyhedron_3 an object of type `Nef_polyhedron_3`.
/// @tparam PolygonMesh a model of `MutableFaceGraph` with an internal property map for `CGAL::vertex_point_t`.
///
/// The points from `nef` to `pm` are converted using
/// `CGAL::Cartesian_converter<NefKernel, TargetKernel>`.
@ -17,16 +17,16 @@ namespace CGAL {
/// @param pm the output.
/// @param triangulate_all_faces indicates whether all the faces must be triangulated.
///
/// \pre `Polygon_mesh` must have an internal point property map with value type being `Nef_polyhedron_3::Point_3`.
/// \pre `PolygonMesh` must have an internal point property map with value type being `NefPolyhedron_3::Point_3`.
/// \pre `nef.simple()`
template <class Nef_polyhedron, class Polygon_mesh>
void convert_nef_polyhedron_to_polygon_mesh(const Nef_polyhedron& nef, Polygon_mesh& pm, bool triangulate_all_faces = false);
template <class NefPolyhedron_3, class PolygonMesh>
void convert_nef_polyhedron_to_polygon_mesh(const NefPolyhedron_3& nef, PolygonMesh& pm, bool triangulate_all_faces = false);
/// \ingroup PkgNef3IOFunctions
/// Converts an object of type `Nef_polyhedron_3` into a polygon soup.
/// Converts an object of type `NefPolyhedron_3` into a polygon soup.
/// The polygons can be triangulated by setting `triangulate_all_faces` to `true`.
/// @tparam Nef_polyhedron an object of type `Nef_polyhedron_3`.
/// @tparam NefPolyhedron_3 an object of type `Nef_polyhedron_3`.
/// @tparam PointRange a model of the concept `BackInsertionSequence`
/// whose `value_type` is the point type
/// @tparam PolygonRange a model of the concept
@ -43,8 +43,8 @@ namespace CGAL {
/// @param points the output points of the soup
/// @param polygons the output polygons of the soup.
/// @param triangulate_all_faces indicates whether all polygons must be triangulated.
template <class Nef_polyhedron, typename PolygonRange, typename PointRange>
void convert_nef_polyhedron_to_polygon_soup(const Nef_polyhedron& nef,
template <class NefPolyhedron_3, typename PolygonRange, typename PointRange>
void convert_nef_polyhedron_to_polygon_soup(const NefPolyhedron_3& nef,
PointRange& points,
PolygonRange& polygons,
bool triangulate_all_faces = false);

View File

@ -12,3 +12,4 @@ BGL
Surface_mesh
Polygon_mesh_processing
GraphicsView
Basic_viewer

View File

@ -16,8 +16,8 @@ under the topological operations `boundary`, `closure`, and
\cgalHeading{Parameters}
\code
template< class Nef_polyhedronTraits_S2,
class Nef_polyhedronItems_S2 = CGAL::SM_items,
template< class NefPolyhedronTraits_S2,
class NefPolyhedronItems_S2 = CGAL::SM_items,
class Nef_polyhedronMarks = bool >
class Nef_polyhedron_S2;
\endcode
@ -30,7 +30,7 @@ modeling \f$\mathbb{Z}\f$, or `Cartesian`, `Simple_cartesian` parametrized with
type modeling \f$\mathbb{Q}\f$.
The second parameter and the third parameter are for future considerations.
Neither `Nef_polyhedronItems_S2` nor `Nef_polyhedronMarks` is
Neither `NefPolyhedronItems_S2` nor `Nef_polyhedronMarks` is
specified, yet. Do not use other than the default types for these two
template parameters.
@ -55,8 +55,8 @@ output operator is defined in the file
Nef polyhedra are implemented on top of a halfedge data structure and
use linear space in the number of vertices, edges and facets.
Operations like `empty` take constant time. The operations
`clear`, `complement`, `interior`, `closure`,
`boundary`, `regularization`, input and output take linear
`clear()`, `complement()`, `interior()`, `closure()`,
`boundary()`, `regularization()`, input and output take linear
time. All binary set operations and comparison operations take time
\cgalBigO{n \log n} where \f$ n\f$ is the size of the output plus the size of the
input.