|
CGAL 5.1 - Polygon Mesh Processing
|
Optional parameters of the functions of this package are implemented as Named Parameters. The page Named Parameters describes their usage and provides a list of the parameters that are used in this package.
CGAL::Polygon_mesh_processing::fair()CGAL::Polygon_mesh_processing::refine()CGAL::Polygon_mesh_processing::smooth_mesh()CGAL::Polygon_mesh_processing::smooth_shape()CGAL::Polygon_mesh_processing::triangulate_face()CGAL::Polygon_mesh_processing::triangulate_faces()CGAL::Polygon_mesh_processing::isotropic_remeshing() CGAL::Polygon_mesh_processing::split_long_edges() CGAL::Polygon_mesh_processing::random_perturbation()CGAL::Polygon_mesh_processing::extrude_mesh()CGAL::Polygon_mesh_processing::triangulate_hole()CGAL::Polygon_mesh_processing::triangulate_and_refine_hole()CGAL::Polygon_mesh_processing::triangulate_refine_and_fair_hole()CGAL::Polygon_mesh_processing::triangulate_hole_polyline()CGAL::Polygon_mesh_processing::does_self_intersect()CGAL::Polygon_mesh_processing::self_intersections()CGAL::Polygon_mesh_processing::do_intersect() CGAL::Polygon_mesh_processing::intersecting_meshes()CGAL::Polygon_mesh_processing::is_degenerate_edge()CGAL::Polygon_mesh_processing::degenerate_edges()CGAL::Polygon_mesh_processing::is_degenerate_triangle_face()CGAL::Polygon_mesh_processing::degenerate_faces()CGAL::Polygon_mesh_processing::is_needle_triangle_face()CGAL::Polygon_mesh_processing::is_cap_triangle_face()CGAL::Polygon_mesh_processing::orient_polygon_soup()CGAL::Polygon_mesh_processing::orient()CGAL::Polygon_mesh_processing::does_bound_a_volume()CGAL::Polygon_mesh_processing::orient_to_bound_a_volume()CGAL::Polygon_mesh_processing::volume_connected_components()CGAL::Polygon_mesh_processing::is_outward_oriented()CGAL::Polygon_mesh_processing::reverse_face_orientations()CGAL::Polygon_mesh_processing::duplicate_non_manifold_edges_in_polygon_soup()CGAL::Polygon_mesh_processing::orient_triangle_soup_with_reference_triangle_mesh()CGAL::Polygon_mesh_processing::merge_reversible_connected_components()CGAL::Polygon_mesh_processing::merge_duplicate_points_in_polygon_soup()CGAL::Polygon_mesh_processing::merge_duplicate_polygons_in_polygon_soup()CGAL::Polygon_mesh_processing::remove_isolated_points_in_polygon_soup()CGAL::Polygon_mesh_processing::repair_polygon_soup()CGAL::Polygon_mesh_processing::stitch_boundary_cycle()CGAL::Polygon_mesh_processing::stitch_boundary_cycles()CGAL::Polygon_mesh_processing::stitch_borders()CGAL::Polygon_mesh_processing::is_polygon_soup_a_polygon_mesh()CGAL::Polygon_mesh_processing::polygon_soup_to_polygon_mesh()CGAL::Polygon_mesh_processing::polygon_mesh_to_polygon_soup()CGAL::Polygon_mesh_processing::remove_isolated_vertices()CGAL::Polygon_mesh_processing::is_non_manifold_vertex()CGAL::Polygon_mesh_processing::duplicate_non_manifold_vertices()CGAL::Polygon_mesh_processing::merge_duplicated_vertices_in_boundary_cycle()CGAL::Polygon_mesh_processing::merge_duplicated_vertices_in_boundary_cycles()CGAL::Polygon_mesh_processing::remove_connected_components_of_negligible_size()CGAL::Polygon_mesh_processing::compute_face_normal()CGAL::Polygon_mesh_processing::compute_face_normals()CGAL::Polygon_mesh_processing::compute_vertex_normal()CGAL::Polygon_mesh_processing::compute_vertex_normals()CGAL::Polygon_mesh_processing::compute_normals()CGAL::Polygon_mesh_processing::connected_component()CGAL::Polygon_mesh_processing::connected_components()CGAL::Polygon_mesh_processing::keep_large_connected_components()CGAL::Polygon_mesh_processing::keep_largest_connected_components()CGAL::Polygon_mesh_processing::split_connected_components()CGAL::Polygon_mesh_processing::keep_connected_components() CGAL::Polygon_mesh_processing::remove_connected_components() CGAL::Polygon_mesh_processing::corefine_and_compute_union()CGAL::Polygon_mesh_processing::corefine_and_compute_difference()CGAL::Polygon_mesh_processing::corefine_and_compute_intersection()CGAL::Polygon_mesh_processing::corefine_and_compute_boolean_operations()CGAL::Polygon_mesh_processing::corefine()CGAL::Polygon_mesh_processing::surface_intersection()CGAL::Polygon_mesh_processing::clip()CGAL::Polygon_mesh_processing::split()CGAL::Polygon_mesh_processing::face_area() CGAL::Polygon_mesh_processing::area() CGAL::Polygon_mesh_processing::volume() CGAL::Polygon_mesh_processing::edge_length() CGAL::Polygon_mesh_processing::face_border_length() CGAL::Polygon_mesh_processing::centroid() CGAL::Polygon_mesh_processing::approximate_Hausdorff_distance()CGAL::Polygon_mesh_processing::approximate_symmetric_Hausdorff_distance()CGAL::Polygon_mesh_processing::approximate_max_distance_to_point_set()CGAL::Polygon_mesh_processing::max_distance_to_triangle_mesh()CGAL::Polygon_mesh_processing::sample_triangle_mesh()CGAL::Polygon_mesh_processing::sample_triangle_soup()CGAL::Polygon_mesh_processing::sharp_edges_segmentation()CGAL::Polygon_mesh_processing::detect_sharp_edges()CGAL::Polygon_mesh_processing::detect_vertex_incident_patches()CGAL::Polygon_mesh_slicerCGAL::Side_of_triangle_meshCGAL::Polygon_mesh_processing::bbox()CGAL::Polygon_mesh_processing::vertex_bbox()CGAL::Polygon_mesh_processing::edge_bbox()CGAL::Polygon_mesh_processing::face_bbox()CGAL::Polygon_mesh_processing::border_halfedges()CGAL::Polygon_mesh_processing::extract_boundary_cycles()CGAL::Polygon_mesh_processing::transform() Modules | |
| Named Parameters for Polygon Mesh Processing | |
| Concepts | |
| Connected Components | |
| Two faces are in the same connected component if there is a path of adjacent faces such that all edges between two consecutive faces of the path are not marked as constrained. | |
| Hole Filling | |
| Functions to fill holes given as a range of halfedges or as range of points. | |
| Meshing | |
| Functions to triangulate faces, and to refine and fair regions of a polygon mesh. | |
| Normal Computation | |
| Functions to compute unit normals for individual/all vertices or faces. | |
| Geometric Measure Functions | |
| Functions to compute lengths of edges and borders, areas of faces and patches, as well as volumes of closed meshes. | |
| Orientation Functions | |
| Functions to compute or change the orientation of faces and surfaces. | |
| Intersection Functions | |
| Functions to test if there are self intersections, and to report faces that do intersect. | |
| Combinatorial Repairing | |
| Functions to repair polygon soups and polygon meshes. | |
| Distance Functions | |
| Functions to compute the distance between meshes, between a mesh and a point set and between a point set and a mesh. | |
| Corefinement and Boolean Operations | |
| Functions to corefine triangulated surface meshes and compute triangulated surface meshes of the union, difference and intersection of the bounded volumes. | |
| Feature Detection Functions | |
| Functions to detect sharp edges and surface patches of polygon meshes. | |
| Location Functions | |
| Functions to locate points on a mesh, and manipulate such locations. | |
| Intersection Detection Functions | |
| Functions to detect intersections. Note that those functions will be exact as long as the underlying do-intersect predicates used are exact. In practice, it means that the 3D point type used must come from a CGAL kernel with exact predicates. | |
Files | |
| file | polygon_mesh_processing.h |
Classes | |
| class | CGAL::Polygon_mesh_slicer< TriangleMesh, Traits, VertexPointMap, AABBTree, UseParallelPlaneOptimization > |
| class | CGAL::Side_of_triangle_mesh< TriangleMesh, GeomTraits, VertexPointMap_ > |
Functions | |
| template<typename PolygonMesh , typename NamedParameters > | |
| CGAL::Bbox_3 | CGAL::Polygon_mesh_processing::bbox (const PolygonMesh &pmesh, const NamedParameters &np) |
| template<typename PolygonMesh , typename NamedParameters > | |
| CGAL::Bbox_3 | CGAL::Polygon_mesh_processing::vertex_bbox (typename boost::graph_traits< PolygonMesh >::vertex_descriptor vd, const PolygonMesh &pmesh, const NamedParameters &np) |
| template<typename PolygonMesh , typename NamedParameters > | |
| CGAL::Bbox_3 | CGAL::Polygon_mesh_processing::edge_bbox (typename boost::graph_traits< PolygonMesh >::edge_descriptor ed, const PolygonMesh &pmesh, const NamedParameters &np) |
| template<typename PolygonMesh , typename NamedParameters > | |
| CGAL::Bbox_3 | CGAL::Polygon_mesh_processing::face_bbox (typename boost::graph_traits< PolygonMesh >::face_descriptor fd, const PolygonMesh &pmesh, const NamedParameters &np) |
| template<typename PolygonMesh , typename NamedParameters > | |
| CGAL_DEPRECATED CGAL::Bbox_3 | CGAL::Polygon_mesh_processing::bbox_3 (const PolygonMesh &pmesh, const NamedParameters &np) |
| template<typename PolygonMesh , typename FaceRange , typename HalfedgeOutputIterator , typename NamedParameters > | |
| HalfedgeOutputIterator | CGAL::Polygon_mesh_processing::border_halfedges (const FaceRange &face_range, const PolygonMesh &pmesh, HalfedgeOutputIterator out, const NamedParameters &np) |
| template<typename PolygonMesh , typename OutputIterator > | |
| OutputIterator | CGAL::Polygon_mesh_processing::extract_boundary_cycles (PolygonMesh &pm, OutputIterator out) |
| template<class Transformation , class PolygonMesh , class NamedParameters > | |
| void | CGAL::Polygon_mesh_processing::transform (const Transformation &transformation, PolygonMesh &mesh, const NamedParameters &np) |
| CGAL::Bbox_3 CGAL::Polygon_mesh_processing::bbox | ( | const PolygonMesh & | pmesh, |
| const NamedParameters & | np | ||
| ) |
#include <CGAL/Polygon_mesh_processing/bbox.h>
computes a bounding box of a polygon mesh.
| PolygonMesh | a model of HalfedgeListGraph |
| NamedParameters | a sequence of Named Parameters |
| pmesh | a polygon mesh |
| np | optional sequence of Named Parameters among the ones listed below |
| vertex_point_map | the property map with the points associated to the vertices of pmesh. If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh |
| geom_traits | an instance of a geometric traits class, providing the functor Construct_bbox_3 and the function Construct_bbox_3 construct_bbox_3_object(). Construct_bbox_3 must provide BBox_3 operator()(Point_3) where Point_3 is the value type of the vertex point map. |
pmesh | CGAL_DEPRECATED CGAL::Bbox_3 CGAL::Polygon_mesh_processing::bbox_3 | ( | const PolygonMesh & | pmesh, |
| const NamedParameters & | np | ||
| ) |
#include <CGAL/Polygon_mesh_processing/bbox.h>
CGAL::Polygon_mesh_processing::bbox() should be used instead. | HalfedgeOutputIterator CGAL::Polygon_mesh_processing::border_halfedges | ( | const FaceRange & | face_range, |
| const PolygonMesh & | pmesh, | ||
| HalfedgeOutputIterator | out, | ||
| const NamedParameters & | np | ||
| ) |
#include <CGAL/Polygon_mesh_processing/border.h>
collects the border halfedges of a surface patch defined as a face range. For each returned halfedge h, opposite(h, pmesh) belongs to a face of the patch, but face(h, pmesh) does not belong to the patch.
| PolygonMesh | model of HalfedgeGraph |
| FaceRange | a model of Range with value type boost::graph_traits<PolygonMesh>::face_descriptor. |
| HalfedgeOutputIterator | model of OutputIterator holding boost::graph_traits<PolygonMesh>::halfedge_descriptor for patch border |
| NamedParameters | a sequence of Named Parameters |
| pmesh | the polygon mesh to which the faces in face_range belong |
| face_range | the range of faces defining the patch whose border halfedges are collected |
| out | the output iterator that collects the border halfedges of the patch, seen from outside. |
| np | optional sequence of Named Parameters among the ones listed below |
| face_index_map | a property map containing the index of each face of pmesh |
out | CGAL::Bbox_3 CGAL::Polygon_mesh_processing::edge_bbox | ( | typename boost::graph_traits< PolygonMesh >::edge_descriptor | ed, |
| const PolygonMesh & | pmesh, | ||
| const NamedParameters & | np | ||
| ) |
#include <CGAL/Polygon_mesh_processing/bbox.h>
computes a bounding box of an edge of a polygon mesh.
| PolygonMesh | a model of HalfedgeGraph |
| NamedParameters | a sequence of Named Parameters |
| ed | a descriptor of an edge in pmesh |
| pmesh | a polygon mesh |
| np | optional sequence of Named Parameters among the ones listed below |
| vertex_point_map | the property map with the points associated to the vertices of pmesh. If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh |
| geom_traits | an instance of a geometric traits class, providing the functor Construct_bbox_3 and the function Construct_bbox_3 construct_bbox_3_object(). Construct_bbox_3 must provide BBox_3 operator()(Point_3) where Point_3 is the value type of the vertex point map. |
pmesh | OutputIterator CGAL::Polygon_mesh_processing::extract_boundary_cycles | ( | PolygonMesh & | pm, |
| OutputIterator | out | ||
| ) |
#include <CGAL/Polygon_mesh_processing/border.h>
extracts boundary cycles as a list of halfedges, with one halfedge per border.
| PolygonMesh | a model of HalfedgeListGraph |
| OutputIterator | a model of OutputIterator holding objects of type boost::graph_traits<PolygonMesh>::halfedge_descriptor |
| pm | a polygon mesh |
| out | an output iterator where the border halfedges will be put |
It could make sense to also return the length of each cycle.
It should probably go into BGL package (like the rest of this file).
| CGAL::Bbox_3 CGAL::Polygon_mesh_processing::face_bbox | ( | typename boost::graph_traits< PolygonMesh >::face_descriptor | fd, |
| const PolygonMesh & | pmesh, | ||
| const NamedParameters & | np | ||
| ) |
#include <CGAL/Polygon_mesh_processing/bbox.h>
computes a bounding box of a face of a polygon mesh.
| PolygonMesh | a model of HalfedgeGraph |
| NamedParameters | a sequence of Named Parameters |
| fd | a descriptor of a face in pmesh |
| pmesh | a polygon mesh |
| np | optional sequence of Named Parameters among the ones listed below |
| vertex_point_map | the property map with the points associated to the vertices of pmesh. If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh |
| geom_traits | an instance of a geometric traits class, providing the functor Construct_bbox_3 and the function Construct_bbox_3 construct_bbox_3_object(). Construct_bbox_3 must provide BBox_3 operator()(Point_3) where Point_3 is the value type of the vertex point map. |
pmesh | void CGAL::Polygon_mesh_processing::transform | ( | const Transformation & | transformation, |
| PolygonMesh & | mesh, | ||
| const NamedParameters & | np | ||
| ) |
#include <CGAL/Polygon_mesh_processing/transform.h>
applies a transformation to every vertex of a PolygonMesh.
| Transformation | a functor that has an operator()(Point_3), with Point_3 the value_type of vertex_point_map (see below). Such a functor can be CGAL::Aff_transformation_3 for example. |
| PolygonMesh | a model of VertexListGraph |
| NamedParameters | a sequence of Named Parameters |
| transformation | the transformation functor to apply to the points of mesh. |
| mesh | the PolygonMesh to transform. |
| np | optional sequence of Named Parameters for Polygon Mesh Processing for mesh, among the ones listed below |
| vertex_point_map | the property map with the points associated to the vertices of mesh. If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh |
| CGAL::Bbox_3 CGAL::Polygon_mesh_processing::vertex_bbox | ( | typename boost::graph_traits< PolygonMesh >::vertex_descriptor | vd, |
| const PolygonMesh & | pmesh, | ||
| const NamedParameters & | np | ||
| ) |
#include <CGAL/Polygon_mesh_processing/bbox.h>
computes a bounding box of a vertex of a polygon mesh.
| PolygonMesh | a model of HalfedgeGraph |
| NamedParameters | a sequence of Named Parameters |
| vd | a descriptor of a vertex in pmesh |
| pmesh | a polygon mesh |
| np | optional sequence of Named Parameters among the ones listed below |
| vertex_point_map | the property map with the points associated to the vertices of pmesh. If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh |
| geom_traits | an instance of a geometric traits class, providing the functor Construct_bbox_3 and the function Construct_bbox_3 construct_bbox_3_object(). Construct_bbox_3 must provide BBox_3 operator()(Point_3) where Point_3 is the value type of the vertex point map. |
pmesh