Skip to main content

Voronoi

C++: phynexis::utils::voronoi Python: phynexis.utils.voronoi Header: src/utils/voronoi/*.hpp

Voronoi tessellation on surfaces and in volumes. The Python API exposes Tessellation (static computation methods) and Diagram (result container).

TessellationParams

Configuration for Voronoi computation.

Constructor

TessellationParams()

Defaults: max_iter=1000, tol=0.001, use_cork=True.

Properties

PropertyTypeDescription
max_iterintMaximum iterations
tolfloatConvergence tolerance
use_corkboolUse Cork for boolean clipping

Tessellation

Static methods for computing Voronoi diagrams.

compute(vt_seeds, stl_model, params)

Compute Voronoi tessellation from seed points on a surface mesh.

Parameters:

ParameterTypeDescription
vt_seedslist[Vec3d]Seed points
stl_modelSTLModelSurface mesh
paramsTessellationParamsOptional parameters

Returns:Diagram

compute_centroidal(num_seeds, stl_model, params)

Compute centroidal Voronoi tessellation (CVT) with automatic seed placement.

Parameters:

ParameterTypeDescription
num_seedsintNumber of seeds
stl_modelSTLModelSurface mesh
paramsTessellationParamsOptional parameters

Returns:Diagram

Diagram

Result container for tessellation (no public constructor).

Example

import phynexis

# Create a mesh from a sphere shape
model = phynexis.utils.shape.Sphere(2.0).get_stl_model(200)

# Compute CVT
params = phynexis.utils.voronoi.TessellationParams()
params.max_iter = 100
params.tol = 0.01

diag = phynexis.utils.voronoi.Tessellation.compute_centroidal(5, model, params)
print("diagram:", diag)

Output:

diagram: <phynexis.lib.pyutils.voronoi.Diagram object at 0x...>

Unexposed C++ API

  • SphericalDiagram, SphericalTessellation — Partially bound
  • Tessellation::compute overload with implicit surfaces