#include <bitquad_support.h>
Classes | |
class | Iterator |
class | Pos |
Public Types | |
enum | ___ { VALENCY_FLAGS = 24 } |
typedef MeshType::CoordType | CoordType |
typedef MeshType::FaceIterator | FaceIterator |
typedef MeshType::FaceType | FaceType |
typedef MeshType::FaceType * | FaceTypeP |
typedef _MeshType | MeshType |
typedef MeshType::ScalarType | ScalarType |
typedef MeshType::VertexIterator | VertexIterator |
typedef MeshType::VertexPointer | VertexPointer |
typedef MeshType::VertexType | VertexType |
Static Public Member Functions | |
static void | _CollapseDiagHalf (FaceType &f, int faux, MeshType &) |
static bool | CheckFlipDiag (FaceType &f) |
static bool | CollapseCounterDiag (FaceType &f, ScalarType interpol, MeshType &m, Pos *affected=NULL) |
static bool | CollapseDiag (FaceType &f, ScalarType interpol, MeshType &m, Pos *affected=NULL) |
static bool | CollapseEdge (FaceType &f, int w0, MeshType &m, Pos *affected=NULL) |
static bool | CollapseEdgeDirect (FaceType &f, int w0, MeshType &m) |
static int | CountBitPolygonInternalValency (const FaceType &f, int wedge) |
static CoordType | CounterDiag (const FaceType *f) |
static void | DecreaseValency (FaceType *f, int wedge, MeshType &m) |
static void | DecreaseValencyNoSingletTest (VertexType *v, int dv, MeshType &m) |
static void | DecreaseValencySimple (VertexType *v, int dv) |
static CoordType | Diag (const FaceType *f) |
static ScalarType | EdgeLenghtVariationIfVertexRotated (const FaceType &f, int w0) |
static int | FauxIndex (const FaceType *f) |
static void | FlipDiag (FaceType &f) |
static void | FlipEdge (FaceType &f, int k, MeshType &m) |
static int | GetValency (const VertexType *v) |
static bool | HasConsistentValencyFlag (MeshType &m) |
static void | IncreaseValency (VertexType *v, int dv=1) |
static bool | IsDoublet (const FaceType &f, int wedge) |
static bool | IsDoubletFF (const FaceType &f, int wedge) |
static bool | IsDoubletOrSinglet (const FaceType &f, int wedge) |
static bool | IsSinglet (const FaceType &f, int wedge) |
static bool | IsSingletFF (const FaceType &f, int wedge) |
static void | MarkFaceF (FaceType *f) |
static ScalarType | PosOnDiag (const FaceType &f, bool counterDiag) |
static ScalarType | quadQuality (FaceType *f, int edgeInd) |
static ScalarType | QuadQualityVariationIfVertexRotated (const FaceType &f, int w0) |
static void | QuadTriangulate (std::vector< VertexPointer > &q) |
static void | RemoveDoublet (FaceType &f, int wedge, MeshType &m, Pos *affected=NULL) |
static bool | RemoveDoubletOrSinglet (FaceType &f, int wedge, MeshType &m, Pos *affected=NULL) |
static void | RemoveSinglet (FaceType &f, int wedge, MeshType &m, Pos *affected=NULL) |
template<bool verse> | |
static bool | RotateEdge (FaceType &f, int w0a, MeshType &m, Pos *affected=NULL) |
static bool | RotateVertex (FaceType &f, int w0, MeshType &, Pos *affected=NULL) |
static void | SetValency (VertexType *v, int n) |
static bool | TestAndRemoveDoublet (FaceType &f, int wedge, MeshType &m) |
static bool | TestAndRemoveSinglet (FaceType &f, int wedge, MeshType &m) |
static int | TestEdgeRotation (const FaceType &f, int w0, ScalarType *gain=NULL) |
static bool | TestVertexRotation (const FaceType &f, int w0) |
static void | UpdateValencyInFlags (MeshType &m) |
static void | UpdateValencyInQuality (MeshType &m) |
Static Private Member Functions | |
static ScalarType | Cos (const CoordType &a, const CoordType &b, const CoordType &c) |
static ScalarType | quadQuality (const CoordType &a, const CoordType &b, const CoordType &c, const CoordType &d) |
Definition at line 83 of file bitquad_support.h.
typedef MeshType::CoordType vcg::tri::BitQuad< _MeshType, Interpolator >::CoordType |
Definition at line 88 of file bitquad_support.h.
typedef MeshType::FaceIterator vcg::tri::BitQuad< _MeshType, Interpolator >::FaceIterator |
Definition at line 92 of file bitquad_support.h.
typedef MeshType::FaceType vcg::tri::BitQuad< _MeshType, Interpolator >::FaceType |
Definition at line 89 of file bitquad_support.h.
typedef MeshType::FaceType* vcg::tri::BitQuad< _MeshType, Interpolator >::FaceTypeP |
Definition at line 90 of file bitquad_support.h.
typedef _MeshType vcg::tri::BitQuad< _MeshType, Interpolator >::MeshType |
Definition at line 86 of file bitquad_support.h.
typedef MeshType::ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::ScalarType |
Definition at line 87 of file bitquad_support.h.
typedef MeshType::VertexIterator vcg::tri::BitQuad< _MeshType, Interpolator >::VertexIterator |
Definition at line 93 of file bitquad_support.h.
typedef MeshType::VertexPointer vcg::tri::BitQuad< _MeshType, Interpolator >::VertexPointer |
Definition at line 94 of file bitquad_support.h.
typedef MeshType::VertexType vcg::tri::BitQuad< _MeshType, Interpolator >::VertexType |
Definition at line 91 of file bitquad_support.h.
enum vcg::tri::BitQuad::___ |
Definition at line 902 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::_CollapseDiagHalf | ( | FaceType & | f, |
int | faux, | ||
MeshType & | |||
) | [inline, static] |
Definition at line 444 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::CheckFlipDiag | ( | FaceType & | f | ) | [inline, static] |
Definition at line 424 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::CollapseCounterDiag | ( | FaceType & | f, |
ScalarType | interpol, | ||
MeshType & | m, | ||
Pos * | affected = NULL |
||
) | [inline, static] |
collapses a quad diagonal a-b forming the new vertex in between the two old vertices. if k == 0, new vertex is in a if k == 1, new vertex is in b if k == 0.5, new vertex in the middle, etc
Definition at line 704 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::CollapseDiag | ( | FaceType & | f, |
ScalarType | interpol, | ||
MeshType & | m, | ||
Pos * | affected = NULL |
||
) | [inline, static] |
Definition at line 763 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::CollapseEdge | ( | FaceType & | f, |
int | w0, | ||
MeshType & | m, | ||
Pos * | affected = NULL |
||
) | [inline, static] |
Definition at line 669 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::CollapseEdgeDirect | ( | FaceType & | f, |
int | w0, | ||
MeshType & | m | ||
) | [inline, static] |
Definition at line 645 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::Cos | ( | const CoordType & | a, |
const CoordType & | b, | ||
const CoordType & | c | ||
) | [inline, static, private] |
Definition at line 1118 of file bitquad_support.h.
static int vcg::tri::BitQuad< _MeshType, Interpolator >::CountBitPolygonInternalValency | ( | const FaceType & | f, |
int | wedge | ||
) | [inline, static] |
Definition at line 567 of file bitquad_support.h.
static CoordType vcg::tri::BitQuad< _MeshType, Interpolator >::CounterDiag | ( | const FaceType * | f | ) | [inline, static] |
Definition at line 436 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::DecreaseValency | ( | FaceType * | f, |
int | wedge, | ||
MeshType & | m | ||
) | [inline, static] |
Definition at line 935 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::DecreaseValencyNoSingletTest | ( | VertexType * | v, |
int | dv, | ||
MeshType & | m | ||
) | [inline, static] |
Definition at line 945 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::DecreaseValencySimple | ( | VertexType * | v, |
int | dv | ||
) | [inline, static] |
Definition at line 952 of file bitquad_support.h.
static CoordType vcg::tri::BitQuad< _MeshType, Interpolator >::Diag | ( | const FaceType * | f | ) | [inline, static] |
Definition at line 429 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::EdgeLenghtVariationIfVertexRotated | ( | const FaceType & | f, |
int | w0 | ||
) | [inline, static] |
Definition at line 207 of file bitquad_support.h.
static int vcg::tri::BitQuad< _MeshType, Interpolator >::FauxIndex | ( | const FaceType * | f | ) | [inline, static] |
Definition at line 181 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::FlipDiag | ( | FaceType & | f | ) | [inline, static] |
Definition at line 189 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::FlipEdge | ( | FaceType & | f, |
int | k, | ||
MeshType & | m | ||
) | [inline, static] |
Definition at line 391 of file bitquad_support.h.
static int vcg::tri::BitQuad< _MeshType, Interpolator >::GetValency | ( | const VertexType * | v | ) | [inline, static] |
Definition at line 911 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::HasConsistentValencyFlag | ( | MeshType & | m | ) | [inline, static] |
Definition at line 977 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::IncreaseValency | ( | VertexType * | v, |
int | dv = 1 |
||
) | [inline, static] |
Definition at line 916 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsDoublet | ( | const FaceType & | f, |
int | wedge | ||
) | [inline, static] |
Definition at line 604 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsDoubletFF | ( | const FaceType & | f, |
int | wedge | ||
) | [inline, static] |
Definition at line 584 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsDoubletOrSinglet | ( | const FaceType & | f, |
int | wedge | ||
) | [inline, static] |
Definition at line 608 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsSinglet | ( | const FaceType & | f, |
int | wedge | ||
) | [inline, static] |
Definition at line 641 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsSingletFF | ( | const FaceType & | f, |
int | wedge | ||
) | [inline, static] |
Definition at line 621 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::MarkFaceF | ( | FaceType * | f | ) | [inline, static] |
Definition at line 121 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::PosOnDiag | ( | const FaceType & | f, |
bool | counterDiag | ||
) | [inline, static] |
Definition at line 877 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::quadQuality | ( | FaceType * | f, |
int | edgeInd | ||
) | [inline, static] |
Definition at line 992 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::quadQuality | ( | const CoordType & | a, |
const CoordType & | b, | ||
const CoordType & | c, | ||
const CoordType & | d | ||
) | [inline, static, private] |
Definition at line 1102 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::QuadQualityVariationIfVertexRotated | ( | const FaceType & | f, |
int | w0 | ||
) | [inline, static] |
Definition at line 243 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::QuadTriangulate | ( | std::vector< VertexPointer > & | q | ) | [inline, static] |
Generic quad triangulation function. It take in input 4 vertex pointrs and rotate them so that a simple fan triangulation is Ok. It uses geometric criteria for avoiding bad shaped triangles, and folds and it use an internal set of already created diagonal to avoid the creation of non manifold situations. At the begin you shoud call this function with an empty vector to reset the set of existing diagonals.
Definition at line 1135 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::RemoveDoublet | ( | FaceType & | f, |
int | wedge, | ||
MeshType & | m, | ||
Pos * | affected = NULL |
||
) | [inline, static] |
Definition at line 482 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::RemoveDoubletOrSinglet | ( | FaceType & | f, |
int | wedge, | ||
MeshType & | m, | ||
Pos * | affected = NULL |
||
) | [inline, static] |
Definition at line 612 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::RemoveSinglet | ( | FaceType & | f, |
int | wedge, | ||
MeshType & | m, | ||
Pos * | affected = NULL |
||
) | [inline, static] |
Definition at line 499 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::RotateEdge | ( | FaceType & | f, |
int | w0a, | ||
MeshType & | m, | ||
Pos * | affected = NULL |
||
) | [inline, static] |
Definition at line 135 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::RotateVertex | ( | FaceType & | f, |
int | w0, | ||
MeshType & | , | ||
Pos * | affected = NULL |
||
) | [inline, static] |
Definition at line 325 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::SetValency | ( | VertexType * | v, |
int | n | ||
) | [inline, static] |
Definition at line 904 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::TestAndRemoveDoublet | ( | FaceType & | f, |
int | wedge, | ||
MeshType & | m | ||
) | [inline, static] |
Definition at line 548 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::TestAndRemoveSinglet | ( | FaceType & | f, |
int | wedge, | ||
MeshType & | m | ||
) | [inline, static] |
Definition at line 556 of file bitquad_support.h.
static int vcg::tri::BitQuad< _MeshType, Interpolator >::TestEdgeRotation | ( | const FaceType & | f, |
int | w0, | ||
ScalarType * | gain = NULL |
||
) | [inline, static] |
helper function: given a quad edge, retruns: 0 if that edge should not be rotated +1 if it should be rotated clockwise (+1) -1 if it should be rotated counterclockwise (-1) Currently an edge is rotated iff it is shortened by that rotations (shortcut criterion)
Definition at line 1012 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::TestVertexRotation | ( | const FaceType & | f, |
int | w0 | ||
) | [inline, static] |
Definition at line 311 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::UpdateValencyInFlags | ( | MeshType & | m | ) | [inline, static] |
Definition at line 957 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::UpdateValencyInQuality | ( | MeshType & | m | ) | [inline, static] |
Definition at line 968 of file bitquad_support.h.