CGAL 5.5.1 - Polygon Mesh Processing

Functions to compute unit normals for individual/all vertices or faces.

## Functions

template<typename PolygonMesh , typename NamedParameters = parameters::Default_named_parameters>
Vector_3 CGAL::Polygon_mesh_processing::compute_face_normal (typename boost::graph_traits< PolygonMesh >::face_descriptor f, const PolygonMesh &pmesh, const NamedParameters &np=parameters::default_values())
computes the outward unit vector normal to face f. More...

template<typename PolygonMesh , typename Face_normal_map , typename NamedParameters = parameters::Default_named_parameters>
void CGAL::Polygon_mesh_processing::compute_face_normals (const PolygonMesh &pmesh, Face_normal_map face_normals, const NamedParameters &np=parameters::default_values())
computes the outward unit vector normal for all faces of the polygon mesh. More...

template<typename PolygonMesh , typename NamedParameters = parameters::Default_named_parameters>
Vector_3 CGAL::Polygon_mesh_processing::compute_vertex_normal (typename boost::graph_traits< PolygonMesh >::vertex_descriptor v, const PolygonMesh &pmesh, const NamedParameters &np=parameters::default_values())
computes the unit normal at vertex v as the average of the normals of incident faces. More...

template<typename PolygonMesh , typename VertexNormalMap , typename NamedParameters = parameters::Default_named_parameters>
void CGAL::Polygon_mesh_processing::compute_vertex_normals (const PolygonMesh &pmesh, VertexNormalMap vertex_normals, const NamedParameters &np=parameters::default_values())
computes the outward unit vector normal for all vertices of the polygon mesh. More...

template<typename PolygonMesh , typename VertexNormalMap , typename FaceNormalMap , typename NamedParameters = parameters::Default_named_parameters>
void CGAL::Polygon_mesh_processing::compute_normals (const PolygonMesh &pmesh, VertexNormalMap vertex_normals, FaceNormalMap face_normals, const NamedParameters &np=parameters::default_values())
computes the outward unit vector normal for all vertices and faces of the polygon mesh. More...

## ◆ compute_face_normal()

template<typename PolygonMesh , typename NamedParameters = parameters::Default_named_parameters>
 Vector_3 CGAL::Polygon_mesh_processing::compute_face_normal ( typename boost::graph_traits< PolygonMesh >::face_descriptor f, const PolygonMesh & pmesh, const NamedParameters & np = parameters::default_values() )

#include <CGAL/Polygon_mesh_processing/compute_normal.h>

computes the outward unit vector normal to face f.

Template Parameters
 PolygonMesh a model of FaceGraph NamedParameters a sequence of Named Parameters
Parameters
 f the face whose normal is computed pmesh the polygon mesh containing f np an optional sequence of Named Parameters among the ones listed below
Optional Named Parameters
 a property map associating points to the vertices of pmesh Type: a class model of ReadablePropertyMap with boost::graph_traits::vertex_descriptor as key type and Point_3 as value type Default: boost::get(CGAL::vertex_point, pmesh) Extra: If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh. an instance of a geometric traits class Type: a class model of Kernel Default: a CGAL Kernel deduced from the point type, using CGAL::Kernel_traits Extra: The geometric traits class must be compatible with the vertex point type.
Returns
the computed normal. The return type is a 3D vector type. It is either deduced from the geom_traits Named Parameters if provided, or from the geometric traits class deduced from the point property map of pmesh.
Warning
This function involves a square root computation. If the field type (FT) of the traits does not support the sqrt() operation, the square root computation will be performed approximately.
compute_face_normals()

## ◆ compute_face_normals()

template<typename PolygonMesh , typename Face_normal_map , typename NamedParameters = parameters::Default_named_parameters>
 void CGAL::Polygon_mesh_processing::compute_face_normals ( const PolygonMesh & pmesh, Face_normal_map face_normals, const NamedParameters & np = parameters::default_values() )

#include <CGAL/Polygon_mesh_processing/compute_normal.h>

computes the outward unit vector normal for all faces of the polygon mesh.

Template Parameters
 PolygonMesh a model of FaceGraph Face_normal_map a model of WritablePropertyMap with boost::graph_traits::face_descriptor as key type and Kernel::Vector_3 as value type.
Parameters
 pmesh the polygon mesh face_normals the property map in which the normals are written np an optional sequence of Named Parameters among the ones listed below
Optional Named Parameters
 a property map associating points to the vertices of pmesh Type: a class model of ReadablePropertyMap with boost::graph_traits::vertex_descriptor as key type and Point_3 as value type Default: boost::get(CGAL::vertex_point, pmesh) Extra: If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh. an instance of a geometric traits class Type: a class model of Kernel Default: a CGAL Kernel deduced from the point type, using CGAL::Kernel_traits Extra: The geometric traits class must be compatible with the vertex point type.
Warning
This function involves a square root computation. If the field type (FT) of the traits does not support the sqrt() operation, the square root computation will be performed approximately.
compute_face_normal()

## ◆ compute_normals()

template<typename PolygonMesh , typename VertexNormalMap , typename FaceNormalMap , typename NamedParameters = parameters::Default_named_parameters>
 void CGAL::Polygon_mesh_processing::compute_normals ( const PolygonMesh & pmesh, VertexNormalMap vertex_normals, FaceNormalMap face_normals, const NamedParameters & np = parameters::default_values() )

#include <CGAL/Polygon_mesh_processing/compute_normal.h>

computes the outward unit vector normal for all vertices and faces of the polygon mesh.

Template Parameters
 PolygonMesh a model of FaceListGraph VertexNormalMap a model of WritablePropertyMap with boost::graph_traits::vertex_descriptor as key type and Kernel::Vector_3 as value type. FaceNormalMap a model of ReadWritePropertyMap with boost::graph_traits::face_descriptor as key type and Kernel::Vector_3 as value type.
Parameters
 pmesh the polygon mesh vertex_normals the property map in which the vertex normals are written face_normals the property map in which the face normals are written np an optional sequence of Named Parameters among the ones listed below
Optional Named Parameters
 a property map associating points to the vertices of pmesh Type: a class model of ReadablePropertyMap with boost::graph_traits::vertex_descriptor as key type and Point_3 as value type Default: boost::get(CGAL::vertex_point, pmesh) Extra: If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh. an instance of a geometric traits class Type: a class model of Kernel Default: a CGAL Kernel deduced from the point type, using CGAL::Kernel_traits Extra: The geometric traits class must be compatible with the vertex point type.
Warning
This function involves a square root computation. If the field type (FT) of the traits does not support the sqrt() operation, the square root computation will be performed approximately.
compute_vertex_normals()
compute_face_normals()
Examples:
Polygon_mesh_processing/compute_normals_example.cpp, and Polygon_mesh_processing/compute_normals_example_Polyhedron.cpp.

## ◆ compute_vertex_normal()

template<typename PolygonMesh , typename NamedParameters = parameters::Default_named_parameters>
 Vector_3 CGAL::Polygon_mesh_processing::compute_vertex_normal ( typename boost::graph_traits< PolygonMesh >::vertex_descriptor v, const PolygonMesh & pmesh, const NamedParameters & np = parameters::default_values() )

#include <CGAL/Polygon_mesh_processing/compute_normal.h>

computes the unit normal at vertex v as the average of the normals of incident faces.

Note
The function compute_vertex_normals() should be prefered if normals are intended to be computed at all vertices of the graph.
Template Parameters
 PolygonMesh a model of FaceGraph
Parameters
 v the vertex whose normal is computed pmesh the polygon mesh containing v np an optional sequence of Named Parameters among the ones listed below
Optional Named Parameters
 a property map associating points to the vertices of pmesh Type: a class model of ReadablePropertyMap with boost::graph_traits::vertex_descriptor as key type and Point_3 as value type Default: boost::get(CGAL::vertex_point, pmesh) Extra: If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh. an instance of a geometric traits class Type: a class model of Kernel Default: a CGAL Kernel deduced from the point type, using CGAL::Kernel_traits Extra: The geometric traits class must be compatible with the vertex point type.
Returns
the computed normal. The return type is a 3D vector type. It is either deduced from the geom_traits Named Parameters if provided, or the geometric traits class deduced from the point property map of pmesh.
Warning
This function involves a square root computation. If the field type (FT) of the traits does not support the sqrt() operation, the square root computation will be performed approximately.
compute_vertex_normals()

## ◆ compute_vertex_normals()

template<typename PolygonMesh , typename VertexNormalMap , typename NamedParameters = parameters::Default_named_parameters>
 void CGAL::Polygon_mesh_processing::compute_vertex_normals ( const PolygonMesh & pmesh, VertexNormalMap vertex_normals, const NamedParameters & np = parameters::default_values() )

#include <CGAL/Polygon_mesh_processing/compute_normal.h>

computes the outward unit vector normal for all vertices of the polygon mesh.

Template Parameters
 PolygonMesh a model of FaceListGraph VertexNormalMap a model of WritablePropertyMap with boost::graph_traits::vertex_descriptor as key type and the return type of compute_vertex_normal() as value type.
Parameters
 pmesh the polygon mesh vertex_normals the property map in which the normals are written np an optional sequence of Named Parameters among the ones listed below
Optional Named Parameters
 a property map associating points to the vertices of pmesh Type: a class model of ReadablePropertyMap with boost::graph_traits::vertex_descriptor as key type and Point_3 as value type Default: boost::get(CGAL::vertex_point, pmesh) Extra: If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in PolygonMesh. an instance of a geometric traits class Type: a class model of Kernel Default: a CGAL Kernel deduced from the point type, using CGAL::Kernel_traits Extra: The geometric traits class must be compatible with the vertex point type.
Warning
This function involves a square root computation. If the field type (FT) of the traits does not support the sqrt() operation, the square root computation will be performed approximately.
compute_vertex_normal()