libsurf
Programmer's Documentation

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

Detailed Description

Priority queue for mesh refinement/improvement.

The idea is to keep a heap of triangles sorted by their geometric quality, so that the top element is always the 'worst'. Unfortunately, this does not work very well, because the refinement process modifies the quality of triangles already in the heap, so that the heap property is destroyed.

See Also
DnMesh

#include <dnrefine.h>

Collaboration diagram for DnTriangleHeap:
[legend]

Public Member Functions

 DnTriangleHeap (const DnCriterion &crit, const DnTriangleArray &t)
 initialize, put all valid triangles into heap
 
 DnTriangleHeap (const DnCriterion &crit, const DnTriangleArray &t, const Indices &idx)
 initialize, put valid triangles from index set into heap
 
void refill ()
 put all critical triangles into heap again
 
bool empty () const
 empty or not?
 
uint size () const
 number of elements on heap
 
uint top () const
 return top element
 
void pop ()
 pop top element
 
void push (uint i)
 push new element on heap
 
void append (const Indices &idx)
 add list of triangles to existing ones, re-establish heap
 
void print ()
 

Private Attributes

const DnTriangleArray & triangles
 triangle array
 
DnTriangleCompare cmp
 comparison object
 
Indices iheap
 indices into triangle array
 

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