Programmer's Documentation

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

Detailed Description

Face in a plane Delaunay triangulation.

DcFace is a simple, 'dumb' container for three vertex indices. It is used as a secondary data structure in DelaunayCore.

DcEdge and DcFace use 4-byte integer indices instead of pointers to objects in order to keep the object size as small as possible on 64bit systems, thus allowing more elements to fit into the processor cache.

See Also
DelaunayCore, DcEdge

#include <dcface.h>

Public Types

enum  SplitConfig {
  NoSplit = 0, SplitEdge0 = 1, SplitEdge1 = 2, SplitEdge2 = 4,
  QuadSplit = 7

Public Member Functions

 DcFace ()
 create undefined face
 DcFace (uint a, uint b, uint c)
 define face
 DcFace (const uint vip[])
 define face
bool valid () const
 check whether edge is defined
void invalidate ()
 make invalid
const uint * vertices () const
 access vertices
void copyVertices (uint v[]) const
 copy vertices
uint opposedVertex (uint s, uint t) const
 return vertex opposing edge vertices s, t, or NotFound
Real cosApexAngle (const PointList3d &pts, uint a) const
 determine cosine of angle at node a
uint find (uint v) const
 check whether face contains v
DcEdge edge (uint k) const
 compute edge k
uint esource (uint k) const
 return source vertex of edge k
uint etarget (uint k) const
 return target vertex of edge k
uint findEdge (uint s, uint t)
 find edge (s,t)
size_t zcode (const PointList< 2 > &vtx, Real qoffset, Real qscale) const
 determine Morton code (or z-code) from vertex array and quantization

Private Member Functions

void assign (uint a, uint b, uint c)
 set vertex indices

Private Attributes

uint vix [3]
 three vertices

Member Enumeration Documentation


No split performed.


First edge (v[0],v[1]) split.


Second edge (v[1],v[2]) split.


Third edge (v[2],v[0]) split.


All edges split.

The documentation for this class was generated from the following file:
Generated on Thu Sep 29 2022 03:03:15 for libsurf by   doxygen 1.8.5