F3dSection class abstract final

Section kinds.

Explicit values, never the enum index: the value is written into a file that outlives the source, and reordering the enum would silently reinterpret every asset already on disk.

Properties

hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Constants

animations → const int
asset → const int
What the source file said about itself — count 0 or 1, never more. See ModelDocument.asset.
attributes → const int
blob → const int
clusters → const int
The cluster runs of a mesh the splitter cut up — C9, see MeshData.clusters. Sparse, one record per mesh that has any, and written only when one does. The triangles are already in cluster order in the mesh's own index array, so a reader without this section loads the same mesh and draws all of it every frame.
images → const int
imageUris → const int
Where each image's bytes came from, one record per image in images order — see EncodedImage.sourceUri.
impostors → const int
The impostor level a node falls to last — C4, ModelLod.impostor. Sparse like lods, one record per node that has one; a reader without it sees the surface levels alone and draws the coarsest mesh as far as the eye goes, which is the right thing for a build that cannot draw the card.
layouts → const int
lodErrors → const int
How far each surface level strays from its node's full mesh — ModelLod.error. One record per record of lods, in the same order, and written only when some level was measured. A section of its own rather than a wider lods record, because every file with levels is written to the 16-byte one: a reader that predates this skips it and switches by the screen fraction alone, and a file without it reads as every level unmeasured.
lods → const int
Sparse, one record per ModelLod across every node that has any, not one per node — the same shape morphTargets already holds for surfaces, and for the same reason: nearly every node has none, and a record naming its own node index costs less than a table of zeros in every file that never uses the feature. See ModelNode.lods.
materialExtensions → const int
The layers beyond metal-rough a material carries — M1, see MaterialExtensions. Sparse, one record per material that has any, each naming its material, for the reason lods is: nearly every material has none, and the 132-byte material record is what every existing file is written to.
materials → const int
meshes → const int
meshNames → const int
The mesh asset name behind each surface, one record per surface in surfaces order — see ModelSurface.meshName. Absent reads as null for every surface, the same as a file that predates fmt-04.
morphTargets → const int
The shapes a mesh can be blended towards, each naming the mesh it belongs to. A section of its own rather than fields on the mesh record, so that a build that predates morph targets skips it and reads the same file as a model that draws its base shape — which is exactly what the directory is for, and cheaper than a version bump that invalidates every asset on disk.
morphWeights → const int
The rest weights of a surface's targets, for the few surfaces that have any. Separate from the surface record for the same reason: that record is a fixed 84 bytes and every existing file is written to it.
nodes → const int
pointerTracks → const int
KHR_animation_pointer tracks, one record each, kept out of tracks on purpose: a reader before this section checks a track's path against the paths it knows and refuses the file on one it does not. Here, an older build skips the section and plays the same clips without their material and light tracks, which is the whole of what it cannot do.
roots → const int
skins → const int
strings → const int
surfaceAttributes → const int
Which of a surface's vertex attributes the source file actually declared, one record per surface in surfaces order — see ModelSurface.authoredAttributes and F3dAttributeFlags. Absent in a file written before fmt-03, which is read as every attribute the surface's own mesh layout has, the same "unwritten means all of it" shape morphTargets uses for a section added after the format shipped.
surfaces → const int
tracks → const int
variants → const int
One record per material variant — ModelDocument.variants — carrying its name and, in the blob, the (surface, material) pairs that choose it. Per variant rather than per surface because that is how many there are: a handful of looks, against a surface table nearly every row of which takes part in none. See ModelSurface.variantMaterials.
warnings → const int