56 std::vector<u16> triangle_indices;
131bool IsOfType(
const std::filesystem::path& path);
178 u32 offset_coordinate_map = 0;
179 u32 offset_vertex_table = 0;
180 u32 offset_triangles = 0;
181 u32 offset_collision_tests = 0;
186static_assert(
sizeof(RHeader) == 0x30);
189 u16 index_vertex_0 = 0;
190 u16 index_vertex_1 = 0;
191 u16 index_vertex_2 = 0;
192 u16 shadow_features = 0;
196static_assert(
sizeof(RTriangle) == 0xC);
199 u32 offset_triangle_indices = 0;
200 u16 num_triangle_indices = 0;
204static_assert(
sizeof(RCollisionTest) == 0x8);
208 std::vector<Vec4<f32>> vertices;
209 std::vector<RTriangle> triangles;
210 std::vector<RCollisionTest> collision_tests;
211 std::vector<u16> indices_triangles;
212 std::vector<u16> coordinate_map;
215RCollision Parse(Reader& f);
217Collision Convert(
const RCollision& rcollision);
Defines a 3d array class with a linear storage.
Contains macros and definitions for fixed-width types.
4D vector template with packed storage
Definition fixed_type.hpp:116
3D vector template with packed storage
Definition fixed_type.hpp:163
std::uint16_t u16
16-bit unsigned integer
Definition fixed_type.hpp:62
std::uint32_t u32
32-bit unsigned integer
Definition fixed_type.hpp:60
#define NNL_PACK(...)
A structure packing directive.
Definition fixed_type.hpp:41
Represents a simple model.
Definition smodel.hpp:654
glm::vec3 origin_point
Definition shadow_collision.hpp:84
u16 shadow_features
Definition shadow_collision.hpp:43
utl::Array3D< CollisionTest > coordinate_map
Definition shadow_collision.hpp:90
std::vector< Triangle > triangles
List of triangles in the collision environment.
Definition shadow_collision.hpp:89
u16 shift_value
Definition shadow_collision.hpp:80
std::vector< glm::vec3 > vertices
Definition shadow_collision.hpp:87
std::array< u16, 3 > indices_vertices
Definition shadow_collision.hpp:41
Struct representing a set of triangles to be tested for shadow projection.
Definition shadow_collision.hpp:55
Struct that contains all necessary information for performing shadow projection.
Definition shadow_collision.hpp:79
Struct defining a single triangle for projecting shadows onto it.
Definition shadow_collision.hpp:40
Buffer Export(const Collision &collision)
Converts a shadow collision config to a binary file representation.
SModel Convert(const Collision &collision)
Converts collision data from the in-game format to a simplified model representation.
bool IsOfType(BufferView buffer)
Tests if the provided file is a shadow collision.
Collision Import(BufferView buffer)
Parses a binary file and converts it to a structured collision.
A 3-dimensional array template class.
Definition array3d.hpp:29
Provides classes for reading and writing binary data to and from various sources.
Contains structures and functions for working with static collisions.
Definition collision.hpp:31
Contains structures and functions for working with shadow "collisions" - geometry onto which fake pla...
Definition shadow_collision.hpp:30
Definition exception.hpp:56
Provides data structures and functions for managing essential components of a 3D model.