detects and marks the edges that are considered to be sharp with respect to the given angle bound.
angle_in_deg gives the maximum angle (in degrees) between the two normal vectors of adjacent triangles. For an edge of the input polygon mesh, if the angle between the two normal vectors of its incident facets is bigger than the given bound, then the edge is marked as being a feature edge.
Also computes the number of sharp edges incident to each vertex, if vertex_feature_degree_map is provided.
a number type. It is either deduced from the geom_traitsNamed Parameters if provided, or from the geometric traits class deduced from the point property map of PolygonMesh.
EdgeIsFeatureMap
a model of ReadWritePropertyMap with boost::graph_traits<PolygonMesh>::edge_descriptor as key type and bool as value type. It must be default constructible.
a model of ReadablePropertyMap with boost::graph_traits<PolygonMesh>::face_descriptor as key type and the desired patch id, model of CopyConstructible as value type.
VertexIncidentPatchesMap
a model of mutable LvaluePropertyMap with boost::graph_traits<PolygonMesh>::vertex_descriptor as key type. Its value type must be a container of boost::property_traits<PatchIdMap>::value_type and have a function insert(). A std::set or a boost::unordered_set are recommended, as a patch index may be inserted several times.
EdgeIsFeatureMap
a model of ReadablePropertyMap with boost::graph_traits<PolygonMesh>::edge_descriptor as key type and bool as value type.
Parameters
pmesh
the polygon mesh
patch_id_map
the property map containing the surface patch ids for the faces of pmesh. It must be already filled.
vertex_incident_patches_map
a property map that will contain the patch ids of all the faces incident to each vertex of pmesh.
edge_is_feature_map
a filled property map that will contain the sharp-or-not status of each edge of pmesh
It detects and marks the sharp edges of pmesh according to angle_in_deg. The sharp edges define a segmentation of pmesh, that is done by computing a surface patch id for each face.
a number type. It is either deduced from the geom_traitsNamed Parameters if provided, or from the geometric traits class deduced from the point property map of PolygonMesh.
EdgeIsFeatureMap
a model of ReadWritePropertyMap with boost::graph_traits<PolygonMesh>::edge_descriptor
PatchIdMap
a model of ReadWritePropertyMap with boost::graph_traits<PolygonMesh>::face_descriptor as key type and the desired patch id, model of CopyConstructible as value type.
Extra: The patches will be numbered on [first_index; first_index + num_patches], where num_patches is the number of surface patches.
a property map associating to each face of pmesh a unique index between 0 and num_faces(pmesh) - 1
Type: a class model of ReadablePropertyMap with boost::graph_traits<PolygonMesh>::face_descriptor as key type and std::size_t as value type
Default: an automatically indexed internal map
a property map that will contain the patch ids of all the faces incident to each vertex of pmesh
Type: a model of mutable LvaluePropertyMap with boost::graph_traits<PolygonMesh>::vertex_descriptor as key type. Its value type must be a container of boost::property_traits<PatchIdMap>::value_type and have a function insert().
Extra: A std::set or a boost::unordered_set are recommended, as a patch index may be inserted several times.