EgtGeomKernel :
- cambiato Load, con uso di NgeReader.
This commit is contained in:
+22
-40
@@ -16,6 +16,7 @@
|
||||
#include "SurfTriMesh.h"
|
||||
#include "GeoObjFactory.h"
|
||||
#include "NgeWriter.h"
|
||||
#include "NgeReader.h"
|
||||
#include "Triangulate.h"
|
||||
#include "\EgtDev\Include\EGkStringUtils3d.h"
|
||||
#include "\EgtDev\Include\EGkPolyLine.h"
|
||||
@@ -370,31 +371,22 @@ SurfTriMesh::Save( NgeWriter& ngeOut) const
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
SurfTriMesh::Load( Scanner& TheScanner)
|
||||
SurfTriMesh::Load( NgeReader& ngeIn)
|
||||
{
|
||||
// imposto ricalcolo della grafica
|
||||
m_OGrMgr.Reset() ;
|
||||
// leggo la prossima linea
|
||||
string sLine ;
|
||||
if ( ! TheScanner.GetLine( sLine))
|
||||
return false ;
|
||||
// la divido in parametri
|
||||
STRVECTOR vsParams ;
|
||||
Tokenize( sLine, ";", vsParams) ;
|
||||
// 3 parametri : flag chiuso num vertici e num tria
|
||||
if ( vsParams.size() != 3)
|
||||
return false ;
|
||||
// leggo la prossima linea ( 3 parametri : flag chiuso num vertici e num tria)
|
||||
// recupero il flag
|
||||
bool bClosed ;
|
||||
if ( ! FromString( vsParams[0], bClosed))
|
||||
if ( ! ngeIn.ReadBool( bClosed, ";"))
|
||||
return false ;
|
||||
// recupero il numero di vertici
|
||||
int nNumVert ;
|
||||
if ( ! FromString( vsParams[1], nNumVert))
|
||||
if ( ! ngeIn.ReadInt( nNumVert, ";"))
|
||||
return false ;
|
||||
// recupero il numero di triangoli
|
||||
int nNumTria ;
|
||||
if ( ! FromString( vsParams[2], nNumTria))
|
||||
if ( ! ngeIn.ReadInt( nNumTria, ";", true))
|
||||
return false ;
|
||||
// inizializzo la superficie TriMesh
|
||||
if ( ! Init( nNumVert, nNumTria))
|
||||
@@ -404,40 +396,30 @@ SurfTriMesh::Load( Scanner& TheScanner)
|
||||
int nInd ;
|
||||
StmVert vV ;
|
||||
for ( int i = 0 ; i < nNumVert ; ++ i) {
|
||||
// leggo la prossima linea
|
||||
if ( ! TheScanner.GetLine( sLine))
|
||||
return false ;
|
||||
// la divido in parametri
|
||||
Tokenize( sLine, ";", vsParams) ;
|
||||
// 4 parametri : Indice, Punto, IdTria, Flag
|
||||
if ( vsParams.size() != 4)
|
||||
return false ;
|
||||
// leggo la prossima linea ( 4 parametri : Indice, Punto, IdTria, Flag)
|
||||
// la interpreto e imposto il vertice
|
||||
if ( ! FromString( vsParams[0], nInd) ||
|
||||
! FromString( vsParams[1], vV.ptP) ||
|
||||
! FromString( vsParams[2], vV.nIdTria) ||
|
||||
! FromString( vsParams[3], vV.nFlag) ||
|
||||
if ( ! ngeIn.ReadInt( nInd, ";") ||
|
||||
! ngeIn.ReadPoint( vV.ptP, ";") ||
|
||||
! ngeIn.ReadInt( vV.nIdTria, ";") ||
|
||||
! ngeIn.ReadInt( vV.nFlag, ";", true) ||
|
||||
! SetVertex( nInd, vV))
|
||||
return false ;
|
||||
}
|
||||
// lettura dei triangoli
|
||||
StmTria tT ;
|
||||
for ( int i = 0 ; i < nNumTria ; ++ i) {
|
||||
// leggo la prossima linea
|
||||
if ( ! TheScanner.GetLine( sLine))
|
||||
return false ;
|
||||
// la divido in parametri
|
||||
Tokenize( sLine, ";", vsParams) ;
|
||||
// 6 parametri : Indice, IdVertici, IdAdiacenze, Normale, TFlag, EFlag
|
||||
if ( vsParams.size() != 6)
|
||||
return false ;
|
||||
// leggo la prossima linea ( 6 parametri : Indice, IdVertici, IdAdiacenze, Normale, TFlag, EFlag)
|
||||
// la interpreto e imposto il vertice
|
||||
if ( ! FromString( vsParams[0], nInd) ||
|
||||
! FromString( vsParams[1], tT.nIdVert) ||
|
||||
! FromString( vsParams[2], tT.nIdAdjac) ||
|
||||
! FromString( vsParams[3], tT.vtN) ||
|
||||
! FromString( vsParams[4], tT.nTFlag) ||
|
||||
! FromString( vsParams[5], tT.nEFlag) ||
|
||||
if ( ! ngeIn.ReadInt( nInd, ";") ||
|
||||
! ngeIn.ReadInt( tT.nIdVert[0], ",") ||
|
||||
! ngeIn.ReadInt( tT.nIdVert[1], ",") ||
|
||||
! ngeIn.ReadInt( tT.nIdVert[2], ";") ||
|
||||
! ngeIn.ReadInt( tT.nIdAdjac[0], ",") ||
|
||||
! ngeIn.ReadInt( tT.nIdAdjac[1], ",") ||
|
||||
! ngeIn.ReadInt( tT.nIdAdjac[2], ";") ||
|
||||
! ngeIn.ReadVector( tT.vtN, ";") ||
|
||||
! ngeIn.ReadInt( tT.nTFlag, ";") ||
|
||||
! ngeIn.ReadInt( tT.nEFlag, ";", true) ||
|
||||
! SetTriangle( nInd, tT))
|
||||
return false ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user