Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::MonotonePolygonTriangulation::EdgeStatusTree Class Reference
Collaboration diagram for Aleph::MonotonePolygonTriangulation::EdgeStatusTree:
[legend]

Classes

struct  Node
 

Public Member Functions

 EdgeStatusTree (const Array< Point > &verts)
 
 ~EdgeStatusTree ()
 
bool contains (const size_t edge) const
 
void insert (const size_t edge, const Geom_Number &sweep_y)
 
void erase (const size_t edge)
 
size_t left_edge_of_point (const Point &p, const Geom_Number &sweep_y) const
 

Private Member Functions

size_t predecessor_for_insert (const size_t edge, const Geom_Number &sweep_y) const
 
size_t successor_for_insert (const size_t edge, const Geom_Number &sweep_y) const
 
Geom_Number fresh_label_between (const size_t pred, const size_t succ) const
 

Static Private Member Functions

static void split_by_label (Node *root, const Geom_Number &label, Node *&left, Node *&right)
 
static Nodemerge (Node *a, Node *b)
 
static Nodeinsert_by_label (Node *root, Node *node)
 
static Nodeerase_by_label (Node *root, const Geom_Number &label, Node *&removed)
 
static void destroy (const Node *n)
 

Private Attributes

Noderoot_ = nullptr
 
const Array< Point > & verts_
 
std::mt19937 rng_ {0x31415926u}
 
Array< Node * > nodes_
 

Detailed Description

Definition at line 6599 of file geom_algorithms.H.

Constructor & Destructor Documentation

◆ EdgeStatusTree()

Aleph::MonotonePolygonTriangulation::EdgeStatusTree::EdgeStatusTree ( const Array< Point > &  verts)
inlineexplicit

◆ ~EdgeStatusTree()

Aleph::MonotonePolygonTriangulation::EdgeStatusTree::~EdgeStatusTree ( )
inline

Definition at line 6756 of file geom_algorithms.H.

References destroy(), and root_.

Member Function Documentation

◆ contains()

bool Aleph::MonotonePolygonTriangulation::EdgeStatusTree::contains ( const size_t  edge) const
inline

Definition at line 6761 of file geom_algorithms.H.

References nodes_.

Referenced by erase(), and insert().

◆ destroy()

static void Aleph::MonotonePolygonTriangulation::EdgeStatusTree::destroy ( const Node n)
inlinestaticprivate

◆ erase()

void Aleph::MonotonePolygonTriangulation::EdgeStatusTree::erase ( const size_t  edge)
inline

◆ erase_by_label()

static Node * Aleph::MonotonePolygonTriangulation::EdgeStatusTree::erase_by_label ( Node root,
const Geom_Number label,
Node *&  removed 
)
inlinestaticprivate

◆ fresh_label_between()

Geom_Number Aleph::MonotonePolygonTriangulation::EdgeStatusTree::fresh_label_between ( const size_t  pred,
const size_t  succ 
) const
inlineprivate

Definition at line 6737 of file geom_algorithms.H.

References Aleph::and, Aleph::divide_and_conquer_partition_dp(), nodes_, and pred.

Referenced by insert().

◆ insert()

void Aleph::MonotonePolygonTriangulation::EdgeStatusTree::insert ( const size_t  edge,
const Geom_Number sweep_y 
)
inline

◆ insert_by_label()

◆ left_edge_of_point()

size_t Aleph::MonotonePolygonTriangulation::EdgeStatusTree::left_edge_of_point ( const Point p,
const Geom_Number sweep_y 
) const
inline

◆ merge()

static Node * Aleph::MonotonePolygonTriangulation::EdgeStatusTree::merge ( Node a,
Node b 
)
inlinestaticprivate

◆ predecessor_for_insert()

size_t Aleph::MonotonePolygonTriangulation::EdgeStatusTree::predecessor_for_insert ( const size_t  edge,
const Geom_Number sweep_y 
) const
inlineprivate

◆ split_by_label()

static void Aleph::MonotonePolygonTriangulation::EdgeStatusTree::split_by_label ( Node root,
const Geom_Number label,
Node *&  left,
Node *&  right 
)
inlinestaticprivate

◆ successor_for_insert()

size_t Aleph::MonotonePolygonTriangulation::EdgeStatusTree::successor_for_insert ( const size_t  edge,
const Geom_Number sweep_y 
) const
inlineprivate

Member Data Documentation

◆ nodes_

Array<Node *> Aleph::MonotonePolygonTriangulation::EdgeStatusTree::nodes_
private

Definition at line 6613 of file geom_algorithms.H.

Referenced by EdgeStatusTree(), contains(), erase(), fresh_label_between(), and insert().

◆ rng_

std::mt19937 Aleph::MonotonePolygonTriangulation::EdgeStatusTree::rng_ {0x31415926u}
private

Definition at line 6612 of file geom_algorithms.H.

Referenced by insert().

◆ root_

Node* Aleph::MonotonePolygonTriangulation::EdgeStatusTree::root_ = nullptr
private

◆ verts_

const Array<Point>& Aleph::MonotonePolygonTriangulation::EdgeStatusTree::verts_
private

The documentation for this class was generated from the following file: