EgtGeomKernel 1.5d5 :
- aggiunta scrittura binaria - tolte GetKey, Load e Save da interfaccia IGeoObj.
This commit is contained in:
+30
-22
@@ -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 ;
|
||||
|
||||
Reference in New Issue
Block a user