libsurf
Programmer's Documentation

Public Member Functions | Private Attributes | List of all members
DcMeshMultiCrit Class Reference
Inheritance diagram for DcMeshMultiCrit:
[legend]
Collaboration diagram for DcMeshMultiCrit:
[legend]

Public Member Functions

virtual DcMeshCritBasePtr clone () const
 create a clone of the same type
 
void append (DcMeshCritBasePtr pmc)
 append a new criterion
 
void assign (const Surface *srf, const PointList< 2 > *uv, const PointList< 2 > *st, const PointList< 3 > *xy, const PointList< 3 > *nm)
 pass reference data down
 
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
 
bool splitEdge (const AbstractUvCurve &cuv, Real ts, Real tt) const
 determine whether to split a curve on surface between ts and tt
 
bool splitEdge (uint s, uint t) const
 determine whether to split boundary edge (s,t)
 
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
 
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

std::vector< DcMeshCritBasePtr > m_crits
 set of criteria to evaluate
 

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 Fri Dec 2 2022 03:03:15 for libsurf by   doxygen 1.8.5