% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/graph_helpers.R
\name{recursive_tetrahedron_mask_surface_helpers}
\alias{recursive_tetrahedron_mask_surface_helpers}
\alias{recursive.tetrahedron.mask.surface.embedding}
\alias{recursive.tetrahedron.mask.surface.graph}
\title{Weighted recursive tetrahedron-mask surface helpers}
\usage{
recursive.tetrahedron.mask.surface.embedding(
  mask = mask.tetrahedron.classic(),
  level = 2,
  surface = c("standard", "squashed", "twisted", "wavy"),
  amplitude = 0.3,
  freq = 2,
  twist = 0.6
)

recursive.tetrahedron.mask.surface.graph(
  mask = mask.tetrahedron.classic(),
  level = 2,
  surface = c("standard", "squashed", "twisted", "wavy"),
  amplitude = 0.3,
  freq = 2,
  twist = 0.6,
  normalize = c("median", "mean", "none")
)
}
\arguments{
\item{mask}{Four-entry logical or numeric keep-mask. Non-zero entries are
retained at each recursive step.}

\item{level}{Recursion depth. May be \code{0} or larger.}

\item{surface}{Tetrahedron surface family. One of \code{"standard"},
\code{"squashed"}, \code{"twisted"}, or \code{"wavy"}.}

\item{amplitude}{Finite deformation amplitude.}

\item{freq}{Positive modulation frequency used only when
\code{surface = "wavy"}.}

\item{twist}{Finite twist strength used only when
\code{surface = "twisted"}.}

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

\code{recursive.tetrahedron.mask.surface.graph()} returns a list with
components:
\itemize{
  \item \code{edges}: the retained recursive tetrahedron-mask edges,
  \item \code{n}: number of vertices,
  \item \code{edge_weights}: induced positive edge lengths,
  \item \code{coords_surface}: the 3D surface embedding,
  \item \code{coords_param}: the canonical 3D tetrahedron coordinates,
  \item \code{weight_scale}: the normalization constant applied to the raw
    edge lengths,
  \item \code{family}: always \code{"recursive.tetrahedron.mask"},
  \item \code{surface}: the chosen surface name,
  \item \code{level}: the recursion depth,
  \item \code{mask}: the logical keep-mask,
  \item \code{label}: a human-readable family label.
}
}
\description{
Convenience helpers that recursively subdivide a tetrahedron into four
corner subtetrahedra according to a four-corner keep-mask, retain the
selected subtetrahedra at each recursion step, and deform the resulting
simplicial graph inside \eqn{\mathbb{R}^3}. This provides a generic
tetrahedral gasket family that includes the classic Sierpinski tetrahedron
together with corner-omission variants.
}
\details{
The \code{mask} entries are interpreted in the order
\code{base_left}, \code{base_right}, \code{base_back}, and \code{apex}.
Named masks are reordered automatically to match that convention.
}
