EgtGeomKernel 1.5d5 :

- aggiunta scrittura binaria
- tolte GetKey, Load e Save da interfaccia IGeoObj.
This commit is contained in:
Dario Sassi
2014-04-14 15:57:58 +00:00
parent 39db15e41e
commit f956fd20cc
37 changed files with 829 additions and 198 deletions
+30 -22
View File
@@ -15,6 +15,7 @@
#include "stdafx.h"
#include "SurfTriMesh.h"
#include "GeoObjFactory.h"
#include "NgeWriter.h"
#include "Triangulate.h"
#include "\EgtDev\Include\EGkStringUtils3d.h"
#include "\EgtDev\Include\EGkPolyLine.h"
@@ -23,7 +24,7 @@
using namespace std ;
//----------------------------------------------------------------------------
GEOOBJ_REGISTER( SRF_TRIMESH, "S_TRM", SurfTriMesh) ;
GEOOBJ_REGISTER( SRF_TRIMESH, NGE_S_TRM, SurfTriMesh) ;
//----------------------------------------------------------------------------
SurfTriMesh::SurfTriMesh( void)
@@ -297,6 +298,13 @@ SurfTriMesh::Copy( const SurfTriMesh& stmSrc)
return true ;
}
//----------------------------------------------------------------------------
GeoObjType
SurfTriMesh::GetType( void) const
{
return static_cast<GeoObjType>( GEOOBJ_GETTYPE( SurfTriMesh)) ;
}
//----------------------------------------------------------------------------
const string&
SurfTriMesh::GetTitle( void) const
@@ -320,41 +328,41 @@ SurfTriMesh::Dump( string& sOut, const char* szNewLine) const
}
//----------------------------------------------------------------------------
const string&
SurfTriMesh::GetKey( void) const
int
SurfTriMesh::GetNgeId( void) const
{
return GEOOBJ_GETKEY( SurfTriMesh) ;
return GEOOBJ_GETNGEID( SurfTriMesh) ;
}
//----------------------------------------------------------------------------
bool
SurfTriMesh::Save( ostream& osOut) const
SurfTriMesh::Save( NgeWriter& ngeOut) const
{
// flag aperta/chiusa
osOut << ToString( m_bClosed) << ";" ;
ngeOut.WriteBool( m_bClosed, ";") ;
// numero di vertici
osOut << ToString( GetVertexNum()) << ";" ;
ngeOut.WriteInt( GetVertexNum(), ";") ;
// numero di triangoli
osOut << ToString( GetTriangleNum()) << ";" << endl ;
ngeOut.WriteInt( GetTriangleNum(), ";", true) ;
// ciclo sui vertici
for ( int i = 0 ; i < int( m_vVert.size()) ; ++ i) {
osOut << ToString( i) << ";" ;
osOut << ToString( m_vVert[i].ptP) << ";" ;
osOut << ToString( m_vVert[i].nIdTria) << ";" ;
osOut << ToString( m_vVert[i].nFlag) << ";" << endl ;
ngeOut.WriteInt( i, ";") ;
ngeOut.WritePoint( m_vVert[i].ptP, ";") ;
ngeOut.WriteInt( m_vVert[i].nIdTria, ";") ;
ngeOut.WriteInt( m_vVert[i].nFlag, ";", true) ;
}
// ciclo sui triangoli
for ( int i = 0 ; i < int( m_vTria.size()) ; ++ i) {
osOut << ToString( i) << ";" ;
osOut << ToString( m_vTria[i].nIdVert[0]) << "," ;
osOut << ToString( m_vTria[i].nIdVert[1]) << "," ;
osOut << ToString( m_vTria[i].nIdVert[2]) << ";" ;
osOut << ToString( m_vTria[i].nIdAdjac[0]) << "," ;
osOut << ToString( m_vTria[i].nIdAdjac[1]) << "," ;
osOut << ToString( m_vTria[i].nIdAdjac[2]) << ";" ;
osOut << ToString( m_vTria[i].vtN) << ";" ;
osOut << ToString( m_vTria[i].nTFlag) << ";" ;
osOut << ToString( m_vTria[i].nEFlag) << ";" << endl ;
ngeOut.WriteInt( i, ";") ;
ngeOut.WriteInt( m_vTria[i].nIdVert[0], ",") ;
ngeOut.WriteInt( m_vTria[i].nIdVert[1], ",") ;
ngeOut.WriteInt( m_vTria[i].nIdVert[2], ";") ;
ngeOut.WriteInt( m_vTria[i].nIdAdjac[0], ",") ;
ngeOut.WriteInt( m_vTria[i].nIdAdjac[1], ",") ;
ngeOut.WriteInt( m_vTria[i].nIdAdjac[2], ";") ;
ngeOut.WriteVector( m_vTria[i].vtN, ";") ;
ngeOut.WriteInt( m_vTria[i].nTFlag, ";") ;
ngeOut.WriteInt( m_vTria[i].nEFlag, ";", true) ;
}
return true ;