EgtGeomKernel 1.6j1 :

- aggiunte funzioni per gestire dati per textures su oggetti
- aggiornato formato Nge per salvare questi dati.
This commit is contained in:
Dario Sassi
2015-10-11 18:00:48 +00:00
parent 84fdbe98ff
commit 740392c456
15 changed files with 503 additions and 29 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
// EgalTech 2014-2014
//----------------------------------------------------------------------------
// File : Attribs.h Data : 03.03.14 Versione : 1.5c1
// Contenuto : Dichiarazione della classe GeoAttributes.
// Contenuto : Dichiarazione della classe Attribs.
//
//
//
+2
View File
@@ -325,6 +325,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<ClCompile Include="SfrCreate.cpp" />
<ClCompile Include="SurfFlatRegion.cpp" />
<ClCompile Include="SurfFlatRegionBooleans.cpp" />
<ClCompile Include="TextureData.cpp" />
<ClCompile Include="UserObjDefault.cpp" />
<ClCompile Include="UserObjFactory.cpp" />
<ClCompile Include="OutTsc.cpp" />
@@ -472,6 +473,7 @@ copy $(TargetPath) \EgtProg\Dll64</Command>
<ClInclude Include="ObjGraphicsMgr.h" />
<ClInclude Include="FontOs.h" />
<ClInclude Include="SurfFlatRegion.h" />
<ClInclude Include="TextureData.h" />
<ClInclude Include="UserObjDefault.h" />
<ClInclude Include="OutTsc.h" />
<ClInclude Include="PointsPCA.h" />
+6
View File
@@ -315,6 +315,9 @@
<ClCompile Include="OffsetCurve.cpp">
<Filter>File di origine\GeoOffset</Filter>
</ClCompile>
<ClCompile Include="TextureData.cpp">
<Filter>File di origine\Gdb</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
@@ -713,6 +716,9 @@
<ClInclude Include="..\Include\EGkSfrCreate.h">
<Filter>File di intestazione\Include</Filter>
</ClInclude>
<ClInclude Include="TextureData.h">
<Filter>File di intestazione</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="EgtGeomKernel.rc">
+13 -4
View File
@@ -109,6 +109,10 @@ GdbGeo::Save( NgeWriter& ngeOut) const
if ( ! GdbObj::SaveAttribs( ngeOut))
return false ;
// TextureData
if ( ! GdbObj::SaveTextureData( ngeOut))
return false ;
// UserObj
if ( ! GdbObj::SaveUserObj( ngeOut))
return false ;
@@ -123,10 +127,6 @@ GdbGeo::Save( NgeWriter& ngeOut) const
bool
GdbGeo::Load( int nNgeId, NgeReader& ngeIn, int& nParentId)
{
string sLine ;
STRVECTOR vsParams ;
// creo l'oggetto geometrico corrispondente
int nType = GEOOBJ_NGEIDTOTYPE( nNgeId) ;
m_pGeoObj = GEOOBJ_CREATE( nType) ;
@@ -153,6 +153,15 @@ GdbGeo::Load( int nNgeId, NgeReader& ngeIn, int& nParentId)
return false ;
}
// eventuale TextureData
if ( nKey == NGE_T) {
if ( ! GdbObj::LoadTextureData( ngeIn))
return false ;
// leggo la prossima linea
if ( ! ngeIn.ReadKey( nKey))
return false ;
}
// eventuale UserObj
if ( nKey == NGE_U) {
if ( ! GdbObj::LoadUserObj( ngeIn))
+13
View File
@@ -156,6 +156,10 @@ GdbGroup::SaveEmpty( NgeWriter& ngeOut) const
if ( ! GdbObj::SaveAttribs( ngeOut))
return false ;
// TextureData
if ( ! GdbObj::SaveTextureData( ngeOut))
return false ;
// UserObj
if ( ! GdbObj::SaveUserObj( ngeOut))
return false ;
@@ -217,6 +221,15 @@ GdbGroup::Load( int nNgeId, NgeReader& ngeIn, int& nParentId)
return false ;
}
// eventuale TextureData
if ( nKey == NGE_T) {
if ( ! GdbObj::LoadTextureData( ngeIn))
return false ;
// leggo la prossima linea
if ( ! ngeIn.ReadKey( nKey))
return false ;
}
// eventuale UserObj
if ( nKey == NGE_U) {
if ( ! GdbObj::LoadUserObj( ngeIn))
+52
View File
@@ -1616,6 +1616,58 @@ GdbIterator::RemoveInfo( const string& sKey)
return m_pCurrObj->RemoveInfo( sKey) ;
}
//----------------------------------------------------------------------------
// TextureData
//----------------------------------------------------------------------------
bool
GdbIterator::SetTextureName( const string& sTxrName)
{
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
return false ;
// imposto il nome della texture
return m_pCurrObj->SetTextureName( sTxrName) ;
}
//----------------------------------------------------------------------------
bool
GdbIterator::SetTextureFrame( const Frame3d& frTxrRef)
{
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
return false ;
// imposto il nome della texture
return m_pCurrObj->SetTextureFrame( frTxrRef) ;
}
//----------------------------------------------------------------------------
bool
GdbIterator::RemoveTextureData( void)
{
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
return false ;
// rimuovo i dati della texture
return m_pCurrObj->RemoveTextureData() ;
}
//----------------------------------------------------------------------------
bool
GdbIterator::GetTextureName( string& sTxrName) const
{
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
return false ;
// recupero il nome della texture
return m_pCurrObj->GetTextureName( sTxrName) ;
}
//----------------------------------------------------------------------------
bool
GdbIterator::GetTextureFrame( Frame3d& frTxrRef) const
{
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
return false ;
// recupero il riferimento della texture
return m_pCurrObj->GetTextureFrame( frTxrRef) ;
}
//----------------------------------------------------------------------------
// UserObj
//----------------------------------------------------------------------------
+6
View File
@@ -142,6 +142,12 @@ class GdbIterator : public IGdbIterator
virtual bool GetInfo( const std::string& sKey, STRVECTOR& vsInfo) const ;
virtual bool ExistsInfo( const std::string& sKey) const ;
virtual bool RemoveInfo( const std::string& sKey) ;
// TextureData
virtual bool SetTextureName( const std::string& sTxrName) ;
virtual bool SetTextureFrame( const Frame3d& frTxrRef) ;
virtual bool RemoveTextureData( void) ;
virtual bool GetTextureName( std::string& sTxrName) const ;
virtual bool GetTextureFrame( Frame3d& frTxrRef) const ;
// UserObj
virtual bool SetUserObj( IUserObj* pUserObj) ;
virtual IUserObj* GetUserObj( void) ;
+130 -5
View File
@@ -17,6 +17,7 @@
#include "GdbObj.h"
#include "GdbGroup.h"
#include "Attribs.h"
#include "TextureData.h"
#include "UserObjDefault.h"
#include "NgeWriter.h"
#include "NgeReader.h"
@@ -30,8 +31,9 @@ using namespace std ;
//----------------------------------------------------------------------------
GdbObj::GdbObj( void)
: m_nId( GDB_ID_NULL), m_pAttribs( nullptr), m_pUserObj( nullptr), m_pSelPrev( nullptr),
m_pSelNext( nullptr), m_pGDB( nullptr), m_pNext( nullptr), m_pPrev( nullptr), m_pParent( nullptr)
: m_nId( GDB_ID_NULL), m_pAttribs( nullptr), m_pTxrData( nullptr), m_pUserObj( nullptr),
m_pSelPrev( nullptr), m_pSelNext( nullptr),
m_pGDB( nullptr), m_pNext( nullptr), m_pPrev( nullptr), m_pParent( nullptr)
{
}
@@ -42,6 +44,10 @@ GdbObj::~GdbObj( void)
if ( m_pAttribs != nullptr)
delete m_pAttribs ;
m_pAttribs = nullptr ;
// cancello i dati della texture
if ( m_pTxrData != nullptr)
delete m_pTxrData ;
m_pTxrData = nullptr ;
// cancello UserObj
if ( m_pUserObj != nullptr)
delete m_pUserObj ;
@@ -66,6 +72,10 @@ GdbObj::CopyFrom( const GdbObj* pSou)
if ( m_pAttribs != nullptr)
delete m_pAttribs ;
m_pAttribs = nullptr ;
// elimino eventuali dati della texture pre-esistenti
if ( m_pTxrData != nullptr)
delete m_pTxrData ;
m_pTxrData = nullptr ;
// elimino eventuale UserObj pre-esistente
if ( m_pUserObj != nullptr)
delete m_pUserObj ;
@@ -80,8 +90,8 @@ GdbObj::CopyFrom( const GdbObj* pSou)
// copio Id
m_nId = pSou->m_nId ;
// copio gli attributi e UserObj
return ( CopyAttribsFrom( pSou) && CopyUserObjFrom( pSou)) ;
// copio gli attributi, i dati della texture e UserObj
return ( CopyAttribsFrom( pSou) && CopyTextureDataFrom( pSou) && CopyUserObjFrom( pSou)) ;
}
//----------------------------------------------------------------------------
@@ -91,7 +101,6 @@ GdbObj::CopyAttribsFrom( const GdbObj* pSou)
// se l'oggetto sorgente non esiste
if ( pSou == nullptr)
return false ;
// copio gli attributi
if ( pSou->m_pAttribs != nullptr) {
m_pAttribs = pSou->m_pAttribs->Clone() ;
@@ -113,6 +122,29 @@ GdbObj::CopyAttribsFrom( const GdbObj* pSou)
return true ;
}
//----------------------------------------------------------------------------
bool
GdbObj::CopyTextureDataFrom( const GdbObj* pSou)
{
// se l'oggetto sorgente non esiste
if ( pSou == nullptr)
return false ;
// copio texture data
if ( pSou->m_pTxrData != nullptr) {
m_pTxrData = pSou->m_pTxrData->Clone() ;
if ( m_pTxrData == nullptr)
return false ;
}
// altrimenti li cancello
else {
if ( m_pTxrData != nullptr)
delete m_pTxrData ;
m_pTxrData = nullptr ;
}
return true ;
}
//----------------------------------------------------------------------------
bool
GdbObj::CopyUserObjFrom( const GdbObj* pSou)
@@ -993,6 +1025,99 @@ GdbObj::RemoveInfo( const string& sKey)
return m_pAttribs->RemoveInfo( sKey) ;
}
//----------------------------------------------------------------------------
// TextureData
//----------------------------------------------------------------------------
bool
GdbObj::SaveTextureData( NgeWriter& ngeOut) const
{
if ( m_pTxrData != nullptr)
return m_pTxrData->Save( ngeOut) ;
return true ;
}
//----------------------------------------------------------------------------
bool
GdbObj::LoadTextureData( NgeReader& ngeIn)
{
if ( GetSafeTextureData() == nullptr)
return false ;
return m_pTxrData->Load( ngeIn) ;
}
//----------------------------------------------------------------------------
TextureData*
GdbObj::GetSafeTextureData( void)
{
if ( m_pTxrData == nullptr) {
TextureData* pTxrData = new (nothrow) TextureData ;
if ( pTxrData == nullptr)
return nullptr ;
m_pTxrData = pTxrData ;
}
return m_pTxrData ;
}
//----------------------------------------------------------------------------
bool
GdbObj::SetTextureName( const string& sTxrName)
{
// se nome vuoto non faccio alcunché
if ( sTxrName.empty())
return false ;
// verifico esistenza (con eventuale creazione) dei dati di texture
if ( GetSafeTextureData() == nullptr)
return false ;
// assegno il nome
return m_pTxrData->SetName( sTxrName) ;
}
//----------------------------------------------------------------------------
bool
GdbObj::SetTextureFrame( const Frame3d& frTxrRef)
{
// verifico esistenza dei dati di texture
if ( m_pTxrData == nullptr)
return false ;
// assegno il riferimento
return m_pTxrData->SetFrame( frTxrRef) ;
}
//----------------------------------------------------------------------------
bool
GdbObj::RemoveTextureData( void)
{
if ( m_pTxrData != nullptr)
delete m_pTxrData ;
m_pTxrData = nullptr ;
return true ;
}
//----------------------------------------------------------------------------
bool
GdbObj::GetTextureName( string& sTxrName) const
{
// se non ci sono dati di texture
if ( m_pTxrData == nullptr)
return false ;
// restituisco il nome
return m_pTxrData->GetName( sTxrName) ;
}
//----------------------------------------------------------------------------
bool
GdbObj::GetTextureFrame( Frame3d& frTxrRef) const
{
// verifico esistenza dei dati di texture
if ( m_pTxrData == nullptr)
return false ;
// restituisco il riferimento
return m_pTxrData->GetFrame( frTxrRef) ;
}
//----------------------------------------------------------------------------
// IUserObj
//----------------------------------------------------------------------------
+13
View File
@@ -24,6 +24,7 @@ class GeomDB ;
class GdbGroup ;
class IdManager ;
class Attribs ;
class TextureData ;
class IUserObj ;
class NgeWriter ;
class NgeReader ;
@@ -56,6 +57,7 @@ class GdbObj
GdbObj( void) ;
bool CopyFrom( const GdbObj* pSou) ;
bool CopyAttribsFrom( const GdbObj* pSou) ;
bool CopyTextureDataFrom( const GdbObj* pSou) ;
bool CopyUserObjFrom( const GdbObj* pSou) ;
public :
@@ -117,6 +119,16 @@ class GdbObj
bool GetInfo( const std::string& sKey, STRVECTOR& vsInfo) const ;
bool ExistsInfo( const std::string& sKey) const ;
bool RemoveInfo( const std::string& sKey) ;
bool SaveTextureData( NgeWriter& ngeOut) const ;
bool LoadTextureData( NgeReader& ngeIn) ;
TextureData* GetTextureData( void)
{ return m_pTxrData ; }
TextureData* GetSafeTextureData( void) ;
bool SetTextureName( const std::string& sTxrName) ;
bool SetTextureFrame( const Frame3d& frTxrRef) ;
bool RemoveTextureData( void) ;
bool GetTextureName( std::string& sTxrName) const ;
bool GetTextureFrame( Frame3d& frTxrRef) const ;
bool SaveUserObj( NgeWriter& ngeOut) const ;
bool LoadUserObj( NgeReader& ngeIn) ;
@@ -148,6 +160,7 @@ class GdbObj
public :
int m_nId ;
Attribs* m_pAttribs ;
TextureData* m_pTxrData ;
IUserObj* m_pUserObj ;
protected :
+78
View File
@@ -17,6 +17,7 @@
#include "GdbGeo.h"
#include "DllMain.h"
#include "Attribs.h"
#include "TextureData.h"
#include "NgeReader.h"
#include "NgeWriter.h"
#include "/EgtDev/Include/EGkStringUtils3d.h"
@@ -2673,6 +2674,83 @@ GeomDB::RemoveInfo( int nId, const string& sKey)
return pGdbObj->RemoveInfo( sKey) ;
}
//----------------------------------------------------------------------------
// TextureData
//----------------------------------------------------------------------------
bool
GeomDB::DumpTextureData( int nId, string& sOut, bool bMM, const char* szNewLine) const
{
// recupero l'oggetto
const GdbObj* pGdbObj = GetGdbObj( nId) ;
if ( pGdbObj == nullptr)
return false ;
// eseguo il dump
if ( pGdbObj->m_pTxrData != nullptr)
return pGdbObj->m_pTxrData->Dump( *this, sOut, bMM, szNewLine) ;
else
return true ;
}
//----------------------------------------------------------------------------
bool
GeomDB::SetTextureName( int nId, const string& sTxrName)
{
// recupero l'oggetto
GdbObj* pGdbObj = GetGdbObj( nId) ;
if ( pGdbObj == nullptr)
return false ;
// imposto il nome della texture
return pGdbObj->SetTextureName( sTxrName) ;
}
//----------------------------------------------------------------------------
bool
GeomDB::SetTextureFrame( int nId, const Frame3d& frTxrRef)
{
// recupero l'oggetto
GdbObj* pGdbObj = GetGdbObj( nId) ;
if ( pGdbObj == nullptr)
return false ;
// imposto il nome della texture
return pGdbObj->SetTextureFrame( frTxrRef) ;
}
//----------------------------------------------------------------------------
bool
GeomDB::RemoveTextureData( int nId)
{
// recupero l'oggetto
GdbObj* pGdbObj = GetGdbObj( nId) ;
if ( pGdbObj == nullptr)
return false ;
// rimuovo i dati della texture
return pGdbObj->RemoveTextureData() ;
}
//----------------------------------------------------------------------------
bool
GeomDB::GetTextureName( int nId, string& sTxrName) const
{
// recupero l'oggetto
const GdbObj* pGdbObj = GetGdbObj( nId) ;
if ( pGdbObj == nullptr)
return false ;
// recupero il nome della texture
return pGdbObj->GetTextureName( sTxrName) ;
}
//----------------------------------------------------------------------------
bool
GeomDB::GetTextureFrame( int nId, Frame3d& frTxrRef) const
{
// recupero l'oggetto
const GdbObj* pGdbObj = GetGdbObj( nId) ;
if ( pGdbObj == nullptr)
return false ;
// recupero il riferimento della texture
return pGdbObj->GetTextureFrame( frTxrRef) ;
}
//----------------------------------------------------------------------------
// UserObj
//----------------------------------------------------------------------------
+7
View File
@@ -179,6 +179,13 @@ class GeomDB : public IGeomDB
virtual bool GetInfo( int nId, const std::string& sKey, STRVECTOR& vsInfo) const ;
virtual bool ExistsInfo( int nId, const std::string& sKey) const ;
virtual bool RemoveInfo( int nId, const std::string& sKey) ;
// TextureData
virtual bool DumpTextureData( int nId, std::string& sOut, bool bMM = true, const char* szNewLine = "\n") const ;
virtual bool SetTextureName( int nId, const std::string& sTxrName) ;
virtual bool SetTextureFrame( int nId, const Frame3d& frTxrRef) ;
virtual bool RemoveTextureData( int nId) ;
virtual bool GetTextureName( int nId, std::string& sTxrName) const ;
virtual bool GetTextureFrame( int nId, Frame3d& frTxrRef) const ;
// UserObj
virtual bool SetUserObj( int nId, IUserObj* pUserObj) ;
virtual IUserObj* GetUserObj( int nId) ;
+20 -16
View File
@@ -1,7 +1,7 @@
//----------------------------------------------------------------------------
// EgalTech 2014-2015
//----------------------------------------------------------------------------
// File : NgeConst.h Data : 05.08.15 Versione : 1.6h2
// File : NgeConst.h Data : 04.10.15 Versione : 1.6j1
// Contenuto : Costanti per file Nge.
//
//
@@ -13,6 +13,7 @@
// 11.03.15 DS 1010 -> Aggiunto flag orientata e elenco facce a SurfTm.
// 22.05.15 DS 1011 -> Aggiunta possibilità estensione oggetti con IUserObj.
// 05.08.15 DS 1012 -> Aggiunta FlatRegion.
// 04.10.15 DS 1013 -> Aggiunto TextureData.
//
//----------------------------------------------------------------------------
@@ -38,7 +39,9 @@ const int NGE_VER_1011 = 1011 ;
// 1011 : aggiunta possibilità estensione oggetti con IUserObj (Keyword U)
const int NGE_VER_1012 = 1012 ;
// 1012 : aggiunta superficie FlatRegion
const int NGE_VER_LAST = NGE_VER_1012 ;
const int NGE_VER_1013 = 1013 ;
// 1013 : aggiunto TextureData (Keyword T)
const int NGE_VER_LAST = NGE_VER_1013 ;
// Indici KeyWord
const int NGE_START = 0 ;
const int NGE_END = 1 ;
@@ -48,17 +51,18 @@ const int NGE_A = 4 ;
const int NGE_G = 5 ;
const int NGE_P = 6 ;
const int NGE_U = 7 ;
const int NGE_A_GRP = 8 ;
const int NGE_X_CPY = 9 ;
const int NGE_G_VEC = 10 ;
const int NGE_G_PNT = 11 ;
const int NGE_G_FRM = 12 ;
const int NGE_C_LIN = 13 ;
const int NGE_C_ARC = 14 ;
const int NGE_C_BEZ = 15 ;
const int NGE_C_CMP = 16 ;
const int NGE_S_TRM = 17 ;
const int NGE_S_FRG = 18 ;
const int NGE_V_ZMP = 19 ;
const int NGE_E_TXT = 20 ;
const int NGE_LAST_ID = 20 ; // ultimo valore
const int NGE_T = 8 ;
const int NGE_A_GRP = 9 ;
const int NGE_X_CPY = 10 ;
const int NGE_G_VEC = 11 ;
const int NGE_G_PNT = 12 ;
const int NGE_G_FRM = 13 ;
const int NGE_C_LIN = 14 ;
const int NGE_C_ARC = 15 ;
const int NGE_C_BEZ = 16 ;
const int NGE_C_CMP = 17 ;
const int NGE_S_TRM = 18 ;
const int NGE_S_FRG = 19 ;
const int NGE_V_ZMP = 20 ;
const int NGE_E_TXT = 21 ;
const int NGE_LAST_ID = 21 ; // ultimo valore
+2
View File
@@ -28,6 +28,7 @@ const std::string NgeAscKeyW[] = { "START", // NGE_START
"G", // NGE_G
"P", // NGE_P
"U", // NGE_U
"T", // NGE_T
"A_GRP", // NGE_A_GRP
"X_CPY", // NGE_X_CPY
"G_VEC", // NGE_G_VEC
@@ -58,6 +59,7 @@ const int NgeBinKeyW[] = { NGEB_GEN_BASE + 0x0F0F, // NGE_START
NGEB_GEN_BASE + 0x0201, // NGE_G
NGEB_GEN_BASE + 0x0202, // NGE_P
NGEB_GEN_BASE + 0x0203, // NGE_U
NGEB_GEN_BASE + 0x0204, // NGE_T
NGEB_GDB_BASE + 0x0000, // NGE_A_GRP
NGEB_GDB_BASE + 0x0001, // NGE_X_CPY
NGEB_GEO_BASE + GEO_VECT3D, // NGE_G_VEC
+111
View File
@@ -0,0 +1,111 @@
//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : TextureData.cpp Data : 04.10.15 Versione : 1.6j1
// Contenuto : Implementazione della classe TextureData.
//
//
//
// Modifiche : 04.10.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
//--------------------------- Include ----------------------------------------
#include "stdafx.h"
#include "TextureData.h"
#include "NgeWriter.h"
#include "NgeReader.h"
#include "GeomDB.h"
#include "/EgtDev/Include/EGkStringUtils3d.h"
#include "/EgtDev/Include/EGkUiUnits.h"
#include "/EgtDev/Include/EgnStringKeyVal.h"
using namespace std ;
//----------------------------------------------------------------------------
bool
TextureData::Dump( const GeomDB& GDB, string& sOut, bool bMM, const char* szNewLine) const
{
// nome della texture
sOut += "Texture Name=" ;
sOut += m_sTxrName ;
sOut += szNewLine ;
// riferimento della texture
sOut += "O(" + ToString( GetInUiUnits( m_frTxrRef.Orig(), bMM)) + ")" + szNewLine ;
sOut += "VX(" + ToString( m_frTxrRef.VersX()) + ")" + szNewLine ;
sOut += "VY(" + ToString( m_frTxrRef.VersY()) + ")" + szNewLine ;
sOut += "VZ(" + ToString( m_frTxrRef.VersZ()) + ")" + szNewLine ;
return true ;
}
//----------------------------------------------------------------------------
bool
TextureData::Save( NgeWriter& ngeOut) const
{
// flag presenza dati di texture
if ( ! ngeOut.WriteKey( NGE_T))
return false ;
// nome della texture
if ( ! ngeOut.WriteString( m_sTxrName, ",", false))
return false ;
// spazio per un flag intero
if ( ! ngeOut.WriteInt( 0, ";", true))
return false ;
// riferimento della texture
if ( ! ngeOut.WriteFrame( m_frTxrRef, ";", true))
return false ;
return true ;
}
//----------------------------------------------------------------------------
bool
TextureData::Load( NgeReader& ngeIn)
{
// nome della texture
if ( ! ngeIn.ReadString( m_sTxrName, ",", false))
return false ;
// spazio per un flag intero
int nFlag ;
if ( ! ngeIn.ReadInt( nFlag, ";", true))
return false ;
// riferimento della texture
if ( ! ngeIn.ReadFrame( m_frTxrRef, ";", true))
return false ;
return true ;
}
//----------------------------------------------------------------------------
bool
TextureData::SetName( const string& sTxrName)
{
m_sTxrName = sTxrName ;
return true ;
}
//----------------------------------------------------------------------------
bool
TextureData::SetFrame( const Frame3d& frTxrRef)
{
if ( ! frTxrRef.IsValid())
return false ;
m_frTxrRef = frTxrRef ;
return true ;
}
//----------------------------------------------------------------------------
bool
TextureData::GetName( string& sTxrName) const
{
sTxrName = m_sTxrName ;
return ( ! m_sTxrName.empty()) ;
}
//----------------------------------------------------------------------------
bool
TextureData::GetFrame( Frame3d& frTxrRef) const
{
frTxrRef = m_frTxrRef ;
return m_frTxrRef.IsValid() ;
}
+46
View File
@@ -0,0 +1,46 @@
//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : TextureData.h Data : 04.10.15 Versione : 1.6j1
// Contenuto : Dichiarazione della classe TextureData.
//
//
//
// Modifiche : 04.10.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkGdbConst.h"
#include "/EgtDev/Include/EGkFrame3d.h"
#include "/EgtDev/Include/EgtStringBase.h"
class NgeWriter ;
class NgeReader ;
class GeomDB ;
//----------------------------------------------------------------------------
class TextureData
{
public :
TextureData* Clone( void) const
{ TextureData* pTxrData ;
// alloco oggetto
pTxrData = new(std::nothrow) TextureData ;
if ( pTxrData != nullptr)
*pTxrData = *this ;
return pTxrData ; }
bool Dump( const GeomDB& GDB, std::string& sOut, bool bMM = true, const char* szNewLine = "\n") const ;
bool Save( NgeWriter& ngeOut) const ;
bool Load( NgeReader& ngeIn) ;
bool SetName( const std::string& sTxrName) ;
bool SetFrame( const Frame3d& frTxrRef) ;
bool GetName( std::string& sTxrName) const ;
bool GetFrame( Frame3d& frTxrRef) const ;
private :
std::string m_sTxrName ; // Nome della texture
Frame3d m_frTxrRef ; // Riferimento della texture
} ;