Easy3D 2.5.3
VoronoiCell3d Class Reference

A data structure for 3D Voronoi cells. More...

#include <easy3d/algo/delaunay_3d.h>

Public Member Functions

void clear ()
 
unsigned int nb_facets () const
 
unsigned int facet_begin (unsigned int f) const
 
unsigned int facet_end (unsigned int f) const
 
unsigned int nb_vertices (unsigned int f) const
 
unsigned int next_around_facet (unsigned int f, unsigned int i) const
 
unsigned int prev_around_facet (unsigned int f, unsigned int i) const
 
unsigned int facet_bisector (unsigned int f) const
 
int edge_bisector (unsigned int i) const
 
const vec3vertex (unsigned int i) const
 
bool vertex_is_infinite (unsigned int i) const
 
void begin_facet (unsigned int f_bisector)
 
void add_to_facet (int e_bisector, const vec3 &v, bool infinite)
 
void add_to_facet (int e_bisector, bool infinite)
 
void end_facet ()
 
unsigned int find_facet (unsigned int bisector)
 

Detailed Description

A data structure for 3D Voronoi cells.

A 3D Voronoi cell stores the dual facets in a Compressed Row Storage array.

  • Each facet knows the bisector it is on, and the list of vertices/edges.
    • Each vertex knows the tet it is dual to.
    • Each edge knows the other bisector it is on (an edge is defined as the intersection between the facet bisector and the edge bisector).

Member Function Documentation

◆ edge_bisector()

int edge_bisector ( unsigned int  i) const
inline

-The vertices of facet(f) are denoted by indices i in the range [facet_begin(f) ... facet_end(f) - 1].

  • vertex i is the dual of a tetrahedron t incident to the edge [v1,v2]
  • edge_bisector(i) returns the vertex of t oriented clockwise relative to the edge [v1,v2].
  • Note: an infinite facet has two vertices i1 and i2 that are dual to infinite tetrahedra. Supposing the proper ordering of i1 and i2, edge_bisector(i1) returns the vertex of the boundary facet that is incident to [v1,v2], and edge_bisector(i2) returns -1 (infinite vertex). (the other vertex of the other boundary facet that is incident to [v1,v2] is encountered when traversing the dual vertex/tetrahedron that precedes v2).

◆ facet_bisector()

unsigned int facet_bisector ( unsigned int  f) const
inline
  • This VoronoiCell3d is the dual of vertex v1,
  • Facet f lies on the bisector plane of [v1,v2],
  • facet_bisector(f) returns v2.

◆ vertex()

const vec3 & vertex ( unsigned int  i) const
inline
  • For finite dual vertices, returns the Voronoi vertex.
  • For dual vertices at infinity, returns the direction (normal to primal facet on the boundary).

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