% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/graph_helpers.R
\name{irregular_pair_of_pants_surface_helpers}
\alias{irregular_pair_of_pants_surface_helpers}
\alias{irregular.pair.of.pants.surface.embedding}
\alias{irregular.pair.of.pants.surface.graph}
\title{Weighted irregular pair-of-pants surface helpers}
\usage{
irregular.pair.of.pants.surface.embedding(
  slices = 11,
  outer_count = 28,
  outer_radius = 1.1,
  hole_radius = 0.24,
  hole_offset = 0.38,
  hole_height = 0.18,
  count_irregularity = 0.2,
  vertical_irregularity = 0.35,
  phase_twist = 0.35,
  surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
  amplitude = 0.6,
  freq_u = 1,
  freq_v = 1
)

irregular.pair.of.pants.surface.graph(
  slices = 11,
  outer_count = 28,
  outer_radius = 1.1,
  hole_radius = 0.24,
  hole_offset = 0.38,
  hole_height = 0.18,
  count_irregularity = 0.2,
  vertical_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{slices}{Number of horizontal sample slices through the pair-of-pants
domain.}

\item{outer_count}{Approximate number of vertices across the widest slices.}

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

\item{hole_radius}{Positive radius of each interior hole.}

\item{hole_offset}{Positive horizontal offset of the two hole centers.}

\item{hole_height}{Shared vertical coordinate of the two hole centers.}

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

\item{vertical_irregularity}{Irregularity level for slice spacing. Must lie
in \code{[0, 1]}.}

\item{phase_twist}{Finite phase offset used to desynchronize neighboring
slice samples.}

\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.pair.of.pants.surface.embedding()} returns an \code{n x 3}
numeric matrix with columns \code{x}, \code{y}, and \code{z}.

\code{irregular.pair.of.pants.surface.graph()} returns a list with
components:
\itemize{
  \item \code{edges}: the irregular pair-of-pants 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 pair-of-pants coordinates,
  \item \code{weight_scale}: the normalization constant applied to the raw
    edge lengths,
  \item \code{family}: always \code{"irregular.pair.of.pants"},
  \item \code{surface}: the chosen surface name,
  \item \code{slices}: number of horizontal sample slices,
  \item \code{slice_sizes}: vertex counts in each slice,
  \item \code{slice_components}: number of connected slice intervals in each
    slice,
  \item \code{label}: a human-readable family label.
}
}
\description{
Convenience helpers that build a pair-of-pants domain from deterministically
irregular horizontal slices, sample each surviving slice interval with
varying point counts, and stitch adjacent slices into a locally triangulated
surface-with-boundary graph. The resulting irregular planar parameterization
can then be lifted into \eqn{\mathbb{R}^3} using the same planar surface
families as the triangulated annulus and irregular annulus helpers.
}
