Programmer's Documentation

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

Detailed Description

Three-dimensional Delaunay criteria.

DcSpatialGeometry implements a three-dimensional intepretation of the Delaunay criterion using circumspheres in 3D instead of circumcircles in 2D. This corresponds to the criterion used by the legacy mesh generation kernel DnMesh.

See Also

#include <dcspatialgeometry.h>

Inheritance diagram for DcSpatialGeometry:
Collaboration diagram for DcSpatialGeometry:

Public Member Functions

 DcSpatialGeometry (Real stmin=-0.1, Real stmax=1.1)
 empty geometry object
virtual int edgesIntersect (uint as, uint at, uint bs, uint bt) const
 check whether edge (as,at) intersects (bs,bt)
virtual bool encroaches (const DelaunayCore &core, const uint vf[], uint v) const
 encroachment criterion
virtual bool encroachesEdge (uint src, uint trg, uint v) const
 true if vertex encroaches ball around protected edge
- Public Member Functions inherited from DcGeometry
 DcGeometry (Real stmin=-0.1, Real stmax=1.1)
 construct with default quantization range
virtual ~DcGeometry ()
 virtual destructor
virtual void reserve (uint n)
 pre-allocate space for n vertices
void quantRange (Real stmin, Real stmax)
 change quantization range
Real pointTolerance () const
 access squared min distance between points
void pointTolerance (Real sqd)
 set squared min distance between points
uint stInsertVertex (const Vct2 &pst)
 append vertex (s-t space)
const PointList< 2 > & stVertices () const
 access s-t vertices
const Vct2 & stVertex (uint k) const
 access s-t vertex
Vct2 & stVertex (uint k)
 access s-t vertex
void assign (const PointList< 2 > &pts)
 assign/copy vertex set
virtual int orientation (uint a, uint b, uint c) const
 evaluate whether a, b, c occur in counterclockwise order
int orientChanged (const uint vi[], uint a, const Vct2 &pa) const
 determine how the orientation changes when a is moved to pa
virtual void insertFace (const DelaunayCore &core, uint f)
 add a face to triangle search data structure (empty)
size_t insertFace (uint f, const uint vix[])
 add a face to triangle search data structure
virtual void eraseFace (const DelaunayCore &core, uint f)
 remove face from search data structure (empty)
bool eraseFace (uint, const uint vix[])
 remove face from search data structure
bool eraseFaceKey (size_t key)
 given its key, erase face from map
virtual int locateTriangle (const DelaunayCore &core, uint v, uint &nearest) const
 locate triangle in which to find v (empty)
void remapFaces (const DelaunayCore &core)
 recompute z-ordering of all faces following vertex smoothing pass
virtual void clear ()
 clear out everything
uint calls () const
uint iterations () const

Private Member Functions

void pointOnSphere (const uint vf[], Vct3 &pcs) const
 compute point on circumsphere

Private Attributes

PointList< 3 > m_vtx
 vertex array

Additional Inherited Members

- Public Types inherited from DcGeometry
enum  Orient { Clockwise, Colinear, CounterClockwise }
enum  PointLoc {
  Inside, Outside, OnEdge1, OnEdge2,
  OnEdge3, OnVertex1, OnVertex2, OnVertex3,
  BeyondEdge1, BeyondEdge2, BeyondEdge3
enum  EdgeIntersection { NoEdgeIntersection = 0, EdgesIntersect, EdgesTouch, EdgesColinear }
- Static Public Member Functions inherited from DcGeometry
static int orientationPlanar (const Vct2 &pa, const Vct2 &pb, const Vct2 &pc)
 planar orientation test
static bool encroachCircle (const Vct2 &p0, const Vct2 &p1, const Vct2 &p2, const Vct2 &ptest)
 planar encroachment test
template<uint ND>
static bool encroachesBall (const SVector< ND > &ps, const SVector< ND > &pt, const SVector< ND > &v)
 point inside smallest ball touching ps and pt?
- Protected Member Functions inherited from DcGeometry
size_t mortonKey (const uint vix[]) const
 compute Morton key for center of triangle with vertices vix[]
int walkEdge (const DelaunayCore &core, const Vct2 &pt, uint &iface) const
- Protected Attributes inherited from DcGeometry
PointList< 2 > m_st
 vertices in the definition plane
DcIndexMap m_fmap
 keep sorted ordering of faces
Real m_qoffset
 quantization parameters
Real m_qscale
Real m_sqptsize
 squared distance at which two points are considered identical
uint ncall
 call statistics
uint niter

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