Skip to contents

Convenience helpers that build a layered simplicial shell by placing the vertices of a subdivided triangulated polyhedron on nested inner-to-outer radial layers and connecting adjacent layers by the same deterministic prism-to-tetrahedra edge pattern used for irregular.ball.solid.*(). The result is a genuinely volumetric shell graph with a hollow interior.

Usage

irregular.shell.solid.graph(
  base = c("tetrahedron", "octahedron", "icosahedron"),
  level = 1,
  layers = 3,
  inner.radius = 0.45,
  outer.radius = 1,
  radial.irregularity = 0.25,
  layer.twist = 0.35,
  surface = c("standard", "bulged", "twisted", "wavy"),
  amplitude = 0.2,
  freq.theta = 2,
  freq.phi = 2,
  twist = 0.6,
  normalize = c("median", "mean", "none")
)

Arguments

base

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

level

Surface subdivision depth used for each radial layer.

layers

Number of non-center radial layers.

inner.radius

Positive inner radius of the shell.

outer.radius

Positive outer radius of the ball.

radial.irregularity

Irregularity level for the radial layer spacing. Must lie in [0, 1].

layer.twist

Finite z-axis twist applied smoothly across radial layers.

surface

Solid geometry family. One of "standard", "bulged", "twisted", or "wavy".

amplitude

Finite deformation amplitude.

freq.theta

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

freq.phi

Positive polar 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

The coords_surface component is an n x 3 numeric matrix with columns x, y, and z.

irregular.shell.solid.graph() returns the same components as irregular.ball.solid.graph(), with family set to "irregular.shell".

Examples

shell <- irregular.shell.solid.graph(
  base = "tetrahedron", level = 0, layers = 2
)