% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/graph_helpers.R
\name{triangulated_pair_of_pants_surface_helpers}
\alias{triangulated_pair_of_pants_surface_helpers}
\alias{triangulated.pair.of.pants.surface.embedding}
\alias{triangulated.pair.of.pants.surface.graph}
\title{Weighted triangulated pair-of-pants surface helpers}
\usage{
triangulated.pair.of.pants.surface.embedding(
  resolution = 12,
  outer_radius = 1.1,
  hole_radius = 0.24,
  hole_offset = 0.38,
  hole_height = 0.18,
  surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
  amplitude = 0.6,
  freq_u = 1,
  freq_v = 1
)

triangulated.pair.of.pants.surface.graph(
  resolution = 12,
  outer_radius = 1.1,
  hole_radius = 0.24,
  hole_offset = 0.38,
  hole_height = 0.18,
  surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
  amplitude = 0.6,
  freq_u = 1,
  freq_v = 1,
  normalize = c("median", "mean", "none")
)
}
\arguments{
\item{resolution}{Positive lattice-resolution control. Larger values produce
finer triangulations.}

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

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

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

\item{hole_height}{Vertical coordinate shared by the two hole centers.}

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

\code{triangulated.pair.of.pants.surface.graph()} returns a list with
components:
\itemize{
  \item \code{edges}: the triangulated 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 canonical 2D pair-of-pants coordinates,
  \item \code{weight_scale}: the normalization constant applied to the raw
    edge lengths,
  \item \code{family}: always \code{"triangulated.pair.of.pants"},
  \item \code{surface}: the chosen surface name,
  \item \code{resolution}: the lattice-resolution parameter,
  \item \code{label}: a human-readable family label.
}
}
\description{
Convenience helpers that triangulate a planar pair-of-pants domain by
clipping a regular triangular lattice to a disk with two interior circular
holes. The resulting graph is a triangulated surface with three boundary
components and a deterministic non-grid topology.
}
\details{
\code{triangulated.pair.of.pants.surface.embedding()} returns the 3D
coordinates of the clipped lattice vertices in the same vertex order as
\code{edges.triangulated.pair.of.pants()}.
\code{triangulated.pair.of.pants.surface.graph()} returns a reusable
weighted-graph bundle with the pair-of-pants edges, induced edge weights, 3D
embedding, and the 2D parameter coordinates of the clipped domain.
}
