@huukhanhnguyen/types / evaluate/inspect
evaluate/inspect
CurveMetrics
CurveMetrics = {
closed:boolean;length:number;selfIntersects:boolean|null;winding:"CW"|"CCW"|null; }
closed
closed:
boolean
length
length:
number
selfIntersects
selfIntersects:
boolean|null
null when the curve isn't planar-XY (test not applicable).
winding
winding:
"CW"|"CCW"|null
Loop orientation in the XY plane; null for open or non-planar curves.
InspectClash
InspectClash = {
a:string;b:string;overlap:number; }
a
a:
string
b
b:
string
overlap
overlap:
number
InspectCounts
InspectCounts = {
annotations:number;curves:number;faces:number;groups:number;hidden:number;meshes:number;points:number; }
annotations
annotations:
number
curves
curves:
number
faces
faces:
number
groups
groups:
number
hidden
hidden:
number
meshes
meshes:
number
points
points:
number
InspectGroup
InspectGroup = {
bounds:BoundingBox|null;counts:InspectCounts;hidden:boolean;key:string;layers:string[];materials:string[];mesh?:MeshMetrics;steps:InspectStep[];tessellation?: {curves: {points:Point[]; }[];meshes: {indices:number[];positions:number[]; }[]; };warnings:string[]; }
bounds
bounds:
BoundingBox|null
counts
counts:
InspectCounts
hidden
hidden:
boolean
key
key:
string
layers
layers:
string[]
materials
materials:
string[]
mesh?
optionalmesh?:MeshMetrics
Tessellated mesh diagnostics when the group carries faces.
steps
steps:
InspectStep[]
tessellation?
optionaltessellation?: {curves: {points:Point[]; }[];meshes: {indices:number[];positions:number[]; }[]; }
Full tessellation — only with the geometry option (external tools).
curves
curves: {
points:Point[]; }[]
meshes
meshes: {
indices:number[];positions:number[]; }[]
warnings
warnings:
string[]
InspectReport
InspectReport = {
clashes?:InspectClash[];groups:InspectGroup[];parameters: {key:string;value:unknown; }[];title?:string;unit?:string;warnings:string[]; }
clashes?
optionalclashes?:InspectClash[]
Coarse bbox-overlap pairs — only with the clashes option.
groups
groups:
InspectGroup[]
parameters
parameters: {
key:string;value:unknown; }[]
key
key:
string
value
value:
unknown
title?
optionaltitle?:string
unit?
optionalunit?:string
warnings
warnings:
string[]
Every group/step warning, prefixed with its path — scan this first.
InspectStep
InspectStep = {
bounds:BoundingBox|null;counts:InspectCounts;curve?:CurveMetrics;error?:string;key:string;method:string;steps?:InspectStep[];warnings:string[]; }
bounds
bounds:
BoundingBox|null
counts
counts:
InspectCounts
curve?
optionalcurve?:CurveMetrics
Tessellated curve diagnostics when the step's value is one curve.
error?
optionalerror?:string
key
key:
string
method
method:
string
steps?
optionalsteps?:InspectStep[]
Present when the step is a nested Group: its own pipeline.
warnings
warnings:
string[]
MeshMetrics
MeshMetrics = {
boundaryEdges:number;degenerate:number;invertedSolids:number;sealed:boolean;solids:number;triangles:number;volume:number; }
boundaryEdges
boundaryEdges:
number
degenerate
degenerate:
number
invertedSolids
invertedSolids:
number
Sealed components with negative volume: inside-out (e.g. an unflipped mirror copy).
sealed
sealed:
boolean
True when every edge is shared by exactly two triangles.
solids
solids:
number
Connected components (vertex-connectivity) — one per separate solid/sheet.
triangles
triangles:
number
volume
volume:
number
Signed volume — negative on a sealed mesh means inverted winding.