#pragma once #include #include "types.h" #include typedef struct MeshLink { mesh_idx mesh; mesh_link_idx next; // Next MeshLink in the list. } MeshLink; /// Scene object. /// /// A SceneObject does not own its Meshes, and they are instead shared for /// re-use. The SceneObject consequently embeds a list of MeshLinks as opposed /// to a list of Meshes. The MeshLinks define a list of Meshes, which can be /// different for each SceneObject. Each SceneObject may then have a unique list /// of Meshes, and the Meshes are re-used. typedef struct SceneObject { mesh_link_idx mesh_link; /// First MeshLink in the list. skeleton_idx skeleton; /// 0 for static objects. node_idx parent; /// Parent SceneNode. aabb3 box; } SceneObject;