Functions to compute unit normals for individual/all vertices or faces.
|
template<typename PolygonMesh , typename NamedParameters > |
Vector_3 | CGAL::Polygon_mesh_processing::compute_face_normal (typename boost::graph_traits< PolygonMesh >::face_descriptor f, const PolygonMesh &pmesh, const NamedParameters &np) |
|
template<typename PolygonMesh , typename Face_normal_map , typename NamedParameters > |
void | CGAL::Polygon_mesh_processing::compute_face_normals (const PolygonMesh &pmesh, Face_normal_map face_normals, const NamedParameters &np) |
|
template<typename PolygonMesh , typename NamedParameters > |
Vector_3 | CGAL::Polygon_mesh_processing::compute_vertex_normal (typename boost::graph_traits< PolygonMesh >::vertex_descriptor v, const PolygonMesh &pmesh, const NamedParameters &np) |
|
template<typename PolygonMesh , typename VertexNormalMap , typename NamedParameters > |
void | CGAL::Polygon_mesh_processing::compute_vertex_normals (const PolygonMesh &pmesh, VertexNormalMap vertex_normals, const NamedParameters &np) |
|
template<typename PolygonMesh , typename VertexNormalMap , typename FaceNormalMap , typename NamedParameters > |
void | CGAL::Polygon_mesh_processing::compute_normals (const PolygonMesh &pmesh, VertexNormalMap vertex_normals, FaceNormalMap face_normals, const NamedParameters &np) |
|
◆ compute_face_normal()
template<typename PolygonMesh , typename NamedParameters >
Vector_3 CGAL::Polygon_mesh_processing::compute_face_normal |
( |
typename boost::graph_traits< PolygonMesh >::face_descriptor |
f, |
|
|
const PolygonMesh & |
pmesh, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/compute_normal.h>
computes the outward unit vector normal to face f
.
- Template Parameters
-
- Parameters
-
f | the face on which the normal is computed |
pmesh | the polygon mesh containing f |
np | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
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, model of Kernel |
- 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
Kernel::FT
does not have a sqrt()
operation, the square root computation will be done approximately.
◆ compute_face_normals()
template<typename PolygonMesh , typename Face_normal_map , typename NamedParameters >
void CGAL::Polygon_mesh_processing::compute_face_normals |
( |
const PolygonMesh & |
pmesh, |
|
|
Face_normal_map |
face_normals, |
|
|
const NamedParameters & |
np |
|
) |
| |
#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<PolygonMesh>::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 | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
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, model of Kernel |
- Warning
- This function involves a square root computation. If
Kernel::FT
does not have a sqrt()
operation, the square root computation will be done approximately.
◆ compute_normals()
template<typename PolygonMesh , typename VertexNormalMap , typename FaceNormalMap , typename NamedParameters >
void CGAL::Polygon_mesh_processing::compute_normals |
( |
const PolygonMesh & |
pmesh, |
|
|
VertexNormalMap |
vertex_normals, |
|
|
FaceNormalMap |
face_normals, |
|
|
const NamedParameters & |
np |
|
) |
| |
#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<PolygonMesh>::vertex_descriptor as key type and Kernel::Vector_3 as value type. |
FaceNormalMap | a model of ReadWritePropertyMap with boost::graph_traits<PolygonMesh>::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 | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
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, model of Kernel |
- Warning
- This function involves a square root computation. If
Kernel::FT
does not have a sqrt()
operation, the square root computation will be done approximately.
- 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 >
Vector_3 CGAL::Polygon_mesh_processing::compute_vertex_normal |
( |
typename boost::graph_traits< PolygonMesh >::vertex_descriptor |
v, |
|
|
const PolygonMesh & |
pmesh, |
|
|
const NamedParameters & |
np |
|
) |
| |
#include <CGAL/Polygon_mesh_processing/compute_normal.h>
computes the unit normal at vertex v
as the average of the normals of incident faces.
- Template Parameters
-
- Parameters
-
v | the vertex at which the normal is computed |
pmesh | the polygon mesh containing v |
np | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
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, model of Kernel |
- 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
Kernel::FT
does not have a sqrt()
operation, the square root computation will be done approximately.
◆ compute_vertex_normals()
template<typename PolygonMesh , typename VertexNormalMap , typename NamedParameters >
void CGAL::Polygon_mesh_processing::compute_vertex_normals |
( |
const PolygonMesh & |
pmesh, |
|
|
VertexNormalMap |
vertex_normals, |
|
|
const NamedParameters & |
np |
|
) |
| |
#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<PolygonMesh>::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 | optional sequence of Named Parameters among the ones listed below |
- Named Parameters
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, model of Kernel |
- Warning
- This function involves a square root computation. If
Kernel::FT
does not have a sqrt()
operation, the square root computation will be done approximately.