% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/grip_quality.R
\name{geometry.diagnostics}
\alias{geometry.diagnostics}
\title{Geometry-aware diagnostics against a canonical target}
\usage{
geometry.diagnostics(
  coords,
  target.coords,
  edges,
  family = NULL,
  sample.size.symmetry = 512L,
  sample.size.wedges = 4000L,
  rng.seed = 1L
)
}
\arguments{
\item{coords}{Numeric layout matrix with 2 or 3 columns.}

\item{target.coords}{Canonical target coordinates with the same shape as
\code{coords}.}

\item{edges}{Two-column integer edge matrix.}

\item{family}{Optional graph-family label. Use \code{"sierpinski.carpet"} to
enable carpet-specific diagnostics.}

\item{sample.size.symmetry}{Number of vertices sampled when evaluating global
symmetry.}

\item{sample.size.wedges}{Number of wedges sampled when evaluating local
angle deviation.}

\item{rng.seed}{Integer seed used for the symmetry and wedge sampling.}
}
\value{
A one-row data frame of geometric diagnostics.
}
\description{
\code{geometry.diagnostics()} augments the graph-aware quality measures
in \code{\link{score.layout}()} with target-aware geometric diagnostics.
The function aligns \code{coords} to \code{target.coords} using an orthogonal
Procrustes fit, then reports global symmetry, local angle preservation,
edge-axis concentration, and, for Sierpinski carpet layouts, boundary,
corridor, and hole-center diagnostics.
}
\details{
Metrics are reported so that larger \code{global.symmetry.score} and
\code{edge.axis.concentration} are better, while smaller
\code{procrustes.rmse}, \code{local.angle.deviation},
\code{boundary.waviness}, \code{corridor.waviness},
\code{hole.center.error}, \code{central.hole.skew},
\code{central.hole.aspect.error}, and \code{central.hole.center.error} are
better.
}
