wowlib 0.0.0
Read & write World of Warcraft client files — a C++26 core
Loading...
Searching...
No Matches
types.hpp File Reference

The binary-level math and color primitives shared across WoW file formats (wowdev.wiki Common_Types), under their established client names. More...

#include <array>
#include <cstdint>
#include <welder/vocabulary.hpp>
Include dependency graph for types.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  wowlib::formats::common::C2Vector
 A 2D float vector: texture coordinates, UV animation speeds. More...
struct  wowlib::formats::common::C2IVector
 A 2D integer vector. More...
struct  wowlib::formats::common::C3Vector
 A 3D float vector — the workhorse: positions, normals, rotations-as-Euler-degrees in placements. More...
struct  wowlib::formats::common::C3IVector
 A 3D integer vector. More...
struct  wowlib::formats::common::C4Vector
 A 4D float vector. More...
struct  wowlib::formats::common::C4Quaternion
struct  wowlib::formats::common::C33Matrix
 A 3x3 matrix as three column C3Vectors. More...
struct  wowlib::formats::common::C34Matrix
 A 3x4 matrix as four column C3Vectors. More...
struct  wowlib::formats::common::C44Matrix
 A 4x4 matrix as four column C4Vectors. More...
struct  wowlib::formats::common::C4Plane
 A plane as a normal and its signed distance from the origin. More...
struct  wowlib::formats::common::CAaBox
 An axis-aligned bounding box: minimum and maximum corners. More...
struct  wowlib::formats::common::CAaSphere
 An axis-aligned sphere: position and radius. More...
struct  wowlib::formats::common::CRange
 A float range: minimum and maximum. More...
struct  wowlib::formats::common::CArgb
 A color stored as r, g, b, a bytes. More...
struct  wowlib::formats::common::CImVector
 A color stored as b, g, r, a bytes — the client's immediate-mode vertex color layout (WMO MOCV, doodad colors). More...
struct  wowlib::formats::common::fixed16
 A signed 16-bit fixed-point value with an implicit 0x7FFF scale. More...

Namespaces

namespace  wowlib
namespace  wowlib::formats
namespace  wowlib::formats::common

Macros

#define WOWLIB_EMPTY_BASES
 Empty-base optimization for a binary struct that carries a (welded, empty) facade base: gcc/clang always elide it, but MSVC needs the hint once a class has more than one empty base — spelled here so a memcpy'd struct's on-disk layout is compiler-independent.

Detailed Description

The binary-level math and color primitives shared across WoW file formats (wowdev.wiki Common_Types), under their established client names.

All are trivially copyable with exact on-disk layout — chunk payloads memcpy straight into arrays of them. Fixed-size sequences are std::array (layout guarded by the size asserts) so they cross into the bindings.

Definition in file types.hpp.

Macro Definition Documentation

◆ WOWLIB_EMPTY_BASES

#define WOWLIB_EMPTY_BASES

Empty-base optimization for a binary struct that carries a (welded, empty) facade base: gcc/clang always elide it, but MSVC needs the hint once a class has more than one empty base — spelled here so a memcpy'd struct's on-disk layout is compiler-independent.

wowlib compiles under gcc-16 only today (C++26 reflection), so this is future-proofing; the size static_asserts are the actual guarantee.

Definition at line 24 of file types.hpp.