2b3574cefc
- ricompilazione per passaggio a C++ 20 - modifiche a funzioni exe/lua SetLevel e SetMode per ricevere un vettore di Id.
925 lines
29 KiB
C++
925 lines
29 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2014-2015
|
|
//----------------------------------------------------------------------------
|
|
// File : EXE_GdbObjAttribs.cpp Data : 04.05.15 Versione : 1.6e1
|
|
// Contenuto : Funzioni sugli attributi degli oggetti di GeomDB per EXE.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 03.09.14 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include "EXE.h"
|
|
#include "EXE_Macro.h"
|
|
#include "AuxTools.h"
|
|
#include "GeoTools.h"
|
|
#include "/EgtDev/Include/EXeExecutor.h"
|
|
#include "/EgtDev/Include/EGkStringUtils3d.h"
|
|
#include "/EgtDev/Include/EgtStringConverter.h"
|
|
#include "/EgtDev/Include/EgtPointerOwner.h"
|
|
|
|
using namespace std ;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeCopyAttributes( int nSouId, int nDestId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// copio gli attributi (compreso il nome)
|
|
bool bOk = pGeomDB->CopyAttributes( nSouId, nDestId) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetLevel( const INTVECTOR& vIds, int nLevel)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero pezzo e layer correnti
|
|
bool bCurrPartOff = false ;
|
|
bool bCurrLayerOff = false ;
|
|
int nCurrPartId = ExeGetCurrPart() ;
|
|
int nCurrLayerId = ExeGetCurrLayer() ;
|
|
// ciclo sul vettore degli identificativi
|
|
bool bOk = true ;
|
|
for ( int i = 0 ; i < ssize( vIds) && bOk ; ++ i) {
|
|
// impostazione livello
|
|
int nId = (( vIds[i] != GDB_ID_SEL) ? vIds[i] : pGeomDB->GetFirstSelectedObj()) ;
|
|
while ( nId != GDB_ID_NULL) {
|
|
// imposto il livello
|
|
if ( ! pGeomDB->SetLevel( nId, nLevel))
|
|
bOk = false ;
|
|
// se nascosto pezzo corrente o layer corrente
|
|
if ( nLevel != GDB_LV_USER) {
|
|
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
|
|
bool bPrevCmdLog = SetCmdLog( false) ;
|
|
if ( bCurrPartOff)
|
|
ExeResetCurrPartLayer() ;
|
|
else if ( bCurrLayerOff)
|
|
ExeSetCurrPartLayer( nCurrPartId, ExeGetFirstLayer( nCurrPartId, true)) ;
|
|
SetCmdLog( bPrevCmdLog) ;
|
|
// dichiaro progetto modificato
|
|
ExeSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLevel = "GDB_LV.USER" ;
|
|
if ( nLevel == GDB_LV_SYSTEM)
|
|
sLevel = "GDB_LV.SYSTEM" ;
|
|
else if ( nLevel == GDB_LV_TEMP)
|
|
sLevel = "GDB_LV.TEMP" ;
|
|
string sLua = "EgtSetLevel({" + IdListToString( vIds) + "}," +
|
|
sLevel + ")" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeRevertLevel( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// porto il livello allo stato precedente
|
|
bool bOk = pGeomDB->RevertLevel( nId) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetLevel( 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) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetCalcLevel( 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) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetMode( const INTVECTOR& vIds, int nMode)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero pezzo e layer correnti
|
|
bool bCurrPartOff = false ;
|
|
bool bCurrLayerOff = false ;
|
|
int nCurrPartId = ExeGetCurrPart() ;
|
|
int nCurrLayerId = ExeGetCurrLayer() ;
|
|
// ciclo sul vettore degli identificativi
|
|
bool bOk = true ;
|
|
for ( int i = 0 ; i < ssize( vIds) && bOk ; ++ i) {
|
|
// impostazione livello
|
|
int nId = (( vIds[i] != GDB_ID_SEL) ? vIds[i] : pGeomDB->GetFirstSelectedObj()) ;
|
|
while ( nId != GDB_ID_NULL) {
|
|
// imposto il modo
|
|
if ( ! pGeomDB->SetMode( nId, nMode))
|
|
bOk = false ;
|
|
// se nascosto pezzo corrente o layer corrente
|
|
if ( nMode != GDB_MD_STD) {
|
|
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
|
|
bool bPrevCmdLog = SetCmdLog( false) ;
|
|
if ( bCurrPartOff)
|
|
ExeResetCurrPartLayer() ;
|
|
else if ( bCurrLayerOff)
|
|
ExeSetCurrPartLayer( nCurrPartId, ExeGetFirstLayer( nCurrPartId, true)) ;
|
|
SetCmdLog( bPrevCmdLog) ;
|
|
// dichiaro progetto modificato
|
|
ExeSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sMode = "GDB_MD.STD" ;
|
|
if ( nMode == GDB_MD_LOCKED)
|
|
sMode = "GDB_MD.LOCKED" ;
|
|
else if ( nMode == GDB_MD_HIDDEN)
|
|
sMode = "GDB_MD.HIDDEN" ;
|
|
string sLua = "EgtSetMode({" + IdListToString( vIds) + "}," +
|
|
sMode + ")" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeRevertMode( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// porto il modo allo stato precedente
|
|
bool bOk = pGeomDB->RevertMode( nId) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetMode( 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) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetCalcMode( 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) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetStatus( 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 = ExeGetCurrPart() ;
|
|
int nCurrLayerId = ExeGetCurrLayer() ;
|
|
// ciclo sul vettore degli identificativi
|
|
bool bOk = true ;
|
|
for ( int i = 0 ; i < ssize( vIds) && bOk ; ++ i) {
|
|
// impostazione stato
|
|
int nId = (( vIds[i] != GDB_ID_SEL) ? vIds[i] : pGeomDB->GetFirstSelectedObj()) ;
|
|
while ( nId != GDB_ID_NULL) {
|
|
// imposto lo stato
|
|
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
|
|
bool bPrevCmdLog = SetCmdLog( false) ;
|
|
if ( bCurrPartOff)
|
|
ExeResetCurrPartLayer() ;
|
|
else if ( bCurrLayerOff)
|
|
ExeSetCurrPartLayer( nCurrPartId, ExeGetFirstLayer( nCurrPartId, true)) ;
|
|
SetCmdLog( bPrevCmdLog) ;
|
|
// dichiaro progetto modificato
|
|
ExeSetModified() ;
|
|
// 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
|
|
ExeRevertStatus( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// porto lo stato al valore precedente
|
|
bool bOk = pGeomDB->RevertStatus( nId) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetStatus( int nId, int* pnStat)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// verifico il parametro
|
|
if ( pnStat == nullptr)
|
|
return false ;
|
|
// recupero lo stato
|
|
return pGeomDB->GetStatus( nId, *pnStat) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetCalcStatus( int nId, int* pnStat)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// verifico il parametro
|
|
if ( pnStat == nullptr)
|
|
return false ;
|
|
// recupero lo stato
|
|
return pGeomDB->GetCalcStatus( nId, *pnStat) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetMark( int nId, int nMark)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// imposto l'evidenziazione
|
|
bool bOk = pGeomDB->SetMark( nId, nMark) ;
|
|
// non produce modifica perchè mark ignorato in salvataggio
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeResetMark( 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 ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetMark( int nId, int* pnMark)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// verifico il parametro
|
|
if ( pnMark == nullptr)
|
|
return false ;
|
|
// recupero l'evidenziazione
|
|
return pGeomDB->GetMark( nId, *pnMark) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetCalcMark( int nId, int* pnMark)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// verifico il parametro
|
|
if ( pnMark == nullptr)
|
|
return false ;
|
|
// recupero il modo
|
|
return pGeomDB->GetCalcMark( nId, *pnMark) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeStdColor( const string& sName, Color& ColStd)
|
|
{
|
|
return GetStdColor( sName, ColStd) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetColor( const INTVECTOR& vIds, const Color& cCol, bool bSetAlpha)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno il colore
|
|
bool bOk = true ;
|
|
for ( int i = 0 ; i < int( 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()) ;
|
|
}
|
|
}
|
|
ExeSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtSetColor({" + IdListToString( vIds) + "},{" +
|
|
ToString( cCol) + "}," +
|
|
( bSetAlpha ? "true" : "false") + ")" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetAlpha( 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()) ;
|
|
}
|
|
}
|
|
ExeSetModified() ;
|
|
// 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
|
|
ExeResetColor( 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()) ;
|
|
}
|
|
}
|
|
ExeSetModified() ;
|
|
// 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
|
|
ExeGetColor( int nId, Color& cCol)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero il colore
|
|
return pGeomDB->GetMaterial( nId, cCol) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetCalcColor( int nId, Color& cCol)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero il colore
|
|
return pGeomDB->GetCalcMaterial( nId, cCol) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetName( int nId, const string& sName)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno il nome
|
|
bool bOk = pGeomDB->SetName( nId, sName) ;
|
|
ExeSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtSetName(" + ToString( nId) + ",'" +
|
|
StringToLuaString( sName) + "')" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetName( int nId, string& sName)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero il nome
|
|
return pGeomDB->GetName( nId, sName) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeExistsName( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// verifico esistenza del nome
|
|
return pGeomDB->ExistsName( nId) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeRemoveName( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// rimuovo il nome
|
|
bool bOk = pGeomDB->RemoveName( nId) ;
|
|
ExeSetModified() ;
|
|
// 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 ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, bool bInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, bInfo) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, int nInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, nInfo) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, double dInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, dInfo) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( 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) ;
|
|
ExeSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtSetInfo(" + ToString( nId) + ",'" +
|
|
StringToLuaString( sKey) + "','" +
|
|
StringToLuaString( sInfo) + "')" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, const Vector3d& vtV)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, vtV) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, const Point3d& ptP)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, ptP) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, const BBox3d& b3Box)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, b3Box) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, const Frame3d& frFrame)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, frFrame) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, const INTVECTOR& vnInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, vnInfo) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, const DBLVECTOR& vdInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, vdInfo) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetInfo( int nId, const string& sKey, const STRVECTOR& vsInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno la info
|
|
bool bOk = pGeomDB->SetInfo( nId, sKey, vsInfo) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, bool& bInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, bInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, int& nInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, nInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, double& dInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, dInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, string& sInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero info
|
|
return pGeomDB->GetInfo( nId, sKey, sInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, Vector3d& vtV)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, vtV) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, Point3d& ptP)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, ptP) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, BBox3d& b3Box)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, b3Box) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, Frame3d& frFrame)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, frFrame) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, INTVECTOR& vnInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, vnInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, DBLVECTOR& vdInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, vdInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetInfo( int nId, const string& sKey, STRVECTOR& vsInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero la info
|
|
return pGeomDB->GetInfo( nId, sKey, vsInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeExistsInfo( int nId, const string& sKey)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// verifico esistenza info
|
|
return pGeomDB->ExistsInfo( nId, sKey) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeRemoveInfo( int nId, const string& sKey)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// rimuovo la info
|
|
bool bOk = pGeomDB->RemoveInfo( nId, sKey) ;
|
|
ExeSetModified() ;
|
|
// se richiesto, salvo il comando Lua equivalente
|
|
if ( IsCmdLog()) {
|
|
string sLua = "EgtRemoveInfo(" + ToString( nId) + ",'" +
|
|
StringToLuaString( sKey) + "')" +
|
|
" -- Ok=" + ToString( bOk) ;
|
|
LOG_INFO( GetCmdLogger(), sLua.c_str()) ;
|
|
}
|
|
// restituisco risultato
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetAllInfo( int nId, STRVECTOR& vsInfo)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero tutte le info
|
|
return pGeomDB->GetAllInfo( nId, vsInfo) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetTextureName( int nId, const string& sTxrName)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// assegno il nome della texture
|
|
bool bOk = pGeomDB->SetTextureName( nId, sTxrName) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetTextureFrame( int nId, const Frame3d& frTxrRef, int nRefType)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
bool bOk = true ;
|
|
// recupero il riferimento locale
|
|
Frame3d frLoc ;
|
|
bOk = bOk && pGeomDB->GetGlobFrame( nId, frLoc) ;
|
|
// porto in locale l'origine e i versori
|
|
Point3d ptOrigL = GetPointLocal( pGeomDB, frTxrRef.Orig(), nRefType, frLoc) ;
|
|
Vector3d vtXL = GetVectorLocal( pGeomDB, frTxrRef.VersX(), nRefType, frLoc) ;
|
|
Vector3d vtYL = GetVectorLocal( pGeomDB, frTxrRef.VersY(), nRefType, frLoc) ;
|
|
Vector3d vtZL = GetVectorLocal( pGeomDB, frTxrRef.VersZ(), nRefType, frLoc) ;
|
|
// ricreo il riferimento in locale
|
|
Frame3d frTxrLoc ;
|
|
bOk = bOk && frTxrLoc.Set( ptOrigL, vtXL, vtYL, vtZL) ;
|
|
// assegno il riferimento della texture
|
|
bOk = bOk && pGeomDB->SetTextureFrame( nId, frTxrLoc) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeRemoveTextureData( int nId)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// rimuovo i dati della texture
|
|
bool bOk = pGeomDB->RemoveTextureData( nId) ;
|
|
ExeSetModified() ;
|
|
return bOk ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetTextureName( int nId, string& sTxrName)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero il nome della texture
|
|
return pGeomDB->GetTextureName( nId, sTxrName) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeGetTextureFrame( int nId, int nRefId, Frame3d& frTxrRef)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// recupero il riferimento della texture
|
|
if ( ! pGeomDB->GetTextureFrame( nId, frTxrRef))
|
|
return false ;
|
|
// gestione trasformazione ( eventuale)
|
|
return TransformFrame( pGeomDB, nId, nRefId, frTxrRef) ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool
|
|
ExeSetStipple( int nId, int nFactor, int nPattern)
|
|
{
|
|
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
|
VERIFY_GEOMDB( pGeomDB, false)
|
|
// setto stipple
|
|
return pGeomDB->SetStipple( nId, nFactor, nPattern) ;
|
|
}
|