9d3dc5e537
- costanti stringa sostituite con costanti numeriche - modificate funzioni API e LUA per scansione pezzi e layer - aggiunta pulizia memoria al caricamento messaggi (necessario al cambio lingua) - migliorie varie a funzioni Lua.
680 lines
21 KiB
C++
680 lines
21 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2014-2014
|
|
//----------------------------------------------------------------------------
|
|
// File : API_GdbObjAttribs.cpp Data : 03.09.14 Versione : 1.5i1
|
|
// Contenuto : Funzioni sugli attributi degli oggetti di GeomDB per API.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 03.09.14 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include "API.h"
|
|
#include "API_Macro.h"
|
|
#include "AuxTools.h"
|
|
#include "/EgtDev/Include/EInAPI.h"
|
|
#include "/EgtDev/Include/EGkStringUtils3d.h"
|
|
#include "/EgtDev/Include/EGnStringConverter.h"
|
|
#include "/EgtDev/Include/EgtPointerOwner.h"
|
|
|
|
using namespace std ;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetLevel( int nId, int nLevel)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// imposto il livello
|
|
bool bOk = pGeomDB->SetLevel( nId, nLevel) ;
|
|
EgtSetModified() ;
|
|
return ( bOk ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtRevertLevel( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// porto il livello allo stato precedente
|
|
bool bOk = pGeomDB->RevertLevel( nId) ;
|
|
EgtSetModified() ;
|
|
return ( bOk ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetLevel( int nId, int* pnLevel)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico il parametro
|
|
if ( pnLevel == nullptr)
|
|
return FALSE ;
|
|
// recupero il livello
|
|
return ( pGeomDB->GetLevel( nId, *pnLevel) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetCalcLevel( int nId, int* pnLevel)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico il parametro
|
|
if ( pnLevel == nullptr)
|
|
return FALSE ;
|
|
// recupero il modo
|
|
return ( pGeomDB->GetCalcLevel( nId, *pnLevel) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetMode( int nId, int nMode)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// imposto il modo
|
|
bool bOk = pGeomDB->SetMode( nId, nMode) ;
|
|
EgtSetModified() ;
|
|
return ( bOk ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtRevertMode( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// porto il modo allo stato precedente
|
|
bool bOk = pGeomDB->RevertMode( nId) ;
|
|
EgtSetModified() ;
|
|
return ( bOk ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetMode( int nId, int* pnMode)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico il parametro
|
|
if ( pnMode == nullptr)
|
|
return FALSE ;
|
|
// recupero il modo
|
|
return ( pGeomDB->GetMode( nId, *pnMode) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetCalcMode( int nId, int* pnMode)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico il parametro
|
|
if ( pnMode == nullptr)
|
|
return FALSE ;
|
|
// recupero il modo
|
|
return ( pGeomDB->GetCalcMode( nId, *pnMode) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetStatus( int nId, int nStat)
|
|
{
|
|
INTVECTOR vIds ;
|
|
vIds.push_back( nId) ;
|
|
return ( EgtSetStatus( vIds, nStat) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtSetStatus( const INTVECTOR& vIds, int nStat)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero pezzo e layer correnti
|
|
bool bCurrPartOff = false ;
|
|
bool bCurrLayerOff = false ;
|
|
int nCurrPartId = EgtGetCurrPart() ;
|
|
int nCurrLayerId = EgtGetCurrLayer() ;
|
|
// ciclo sul vettore degli identificativi
|
|
bool bOk = true ;
|
|
for ( size_t i = 0 ; i < vIds.size() && bOk ; ++ i) {
|
|
// impostazione stato
|
|
int nId = (( vIds[i] != GDB_ID_SEL) ? vIds[i] : pGeomDB->GetFirstSelectedObj()) ;
|
|
while ( nId != GDB_ID_NULL) {
|
|
// imposto il modo
|
|
if ( ! pGeomDB->SetStatus( nId, nStat))
|
|
bOk = false ;
|
|
// se nascosto pezzo corrente o layer corrente
|
|
if ( nStat == GDB_ST_OFF) {
|
|
if ( nId == nCurrPartId)
|
|
bCurrPartOff = true ;
|
|
else if ( nId == nCurrLayerId)
|
|
bCurrLayerOff = true ;
|
|
}
|
|
// passo al successivo
|
|
nId = (( vIds[i] != GDB_ID_SEL) ? GDB_ID_NULL : pGeomDB->GetNextSelectedObj()) ;
|
|
}
|
|
}
|
|
// se pezzo o layer correnti da rideterminare
|
|
if ( bCurrPartOff)
|
|
EgtResetCurrPartLayer() ;
|
|
else if ( bCurrLayerOff)
|
|
EgtSetCurrPartLayer( nCurrPartId, EgtGetFirstLayer( nCurrPartId, true)) ;
|
|
// dichiaro progetto modificato
|
|
EgtSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sStat = "GDB_ST.ON" ;
|
|
if ( nStat == GDB_ST_SEL)
|
|
sStat = "GDB_ST.SEL" ;
|
|
else if ( nStat == GDB_ST_OFF)
|
|
sStat = "GDB_ST.OFF" ;
|
|
string sLua = "EgtSetStatus({" + IdListToString( vIds) + "}," +
|
|
sStat + ")" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtRevertStatus( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// porto lo stato al valore precedente
|
|
bool bOk = pGeomDB->RevertStatus( nId) ;
|
|
EgtSetModified() ;
|
|
return ( bOk ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetStatus( int nId, int* pnStat)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico il parametro
|
|
if ( pnStat == nullptr)
|
|
return FALSE ;
|
|
// recupero il modo
|
|
return ( pGeomDB->GetStatus( nId, *pnStat) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetCalcStatus( int nId, int* pnStat)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico il parametro
|
|
if ( pnStat == nullptr)
|
|
return FALSE ;
|
|
// recupero il modo
|
|
return ( pGeomDB->GetCalcStatus( nId, *pnStat) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetMark( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// imposto l'evidenziazione
|
|
bool bOk = pGeomDB->SetMark( nId) ;
|
|
// non produce modifica perchè mark ignorato in salvataggio
|
|
return ( bOk ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtResetMark( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// cancello l'evidenziazione
|
|
bool bOk = pGeomDB->ResetMark( nId) ;
|
|
// non produce modifica perchè mark ignorato in salvataggio
|
|
return ( bOk ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetMark( int nId, BOOL* pbMark)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico il parametro
|
|
if ( pbMark == nullptr)
|
|
return FALSE ;
|
|
// recupero il modo
|
|
return ( pGeomDB->GetMark( nId, *pbMark) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetCalcMark( int nId, BOOL* pbMark)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico il parametro
|
|
if ( pbMark == nullptr)
|
|
return FALSE ;
|
|
// recupero il modo
|
|
return ( pGeomDB->GetCalcMark( nId, *pbMark) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtStdColor( const wchar_t* wsName, int StdCol[4])
|
|
{
|
|
Color ColStd ;
|
|
if ( GetStdColor( wstrztoA( wsName), ColStd)) {
|
|
StdCol[0] = ColStd.GetIntRed() ;
|
|
StdCol[1] = ColStd.GetIntGreen() ;
|
|
StdCol[2] = ColStd.GetIntBlue() ;
|
|
StdCol[3] = ColStd.GetIntAlpha() ;
|
|
return TRUE ;
|
|
}
|
|
return FALSE ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetColor( int nId, const int ObjCol[4], BOOL bSetAlpha)
|
|
{
|
|
// assegno indice entità
|
|
INTVECTOR vIds ;
|
|
vIds.push_back( nId) ;
|
|
// sistemo il colore
|
|
Color cCol( ObjCol) ;
|
|
// eseguo
|
|
return ( EgtSetColor( vIds, cCol, (bSetAlpha != FALSE)) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtSetColor( const INTVECTOR& vIds, const Color& cCol, bool bSetAlpha)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno il colore
|
|
bool bOk = true ;
|
|
for ( size_t i = 0 ; i < vIds.size() ; ++ i) {
|
|
int nId = (( vIds[i] != GDB_ID_SEL) ? vIds[i] : pGeomDB->GetFirstSelectedObj()) ;
|
|
while ( nId != GDB_ID_NULL) {
|
|
Color cNew = cCol ;
|
|
// se richiesto, recupero alpha originale
|
|
if ( ! bSetAlpha) {
|
|
Color cOri ;
|
|
if ( pGeomDB->GetCalcMaterial( nId, cOri))
|
|
cNew.SetAlpha( cOri.GetIntAlpha()) ;
|
|
}
|
|
// eseguo assegnazione
|
|
if ( ! pGeomDB->SetMaterial( nId, cNew))
|
|
bOk = false ;
|
|
// passo al successivo
|
|
nId = (( vIds[i] != GDB_ID_SEL) ? GDB_ID_NULL : pGeomDB->GetNextSelectedObj()) ;
|
|
}
|
|
}
|
|
EgtSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sIds ;
|
|
for ( size_t i = 0 ; i < vIds.size() ; ++ i)
|
|
sIds += ( vIds[i] != GDB_ID_SEL ? ToString( vIds[i]) : "GDB_ID_SEL") + "," ;
|
|
sIds.pop_back() ;
|
|
string sLua = "EgtSetColor({" + sIds + "},{" +
|
|
ToString( cCol) + "}," +
|
|
( bSetAlpha ? "true" : "false") + ")" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetAlpha( int nId, int nAlpha)
|
|
{
|
|
// assegno indice entità
|
|
INTVECTOR vIds ;
|
|
vIds.push_back( nId) ;
|
|
// eseguo
|
|
return ( EgtSetAlpha( vIds, nAlpha) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtSetAlpha( const INTVECTOR& vIds, int nAlpha)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
bool bOk = true ;
|
|
// assegno la trasparenza
|
|
for ( size_t i = 0 ; i < vIds.size() ; ++ i) {
|
|
int nId = (( vIds[i] != GDB_ID_SEL) ? vIds[i] : pGeomDB->GetFirstSelectedObj()) ;
|
|
while ( nId != GDB_ID_NULL) {
|
|
// recupero il colore originale
|
|
Color cCol ;
|
|
bOk = bOk && pGeomDB->GetCalcMaterial( nId, cCol) ;
|
|
cCol.SetAlpha( nAlpha) ;
|
|
// eseguo assegnazione
|
|
bOk = bOk && pGeomDB->SetMaterial( nId, cCol) ;
|
|
// passo al successivo
|
|
nId = (( vIds[i] != GDB_ID_SEL) ? GDB_ID_NULL : pGeomDB->GetNextSelectedObj()) ;
|
|
}
|
|
}
|
|
EgtSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtSetAlpha({" + IdListToString( vIds) + "}," +
|
|
ToString( nAlpha) + ")" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtResetColor( int nId)
|
|
{
|
|
// assegno indice entità
|
|
INTVECTOR vIds ;
|
|
vIds.push_back( nId) ;
|
|
// eseguo
|
|
return ( EgtResetColor( vIds) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtResetColor( const INTVECTOR& vIds)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// tolgo il colore
|
|
bool bOk = true ;
|
|
for ( size_t i = 0 ; i < vIds.size() ; ++ i) {
|
|
int nId = (( vIds[i] != GDB_ID_SEL) ? vIds[i] : pGeomDB->GetFirstSelectedObj()) ;
|
|
while ( nId != GDB_ID_NULL) {
|
|
if ( ! pGeomDB->SetMaterial( nId, GDB_MT_PARENT))
|
|
bOk = false ;
|
|
// passo al successivo
|
|
nId = (( vIds[i] != GDB_ID_SEL) ? GDB_ID_NULL : pGeomDB->GetNextSelectedObj()) ;
|
|
}
|
|
}
|
|
EgtSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtResetColor({" + IdListToString( vIds) + "})" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetColor( int nId, int ObjCol[4])
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// recupero il colore
|
|
Color cCol ;
|
|
if ( pGeomDB->GetMaterial( nId, cCol)) {
|
|
ObjCol[0] = cCol.GetIntRed() ;
|
|
ObjCol[1] = cCol.GetIntGreen() ;
|
|
ObjCol[2] = cCol.GetIntBlue() ;
|
|
ObjCol[3] = cCol.GetIntAlpha() ;
|
|
return TRUE ;
|
|
}
|
|
else
|
|
return FALSE ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetCalcColor( int nId, int ObjCol[4])
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// recupero il colore
|
|
Color cCol ;
|
|
if ( pGeomDB->GetCalcMaterial( nId, cCol)) {
|
|
ObjCol[0] = cCol.GetIntRed() ;
|
|
ObjCol[1] = cCol.GetIntGreen() ;
|
|
ObjCol[2] = cCol.GetIntBlue() ;
|
|
ObjCol[3] = cCol.GetIntAlpha() ;
|
|
return TRUE ;
|
|
}
|
|
else
|
|
return FALSE ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetName( int nId, const wchar_t* wsName)
|
|
{
|
|
return ( EgtSetName( nId, wstrztoA( wsName)) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtSetName( int nId, const string& sName)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno il nome
|
|
bool bOk = pGeomDB->SetName( nId, sName) ;
|
|
EgtSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtSetName(" + ToString( nId) + ",'" +
|
|
sName + "')" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetName( int nId, wchar_t*& wsName)
|
|
{
|
|
if ( &wsName == nullptr)
|
|
return FALSE ;
|
|
string sName ;
|
|
if ( ! EgtGetName( nId, sName))
|
|
return FALSE ;
|
|
wsName = _wcsdup( stringtoW( sName)) ;
|
|
return (( wsName == nullptr) ? FALSE : TRUE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtGetName( int nId, string& sName)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero il nome
|
|
return pGeomDB->GetName( nId, sName) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtExistsName( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico esistenza del nome
|
|
return ( pGeomDB->ExistsName( nId) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtRemoveName( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// rimuovo il nome
|
|
bool bOk = pGeomDB->RemoveName( nId) ;
|
|
EgtSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtRemoveName(" + ToString( nId) + ")" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return ( bOk ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetInfo( int nId, const wchar_t* wsKey, const wchar_t* wsInfo)
|
|
{
|
|
return ( EgtSetInfo( nId, wstrztoA( wsKey), wstrztoA( wsInfo)) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtSetInfo( int nId, const string& sKey, const string& sInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, sInfo) ;
|
|
EgtSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtSetInfo(" + ToString( nId) + ",'" +
|
|
sKey + "','" +
|
|
sInfo + "')" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtSetInfoInt( int nId, const wchar_t* wsKey, int nInfo)
|
|
{
|
|
return ( EgtSetInfo( nId, wstrztoA( wsKey), nInfo) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtSetInfo( int nId, const string& sKey, int nInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, nInfo) ;
|
|
EgtSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetInfo( int nId, const wchar_t* wsKey, wchar_t*& wsInfo)
|
|
{
|
|
string sInfo ;
|
|
if ( ! EgtGetInfo( nId, wstrztoA( wsKey), sInfo))
|
|
return FALSE ;
|
|
wsInfo = _wcsdup( stringtoW( sInfo)) ;
|
|
return (( wsInfo == nullptr) ? FALSE : TRUE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtGetInfo( int nId, const string& sKey, string& sInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// recupero info
|
|
return pGeomDB->GetInfo( nId, sKey, sInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtGetInfoInt( int nId, const wchar_t* wsKey, int* pnInfo)
|
|
{
|
|
// verifico il parametro
|
|
if ( pnInfo == nullptr)
|
|
return FALSE ;
|
|
// recupero info
|
|
return ( EgtGetInfo( nId, wstrztoA( wsKey), *pnInfo) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtGetInfo( int nId, const string& sKey, int& nInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, nInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtExistsInfo( int nId, const wchar_t* wsKey)
|
|
{
|
|
return ( EgtExistsInfo( nId, wstrztoA( wsKey)) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtExistsInfo( int nId, const string& sKey)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// verifico esistenza info
|
|
return pGeomDB->ExistsInfo( nId, sKey) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
BOOL
|
|
__stdcall EgtRemoveInfo( int nId, const wchar_t* wsKey)
|
|
{
|
|
return ( EgtRemoveInfo( nId, wstrztoA( wsKey)) ? TRUE : FALSE) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
EgtRemoveInfo( int nId, const string& sKey)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, FALSE)
|
|
// rimuovo la info
|
|
bool bOk = pGeomDB->RemoveInfo( nId, sKey) ;
|
|
EgtSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtRemoveInfo(" + ToString( nId) + ",'" +
|
|
sKey + "')" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|