public sealed class RemeshDumpEach of docs/plan/41 § D1's stages as an inspectable artefact, in memory.
Remarks
docs/plan/41 § D1 and § R4: when a remesh looks wrong, which stage is the first question, and a monolith cannot answer it. RemeshReport says which stage was slow and which one dropped something; this says what each one produced — the conditioned triangles, the field as a line set, the singularities it left, the layout as regions and the quantization as a labelled graph.
⚠ It returns the data and never writes a file, and that is a rule rather than a preference. Core/ is under the virtual-path rule: no System.IO.Path, no File. Every field here is a plain array a caller turns into an .obj, a .ply, a gizmo batch or an editor overlay, and the format that suits an editor is not the one that suits a bug report.
⚠ It re-runs the stages rather than reaching into a remesh that already happened, and that costs what a remesh costs. The alternative is a capture hook threaded through Remesher, which would put a debugging concern in the middle of the pipeline every caller pays for. Determinism is what makes re-running legitimate: § D14's gate is that the same input and settings give the same answer, so the artefacts captured here are the artefacts the remesh had. It stops before extraction, because the extraction's artefact is the mesh Remesh already returns.
Fields and properties (8)
public const float CrossArmHow long a field cross's arms are, as a fraction of the bounding box's diagonal.
public EditMesh ConditionedStage ① — the triangles conditioning produced, as a mesh.
public IReadOnlyList<RemeshSegment> FeaturesStage ② — every feature polyline, one segment per edge of every chain.
public IReadOnlyList<RemeshSegment> FieldStage ③ — the 4-RoSy field, two crossed segments per vertex that has a tangent plane.
public IReadOnlyList<Vector3> SingularitiesStage ③ — where the field's singularities landed, as triangle centroids.
public IReadOnlyList<RemeshRegion> LayoutStage ④ — one entry per conditioned triangle, naming the patch that claimed it.
public IReadOnlyList<RemeshArcLabel> QuantizationStage ⑤ — one label per arc: where it runs, what it got and what it wanted.
public IReadOnlyList<string> WarningsWhat the stages complained about, in the order they complained.
Methods (1)
public static RemeshDump Capture(EditMesh source, RemeshSettings settings, JobScheduler? scheduler = null)Runs stages ① to ⑤ and keeps what each one produced.
Used by (2)
- RemeshDumpTestsVixen.Geometry.Remeshing.Tests
- BlockoutRemeshDebugVixen.Editor.Blockout