Vixen
dd8b0a81
csharp
public sealed class MeshMapBinding

One texture set's mesh maps, as the thing a graph's meshmap: references resolve against.

Read the guide page for this →

Remarks

This is the half of #702 that a graph actually calls, and MeshMapLibrary is the half under it. The library is every map a project holds; a binding is the one set a bake is for, which is where the mesh finally enters. Doc 48 § 4.8 puts it here on purpose: the graph names the measurement, the bake names the mesh, and neither knows the other's half.

⚠ It is not a cache and holds no pixels. What comes back is a MeshMapAsset — an identity and a path — and reading the picture is the caller's, because the caller is the one with a device to upload it to. Doing the read here would put an image decoder behind a resolver that a preview calls on every edit.

⚠ An unresolved reference is a sentence and not an empty map. Three different things go wrong here and they need three different messages: the graph asked for a usage this build does not bake, the set exists and was baked without that map (which TryResolve's remarks say is legitimate — MeshMapBake.Always guarantees only two of the nine), or there is no such set. A black stand-in for any of them is a generator that produces a plausible flat mask, which is the one failure mode doc 48 § A.9 says makes the tool not worth opening.

Fields and properties (1)

  • public string Set

    The set every reference resolves against.

Methods (3)

  • public MeshMapBinding(MeshMapLibrary library, string set)

    Binds a graph's mesh-map references to one set.

  • public static bool TryFor(MeshMapLibrary library, AssetId model, out MeshMapBinding? binding, out string problem)

    Binds to the one set a model has baked.

  • public bool TryResolve(string? reference, out MeshMapAsset map, out string problem)

    Resolves one of a graph's external references, when it is a mesh map.

Used by (1)

  • MeshMapGeneratorBindingTestsVixen.Editor.App.Tests