public sealed class BlockoutRetopologySettingsThe retopology section of the blockout settings panel.
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 TargetQuadsRoughly how many quads to spend.
public float TargetEdgeLengthAn edge length to hit instead of a quad count, or zero to derive one from the count.
public float AdaptivityHow much the quad density follows curvature, 0…1.
public float FeatureAngleThe angle, in degrees, above which an edge counts as a hard feature.
public bool KeepCreasesWhether authored creases are kept.
public bool KeepGroupsWhether face-group boundaries are kept.
public bool KeepUvSeamsWhether existing UV seams are kept.
public bool FreezeBorderWhether an open rim is pinned where it is.
public bool TransferAttributesWhether the source's attribute layers are resampled onto the result.
public bool GenerateUvsWhether an atlas is built out of the patch grids.
public int FieldIterationsHow many iterations the cross-field solve runs.
Methods (1)
public RemeshSettings ToRemeshSettings(IReadOnlyList<RemeshGuide>? guides = null)What the remesher is actually asked for.
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