libsurf
Programmer's Documentation

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

Detailed Description

Specialized refinement criterion for non-smooth surfaces.

This criterion is useful for surfaces with a discontinuity in the surface normal at certain values of the parameter v, such that the y-component of the normal differs strongly between v-eps and v+eps.

See Also
DnMesh

#include <dnrefine.h>

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

Public Member Functions

 DnYKinkCriterion ()
 create unbound criterion
 
 DnYKinkCriterion (const DnMesh *pm)
 bind criterion object to mesh object
 
void addKink (Real v)
 register a kink location
 
Real eval (const uint *vi) const
 evaluate triangle 'quality' - larger value means earlier refinement
 
- Public Member Functions inherited from DnRegionCriterion
 DnRegionCriterion ()
 create unbound criterion
 
 DnRegionCriterion (const DnMesh *pm)
 bind criterion object to mesh object
 
 DnRegionCriterion (const DnRefineCriterion &a)
 copy-construct a region criterion
 
virtual ~DnRegionCriterion ()
 destructor
 
uint nregions () const
 number of currently active refinement regions
 
uint addRegion (const DnRefineRegion &rg)
 add a refinement region, general case
 
uint addRegion (const BndRect &rg, Real f)
 add a rectangular region with constant refinement
 
void removeRegions (uint first, uint last)
 remove regions with index [first, last)
 
void removeRegions (const Indices &idx)
 remove regions with indices idx
 
virtual void fromXml (const XmlElement &xe)
 read criteria from xml representation
 
virtual XmlElement toXml () const
 write criteria to xml representation
 
virtual DnRegionCriterionclone () const
 clone object
 
- Public Member Functions inherited from DnRefineCriterion
 DnRefineCriterion ()
 create unbound criterion (cannot be evaluated until bound)
 
 DnRefineCriterion (const DnMesh *pm)
 bind criterion object to mesh object
 
virtual ~DnRefineCriterion ()
 destructor
 
virtual void bind (const DnMesh *pm) const
 bind to mesh object
 
void setCriteria (Real lmax, Real lmin, Real phimax, Real stretch, uint n=1073741824u)
 change refinement criteria
 
Real maxLength () const
 access specified maximum edge length
 
void maxLength (Real ml)
 set maximum edge length
 
Real minLength () const
 access specified minimum edge length
 
void minLength (Real ml)
 set minimum edge length
 
Real maxPhi () const
 access maximum normal angle
 
void maxPhi (Real mp)
 set maximum normal angle
 
Real maxStretch () const
 access stretch criterion
 
void maxStretch (Real ms)
 set stretch criterion
 
uint nmax () const
 access maximum number of vertices
 
void nmax (uint n)
 set maximum number of vertices
 
virtual void globalScale (Real f)
 apply a global scaling factor to all length values
 
- Public Member Functions inherited from DnCriterion
virtual ~DnCriterion ()
 virtual destructor
 

Private Attributes

Vector vkinks
 kink locations
 

Additional Inherited Members

- Static Public Member Functions inherited from DnRefineCriterion
static DnRefineCriterionPtr createFromXml (const XmlElement &xe)
 create any criterion from XML
 
- Protected Member Functions inherited from DnRefineCriterion
void setDefault ()
 apply default parameters
 
- Protected Attributes inherited from DnRegionCriterion
DnRegionArray regions
 refinement regions
 
- Protected Attributes inherited from DnRefineCriterion
const DnMeshmsh
 mesh object to ask for coordinates
 
Real maxlen
 limits on geometric properties
 
Real minlen
 
Real maxphi
 
Real maxstretch
 
Real mincosphi
 derived property for angle criterion
 
uint nvmax
 maximum number of vertices to create by refinement
 

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