% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/graph_helpers.R
\name{irregular_sphere_surface_helpers}
\alias{irregular_sphere_surface_helpers}
\alias{irregular.sphere.surface.embedding}
\alias{irregular.sphere.surface.graph}
\title{Weighted irregular sphere surface helpers}
\usage{
irregular.sphere.surface.embedding(
  bands = 6,
  equator_count = 28,
  count_irregularity = 0.2,
  lat_irregularity = 0.35,
  phase_twist = 0.35,
  surface = c("standard", "ellipsoid", "wavy"),
  radius = 1,
  amplitude = 0.2,
  freq_theta = 3,
  freq_lat = 2,
  twist = 0.25
)

irregular.sphere.surface.graph(
  bands = 6,
  equator_count = 28,
  count_irregularity = 0.2,
  lat_irregularity = 0.35,
  phase_twist = 0.35,
  surface = c("standard", "ellipsoid", "wavy"),
  radius = 1,
  amplitude = 0.2,
  freq_theta = 3,
  freq_lat = 2,
  twist = 0.25,
  normalize = c("median", "mean", "none")
)
}
\arguments{
\item{bands}{Number of non-pole latitude bands.}

\item{equator_count}{Approximate number of vertices near the equator.}

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

\item{lat_irregularity}{Irregularity level for latitude-band spacing. Must
lie in \code{[0, 1]}.}

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

\item{surface}{Sphere geometry family. One of \code{"standard"},
\code{"ellipsoid"}, or \code{"wavy"}.}

\item{radius}{Positive baseline radius.}

\item{amplitude}{Finite deformation amplitude. For \code{"ellipsoid"},
positive values make the shape oblate and negative values make it prolate.}

\item{freq_theta}{Positive longitudinal frequency used only when
\code{surface = "wavy"}.}

\item{freq_lat}{Positive latitudinal frequency used only when
\code{surface = "wavy"}.}

\item{twist}{Finite longitude twist applied smoothly by latitude.}

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

\code{irregular.sphere.surface.graph()} returns a list with components:
\itemize{
  \item \code{edges}: the irregular sphere 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 angular parameter coordinates,
  \item \code{weight_scale}: the normalization constant applied to the raw
    edge lengths,
  \item \code{family}: always \code{"irregular.sphere"},
  \item \code{surface}: the chosen surface name,
  \item \code{bands}: number of non-pole latitude bands,
  \item \code{band_sizes}: sample counts in each latitude band,
  \item \code{label}: a human-readable family label.
}
}
\description{
Convenience helpers that build a sphere from deterministically irregular
latitude bands with varying sample counts, stitch adjacent bands into a
locally triangulated graph, and then realize that graph in \eqn{\mathbb{R}^3}
using either a standard sphere, an ellipsoid, or a wavy radial modulation.
}
