GLC_ObjToWorld : Create an GLC_World from obj file. More...
#include <glc_objtoworld.h>
Classes | |
| struct | CurrentObjMesh |
| struct | MatOffsetSize |
| struct | ObjVertice |
Signals | |
| void | currentQuantum (int) |
Public Member Functions | |
Constructor / Destructor | |
| GLC_ObjToWorld () | |
| virtual | ~GLC_ObjToWorld () |
Set Functions | |
| GLC_World * | CreateWorldFromObj (QFile &file) |
| Create an GLC_World from an input OBJ File. | |
| QStringList | listOfAttachedFileName () const |
| Get the list of attached files. | |
Private Member Functions | |
| QString | getMtlLibFileName (QString) |
| Return the name of the mtl file. | |
| void | scanLigne (QString &) |
| Scan a line previously extracted from OBJ file. | |
| void | changeGroup (QString) |
| Change current group. | |
| QList< float > | extract3dVect (QString &) |
| Extract a 3D Vector from a string. | |
| QList< float > | extract2dVect (QString &) |
| Extract a 2D Vector from a string. | |
| void | extractFaceIndex (QString &) |
| Extract a face from a string. | |
| void | setCurrentMaterial (QString &line) |
| Set Current material index. | |
| void | extractVertexIndex (QString ligne, int &Coordinate, int &Normal, int &TextureCoordinate) |
| Extract a vertex from a string. | |
| void | setObjType (QString &) |
| set the OBJ File type | |
| GLC_Vector3df | computeNormal (GLuint, GLuint, GLuint) |
| compute face normal | |
| void | clear () |
| clear objToWorld allocate memmory | |
| void | mergeLines (QString *, QTextStream *) |
| Merge Mutli line in one. | |
| void | addCurrentObjMeshToWorld () |
| Add the current Obj mesh to the world. | |
Private Attributes | |
| GLC_World * | m_pWorld |
| pointer to a GLC_World | |
| QString | m_FileName |
| The Obj File name. | |
| GLC_ObjMtlLoader * | m_pMtlLoader |
| the Obj Mtl loader | |
| int | m_CurrentLineNumber |
| The current line number. | |
| CurrentObjMesh * | m_pCurrentObjMesh |
| The current mesh. | |
| FaceType | m_FaceType |
| Face type. | |
| QHash< QString, int > | m_CurrentMeshMaterials |
| List of material already used by the current mesh. | |
| QString | m_CurrentMaterialName |
| Current material name. | |
| QStringList | m_ListOfAttachedFileName |
| The list of attached file name. | |
| QList< float > | m_Positions |
| The position bulk data. | |
| QList< float > | m_Normals |
| The normal bulk data. | |
| QList< float > | m_Texels |
| The texture coordinate bulk data. | |
GLC_ObjToWorld : Create an GLC_World from obj file.
An GLC_ObjToWorld extract the meshs from an .obj file
List of elements extracted from the OBJ
Definition at line 69 of file glc_objtoworld.h.
| GLC_ObjToWorld::GLC_ObjToWorld | ( | ) |
Definition at line 43 of file glc_objtoworld.cpp.
| GLC_ObjToWorld::~GLC_ObjToWorld | ( | ) | [virtual] |
Definition at line 59 of file glc_objtoworld.cpp.
References clear().
| void GLC_ObjToWorld::addCurrentObjMeshToWorld | ( | ) | [private] |
Add the current Obj mesh to the world.
Definition at line 832 of file glc_objtoworld.cpp.
References GLC_StructOccurence::addChild(), GLC_Mesh::addNormals(), GLC_Mesh::addTexels(), GLC_Mesh::addTriangles(), GLC_Mesh::addVertice(), GLC_ObjMtlLoader::contains(), GLC_Mesh::faceCount(), GLC_Mesh::finish(), GLC_ObjToWorld::CurrentObjMesh::m_Index, GLC_ObjToWorld::CurrentObjMesh::m_Materials, GLC_ObjToWorld::CurrentObjMesh::m_Normals, m_pCurrentObjMesh, GLC_ObjToWorld::CurrentObjMesh::m_pMesh, m_pMtlLoader, GLC_ObjToWorld::CurrentObjMesh::m_Positions, m_pWorld, GLC_ObjToWorld::CurrentObjMesh::m_Texels, GLC_ObjMtlLoader::material(), and GLC_World::rootOccurence().
Referenced by changeGroup(), and CreateWorldFromObj().
| void GLC_ObjToWorld::changeGroup | ( | QString | line | ) | [private] |
Change current group.
Definition at line 290 of file glc_objtoworld.cpp.
References addCurrentObjMeshToWorld(), clear(), GLC_FileFormatException::FileNotSupported, m_CurrentLineNumber, m_CurrentMaterialName, m_FileName, m_pCurrentObjMesh, GLC_ObjToWorld::CurrentObjMesh::m_pMesh, and GLC_Geometry::setName().
Referenced by scanLigne(), and setCurrentMaterial().
| void GLC_ObjToWorld::clear | ( | ) | [private] |
clear objToWorld allocate memmory
Definition at line 802 of file glc_objtoworld.cpp.
References m_CurrentMeshMaterials, m_ListOfAttachedFileName, m_pCurrentObjMesh, and m_pMtlLoader.
Referenced by changeGroup(), CreateWorldFromObj(), extract2dVect(), extractFaceIndex(), extractVertexIndex(), setCurrentMaterial(), setObjType(), and ~GLC_ObjToWorld().
| GLC_Vector3df GLC_ObjToWorld::computeNormal | ( | GLuint | index1, | |
| GLuint | index2, | |||
| GLuint | index3 | |||
| ) | [private] |
compute face normal
Definition at line 770 of file glc_objtoworld.cpp.
References m_pCurrentObjMesh, GLC_ObjToWorld::CurrentObjMesh::m_Positions, GLC_Vector3d::normalize(), and GLC_Vector3d::toVector3df().
Referenced by extractFaceIndex().
| GLC_World * GLC_ObjToWorld::CreateWorldFromObj | ( | QFile & | file | ) |
Create an GLC_World from an input OBJ File.
Test if there is meshes in the world
Definition at line 69 of file glc_objtoworld.cpp.
References addCurrentObjMeshToWorld(), GLC_ErrorLog::addError(), GLC_StructOccurence::childCount(), clear(), currentQuantum(), GLC_FileFormatException::FileNotFound, getMtlLibFileName(), GLC_ObjMtlLoader::listOfAttachedFileName(), GLC_ObjMtlLoader::loadMaterials(), m_CurrentLineNumber, m_FileName, m_ListOfAttachedFileName, m_pMtlLoader, m_pWorld, mergeLines(), GLC_FileFormatException::NoMeshFound, GLC_World::rootOccurence(), and scanLigne().
Referenced by GLC_FileLoader::createWorldFromFile().
| void GLC_ObjToWorld::currentQuantum | ( | int | ) | [signal] |
Referenced by CreateWorldFromObj().
| QList< float > GLC_ObjToWorld::extract2dVect | ( | QString & | line | ) | [private] |
Extract a 2D Vector from a string.
Definition at line 372 of file glc_objtoworld.cpp.
References clear(), m_CurrentLineNumber, m_FileName, and GLC_FileFormatException::WrongFileFormat.
Referenced by scanLigne().
| QList< float > GLC_ObjToWorld::extract3dVect | ( | QString & | line | ) | [private] |
Extract a 3D Vector from a string.
Definition at line 331 of file glc_objtoworld.cpp.
References GLC_ErrorLog::addError(), m_CurrentLineNumber, and m_FileName.
Referenced by scanLigne().
| void GLC_ObjToWorld::extractFaceIndex | ( | QString & | line | ) | [private] |
Extract a face from a string.
Definition at line 402 of file glc_objtoworld.cpp.
References GLC_ErrorLog::addError(), clear(), computeNormal(), coordinateAndNormal, coordinateAndTextureAndNormal, extractVertexIndex(), GLC_FileFormatException::FileNotSupported, m_CurrentLineNumber, m_FaceType, m_FileName, GLC_ObjToWorld::CurrentObjMesh::m_Index, GLC_ObjToWorld::CurrentObjMesh::m_NextFreeIndex, m_Normals, GLC_ObjToWorld::CurrentObjMesh::m_Normals, GLC_ObjToWorld::CurrentObjMesh::m_ObjVerticeIndexMap, m_pCurrentObjMesh, m_Positions, GLC_ObjToWorld::CurrentObjMesh::m_Positions, m_Texels, GLC_ObjToWorld::CurrentObjMesh::m_Texels, notSet, glc::triangulatePolygon(), GLC_Vector3df::x(), GLC_Vector3df::y(), and GLC_Vector3df::z().
Referenced by scanLigne().
| void GLC_ObjToWorld::extractVertexIndex | ( | QString | ligne, | |
| int & | Coordinate, | |||
| int & | Normal, | |||
| int & | TextureCoordinate | |||
| ) | [private] |
Extract a vertex from a string.
Definition at line 581 of file glc_objtoworld.cpp.
References clear(), coordinate, coordinateAndNormal, coordinateAndTexture, coordinateAndTextureAndNormal, GLC_FileFormatException::FileNotSupported, m_CurrentLineNumber, m_FaceType, m_FileName, notSet, setObjType(), and GLC_FileFormatException::WrongFileFormat.
Referenced by extractFaceIndex().
| QString GLC_ObjToWorld::getMtlLibFileName | ( | QString | line | ) | [private] |
Return the name of the mtl file.
Definition at line 199 of file glc_objtoworld.cpp.
References m_FileName.
Referenced by CreateWorldFromObj().
| QStringList GLC_ObjToWorld::listOfAttachedFileName | ( | ) | const [inline] |
Get the list of attached files.
Definition at line 166 of file glc_objtoworld.h.
Referenced by GLC_FileLoader::createWorldFromFile().
| void GLC_ObjToWorld::mergeLines | ( | QString * | pLineBuff, | |
| QTextStream * | p0bjStream | |||
| ) | [private] |
Merge Mutli line in one.
Definition at line 820 of file glc_objtoworld.cpp.
References m_CurrentLineNumber.
Referenced by CreateWorldFromObj().
| void GLC_ObjToWorld::scanLigne | ( | QString & | line | ) | [private] |
Scan a line previously extracted from OBJ file.
Definition at line 231 of file glc_objtoworld.cpp.
References changeGroup(), extract2dVect(), extract3dVect(), extractFaceIndex(), m_FaceType, m_Normals, m_pCurrentObjMesh, m_Positions, m_Texels, notSet, and setCurrentMaterial().
Referenced by CreateWorldFromObj().
| void GLC_ObjToWorld::setCurrentMaterial | ( | QString & | line | ) | [private] |
Set Current material index.
Definition at line 524 of file glc_objtoworld.cpp.
References changeGroup(), clear(), GLC_ObjMtlLoader::contains(), m_CurrentLineNumber, m_CurrentMaterialName, m_FileName, GLC_ObjToWorld::CurrentObjMesh::m_Index, GLC_ObjToWorld::CurrentObjMesh::m_Materials, GLC_ObjToWorld::MatOffsetSize::m_Offset, m_pCurrentObjMesh, GLC_ObjToWorld::CurrentObjMesh::m_pLastOffsetSize, m_pMtlLoader, GLC_ObjToWorld::MatOffsetSize::m_size, and GLC_FileFormatException::WrongFileFormat.
Referenced by scanLigne().
| void GLC_ObjToWorld::setObjType | ( | QString & | ligne | ) | [private] |
set the OBJ File type
Definition at line 735 of file glc_objtoworld.cpp.
References clear(), coordinate, coordinateAndNormal, coordinateAndTexture, coordinateAndTextureAndNormal, GLC_FileFormatException::FileNotSupported, m_CurrentLineNumber, m_FaceType, and m_FileName.
Referenced by extractVertexIndex().
int GLC_ObjToWorld::m_CurrentLineNumber [private] |
The current line number.
Definition at line 234 of file glc_objtoworld.h.
Referenced by changeGroup(), CreateWorldFromObj(), extract2dVect(), extract3dVect(), extractFaceIndex(), extractVertexIndex(), mergeLines(), setCurrentMaterial(), and setObjType().
QString GLC_ObjToWorld::m_CurrentMaterialName [private] |
Current material name.
Definition at line 246 of file glc_objtoworld.h.
Referenced by changeGroup(), and setCurrentMaterial().
QHash<QString, int> GLC_ObjToWorld::m_CurrentMeshMaterials [private] |
List of material already used by the current mesh.
Definition at line 243 of file glc_objtoworld.h.
Referenced by clear().
FaceType GLC_ObjToWorld::m_FaceType [private] |
Face type.
Definition at line 240 of file glc_objtoworld.h.
Referenced by extractFaceIndex(), extractVertexIndex(), scanLigne(), and setObjType().
QString GLC_ObjToWorld::m_FileName [private] |
The Obj File name.
Definition at line 228 of file glc_objtoworld.h.
Referenced by changeGroup(), CreateWorldFromObj(), extract2dVect(), extract3dVect(), extractFaceIndex(), extractVertexIndex(), getMtlLibFileName(), setCurrentMaterial(), and setObjType().
QStringList GLC_ObjToWorld::m_ListOfAttachedFileName [private] |
The list of attached file name.
Definition at line 249 of file glc_objtoworld.h.
Referenced by clear(), and CreateWorldFromObj().
QList<float> GLC_ObjToWorld::m_Normals [private] |
The normal bulk data.
Definition at line 255 of file glc_objtoworld.h.
Referenced by extractFaceIndex(), and scanLigne().
CurrentObjMesh* GLC_ObjToWorld::m_pCurrentObjMesh [private] |
The current mesh.
Definition at line 237 of file glc_objtoworld.h.
Referenced by addCurrentObjMeshToWorld(), changeGroup(), clear(), computeNormal(), extractFaceIndex(), scanLigne(), and setCurrentMaterial().
GLC_ObjMtlLoader* GLC_ObjToWorld::m_pMtlLoader [private] |
the Obj Mtl loader
Definition at line 231 of file glc_objtoworld.h.
Referenced by addCurrentObjMeshToWorld(), clear(), CreateWorldFromObj(), and setCurrentMaterial().
QList<float> GLC_ObjToWorld::m_Positions [private] |
The position bulk data.
Definition at line 252 of file glc_objtoworld.h.
Referenced by extractFaceIndex(), and scanLigne().
GLC_World* GLC_ObjToWorld::m_pWorld [private] |
pointer to a GLC_World
Definition at line 225 of file glc_objtoworld.h.
Referenced by addCurrentObjMeshToWorld(), and CreateWorldFromObj().
QList<float> GLC_ObjToWorld::m_Texels [private] |
The texture coordinate bulk data.
Definition at line 258 of file glc_objtoworld.h.
Referenced by extractFaceIndex(), and scanLigne().