Classes | Public Types | Static Public Member Functions | Static Private Member Functions
vcg::tri::BitQuad< _MeshType, Interpolator > Class Template Reference

#include <bitquad_support.h>

List of all members.

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)

Detailed Description

template<class _MeshType, class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
class vcg::tri::BitQuad< _MeshType, Interpolator >

Definition at line 83 of file bitquad_support.h.


Member Typedef Documentation

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef MeshType::CoordType vcg::tri::BitQuad< _MeshType, Interpolator >::CoordType

Definition at line 88 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef MeshType::FaceIterator vcg::tri::BitQuad< _MeshType, Interpolator >::FaceIterator

Definition at line 92 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef MeshType::FaceType vcg::tri::BitQuad< _MeshType, Interpolator >::FaceType

Definition at line 89 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef MeshType::FaceType* vcg::tri::BitQuad< _MeshType, Interpolator >::FaceTypeP

Definition at line 90 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef _MeshType vcg::tri::BitQuad< _MeshType, Interpolator >::MeshType

Definition at line 86 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef MeshType::ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::ScalarType

Definition at line 87 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef MeshType::VertexIterator vcg::tri::BitQuad< _MeshType, Interpolator >::VertexIterator

Definition at line 93 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef MeshType::VertexPointer vcg::tri::BitQuad< _MeshType, Interpolator >::VertexPointer

Definition at line 94 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
typedef MeshType::VertexType vcg::tri::BitQuad< _MeshType, Interpolator >::VertexType

Definition at line 91 of file bitquad_support.h.


Member Enumeration Documentation

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
enum vcg::tri::BitQuad::___
Enumerator:
VALENCY_FLAGS 

Definition at line 902 of file bitquad_support.h.


Member Function Documentation

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static void vcg::tri::BitQuad< _MeshType, Interpolator >::_CollapseDiagHalf ( FaceType f,
int  faux,
MeshType  
) [inline, static]

Definition at line 444 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::CheckFlipDiag ( FaceType f) [inline, static]

Definition at line 424 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static int vcg::tri::BitQuad< _MeshType, Interpolator >::CountBitPolygonInternalValency ( const FaceType f,
int  wedge 
) [inline, static]

Definition at line 567 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static CoordType vcg::tri::BitQuad< _MeshType, Interpolator >::CounterDiag ( const FaceType f) [inline, static]

Definition at line 436 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static void vcg::tri::BitQuad< _MeshType, Interpolator >::DecreaseValencySimple ( VertexType v,
int  dv 
) [inline, static]

Definition at line 952 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static CoordType vcg::tri::BitQuad< _MeshType, Interpolator >::Diag ( const FaceType f) [inline, static]

Definition at line 429 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::EdgeLenghtVariationIfVertexRotated ( const FaceType f,
int  w0 
) [inline, static]

Definition at line 207 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static int vcg::tri::BitQuad< _MeshType, Interpolator >::FauxIndex ( const FaceType f) [inline, static]

Definition at line 181 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static void vcg::tri::BitQuad< _MeshType, Interpolator >::FlipDiag ( FaceType f) [inline, static]

Definition at line 189 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static int vcg::tri::BitQuad< _MeshType, Interpolator >::GetValency ( const VertexType v) [inline, static]

Definition at line 911 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::HasConsistentValencyFlag ( MeshType m) [inline, static]

Definition at line 977 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static void vcg::tri::BitQuad< _MeshType, Interpolator >::IncreaseValency ( VertexType v,
int  dv = 1 
) [inline, static]

Definition at line 916 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsDoublet ( const FaceType f,
int  wedge 
) [inline, static]

Definition at line 604 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsDoubletFF ( const FaceType f,
int  wedge 
) [inline, static]

Definition at line 584 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsDoubletOrSinglet ( const FaceType f,
int  wedge 
) [inline, static]

Definition at line 608 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsSinglet ( const FaceType f,
int  wedge 
) [inline, static]

Definition at line 641 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::IsSingletFF ( const FaceType f,
int  wedge 
) [inline, static]

Definition at line 621 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static void vcg::tri::BitQuad< _MeshType, Interpolator >::MarkFaceF ( FaceType f) [inline, static]

Definition at line 121 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::PosOnDiag ( const FaceType f,
bool  counterDiag 
) [inline, static]

Definition at line 877 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::quadQuality ( FaceType f,
int  edgeInd 
) [inline, static]

Definition at line 992 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static ScalarType vcg::tri::BitQuad< _MeshType, Interpolator >::QuadQualityVariationIfVertexRotated ( const FaceType f,
int  w0 
) [inline, static]

Definition at line 243 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
template<bool verse>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static void vcg::tri::BitQuad< _MeshType, Interpolator >::SetValency ( VertexType v,
int  n 
) [inline, static]

Definition at line 904 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
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.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static bool vcg::tri::BitQuad< _MeshType, Interpolator >::TestVertexRotation ( const FaceType f,
int  w0 
) [inline, static]

Definition at line 311 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static void vcg::tri::BitQuad< _MeshType, Interpolator >::UpdateValencyInFlags ( MeshType m) [inline, static]

Definition at line 957 of file bitquad_support.h.

template<class _MeshType , class Interpolator = GeometricInterpolator<typename _MeshType::VertexType>>
static void vcg::tri::BitQuad< _MeshType, Interpolator >::UpdateValencyInQuality ( MeshType m) [inline, static]

Definition at line 968 of file bitquad_support.h.


The documentation for this class was generated from the following file:


shape_reconstruction
Author(s): Roberto Martín-Martín
autogenerated on Sat Jun 8 2019 18:41:58