Namespace WoWLib.Formats.Common
Classes
- C2IVector
A 2D integer vector.
- C2Vector
A 2D float vector: texture coordinates, UV animation speeds.
- C33Matrix
A 3x3 matrix as three column C3Vectors.
- C34Matrix
A 3x4 matrix as four column C3Vectors.
- C3IVector
A 3D integer vector.
- C3Vector
A 3D float vector — the workhorse: positions, normals, rotations-as-Euler-degrees in placements.
- C44Matrix
A 4x4 matrix as four column C4Vectors.
- C4Plane
A plane as a normal and its signed distance from the origin.
- C4Quaternion
A quaternion with the scalar part LAST on disk (x, y, z, w) — note the difference from math libraries that lead with w.
- C4Vector
A 4D float vector.
- CAaBox
An axis-aligned bounding box: minimum and maximum corners.
- CAaSphere
An axis-aligned sphere: position and radius.
- CArgb
A color stored as r, g, b, a bytes.
- CImVector
A color stored as b, g, r, a bytes — the client's immediate-mode vertex color layout (WMO MOCV, doodad colors).
- CRange
A float range: minimum and maximum.
- Fixed16
A signed 16-bit fixed-point value with an implicit 0x7FFF scale.
- SmDoodadDef
An M2 (doodad) placement (the 36-byte MDDF record of ADT, reused by the WDL MLDD low-resolution set): which model, where, and at what scale.
- SmMapObjDef
A WMO placement (the 64-byte MODF record of WDT, WDL and ADT): which object, where, and how it is instanced.
Structs
- C2IVector.Data
A blittable value twin of the NATIVE layout (size 8): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- C2Vector.Data
A blittable value twin of the NATIVE layout (size 8): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- C3IVector.Data
A blittable value twin of the NATIVE layout (size 12): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- C3Vector.Data
A blittable value twin of the NATIVE layout (size 12): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- C4Plane.Data
A blittable value twin of the NATIVE layout (size 16): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- C4Quaternion.Data
A blittable value twin of the NATIVE layout (size 16): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- C4Vector.Data
A blittable value twin of the NATIVE layout (size 16): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- CAaBox.Data
A blittable value twin of the NATIVE layout (size 24): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- CAaSphere.Data
A blittable value twin of the NATIVE layout (size 16): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- CArgb.Data
A blittable value twin of the NATIVE layout (size 4): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- CImVector.Data
A blittable value twin of the NATIVE layout (size 4): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- CRange.Data
A blittable value twin of the NATIVE layout (size 8): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- Fixed16.Data
A blittable value twin of the NATIVE layout (size 2): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- SmDoodadDef.Data
A blittable value twin of the NATIVE layout (size 36): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
- SmMapObjDef.Data
A blittable value twin of the NATIVE layout (size 64): read or write whole record buffers through Vector<T>.AsSpan<Data>() / FixedArray<T>.AsSpan<Data>() — one interop crossing for the buffer, where the live-view indexer pays per element. Field offsets are the native ABI's, asserted in the shim.
Enums
- DoodadDefFlags
M2 placement flag bits (SMDoodadDef.flags).
- MapObjDefFlags
WMO placement flag bits (SMMapObjDef.flags).