Vixen
dd8b0a81
csharp
public static class Remesher

A triangle mesh in, an all-quad mesh out, with a report saying whether it went well.

Read the guide page for this →

Remarks

docs/plan/41 § D1's seven stages, and every one of them is an inspectable artefact. Condition, features, field, layout, quantize, extract, transfer — a RemeshStageTiming per stage says which one was slow and which one dropped something, because when a remesh looks wrong "which stage" is the first question and a monolith cannot answer it.

⚠ A hard edge is reproduced rather than approximated, and that is a structural claim rather than a quality one. § D4: feature polylines are chained before the field is solved and are boundaries of the patch layout, so a crease is a chain of output edges by construction. The alternative — extract, then nudge extracted vertices toward what was detected — is what produces good-but-wobbly hard surface, and it is why the established tool still ships its previous algorithm under a button.

⚠ All-quad, and NonQuadCount being non-zero is a bug rather than a setting. § D8 and § D15: doc 24's MeshOperations is built on the assumption that a loop, a ring and a loop cut are statements about four-sided faces, so a quad-dominant result has no rings to cut and the mesh kernel's whole vocabulary stops working on it.

⚠ It refuses rather than throws, and it never hangs. § Exit criterion 7: a corpus of deliberately broken meshes produces a valid all-quad result or a report naming the stage that refused. A refusal comes back as an empty mesh with the reason in Warnings; every walk, every repair and every solve in the pipeline is bounded.

Fields and properties (3)

  • public const float BudgetTolerance

    How far over the budget a result may be before the report says so.

  • public const float RunawayMultiple

    How many times the budget the quantization may plan before the brake engages.

  • public const int BrakeAttempts

    How many times the brake may halve its way down before it takes what it has.

Methods (2)

Used by (20)

  • AllFeatureArcPatchTestsVixen.Geometry.Remeshing.Tests
  • AttributeTransferTestsVixen.Geometry.Remeshing.Tests
  • BudgetWarningTestsVixen.Geometry.Remeshing.Tests
  • FacetedSurfaceTestsVixen.Geometry.Remeshing.Tests
  • LayoutAtlasTestsVixen.Geometry.Remeshing.Tests
  • OptimisedInDebugTestsVixen.Geometry.Remeshing.Tests
  • QuadQualityTestsVixen.Geometry.Remeshing.Tests
  • RemeshBytesTestsVixen.Geometry.Remeshing.Tests
  • RemeshDeterminismTestsVixen.Geometry.Remeshing.Tests
  • RemeshDumpTestsVixen.Geometry.Remeshing.Tests
  • RemeshPipelinePropertyTestsVixen.Geometry.Remeshing.Tests
  • RemeshReportTestsVixen.Geometry.Remeshing.Tests
  • RemesherTestsVixen.Geometry.Remeshing.Tests
  • SettingsHonouredTestsVixen.Geometry.Remeshing.Tests
  • SymmetryPassVixen.Geometry.Remeshing
  • SymmetryTestsVixen.Geometry.Remeshing.Tests
  • SymmetryTransferTestsVixen.Geometry.Remeshing.Tests
  • BlockoutRetopologyVixen.Editor.Blockout
  • GeometryRunnerVixen.Cli
  • ModelRetopologyVixen.Editor.Assets