glc_objmtlloader.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00026
00027 #ifndef GLC_OBJMTLLOADER_H_
00028 #define GLC_OBJMTLLOADER_H_
00029
00030 #include <QString>
00031 #include <QHash>
00032 #include <QTextStream>
00033 #include <../shading/glc_material.h>
00034
00035 #include "../glc_config.h"
00036
00037 class QGLContext;
00040
00044
00045 class GLC_LIB_EXPORT GLC_ObjMtlLoader
00046 {
00047
00049
00051
00052 public:
00053 GLC_ObjMtlLoader(const QGLContext*, const QString&);
00054
00055 virtual ~GLC_ObjMtlLoader();
00057
00058
00060
00061 public:
00063 inline bool contains(const QString &name) const
00064 {return m_Materials.contains(name);}
00065
00067 GLC_Material* material(const QString&);
00068
00070 inline QStringList listOfAttachedFileName() const
00071 {return m_ListOfAttachedFileName.toList();}
00072
00074
00076
00078
00079 public:
00081 bool loadMaterials();
00082
00084
00085
00087
00088 private:
00090 bool extractMaterialName(QString &);
00091
00093 void extractTextureFileName(QString &);
00094
00096 bool extractRGBValue(QString &);
00097
00099 bool extractOneValue(QString &);
00100
00102 QString getTextureName(QTextStream &, const QString &);
00103
00105 void processMayaSpecific();
00106
00107
00109
00111
00113 private:
00115 QString m_FileName;
00116
00118 GLC_Material* m_pCurrentMaterial;
00119
00121 QHash<QString, GLC_Material*> m_Materials;
00122
00124 QString m_LoadStatus;
00125
00127 const QGLContext *m_pQGLContext;
00128
00130 QSet<QString> m_ListOfAttachedFileName;
00131
00132
00133 };
00134
00135 #endif