Skip to content

shapeworks::CorrespondenceQualityRow

Per-subject-per-domain correspondence quality result row. More...

#include <CorrespondenceEvaluation.h>

Public Attributes

Name
std::string subject
int domain
double mean_dist
pull: mean distance from the reconstructed vertices to the groomed surface
double median_dist
pull: median per-vertex distance
double p99_dist
pull: 99th percentile per-vertex distance, a max that ignores single outlier vertices
double max_dist
pull: max per-vertex distance
double bbox_diag
diagonal of the subject's groomed-mesh bounding box
double norm_mean
mean_dist / bbox_diag (scale-invariant)
double norm_median
median_dist / bbox_diag
double norm_p99
p99_dist / bbox_diag
double norm_max
max_dist / bbox_diag
bool is_template
true for the L1-medoid template row (excluded from aggregates)
CorrespondenceDistanceStats push
from each groomed vertex to the reconstructed surface, weighted by the area each vertex stands for
CorrespondenceDistanceStats disagreement

Detailed Description

struct shapeworks::CorrespondenceQualityRow;

Per-subject-per-domain correspondence quality result row.

The unprefixed distances measure one direction only, from each reconstructed vertex to the groomed surface ("pull"). Any part of the groomed surface the reconstruction never reaches – a tear, a collapsed opening, a missing appendage – leaves every reconstructed vertex on the groomed surface, so pull cannot see it. push measures the other direction, and disagreement combines the two on the groomed surface; it is the one to rank by.

Public Attributes Documentation

variable subject

std::string subject;

variable domain

int domain = 0;

variable mean_dist

double mean_dist = 0.0;

pull: mean distance from the reconstructed vertices to the groomed surface

variable median_dist

double median_dist = 0.0;

pull: median per-vertex distance

variable p99_dist

double p99_dist = 0.0;

pull: 99th percentile per-vertex distance, a max that ignores single outlier vertices

variable max_dist

double max_dist = 0.0;

pull: max per-vertex distance

variable bbox_diag

double bbox_diag = 0.0;

diagonal of the subject's groomed-mesh bounding box

variable norm_mean

double norm_mean = 0.0;

mean_dist / bbox_diag (scale-invariant)

variable norm_median

double norm_median = 0.0;

median_dist / bbox_diag

variable norm_p99

double norm_p99 = 0.0;

p99_dist / bbox_diag

variable norm_max

double norm_max = 0.0;

max_dist / bbox_diag

variable is_template

bool is_template = false;

true for the L1-medoid template row (excluded from aggregates)

variable push

CorrespondenceDistanceStats push;

from each groomed vertex to the reconstructed surface, weighted by the area each vertex stands for

variable disagreement

CorrespondenceDistanceStats disagreement;

on each groomed vertex, the larger of its push distance and the pull distance of any reconstructed vertex that lands beside it, weighted by area


Updated on 2026-09-20 at 15:51:01 +0000