Skip to content

igl.copyleft

Python API reference for igl.copyleft.

marching_cubes

marching_cubes(values: float64[m], points: float64[m, n], x_res: int, y_res: int, z_res: int, isovalue: float = 0.0) -> tuple[float64[m, n], int64[m, n]]

Perform marching cubes to extract an isosurface from a scalar field on a regular grid.

Parameters

  • values — #points vector of scalar values (<0 inside, >0 outside)
  • points — #points by 3 grid point positions (x-fastest order: index = x + yx_res + zx_res*y_res)
  • x_res — grid resolution in x
  • y_res — grid resolution in y
  • z_res — grid resolution in z
  • isovalue — isovalue to reconstruct (default: 0.0)

Returns

  • tuple (vertices, faces): - vertices #V by 3 mesh vertex positions - faces #F by 3 mesh triangle indices
marching_cubes(values: float64[m], points: float64[m, n], indices: int64[m, n], isovalue: float = 0.0) -> tuple[float64[m, n], int64[m, n]]

Perform marching cubes on a sparse grid defined by explicit cube corner indices.

Parameters

  • values — #points vector of scalar values
  • points — #points by 3 grid point positions
  • indices — #cubes by 8 array of corner indices into points/values
  • isovalue — isovalue to reconstruct (default: 0.0)

Returns

  • tuple (vertices, faces): - vertices #V by 3 mesh vertex positions - faces #F by 3 mesh triangle indices

progressive_hulls

C++ reference

progressive_hulls(V: float64[m, n], F: int32[m, n], max_m: int = 0) -> tuple[float64[m, n], int64[m, n], int64[m]]

Performs progressive hull simplification on a mesh, collapsing edges until a target number of faces is reached.

Parameters

  • V — #V by dim list of vertex positions
  • F — #F by 3 list of face indices into V
  • max_m — Target number of output faces
  • U — Output vertex positions
  • G — Output face indices into U
  • J — Indices into F indicating the birth face for each face in G

quadprog

quadprog(G: float64[m, n], g0: float64[m], CE: float64[m, n] = Ellipsis, ce0: float64[m] = Ellipsis, CI: float64[m, n] = Ellipsis, ci0: float64[m] = Ellipsis) -> float64[m]

Solve a dense convex quadratic program.

Minimizes: 0.5 x' G x + g0' x Subject to: CE' x + ce0 = 0 CI' x + ci0 >= 0

Parameters

  • G — #x by #x positive semi-definite quadratic cost matrix
  • g0 — #x linear cost vector
  • CE — #x by #ce equality constraint matrix (optional)
  • ce0 — #ce equality constraint rhs (optional)
  • CI — #x by #ci inequality constraint matrix (optional)
  • ci0 — #ci inequality constraint rhs (optional)

Returns

  • x #x solution vector @raises RuntimeError if the solver fails