3dobj-renderer/include/obj.h

41 lines
569 B
C
Raw Normal View History

2023-05-03 13:19:03 +05:00
#include <vector>
#include <string>
using namespace std;
struct Vertex {
float pos[3];
};
struct Normal {
2023-05-03 14:39:35 +05:00
float dir[3];
2023-05-03 13:19:03 +05:00
};
struct Material {
int idx;
string name;
float ambient[4];
float specular[4];
float diffuse[4];
};
struct Face {
2023-05-03 14:39:35 +05:00
vector<Vertex*> vertices;
vector<Normal*> normals;
Material* mtl;
2023-05-03 13:19:03 +05:00
};
class ObjectLoader
{
public:
void load_obj(string filename);
void load_mtl(string filename);
vector<Face> faces;
protected:
2023-05-03 14:39:35 +05:00
Material* get_mtl_ptr(string mtl_name);
2023-05-03 13:19:03 +05:00
vector<Vertex> vertices;
vector<Normal> normals;
vector<Material> mtls;
};