#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::VertexType | VertexType |
Static Public Member Functions | |
static void | _CollapseDiagHalf (FaceType &f, int faux, MeshType &m) |
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 edge) |
static ScalarType | QuadQualityVariationIfVertexRotated (const FaceType &f, int w0) |
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 &m, 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::VertexType vcg::tri::BitQuad< _MeshType, Interpolator >::VertexType |
Definition at line 91 of file bitquad_support.h.
enum vcg::tri::BitQuad::___ |
Definition at line 901 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::_CollapseDiagHalf | ( | FaceType & | f, | |
int | faux, | |||
MeshType & | m | |||
) | [inline, static] |
Definition at line 445 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::CheckFlipDiag | ( | FaceType & | f | ) | [inline, static] |
Definition at line 425 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 703 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 762 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 668 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::CollapseEdgeDirect | ( | FaceType & | f, | |
int | w0, | |||
MeshType & | m | |||
) | [inline, static] |
Definition at line 644 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 1120 of file bitquad_support.h.
static int vcg::tri::BitQuad< _MeshType, Interpolator >::CountBitPolygonInternalValency | ( | const FaceType & | f, | |
int | wedge | |||
) | [inline, static] |
Definition at line 568 of file bitquad_support.h.
static CoordType vcg::tri::BitQuad< _MeshType, Interpolator >::CounterDiag | ( | const FaceType * | f | ) | [inline, static] |
Definition at line 437 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::DecreaseValency | ( | FaceType * | f, | |
int | wedge, | |||
MeshType & | m | |||
) | [inline, static] |
Definition at line 934 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::DecreaseValencyNoSingletTest | ( | VertexType * | v, | |
int | dv, | |||
MeshType & | m | |||
) | [inline, static] |
Definition at line 944 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::DecreaseValencySimple | ( | VertexType * | v, | |
int | dv | |||
) | [inline, static] |
Definition at line 951 of file bitquad_support.h.
static CoordType vcg::tri::BitQuad< _MeshType, Interpolator >::Diag | ( | const FaceType * | f | ) | [inline, static] |
Definition at line 430 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::EdgeLenghtVariationIfVertexRotated | ( | const FaceType & | f, | |
int | w0 | |||
) | [inline, static] |
Definition at line 206 of file bitquad_support.h.
static int vcg::tri::BitQuad< _MeshType, Interpolator >::FauxIndex | ( | const FaceType * | f | ) | [inline, static] |
Definition at line 180 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::FlipDiag | ( | FaceType & | f | ) | [inline, static] |
Definition at line 188 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::FlipEdge | ( | FaceType & | f, | |
int | k, | |||
MeshType & | m | |||
) | [inline, static] |
Definition at line 392 of file bitquad_support.h.
static int vcg::tri::BitQuad< _MeshType, Interpolator >::GetValency | ( | const VertexType * | v | ) | [inline, static] |
Definition at line 910 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::HasConsistentValencyFlag | ( | MeshType & | m | ) | [inline, static] |
Definition at line 978 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::IncreaseValency | ( | VertexType * | v, | |
int | dv = 1 | |||
) | [inline, static] |
Definition at line 915 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 585 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 640 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 120 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::PosOnDiag | ( | const FaceType & | f, | |
bool | counterDiag | |||
) | [inline, static] |
Definition at line 876 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 1104 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::quadQuality | ( | FaceType * | f, | |
int | edge | |||
) | [inline, static] |
Definition at line 993 of file bitquad_support.h.
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::QuadQualityVariationIfVertexRotated | ( | const FaceType & | f, | |
int | w0 | |||
) | [inline, static] |
Definition at line 241 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 483 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 500 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 134 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::RotateVertex | ( | FaceType & | f, | |
int | w0, | |||
MeshType & | m, | |||
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 903 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::TestAndRemoveDoublet | ( | FaceType & | f, | |
int | wedge, | |||
MeshType & | m | |||
) | [inline, static] |
Definition at line 549 of file bitquad_support.h.
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::TestAndRemoveSinglet | ( | FaceType & | f, | |
int | wedge, | |||
MeshType & | m | |||
) | [inline, static] |
Definition at line 557 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 1014 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 956 of file bitquad_support.h.
static void vcg::tri::BitQuad< _MeshType, Interpolator >::UpdateValencyInQuality | ( | MeshType & | m | ) | [inline, static] |
Definition at line 967 of file bitquad_support.h.