libsurf
Programmer's Documentation

Public Member Functions | Private Attributes | List of all members
DcMeshHeightCrit Class Reference

Detailed Description

Mesh quality based on deviation from surface.

This criterion will split an edge or triangle if its midpoint deviates by more than a prescribed distance from the corresponding continuous surface.

See Also
DcMeshCritBase

#include <dcmeshcrit.h>

Inheritance diagram for DcMeshHeightCrit:
[legend]
Collaboration diagram for DcMeshHeightCrit:
[legend]

Public Member Functions

 DcMeshHeightCrit ()
 initialize criterion
 
virtual DcMeshCritBasePtr clone () const
 create a clone of the same type
 
void tolerance (Real h)
 set maximum allowed distance from surface
 
Real tolerance () const
 access maximum allowed distance from surface
 
virtual bool splitEdge (const AbstractUvCurve &cuv, Real ts, Real tt) const
 determine whether to split a curve on surface between ts and tt
 
virtual bool splitEdge (const Vct3 &ps, const Vct3 &pt, const Vct3 &tgs, const Vct3 &tgt, Real bf=1.0) const
 determine whether to split a boundary edge
 
virtual bool splitEdge (uint s, uint t) const
 determine whether to split boundary edge (s,t)
 
virtual int splitFace (uint a, uint b, uint c) const
 determine whether to split triangle (a,b,c)
 
- Public Member Functions inherited from DcMeshCritBase
 DcMeshCritBase ()
 create empty criterion
 
virtual ~DcMeshCritBase ()
 virtual base class destructor
 
virtual void assign (const Surface *srf, const PointList< 2 > *uv, const PointList< 2 > *st, const PointList< 3 > *xy, const PointList< 3 > *nm)
 attach to point lists
 
void npass (uint n)
 change number of refinement passes
 
uint npass () const
 number of refinement passes allowed
 
void maxNodes (uint n)
 change max number of allowed nodes
 
uint maxNodes () const
 access maximum number of nodes
 
uint nSmooth () const
 number of vertex smoothing iterations
 
void nSmooth (uint n)
 number of vertex smoothing iterations
 
void nSkipSmooth (uint skip)
 one smoothing pass every skip refinement iterations
 
uint nSkipSmooth ()
 one smoothing pass every skip refinement iterations
 
Real wSmooth () const
 relaxation factor for vertex smoothing
 
void wSmooth (Real w)
 relaxation factor for vertex smoothing
 
Real maxGrowthRatio () const
 maximum permitted triangle growth ratio
 
void maxGrowthRatio (Real mgr)
 maximum permitted triangle growth ratio
 
int splitFace (const uint v[]) const
 convenience shortcut
 
int checkGrowthRatio (const uint va[], const uint vb[]) const
 return whether to split va if it is too large for neighbor vb
 

Private Attributes

Real smaxHeight
 maximum allowed distance from surface
 

Additional Inherited Members

- Public Types inherited from DcMeshCritBase
enum  SplitFlag {
  NoSplit =0, SplitEdge1 =1, SplitEdge2 =2, SplitEdge3 =3,
  InsertCircumCenter, InsertCircumCenterE1, InsertCircumCenterE2, InsertCircumCenterE3,
  InsertTriCenter, TooSmall
}
 
- Static Public Member Functions inherited from DcMeshCritBase
static Real ccRadius (const Real len[])
 determine circumcenter radius from triangle side lengths
 
- Protected Member Functions inherited from DcMeshCritBase
const Vct2 & puv (uint k) const
 access vertex
 
const Vct2 & pst (uint k) const
 access vertex
 
const Vct3 & pxy (uint k) const
 access vertex
 
const Vct3 & pnm (uint k) const
 access vertex
 
- Protected Attributes inherited from DcMeshCritBase
const Surfacepsf
 pointer to surface object for the evaluation of height criterion
 
const PointList< 2 > * ppuv
 pointer to mesh vertices in (u,v) plane
 
const PointList< 2 > * ppst
 pointer to mesh vertices in (s,t) plane
 
const PointList< 3 > * ppxy
 pointer to mesh vertices in (x,y,z) space
 
const PointList< 3 > * ppnm
 pointer to surface normals at vertices
 
Real maxGrowth
 maximum permitted growth ratio
 
Real omegaSmoothing
 relaxation factor using for vertex smoothing
 
uint nSmoothing
 number of vertex smoothing iterations desired
 
uint nInnerSmoothSkip
 smooth once every n refinement passes
 
uint nRefinePass
 maximum number of refinement passes
 
uint nMaxNodeCount
 maximum number of nodes accepted
 

The documentation for this class was generated from the following files:
Generated on Wed Jan 19 2022 03:03:16 for libsurf by   doxygen 1.8.5