Vixen
dd8b0a81
csharp
public sealed class BlockoutRetopologySettings

The retopology section of the blockout settings panel.

Read the guide page for this →

Remarks

An editable class beside RemeshSettings, and doc 36 § P1's last blockout row is why it exists. Nothing in the editor drew the remesher's settings at all: they are a Core/ record, and a record is the wrong shape twice over for a panel.

⚠ A class rather than an annotation on the record, and there are three separate reasons — any one of them decisive. The record is init-only, and the inspector's generator emits owner.Property = value for anything with a setter, which for an init property is a compiler error in generated code the author never sees. The record lives in Core/Vixen.Geometry.Remeshing, which cannot reference an editor assembly — ReflectedDescriptor's own remarks put it as "no runtime type carries [Inspector], and none should". And a panel needs a stable object to bind to across edits, which a record replaced wholesale by every with expression is not. The import pipeline reached the same conclusion first: see ModelImportEdits.

⚠ Not every member of the record is here, and the absences are deliberate. Guides and DensityMask are per-run data a stroke produces rather than dials a person types, and Symmetry is a plane that belongs to a gizmo rather than to a number field. ToRemeshSettings leaves each at the record's own default, so a caller that has one passes it beside these rather than through them.

⚠ And not a [DataContract], which all three of these carried until #1025. Vixen.Editor.Blockout.csproj names neither Vixen.Core.Reflection.Generator nor Vixen.Core.Serialization.Generator, and analyzers do not flow through a ProjectReference — so the aliases they stated registered nothing at all and the attribute was a claim the next reader would have believed. Nothing writes one of these to a file; a saved retopology preset is the thing that would want one, and the answer then is to name the generators. BlockoutContractTests is what refuses the attribute without them.

Fields and properties (11)

  • public int TargetQuads

    Roughly how many quads to spend.

  • public float TargetEdgeLength

    An edge length to hit instead of a quad count, or zero to derive one from the count.

  • public float Adaptivity

    How much the quad density follows curvature, 0…1.

  • public float FeatureAngle

    The angle, in degrees, above which an edge counts as a hard feature.

  • public bool KeepCreases

    Whether authored creases are kept.

  • public bool KeepGroups

    Whether face-group boundaries are kept.

  • public bool KeepUvSeams

    Whether existing UV seams are kept.

  • public bool FreezeBorder

    Whether an open rim is pinned where it is.

  • public bool TransferAttributes

    Whether the source's attribute layers are resampled onto the result.

  • public bool GenerateUvs

    Whether an atlas is built out of the patch grids.

  • public int FieldIterations

    How many iterations the cross-field solve runs.

Methods (1)

Used by (5)

  • BlockoutContractTestsVixen.Editor.Blockout.Tests
  • BlockoutHoverTestsVixen.Editor.Blockout.Tests
  • BlockoutModeVixen.Editor.Blockout
  • BlockoutSettingsTestsVixen.Editor.Blockout.Tests
  • Describes_Vixen_Editor_Blockout_BlockoutRetopologySettingsVixen.Editor.Blockout