Obj-Stream-Handling: fix readin of linewise import.
authorKim Kulling <kim.kulling@googlemail.com>
Fri, 21 Oct 2016 19:14:35 +0000 (21:14 +0200)
committerKim Kulling <kim.kulling@googlemail.com>
Fri, 21 Oct 2016 19:14:35 +0000 (21:14 +0200)
code/IOStreamBuffer.h
code/ObjFileImporter.cpp

index 09b7d5e..d6365cf 100644 (file)
@@ -92,8 +92,7 @@ public:
     }
 
     bool readNextBlock() {
-        std::cout << "readNextBlock()\n";
-        m_stream->Seek( m_filePos, aiOrigin_CUR );
+        m_stream->Seek( m_filePos, aiOrigin_SET );
         size_t readLen = m_stream->Read( &m_cache[ 0 ], sizeof( T ), m_cacheSize );
         if ( readLen == 0 ) {
             return false;
@@ -108,7 +107,9 @@ public:
         ::memset( &buffer[ 0 ], ' ', m_cacheSize );
 
         if ( m_cachePos == m_cacheSize || 0 == m_filePos ) {
-            readNextBlock();
+            if ( !readNextBlock() ) {
+                return false;
+            }
         }
         size_t i = 0;
         while ( !IsLineEnd( m_cache[ m_cachePos ] ) ) {
@@ -116,12 +117,13 @@ public:
             m_cachePos++;
             i++;
             if ( m_cachePos >= m_cacheSize ) {
-                readNextBlock();
+                if ( !readNextBlock() ) {
+                    return false;
+                }
             }
         }
         buffer[ i ]='\n';
         m_cachePos++;
-
         return true;
     }
 
index ae070ab..52e544e 100644 (file)
@@ -297,9 +297,7 @@ aiNode *ObjFileImporter::createNodes(const ObjFile::Model* pModel, const ObjFile
 
 // ------------------------------------------------------------------------------------------------
 //  Create topology data
-aiMesh *ObjFileImporter::createTopology( const ObjFile::Model* pModel, const ObjFile::Object* pData,
-                                         unsigned int meshIndex )
-{
+aiMesh *ObjFileImporter::createTopology( const ObjFile::Model* pModel, const ObjFile::Object* pData, unsigned int meshIndex ) {
     // Checking preconditions
     ai_assert( NULL != pModel );
 
@@ -483,19 +481,15 @@ void ObjFileImporter::createVertexArray(const ObjFile::Model* pModel,
             aiFace *pDestFace = &pMesh->mFaces[ outIndex ];
 
             const bool last = ( vertexIndex == pSourceFace->m_pVertices->size() - 1 );
-            if (pSourceFace->m_PrimitiveType != aiPrimitiveType_LINE || !last)
-            {
+            if (pSourceFace->m_PrimitiveType != aiPrimitiveType_LINE || !last) {
                 pDestFace->mIndices[ outVertexIndex ] = newIndex;
                 outVertexIndex++;
             }
 
-            if (pSourceFace->m_PrimitiveType == aiPrimitiveType_POINT)
-            {
+            if (pSourceFace->m_PrimitiveType == aiPrimitiveType_POINT) {
                 outIndex++;
                 outVertexIndex = 0;
-            }
-            else if (pSourceFace->m_PrimitiveType == aiPrimitiveType_LINE)
-            {
+            } else if (pSourceFace->m_PrimitiveType == aiPrimitiveType_LINE) {
                 outVertexIndex = 0;
 
                 if(!last)