#pragma once #include "common/util/gltf_util.h" #include "goalc/build_actor/jak1/build_actor.h" struct MercExtractData { gltf_util::TexturePool tex_pool; std::vector new_indices; std::vector new_vertices; std::vector> new_colors; std::vector normals; std::vector joints_and_weights; tfrag3::MercModel new_model; }; // Data produced by loading a replacement model struct MercSwapData { std::vector new_indices; std::vector new_vertices; std::vector new_textures; tfrag3::MercModel new_model; }; void extract(const std::string& name, MercExtractData& out, const tinygltf::Model& model, const std::vector& all_nodes, u32 index_offset, u32 vertex_offset, u32 tex_offset); void merc_convert(MercSwapData& out, const MercExtractData& in); MercSwapData load_merc_model(u32 current_idx_count, u32 current_vtx_count, u32 current_tex_count, const std::string& path, const std::string& name); std::vector gen_collide_mesh_from_model( const tinygltf::Model& model, const std::vector& all_nodes, int joint_idx);