Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes
vcg::tri::CoM< MeshType > Class Template Reference

A class for managing curves on a 2manifold. More...

#include <curve_on_manifold.h>

List of all members.

Classes

class  EdgePointPred
struct  EdgePointSplit
class  Param
class  QualitySign
struct  QualitySignSplit

Public Types

typedef Box3< ScalarTypeBox3Type
typedef MeshType::CoordType CoordType
typedef vcg::GridStaticPtr
< EdgeType, ScalarType
EdgeGrid
typedef MeshType::EdgeIterator EdgeIterator
typedef MeshType::EdgeType EdgeType
typedef MeshType::FaceIterator FaceIterator
typedef MeshType::FacePointer FacePointer
typedef MeshType::FaceType FaceType
typedef vcg::GridStaticPtr
< FaceType, ScalarType
MeshGrid
typedef face::Pos< FaceTypePosType
typedef MeshType::ScalarType ScalarType
typedef MeshType::VertexIterator VertexIterator
typedef MeshType::VertexPointer VertexPointer
typedef MeshType::VertexType VertexType

Public Member Functions

void BuildConnectedComponentVectors (MeshType &poly, std::vector< std::vector< int > > &ccVec)
void BuildConnectedComponentVectorsOld (MeshType &poly, std::vector< std::vector< int > > &ccVec)
void BuildVisitTree (MeshType &dualMesh)
void CleanSpuriousDanglingEdges (MeshType &poly)
 CoM (MeshType &_m)
Plane3f ComputeEdgePlane (VertexType *v0, VertexType *v1)
void ComputePlaneField (MeshType &poly, EdgeGrid &edgeGrid, int ind)
int countNonVisitedEdges (VertexType *vp, EdgeType *&ep)
void CutAlongPolyLineUsingField (MeshType &poly, EdgeGrid &edgeGrid, std::vector< int > &newVertVec)
void CutWithPolyLine (MeshType &poly)
void DecomposeNonManifoldPolyline (MeshType &poly, bool singSplitFlag=true)
void DumpPlaneMesh (MeshType &poly, std::vector< Plane3f > &planeVec, int i=0)
void EvaluateHausdorffDistance (MeshType &poly, Distribution< ScalarType > &dist)
bool ExistEdge (KdTree< ScalarType > &kdtree, CoordType &p0, CoordType &p1, PosType &fpos)
void ExtractSubMesh (MeshType &poly, std::vector< int > &ind, MeshType &subPoly)
void Init ()
void MarkFauxEdgeWithPolyLine (MeshType &m, MeshType &e)
float MaxSegDist (VertexType *v0, VertexType *v1, Point3f &farthestPointOnSurf, Point3f &farthestN, Distribution< ScalarType > *dist=0)
float MinDistOnEdge (Point3f samplePnt, EdgeGrid &edgeGrid, MeshType &poly, Point3f &closestPoint)
bool OptimizeTree (MeshType &t)
void Refine (MeshType &poly, bool uniformFlag=false)
void RefineBaseMesh (MeshType &poly)
void Reorient (MeshType &poly, std::vector< std::vector< int > > &ccVec)
void Retract (MeshType &t)
void Simplify (MeshType &poly)
void SmoothProject (MeshType &poly, int iterNum, ScalarType smoothWeight, ScalarType projectWeight)
 SmoothProject.
void SnapPolyline (MeshType &t)
void SnapPolyline (MeshType &poly, std::vector< int > *newVertVec)
void SplitMeshWithPoints (MeshType &m, std::vector< VertexType * > &vec, std::vector< int > &newVertVec)
void WalkAlongPolyLine (MeshType &poly, std::vector< VertexType * > &ptVec)

Static Public Member Functions

static bool CompareVertex (const MeshType &m, const VertexType &vA, const VertexType &vB)
static void ExtractVertex (const MeshType &srcMesh, const FaceType &f, int whichWedge, const MeshType &dstMesh, VertexType &v)
 ExtractVertex must extract an unambiguous representation of a vertex to be used with attribute_seam.h.
static void FindTerminalPoints (MeshType &poly, std::vector< VertexType * > &vec)
static float MinDistOnEdge (VertexType *v0, VertexType *v1, EdgeGrid &edgeGrid, MeshType &poly, Point3f &closestPoint)
static Point3f QLerp (VertexType *v0, VertexType *v1)

Public Attributes

MeshType & base
Param par
MeshGrid uniformGrid

Detailed Description

template<class MeshType>
class vcg::tri::CoM< MeshType >

A class for managing curves on a 2manifold.

This class is used to project/simplify/smooth polylines over a triangulated surface.

Definition at line 53 of file curve_on_manifold.h.


Member Typedef Documentation

template<class MeshType >
typedef Box3<ScalarType> vcg::tri::CoM< MeshType >::Box3Type

Definition at line 66 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::CoordType vcg::tri::CoM< MeshType >::CoordType

Definition at line 57 of file curve_on_manifold.h.

template<class MeshType >
typedef vcg::GridStaticPtr<EdgeType, ScalarType> vcg::tri::CoM< MeshType >::EdgeGrid

Definition at line 68 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::EdgeIterator vcg::tri::CoM< MeshType >::EdgeIterator

Definition at line 61 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::EdgeType vcg::tri::CoM< MeshType >::EdgeType

Definition at line 62 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::FaceIterator vcg::tri::CoM< MeshType >::FaceIterator

Definition at line 65 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::FacePointer vcg::tri::CoM< MeshType >::FacePointer

Definition at line 64 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::FaceType vcg::tri::CoM< MeshType >::FaceType

Definition at line 63 of file curve_on_manifold.h.

template<class MeshType >
typedef vcg::GridStaticPtr<FaceType, ScalarType> vcg::tri::CoM< MeshType >::MeshGrid

Definition at line 67 of file curve_on_manifold.h.

template<class MeshType >
typedef face::Pos<FaceType> vcg::tri::CoM< MeshType >::PosType

Definition at line 69 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::ScalarType vcg::tri::CoM< MeshType >::ScalarType

Definition at line 56 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::VertexIterator vcg::tri::CoM< MeshType >::VertexIterator

Definition at line 60 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::VertexPointer vcg::tri::CoM< MeshType >::VertexPointer

Definition at line 59 of file curve_on_manifold.h.

template<class MeshType >
typedef MeshType::VertexType vcg::tri::CoM< MeshType >::VertexType

Definition at line 58 of file curve_on_manifold.h.


Constructor & Destructor Documentation

template<class MeshType >
vcg::tri::CoM< MeshType >::CoM ( MeshType &  _m) [inline]

Definition at line 113 of file curve_on_manifold.h.


Member Function Documentation

template<class MeshType >
void vcg::tri::CoM< MeshType >::BuildConnectedComponentVectors ( MeshType &  poly,
std::vector< std::vector< int > > &  ccVec 
) [inline]

Definition at line 999 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::BuildConnectedComponentVectorsOld ( MeshType &  poly,
std::vector< std::vector< int > > &  ccVec 
) [inline]

Definition at line 1047 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::BuildVisitTree ( MeshType &  dualMesh) [inline]

Definition at line 328 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::CleanSpuriousDanglingEdges ( MeshType &  poly) [inline]

Definition at line 245 of file curve_on_manifold.h.

template<class MeshType >
static bool vcg::tri::CoM< MeshType >::CompareVertex ( const MeshType &  m,
const VertexType vA,
const VertexType vB 
) [inline, static]

Definition at line 499 of file curve_on_manifold.h.

template<class MeshType >
Plane3f vcg::tri::CoM< MeshType >::ComputeEdgePlane ( VertexType v0,
VertexType v1 
) [inline]

Definition at line 663 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::ComputePlaneField ( MeshType &  poly,
EdgeGrid edgeGrid,
int  ind 
) [inline]

Definition at line 676 of file curve_on_manifold.h.

template<class MeshType >
int vcg::tri::CoM< MeshType >::countNonVisitedEdges ( VertexType vp,
EdgeType *&  ep 
) [inline]

Definition at line 118 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::CutAlongPolyLineUsingField ( MeshType &  poly,
EdgeGrid edgeGrid,
std::vector< int > &  newVertVec 
) [inline]

Definition at line 714 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::CutWithPolyLine ( MeshType &  poly) [inline]

Definition at line 828 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::DecomposeNonManifoldPolyline ( MeshType &  poly,
bool  singSplitFlag = true 
) [inline]

Definition at line 938 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::DumpPlaneMesh ( MeshType &  poly,
std::vector< Plane3f > &  planeVec,
int  i = 0 
) [inline]

Definition at line 648 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::EvaluateHausdorffDistance ( MeshType &  poly,
Distribution< ScalarType > &  dist 
) [inline]

Definition at line 1291 of file curve_on_manifold.h.

template<class MeshType >
bool vcg::tri::CoM< MeshType >::ExistEdge ( KdTree< ScalarType > &  kdtree,
CoordType p0,
CoordType p1,
PosType fpos 
) [inline]

Definition at line 138 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::ExtractSubMesh ( MeshType &  poly,
std::vector< int > &  ind,
MeshType &  subPoly 
) [inline]

Definition at line 1099 of file curve_on_manifold.h.

template<class MeshType >
static void vcg::tri::CoM< MeshType >::ExtractVertex ( const MeshType &  srcMesh,
const FaceType f,
int  whichWedge,
const MeshType &  dstMesh,
VertexType v 
) [inline, static]

ExtractVertex must extract an unambiguous representation of a vertex to be used with attribute_seam.h.

Definition at line 489 of file curve_on_manifold.h.

template<class MeshType >
static void vcg::tri::CoM< MeshType >::FindTerminalPoints ( MeshType &  poly,
std::vector< VertexType * > &  vec 
) [inline, static]

Definition at line 986 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::Init ( ) [inline]

Definition at line 1245 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::MarkFauxEdgeWithPolyLine ( MeshType &  m,
MeshType &  e 
) [inline]

Definition at line 379 of file curve_on_manifold.h.

template<class MeshType >
float vcg::tri::CoM< MeshType >::MaxSegDist ( VertexType v0,
VertexType v1,
Point3f farthestPointOnSurf,
Point3f farthestN,
Distribution< ScalarType > *  dist = 0 
) [inline]

Definition at line 1314 of file curve_on_manifold.h.

template<class MeshType >
float vcg::tri::CoM< MeshType >::MinDistOnEdge ( Point3f  samplePnt,
EdgeGrid edgeGrid,
MeshType &  poly,
Point3f closestPoint 
) [inline]

Definition at line 450 of file curve_on_manifold.h.

template<class MeshType >
static float vcg::tri::CoM< MeshType >::MinDistOnEdge ( VertexType v0,
VertexType v1,
EdgeGrid edgeGrid,
MeshType &  poly,
Point3f closestPoint 
) [inline, static]

Definition at line 459 of file curve_on_manifold.h.

template<class MeshType >
bool vcg::tri::CoM< MeshType >::OptimizeTree ( MeshType &  t) [inline]

Definition at line 172 of file curve_on_manifold.h.

template<class MeshType >
static Point3f vcg::tri::CoM< MeshType >::QLerp ( VertexType v0,
VertexType v1 
) [inline, static]

Definition at line 510 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::Refine ( MeshType &  poly,
bool  uniformFlag = false 
) [inline]

Definition at line 1338 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::RefineBaseMesh ( MeshType &  poly) [inline]

Definition at line 1364 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::Reorient ( MeshType &  poly,
std::vector< std::vector< int > > &  ccVec 
) [inline]

Definition at line 1124 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::Retract ( MeshType &  t) [inline]

Definition at line 195 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::Simplify ( MeshType &  poly) [inline]

Definition at line 1255 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::SmoothProject ( MeshType &  poly,
int  iterNum,
ScalarType  smoothWeight,
ScalarType  projectWeight 
) [inline]

SmoothProject.

Parameters:
poly
iterNum
smoothWeight[0..1] range;
projectWeight[0..1] range;

The very important function to adapt a polyline onto the base mesh The projection process must be done slowly to guarantee some empirical convergence... For each iteration it choose a new position of each vertex of the polyline. The new position is a blend between the smoothed position, the closest point on the surface and the original position. You need a good balance... after each iteration the polyline is refined and simplified.

Definition at line 1434 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::SnapPolyline ( MeshType &  t) [inline]

Definition at line 412 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::SnapPolyline ( MeshType &  poly,
std::vector< int > *  newVertVec 
) [inline]

Definition at line 873 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::SplitMeshWithPoints ( MeshType &  m,
std::vector< VertexType * > &  vec,
std::vector< int > &  newVertVec 
) [inline]

Definition at line 1171 of file curve_on_manifold.h.

template<class MeshType >
void vcg::tri::CoM< MeshType >::WalkAlongPolyLine ( MeshType &  poly,
std::vector< VertexType * > &  ptVec 
) [inline]

Definition at line 798 of file curve_on_manifold.h.


Member Data Documentation

template<class MeshType >
MeshType& vcg::tri::CoM< MeshType >::base

Definition at line 109 of file curve_on_manifold.h.

template<class MeshType >
Param vcg::tri::CoM< MeshType >::par

Definition at line 112 of file curve_on_manifold.h.

template<class MeshType >
MeshGrid vcg::tri::CoM< MeshType >::uniformGrid

Definition at line 110 of file curve_on_manifold.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:42:07