Public Types | Static Public Member Functions
vcg::tri::Harmonic< MeshType, Scalar > Class Template Reference

#include <harmonic.h>

List of all members.

Public Types

typedef double CoeffScalar
typedef std::pair< VertexType
*, Scalar > 
Constraint
typedef
ConstraintVec::const_iterator 
ConstraintIt
typedef std::vector< ConstraintConstraintVec
typedef MeshType::CoordType CoordType
typedef MeshType::FaceType FaceType
typedef MeshType::ScalarType ScalarType
typedef MeshType::VertexType VertexType
enum  WeightInfo { Success = 0, EdgeAlreadyVisited }

Static Public Member Functions

template<typename ScalarT >
static ScalarT ComputeAngle (const VertexType *a, const VertexType *b, const VertexType *c)
template<typename ACCESSOR >
static bool ComputeScalarField (MeshType &m, const ConstraintVec &constraints, ACCESSOR field, bool biharmonic=false)
 ComputeScalarField Generates a scalar harmonic field over the mesh. For more details see:
Kai Xua, Hao Zhang, Daniel Cohen-Or, Yueshan Xionga,'Dynamic Harmonic Fields for Surface Processing'. Computers & Graphics, 2009.
template<typename ScalarT >
static ScalarT CotangentWeight (const FaceType &f, int edge)
 ComputeWeight computes the cotangent weighting for an edge.
template<typename ScalarT >
static WeightInfo CotangentWeightIfNotVisited (const FaceType &f, int edge, ScalarT &weight)
 CotangentWeightIfNotVisited computes the cotangent weighting for an edge (if it has not be done yet). This must be ensured setting the visited flag on the face once all edge weights have been computed.

Detailed Description

template<class MeshType, typename Scalar = double>
class vcg::tri::Harmonic< MeshType, Scalar >

Definition at line 33 of file harmonic.h.


Member Typedef Documentation

template<class MeshType, typename Scalar = double>
typedef double vcg::tri::Harmonic< MeshType, Scalar >::CoeffScalar

Definition at line 41 of file harmonic.h.

template<class MeshType, typename Scalar = double>
typedef std::pair<VertexType *, Scalar> vcg::tri::Harmonic< MeshType, Scalar >::Constraint

Definition at line 43 of file harmonic.h.

template<class MeshType, typename Scalar = double>
typedef ConstraintVec::const_iterator vcg::tri::Harmonic< MeshType, Scalar >::ConstraintIt

Definition at line 45 of file harmonic.h.

template<class MeshType, typename Scalar = double>
typedef std::vector<Constraint> vcg::tri::Harmonic< MeshType, Scalar >::ConstraintVec

Definition at line 44 of file harmonic.h.

template<class MeshType, typename Scalar = double>
typedef MeshType::CoordType vcg::tri::Harmonic< MeshType, Scalar >::CoordType

Definition at line 38 of file harmonic.h.

template<class MeshType, typename Scalar = double>
typedef MeshType::FaceType vcg::tri::Harmonic< MeshType, Scalar >::FaceType

Definition at line 37 of file harmonic.h.

template<class MeshType, typename Scalar = double>
typedef MeshType::ScalarType vcg::tri::Harmonic< MeshType, Scalar >::ScalarType

Definition at line 39 of file harmonic.h.

template<class MeshType, typename Scalar = double>
typedef MeshType::VertexType vcg::tri::Harmonic< MeshType, Scalar >::VertexType

Definition at line 36 of file harmonic.h.


Member Enumeration Documentation

template<class MeshType, typename Scalar = double>
enum vcg::tri::Harmonic::WeightInfo
Enumerator:
Success 
EdgeAlreadyVisited 

Definition at line 173 of file harmonic.h.


Member Function Documentation

template<class MeshType, typename Scalar = double>
template<typename ScalarT >
static ScalarT vcg::tri::Harmonic< MeshType, Scalar >::ComputeAngle ( const VertexType a,
const VertexType b,
const VertexType c 
) [inline, static]

Definition at line 256 of file harmonic.h.

template<class MeshType, typename Scalar = double>
template<typename ACCESSOR >
static bool vcg::tri::Harmonic< MeshType, Scalar >::ComputeScalarField ( MeshType &  m,
const ConstraintVec constraints,
ACCESSOR  field,
bool  biharmonic = false 
) [inline, static]

ComputeScalarField Generates a scalar harmonic field over the mesh. For more details see:
Kai Xua, Hao Zhang, Daniel Cohen-Or, Yueshan Xionga,'Dynamic Harmonic Fields for Surface Processing'. Computers & Graphics, 2009.

Parameters:
mthe mesh
constraintsthe Dirichlet boundary conditions in the form of vector of pairs <vertex pointer, value>.
fieldthe accessor to use to write the computed per-vertex values (must have the [ ] operator).
Returns:
true if the algorithm succeeds, false otherwise.
Note:
the algorithm has unexpected behavior if the mesh contains unreferenced vertices.

Definition at line 58 of file harmonic.h.

template<class MeshType, typename Scalar = double>
template<typename ScalarT >
static ScalarT vcg::tri::Harmonic< MeshType, Scalar >::CotangentWeight ( const FaceType f,
int  edge 
) [inline, static]

ComputeWeight computes the cotangent weighting for an edge.

Parameters:
fthe face
edgethe edge of the provided face for which we compute the weight
Returns:
the computed weight
Note:
the mesh must have the face-face topology updated

Definition at line 214 of file harmonic.h.

template<class MeshType, typename Scalar = double>
template<typename ScalarT >
static WeightInfo vcg::tri::Harmonic< MeshType, Scalar >::CotangentWeightIfNotVisited ( const FaceType f,
int  edge,
ScalarT &  weight 
) [inline, static]

CotangentWeightIfNotVisited computes the cotangent weighting for an edge (if it has not be done yet). This must be ensured setting the visited flag on the face once all edge weights have been computed.

Parameters:
fthe face
edgethe edge of the provided face for which we compute the weight
weightthe computed weight (output)
Returns:
Success if everything is fine, EdgeAlreadyVisited if the weight for the considered edge has been already computed.
Note:
the mesh must have the face-face topology updated

Definition at line 192 of file harmonic.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:37