Ported the obj parser.

This commit is contained in:
zy4n
2025-04-01 21:51:56 +02:00
parent bc065bc657
commit 27977c1738
34 changed files with 1676 additions and 1554 deletions

View File

@@ -82,7 +82,7 @@ public:
using id_type = ID;
using container_type = std::vector<T>;
using iterator = generic_basic_store_iterator<ID, T>;
using const_iterator = generic_basic_store_iterator<std::add_const_t<T>...>;
using const_iterator = generic_basic_store_iterator<ID, std::add_const_t<T>>;
using size_type = std::size_t;
using data_type = T;

View File

@@ -17,15 +17,14 @@ class generic_material_store_iterator
{
public:
using size_type = std::size_t;
using count_type = ztu::u32;
using count_type = z3d::u32;
using component_flag_type = material_components::flags;
using id_type = material_id;
using value_type = std::pair<id_type, material_view>;
using flag_count_type = std::tuple<component_flag_type>;
using id_iterator_type = id_type*;
using component_iterator_type = std::tuple<std::add_pointer_t<Ts>...>;
using flag_count_iterator_type = const flag_count_type*;
using flag_iterator_type = const component_flag_type*;
using offsets_type = std::array<size_type, 1 + sizeof...(Ts)>;
using difference_type = std::ptrdiff_t;
@@ -39,7 +38,7 @@ private:
generic_material_store_iterator(
id_iterator_type ids,
const component_iterator_type& components,
flag_count_iterator_type flag_counts,
flag_iterator_type flags,
std::size_t index,
const offsets_type& offsets
);
@@ -88,7 +87,7 @@ protected:
private:
id_iterator_type m_ids{};
component_iterator_type m_components{};
flag_count_iterator_type m_flag_counts{};
flag_iterator_type m_flags{};
size_type m_index{};
offsets_type m_offsets{};
};
@@ -99,7 +98,7 @@ class generic_material_store<z3d::structure<Ts...>>
{
public:
using size_type = std::size_t;
using count_type = ztu::u32;
using count_type = z3d::u32;
using component_flag_type = material_components::flags;
using data_type = material_data;

View File

@@ -19,7 +19,7 @@ class generic_mesh_store_iterator
{
public:
using size_type = std::size_t;
using count_type = ztu::u32;
using count_type = z3d::u32;
using triangle_type = z3d::index_triangle;
using material_id_type = material_store::id_type;
using component_flag_type = mesh_vertex_components::flags;
@@ -109,7 +109,7 @@ class generic_mesh_store<z3d::structure<Ts...>>
{
public:
using size_type = std::size_t;
using count_type = ztu::u32;
using count_type = z3d::u32;
using triangle_type = z3d::index_triangle;
using component_flag_type = mesh_vertex_components::flags;
using material_id_type = material_id;

View File

@@ -12,7 +12,7 @@ namespace assets
class pose_list_store;
template<typename Char>
template<typename Pose>
class pose_list_store_iterator
{
public:
@@ -22,7 +22,7 @@ public:
using value_type = std::pair<id_type, pose_list_view>;
using id_iterator_type = id_type const*;
using pose_iterator_type = Char*;
using pose_iterator_type = Pose*;
using length_iterator_type = const length_type*;
using offset_type = size_type;
@@ -94,8 +94,8 @@ public:
using size_type = std::size_t;
using count_type = ztu::u32;
using iterator = pose_list_store_iterator<char>;
using const_iterator = pose_list_store_iterator<const char>;
using iterator = pose_list_store_iterator<pose_data>;
using const_iterator = pose_list_store_iterator<const pose_data>;
using data_type = pose_list_data;
using id_type = pose_list_id;
@@ -136,7 +136,7 @@ protected:
private:
std::vector<id_type> m_ids;
std::vector<char> m_poses;
std::vector<pose_data> m_poses;
std::vector<count_type> m_lengths;
mutable std::shared_mutex m_mutex;
};

View File

@@ -111,7 +111,6 @@ public:
[[nodiscard]] std::pair<const_iterator, bool> find(id_type id) const;
inline void remove(const iterator& it);
inline void clear();