-
Notifications
You must be signed in to change notification settings - Fork 0
/
objectmodel.h
40 lines (35 loc) · 1.16 KB
/
objectmodel.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef OBJECTMODEL_H
#define OBJECTMODEL_H
#include <QList>
#include <QMap>
namespace jEle {
class Polygon;
class Vertex;
class Material;
class ObjectModel
{
public:
ObjectModel();
ObjectModel(ObjectModel *o);
~ObjectModel();
void addVertex(double x, double y, double z);
void addVertex(double x, double y, double z, double w);
void addNormal(double x, double y, double z);
void addTextureVertex(double x, double y, double z = 0.0);
void addMaterial(QString name, Material *material);
Polygon *addPolygon(QList<int> vertex_indexes);
Polygon *addPolygon(QString material, QList<int> vertex_indexes, QList<int> texture_indexes, QList<int> normal_indexes);
QList<Polygon*> &getPolygons();
QList<Vertex*> &getVertices();
void normalize();
private:
QList<Polygon*> polygons;
QList<Vertex*> vertices;
QList<Vertex*> normals;
QList<Vertex*> textureVertices;
QList<Material*> materials;
QMap<QString, int> materials_by_name;
double minX, maxX, minY, maxY, minZ, maxZ;
};
}
#endif // OBJECTMODEL_H