public static class UvUnwrapThe three stages, each callable on its own, because conflating them is the first mistake.
Remarks
docs/plan/42 § D1. Charting asks where do we cut, flattening asks how does a chart become flat, and packing asks where does each island sit. They have different literatures, different failure modes and different runtimes, and a tool that exposes only the fused verb cannot be debugged.
⚠ Pack takes islands rather than a mesh, and that is what makes it a peer of a standalone packer rather than an internal detail. An artist who cut seams by hand and wants them respected is the exact case a fused-verb unwrapper cannot serve, and it is most of why standalone packers are products. Islands can come from this library's charter, from the remesher's patch layout, from another package or from a file — the packer does not ask.
Methods (11)
public static UvReport All(EditMesh mesh, UvSettings settings, PackSettings packing, out IReadOnlyList<Vector2> uvs)All three stages: cut, flatten, pack — which is the importer's call and the common case.
public static UvReport All(EditMesh mesh, UvSettings settings, PackSettings packing, JobScheduler? scheduler, out IReadOnlyList<Vector2> uvs)The same, across a scheduler's workers.
public static IReadOnlyList<int> Charts(EditMesh mesh, UvSettings settings)Decides where to cut, and answers with a chart per face.
public static IReadOnlyList<int> Charts(EditMesh mesh, UvSettings settings, out UvReport report)The same, and what it measured.
public static IReadOnlyList<int> Charts(EditMesh mesh, UvSettings settings, JobScheduler? scheduler, out UvReport report)The same, across a scheduler's workers.
public static IReadOnlyList<UvIsland> Flatten(EditMesh mesh, IReadOnlyList<int> chartOfFace, UvSettings settings)Lays every chart of a mesh flat, as an island a packer can take.
public static IReadOnlyList<UvIsland> Flatten(EditMesh mesh, IReadOnlyList<int> chartOfFace, UvSettings settings, out UvReport report)The same, and what it measured.
public static IReadOnlyList<UvIsland> Flatten(EditMesh mesh, IReadOnlyList<int> chartOfFace, UvSettings settings, JobScheduler? scheduler, out UvReport report)The same, across a scheduler's workers.
public static IReadOnlyList<UvPlacement> Pack(IReadOnlyList<UvIsland> islands, PackSettings settings)Rearranges islands to fill an atlas, leaving their shapes exactly as they arrived.
public static IReadOnlyList<UvPlacement> Pack(IReadOnlyList<UvIsland> islands, PackSettings settings, out UvReport report)The same, and what it measured.
public static IReadOnlyList<UvPlacement> Pack(IReadOnlyList<UvIsland> islands, PackSettings settings, JobScheduler? scheduler, out UvReport report)The same, across a scheduler's workers.
Used by (28)
- LayoutAtlasVixen.Geometry.Remeshing
- OptimisedInDebugTestsVixen.Geometry.Uv.Tests
- UvAllTestsVixen.Geometry.Uv.Tests
- UvChartDeterminismTestsVixen.Geometry.Uv.Tests
- UvChartInvarianceTestsVixen.Geometry.Uv.Tests
- UvChartQualityTestsVixen.Geometry.Uv.Tests
- UvChartTestsVixen.Geometry.Uv.Tests
- UvDensityTestsVixen.Geometry.Uv.Tests
- UvFacetedGroupTestsVixen.Geometry.Uv.Tests
- UvFlattenBijectivityTestsVixen.Geometry.Uv.Tests
- UvFlattenCotangentTestsVixen.Geometry.Uv.Tests
- UvFlattenDeterminismTestsVixen.Geometry.Uv.Tests
- UvFlattenDistortionTestsVixen.Geometry.Uv.Tests
- UvFlattenInvarianceTestsVixen.Geometry.Uv.Tests
- UvFlattenTestsVixen.Geometry.Uv.Tests
- UvFlattenTopologyTestsVixen.Geometry.Uv.Tests
- UvPackDeterminismTestsVixen.Geometry.Uv.Tests
- UvPackEfficiencyTestsVixen.Geometry.Uv.Tests
- UvPackMarginTestsVixen.Geometry.Uv.Tests
- UvPackPropertyTestsVixen.Geometry.Uv.Tests
- UvPackingTestsVixen.Geometry.Uv.Tests
- UvStackingTestsVixen.Geometry.Uv.Tests
- UvUdimTestsVixen.Geometry.Uv.Tests
- UvUnwrapDeterminismTestsVixen.Geometry.Uv.Tests
- UvUnwrapPipelinePropertyTestsVixen.Geometry.Uv.Tests
- BlockoutUvPanelVixen.Editor.Blockout
- GeometryRunnerVixen.Cli
- ModelRetopologyVixen.Editor.Assets