% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/graph_helpers.R
\name{irregular_annulus_surface_helpers}
\alias{irregular_annulus_surface_helpers}
\alias{irregular.annulus.surface.embedding}
\alias{irregular.annulus.surface.graph}
\title{Weighted irregular annulus surface helpers}
\usage{
irregular.annulus.surface.embedding(
  rings = 6,
  outer_count = 28,
  outer_radius = 1,
  inner_radius = 0.45,
  count_irregularity = 0.2,
  radial_irregularity = 0.35,
  phase_twist = 0.35,
  surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
  amplitude = 0.6,
  freq_u = 1,
  freq_v = 1
)

irregular.annulus.surface.graph(
  rings = 6,
  outer_count = 28,
  outer_radius = 1,
  inner_radius = 0.45,
  count_irregularity = 0.2,
  radial_irregularity = 0.35,
  phase_twist = 0.35,
  surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
  amplitude = 0.6,
  freq_u = 1,
  freq_v = 1,
  normalize = c("median", "mean", "none")
)
}
\arguments{
\item{rings}{Number of concentric sample rings, including the inner and
outer boundary cycles.}

\item{outer_count}{Approximate number of vertices on the outer boundary.}

\item{outer_radius}{Positive outer annulus radius.}

\item{inner_radius}{Positive inner annulus radius.}

\item{count_irregularity}{Irregularity level for the per-ring sample counts.
Must lie in \code{[0, 1)}.}

\item{radial_irregularity}{Irregularity level for within-ring radial
perturbations. Must lie in \code{[0, 1]}.}

\item{phase_twist}{Finite angular phase offset used to desynchronize
neighboring rings.}

\item{surface}{Geometry family used for the 3D lift. One of \code{"flat"},
\code{"saddle"}, \code{"paraboloid"}, \code{"ripple"}, or
\code{"folded"}.}

\item{amplitude}{Finite deformation amplitude.}

\item{freq_u}{Positive ripple frequency in the first planar coordinate. Used
only when \code{surface = "ripple"}.}

\item{freq_v}{Positive ripple frequency in the second planar coordinate. Used
only when \code{surface = "ripple"}.}

\item{normalize}{Normalization applied to the induced edge lengths. One of
\code{"median"}, \code{"mean"}, or \code{"none"}.}
}
\value{
\code{irregular.annulus.surface.embedding()} returns an \code{n x 3} numeric
matrix with columns \code{x}, \code{y}, and \code{z}.

\code{irregular.annulus.surface.graph()} returns a list with components:
\itemize{
  \item \code{edges}: the irregular annulus edges,
  \item \code{n}: number of vertices,
  \item \code{edge_weights}: induced positive edge lengths,
  \item \code{coords_surface}: the 3D embedding,
  \item \code{coords_param}: the irregular planar annulus coordinates,
  \item \code{weight_scale}: the normalization constant applied to the raw
    edge lengths,
  \item \code{family}: always \code{"irregular.annulus"},
  \item \code{surface}: the chosen surface name,
  \item \code{rings}: number of concentric rings,
  \item \code{ring_sizes}: sample counts on each ring,
  \item \code{label}: a human-readable family label.
}
}
\description{
Convenience helpers that build an annulus from deterministically irregular
concentric rings with varying sample counts, stitch adjacent rings into a
locally triangulated graph, and then optionally lift the resulting irregular
planar parameterization into \eqn{\mathbb{R}^3}. This provides a non-lattice
annulus family with boundary and nonuniform local valence.
}
