mesh refactor 2

This commit is contained in:
h4570
2022-08-10 17:57:42 +02:00
parent 725c17f9d4
commit a0898e7b4c
23 changed files with 75 additions and 70 deletions
@@ -12,7 +12,7 @@
#pragma once
#include <vector>
#include "./mesh_builder2_material_data.hpp"
#include "./mesh_builder_material_data.hpp"
namespace Tyra {
@@ -21,12 +21,12 @@ namespace Tyra {
* All dynamic data ownership is moved to mesh class, so
* verts, coords.. are not deallocated!
*/
class MeshBuilder2Data {
class MeshBuilderData {
public:
MeshBuilder2Data();
~MeshBuilder2Data();
MeshBuilderData();
~MeshBuilderData();
std::vector<MeshBuilder2MaterialData*> materials;
std::vector<MeshBuilderMaterialData*> materials;
bool textureCoordsEnabled, normalsEnabled, lightMapEnabled;
};
@@ -13,17 +13,17 @@
#include <vector>
#include <string>
#include "./mesh_builder2_material_frame_data.hpp"
#include "./mesh_builder_material_frame_data.hpp"
#include "renderer/models/color.hpp"
namespace Tyra {
class MeshBuilder2MaterialData {
class MeshBuilderMaterialData {
public:
MeshBuilder2MaterialData();
~MeshBuilder2MaterialData();
MeshBuilderMaterialData();
~MeshBuilderMaterialData();
std::vector<MeshBuilder2MaterialFrameData*> frames;
std::vector<MeshBuilderMaterialFrameData*> frames;
std::string name;
Color ambient;
};
@@ -17,10 +17,10 @@
namespace Tyra {
class MeshBuilder2MaterialFrameData {
class MeshBuilderMaterialFrameData {
public:
MeshBuilder2MaterialFrameData();
~MeshBuilder2MaterialFrameData();
MeshBuilderMaterialFrameData();
~MeshBuilderMaterialFrameData();
u32 count;
Vec4 *vertices, *textureCoords, *normals;
@@ -11,7 +11,7 @@
#pragma once
#include "../../loader.hpp"
#include "../builder2/mesh_builder2_data.hpp"
#include "../builder/mesh_builder_data.hpp"
#include <string>
namespace Tyra {
@@ -22,11 +22,11 @@ class MD2Loader : public Loader {
MD2Loader();
~MD2Loader();
MeshBuilder2Data* load(const char* fullpath, const float& scale,
const bool& invertT);
MeshBuilderData* load(const char* fullpath, const float& scale,
const bool& invertT);
inline MeshBuilder2Data* load(const std::string& fullpath, const float& scale,
const bool& invertT) {
inline MeshBuilderData* load(const std::string& fullpath, const float& scale,
const bool& invertT) {
return load(fullpath.c_str(), scale, invertT);
}
};
@@ -11,7 +11,7 @@
#pragma once
#include "../../loader.hpp"
#include "../builder2/mesh_builder2_data.hpp"
#include "../builder/mesh_builder_data.hpp"
#include <string>
#include "renderer/models/color.hpp"
#include "loaders/3d/obj_loader/tiny_obj_loader.hpp"
@@ -25,27 +25,27 @@ class ObjLoader : public Loader {
~ObjLoader();
/** Load multiple obj files (dynamic) */
MeshBuilder2Data* load(const char* fullpath, const u16& count,
const float& scale, const bool& invertT);
MeshBuilderData* load(const char* fullpath, const u16& count,
const float& scale, const bool& invertT);
inline MeshBuilder2Data* load(const std::string& fullpath, const u16& count,
const float& scale, const bool& invertT) {
inline MeshBuilderData* load(const std::string& fullpath, const u16& count,
const float& scale, const bool& invertT) {
return load(fullpath.c_str(), count, scale, invertT);
}
private:
void addOutputMaterialsAndFrames(
MeshBuilder2Data* output, const tinyobj::attrib_t& attrib,
MeshBuilderData* output, const tinyobj::attrib_t& attrib,
const std::vector<tinyobj::shape_t>& shapes,
const std::vector<tinyobj::material_t>& materials,
const u16& framesCount);
void scan(MeshBuilder2Data* output, const tinyobj::attrib_t& attrib,
void scan(MeshBuilderData* output, const tinyobj::attrib_t& attrib,
const std::vector<tinyobj::shape_t>& shapes,
const std::vector<tinyobj::material_t>& materials,
const u16& frameIndex);
void importFrame(MeshBuilder2Data* output, const tinyobj::attrib_t& attrib,
void importFrame(MeshBuilderData* output, const tinyobj::attrib_t& attrib,
const std::vector<tinyobj::shape_t>& shapes,
const std::vector<tinyobj::material_t>& materials,
const u16& frameIndex, const float& scale,
@@ -19,7 +19,7 @@ namespace Tyra {
class DynamicMesh : public Mesh {
public:
explicit DynamicMesh(const MeshBuilder2Data& data);
explicit DynamicMesh(const MeshBuilderData& data);
explicit DynamicMesh(const DynamicMesh& mesh);
~DynamicMesh();
+1 -1
View File
@@ -19,7 +19,7 @@ namespace Tyra {
class Mesh {
public:
explicit Mesh(const MeshBuilder2Data& data);
explicit Mesh(const MeshBuilderData& data);
explicit Mesh(const Mesh& mesh);
~Mesh();
+2 -2
View File
@@ -11,14 +11,14 @@
#pragma once
#include "./mesh_material.hpp"
#include "loaders/3d/builder2/mesh_builder2_data.hpp"
#include "loaders/3d/builder/mesh_builder_data.hpp"
#include "renderer/3d/bbox/bbox.hpp"
namespace Tyra {
class MeshFrame {
public:
explicit MeshFrame(const MeshBuilder2Data& data, const u32& index);
explicit MeshFrame(const MeshBuilderData& data, const u32& index);
explicit MeshFrame(const MeshFrame& frame);
~MeshFrame();
@@ -12,13 +12,13 @@
#include "debug/debug.hpp"
#include "./mesh_material_frame.hpp"
#include "loaders/3d/builder2/mesh_builder2_data.hpp"
#include "loaders/3d/builder/mesh_builder_data.hpp"
namespace Tyra {
class MeshMaterial {
public:
explicit MeshMaterial(const MeshBuilder2Data& data, const u32& materialIndex);
explicit MeshMaterial(const MeshBuilderData& data, const u32& materialIndex);
explicit MeshMaterial(const MeshMaterial& material);
~MeshMaterial();
@@ -10,15 +10,15 @@
#pragma once
#include "loaders/3d/builder2/mesh_builder2_data.hpp"
#include "loaders/3d/builder/mesh_builder_data.hpp"
#include "./renderer/3d/bbox/bbox.hpp"
namespace Tyra {
class MeshMaterialFrame {
public:
explicit MeshMaterialFrame(const MeshBuilder2Data& data,
const u32& frameIndex, const u32& materialIndex);
explicit MeshMaterialFrame(const MeshBuilderData& data, const u32& frameIndex,
const u32& materialIndex);
explicit MeshMaterialFrame(const MeshMaterialFrame& frame);
~MeshMaterialFrame();
@@ -18,7 +18,7 @@ namespace Tyra {
class StaticMesh : public Mesh {
public:
StaticMesh(const MeshBuilder2Data& data);
StaticMesh(const MeshBuilderData& data);
StaticMesh(const StaticMesh& mesh);
~StaticMesh();