0028824: Possibility to build OCCT 7.1.0 and above using Visual Studio 2008
[occt.git] / src / RWStl / RWStl_Reader.cxx
index df2dfb9..29f669f 100644 (file)
@@ -250,7 +250,7 @@ Standard_Boolean RWStl_Reader::ReadAscii (Standard_IStream& theStream,
   const int64_t aEndPos = (theUntilPos > 0 ? 1 + GETPOS(theUntilPos) : std::numeric_limits<int64_t>::max());
 
   // skip header "solid ..."
-  theStream.ignore (aEndPos - aStartPos, '\n');
+  theStream.ignore ((std::streamsize)(aEndPos - aStartPos), '\n');
   if (!theStream)
   {
     Message::DefaultMessenger()->Send ("Error: premature end of file", Message_Fail);
@@ -264,7 +264,7 @@ Standard_Boolean RWStl_Reader::ReadAscii (Standard_IStream& theStream,
 
   // report progress every 1 MiB of read data
   const int aStepB = 1024 * 1024;
-  const Standard_Integer aNbSteps = 1 + Standard_Integer((theUntilPos - aStartPos) / aStepB);
+  const Standard_Integer aNbSteps = 1 + Standard_Integer((GETPOS(theUntilPos) - aStartPos) / aStepB);
   Message_ProgressSentry aPSentry (theProgress, "Reading text STL file", 0, aNbSteps, 1);
 
   int64_t aProgressPos = aStartPos + aStepB;
@@ -280,13 +280,13 @@ Standard_Boolean RWStl_Reader::ReadAscii (Standard_IStream& theStream,
     }
 
     char facet[LINELEN], outer[LINELEN];
-    theStream.getline (facet, std::min (LINELEN, aEndPos - GETPOS(theStream.tellg()))); // "facet normal nx ny nz"
+    theStream.getline (facet, (std::streamsize)std::min (LINELEN, aEndPos - GETPOS(theStream.tellg()))); // "facet normal nx ny nz"
     if (str_starts_with (facet, "endsolid", 8))
     {
       // end of STL code
       break;
     }
-    theStream.getline (outer, std::min (LINELEN, aEndPos - GETPOS(theStream.tellg()))); // "outer loop"
+    theStream.getline (outer, (std::streamsize)std::min (LINELEN, aEndPos - GETPOS(theStream.tellg()))); // "outer loop"
     if (!str_starts_with (facet, "facet", 5) || !str_starts_with (outer, "outer", 5))
     {
       TCollection_AsciiString aStr ("Error: unexpected format of facet at line ");
@@ -295,9 +295,9 @@ Standard_Boolean RWStl_Reader::ReadAscii (Standard_IStream& theStream,
       return false;
     }
 
-    theStream.getline (aLine1, std::min (LINELEN, aEndPos - GETPOS(theStream.tellg())));
-    theStream.getline (aLine2, std::min (LINELEN, aEndPos - GETPOS(theStream.tellg())));
-    theStream.getline (aLine3, std::min (LINELEN, aEndPos - GETPOS(theStream.tellg())));
+    theStream.getline (aLine1, (std::streamsize)std::min (LINELEN, aEndPos - GETPOS(theStream.tellg())));
+    theStream.getline (aLine2, (std::streamsize)std::min (LINELEN, aEndPos - GETPOS(theStream.tellg())));
+    theStream.getline (aLine3, (std::streamsize)std::min (LINELEN, aEndPos - GETPOS(theStream.tellg())));
 
     // stop reading if end of file is reached;
     // note that well-formatted file never ends by the vertex line
@@ -335,8 +335,8 @@ Standard_Boolean RWStl_Reader::ReadAscii (Standard_IStream& theStream,
       AddTriangle (n1, n2, n3);
     }
 
-    theStream.ignore (aEndPos - GETPOS(theStream.tellg()), '\n'); // skip "endloop"
-    theStream.ignore (aEndPos - GETPOS(theStream.tellg()), '\n'); // skip "endfacet"
+    theStream.ignore ((std::streamsize)(aEndPos - GETPOS(theStream.tellg())), '\n'); // skip "endloop"
+    theStream.ignore ((std::streamsize)(aEndPos - GETPOS(theStream.tellg())), '\n'); // skip "endfacet"
 
     aNbLine += 2;
   }