Skip to contents

Convenience helpers that take a triangular-face polyhedron, repeatedly split each face into four subtriangles, merge shared-edge vertices, and use the resulting triangulated-surface graph as a reusable benchmark family. The canonical geometry is a piecewise-flat triangulated surface, while the weighted variants can inflate, twist, or radially modulate that surface in \(\mathbb{R}^3\).

Usage

triangulated.polyhedron.surface.embedding(
  base = c("tetrahedron", "octahedron", "icosahedron"),
  level = 1,
  surface = c("standard", "inflated", "twisted", "wavy"),
  amplitude = 0.25,
  freq = 2,
  twist = 0.6
)

triangulated.polyhedron.surface.graph(
  base = c("tetrahedron", "octahedron", "icosahedron"),
  level = 1,
  surface = c("standard", "inflated", "twisted", "wavy"),
  amplitude = 0.25,
  freq = 2,
  twist = 0.6,
  normalize = c("median", "mean", "none")
)

Arguments

base

Base polyhedron. One of "tetrahedron", "octahedron", or "icosahedron".

level

Subdivision depth. level = 0 returns the base triangulation, level = 1 splits each face into four, and so on.

surface

Geometry family used for the 3D embedding. One of "standard", "inflated", "twisted", or "wavy".

amplitude

Finite deformation amplitude.

freq

Positive modulation frequency used only when surface = "wavy".

twist

Finite twist strength used only when surface = "twisted".

normalize

Normalization applied to the induced edge lengths. One of "median", "mean", or "none".

Value

triangulated.polyhedron.surface.embedding() returns an n x 3 numeric matrix with columns x, y, and z.

triangulated.polyhedron.surface.graph() returns a list with components:

  • edges: the triangulated-surface edges,

  • n: number of vertices,

  • edge_weights: induced positive edge lengths,

  • coords_surface: the 3D embedding,

  • coords_param: the canonical piecewise-flat coordinates,

  • weight_scale: the normalization constant applied to the raw edge lengths,

  • family: always "triangulated.polyhedron",

  • base: the chosen base polyhedron,

  • surface: the chosen surface name,

  • level: the subdivision depth,

  • subdivision: the linear face subdivision factor 2^level,

  • label: a human-readable family label.

Details

The current supported bases are the regular tetrahedron, octahedron, and icosahedron. These give closed triangulated surfaces with non-grid topology and a small number of extraordinary vertices, making them useful complements to the mesh-derived families already in the package.