Walls And Holes  1
objtools.h
Go to the documentation of this file.
1 #ifndef OBJTOOLS_H
2 #define OBJTOOLS_H
3 #include <QFile>
4 #include <QTextStream>
5 #include <cassert>
6 #include <QMap>
7 #include <QVector3D>
8 #include <QDebug>
9 
10 #include "imageandsource.h"
11 #include "simpletexturedobject.h"
12 
13 typedef QSharedPointer<SimpleTexturedObject> SharedSimpleTexturedObject;
14 
15 class Material
16 {
17 public:
18  Material(QString _name, QVector3D _Ka, QVector3D _Kd, QVector3D _Ks, int _Ns, int _illum, QString KaImage, QString KdImage)
19  :name(_name), Ka(_Ka), Kd(_Kd), Ks(_Ks), Ns(_Ns), illum(_illum), Map_Ka(KaImage), Map_Kd(KdImage)
20  {
21  }
22  // Material Name
23  QString name;
24  // Ambient Color
25  QVector3D Ka;
26  // Diffuse Color
27  QVector3D Kd;
28  // Specular Color
29  QVector3D Ks;
30  // Specular Exponent
31  float Ns;
32  // Illumination
33  int illum;
34  // Name of Ambient Texture Map
35  QString Map_Ka;
36  // Name of Diffuse Texture Map
37  QString Map_Kd;
38 
43  QString serialize();
44 };
45 
46 typedef QSharedPointer<Material> SharedMaterial;
47 
48 class OBJModel
49 {
50 public:
51  OBJModel(QString _name="map"){
52  name = _name;
53  mSaveDirectory = '.';
54  }
55 
56  QString name;
58  void saveOBJ(QString path);
59  void saveMTL(QString path);
60  void saveImages(QString path);
61  void save(QString path);
62  void setSaveDirectory(QString path){ mSaveDirectory = path; }
63 
64 private:
65  QVector<SharedSimpleTexturedObject> mObjects;
66  QMap<QString, SharedMaterial> mMaterials;
67  QMap<QString, QSharedPointer<QImage>> mImages;
68  QString mSaveDirectory;
69 };
70 
71 typedef QSharedPointer<OBJModel> SharedOBJModel;
72 
73 #endif // OBJTOOLS_H
void addSimpleTextured(SharedSimpleTexturedObject object)
Definition: objtools.cpp:30
float Ns
Definition: objtools.h:31
QString name
Definition: objtools.h:23
Definition: objtools.h:48
QSharedPointer< Material > SharedMaterial
Definition: objtools.h:46
void saveImages(QString path)
Definition: objtools.cpp:171
void setSaveDirectory(QString path)
Definition: objtools.h:62
QString Map_Ka
Definition: objtools.h:35
QSharedPointer< SimpleTexturedObject > SharedSimpleTexturedObject
Definition: objtools.h:13
Definition: objtools.h:15
QString serialize()
Serialize the material object into a string return a QString that can be directly write into ...
Definition: objtools.cpp:16
QVector3D Ks
Definition: objtools.h:29
void saveMTL(QString path)
Definition: objtools.cpp:157
QVector3D Ka
Definition: objtools.h:25
OBJModel(QString _name="map")
Definition: objtools.h:51
Material(QString _name, QVector3D _Ka, QVector3D _Kd, QVector3D _Ks, int _Ns, int _illum, QString KaImage, QString KdImage)
Definition: objtools.h:18
QSharedPointer< OBJModel > SharedOBJModel
Definition: objtools.h:71
QString name
Definition: objtools.h:56
QString Map_Kd
Definition: objtools.h:37
void save(QString path)
Definition: objtools.cpp:179
int illum
Definition: objtools.h:33
void saveOBJ(QString path)
Definition: objtools.cpp:58
QVector3D Kd
Definition: objtools.h:27