Management, updating and computation of per-vertex and per-face flags (like border flags). More...
#include <vcg/complex/algorithms/update/flag.h>
Classes | |
class | EdgeSorter |
Public Types | |
typedef MeshType::EdgeIterator | EdgeIterator |
typedef MeshType::EdgePointer | EdgePointer |
typedef MeshType::EdgeType | EdgeType |
typedef MeshType::FaceIterator | FaceIterator |
typedef MeshType::FacePointer | FacePointer |
typedef MeshType::FaceType | FaceType |
typedef UpdateMeshType | MeshType |
typedef MeshType::ScalarType | ScalarType |
typedef MeshType::VertexIterator | VertexIterator |
typedef MeshType::VertexPointer | VertexPointer |
typedef MeshType::VertexType | VertexType |
Static Public Member Functions | |
static void | Clear (MeshType &m) |
Reset all the mesh flags (vertexes edge faces) setting everithing to zero (the default value for flags) | |
static void | EdgeClear (MeshType &m, unsigned int FlagMask=0xffffffff) |
static void | EdgeClearV (MeshType &m) |
static void | EdgeSet (MeshType &m, unsigned int FlagMask) |
static void | EdgeSetV (MeshType &m) |
static void | FaceBorderFromFF (MeshType &m) |
Compute the border flags for the faces using the Face-Face Topology. | |
static void | FaceBorderFromNone (MeshType &m) |
static void | FaceBorderFromVF (MeshType &m) |
static void | FaceClear (MeshType &m, unsigned int FlagMask=0xffffffff) |
static void | FaceClearB (MeshType &m) |
static void | FaceClearCreases (MeshType &m) |
static void | FaceClearF (MeshType &m) |
static void | FaceClearS (MeshType &m) |
static void | FaceClearV (MeshType &m) |
static void | FaceFauxBorder (MeshType &m) |
Marks feature edges according to border flag. Actually it marks as fauxedges all the non border edges,. | |
static void | FaceFauxCrease (MeshType &m, float AngleRad) |
Marks feature edges according to a given angle Actually it marks as fauxedges all the non feature edges, e.g. the edge such that the angle between the normal of two faces sharing it is less than the given threshold. In this way all the near planar edges are marked as Faux Edges (e.g. edges to be ignored) | |
static void | FaceFauxSignedCrease (MeshType &m, float AngleRadNeg, float AngleRadPos, bool MarkBorderFlag=false) |
Marks feature edges according to two signed dihedral angles. Actually it marks as fauxedges all the non feature edges, e.g. the edges where the signed dihedral angle between the normal of two incident faces , is between the two given thresholds. In this way all the edges that are almost planar are marked as Faux Edges (e.g. edges to be ignored) Note that it uses the signed dihedral angle convention (negative for concave edges and positive for convex ones);. | |
static void | FaceSet (MeshType &m, unsigned int FlagMask) |
static void | FaceSetB (MeshType &m) |
static void | FaceSetF (MeshType &m) |
static void | FaceSetV (MeshType &m) |
static void | VertexBorderFromFaceAdj (MeshType &m) |
Compute the PerVertex Border flag deriving it from the face-face adjacency. | |
static void | VertexBorderFromFaceBorder (MeshType &m) |
Compute the PerVertex Border flag deriving it from the border flag of faces. | |
static void | VertexBorderFromNone (MeshType &m) |
static void | VertexClear (MeshType &m, unsigned int FlagMask=0xffffffff) |
static void | VertexClearB (MeshType &m) |
static void | VertexClearS (MeshType &m) |
static void | VertexClearV (MeshType &m) |
static void | VertexSet (MeshType &m, unsigned int FlagMask) |
static void | VertexSetB (MeshType &m) |
static void | VertexSetS (MeshType &m) |
static void | VertexSetV (MeshType &m) |
Management, updating and computation of per-vertex and per-face flags (like border flags).
This class is used to compute or update some of the flags that can be stored in the mesh components. For now just Border flags (e.g. the flag that tells if a given edge of a face belong to a border of the mesh or not).
typedef MeshType::EdgeIterator vcg::tri::UpdateFlags< UpdateMeshType >::EdgeIterator |
typedef MeshType::EdgePointer vcg::tri::UpdateFlags< UpdateMeshType >::EdgePointer |
typedef MeshType::EdgeType vcg::tri::UpdateFlags< UpdateMeshType >::EdgeType |
typedef MeshType::FaceIterator vcg::tri::UpdateFlags< UpdateMeshType >::FaceIterator |
typedef MeshType::FacePointer vcg::tri::UpdateFlags< UpdateMeshType >::FacePointer |
typedef MeshType::FaceType vcg::tri::UpdateFlags< UpdateMeshType >::FaceType |
typedef UpdateMeshType vcg::tri::UpdateFlags< UpdateMeshType >::MeshType |
typedef MeshType::ScalarType vcg::tri::UpdateFlags< UpdateMeshType >::ScalarType |
typedef MeshType::VertexIterator vcg::tri::UpdateFlags< UpdateMeshType >::VertexIterator |
typedef MeshType::VertexPointer vcg::tri::UpdateFlags< UpdateMeshType >::VertexPointer |
typedef MeshType::VertexType vcg::tri::UpdateFlags< UpdateMeshType >::VertexType |
static void vcg::tri::UpdateFlags< UpdateMeshType >::Clear | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::EdgeClear | ( | MeshType & | m, |
unsigned int | FlagMask = 0xffffffff |
||
) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::EdgeClearV | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::EdgeSet | ( | MeshType & | m, |
unsigned int | FlagMask | ||
) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::EdgeSetV | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceBorderFromFF | ( | MeshType & | m | ) | [inline, static] |
Compute the border flags for the faces using the Face-Face Topology.
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceBorderFromNone | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceBorderFromVF | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceClear | ( | MeshType & | m, |
unsigned int | FlagMask = 0xffffffff |
||
) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceClearB | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceClearCreases | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceClearF | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceClearS | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceClearV | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceFauxBorder | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceFauxCrease | ( | MeshType & | m, |
float | AngleRad | ||
) | [inline, static] |
Marks feature edges according to a given angle Actually it marks as fauxedges all the non feature edges, e.g. the edge such that the angle between the normal of two faces sharing it is less than the given threshold. In this way all the near planar edges are marked as Faux Edges (e.g. edges to be ignored)
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceFauxSignedCrease | ( | MeshType & | m, |
float | AngleRadNeg, | ||
float | AngleRadPos, | ||
bool | MarkBorderFlag = false |
||
) | [inline, static] |
Marks feature edges according to two signed dihedral angles. Actually it marks as fauxedges all the non feature edges, e.g. the edges where the signed dihedral angle between the normal of two incident faces , is between the two given thresholds. In this way all the edges that are almost planar are marked as Faux Edges (e.g. edges to be ignored) Note that it uses the signed dihedral angle convention (negative for concave edges and positive for convex ones);.
Optionally it can also mark as feature edges also the boundary edges.
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceSet | ( | MeshType & | m, |
unsigned int | FlagMask | ||
) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceSetB | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceSetF | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::FaceSetV | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexBorderFromFaceAdj | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexBorderFromFaceBorder | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexBorderFromNone | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexClear | ( | MeshType & | m, |
unsigned int | FlagMask = 0xffffffff |
||
) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexClearB | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexClearS | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexClearV | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexSet | ( | MeshType & | m, |
unsigned int | FlagMask | ||
) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexSetB | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexSetS | ( | MeshType & | m | ) | [inline, static] |
static void vcg::tri::UpdateFlags< UpdateMeshType >::VertexSetV | ( | MeshType & | m | ) | [inline, static] |