From 11d89dfd14df3aacd6684666d849cd92e0744e5e Mon Sep 17 00:00:00 2001 From: DarioS Date: Fri, 9 Sep 2022 08:45:26 +0200 Subject: [PATCH] EgtExchange : - ancora piccola miglioria a import BTL. --- BtlGeomProc.cpp | 96 ++++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/BtlGeomProc.cpp b/BtlGeomProc.cpp index 50d3fb4..67b72e7 100644 --- a/BtlGeomProc.cpp +++ b/BtlGeomProc.cpp @@ -5606,17 +5606,19 @@ BtlGeom::AddPlaning( int nGroup, int nProc, int nSide, const string& sDes, int n DoSewing( pStm, plyBottom) ; pStm->DoCompacting( STM_COMPACT_APPROX) ; // inserisco la superficie nel DB geometrico - int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nProcsId, Release( pStm)) ; - if ( nId == GDB_ID_NULL) - return false ; - // colore semitrasparente - SetAlpha( nId, 80) ; - // nome e info con tipo - SetNameAndInfo( nId, nGroup, nProc, nSide, sDes, nProcId) ; - // parametri - SetParams( nId, vnDPar, vdPar, vsUAtt) ; - // salvo Id - vIds.emplace_back( nId) ; + if ( ! pStm->IsEmpty()) { + int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nProcsId, Release( pStm)) ; + if ( nId == GDB_ID_NULL) + return false ; + // colore semitrasparente + SetAlpha( nId, 80) ; + // nome e info con tipo + SetNameAndInfo( nId, nGroup, nProc, nSide, sDes, nProcId) ; + // parametri + SetParams( nId, vnDPar, vdPar, vsUAtt) ; + // salvo Id + vIds.emplace_back( nId) ; + } } // se va fatto scasso sulla faccia opposta a quella di riferimento if ( ( nType & 4) != 0) { @@ -5647,17 +5649,19 @@ BtlGeom::AddPlaning( int nGroup, int nProc, int nSide, const string& sDes, int n DoSewing( pStm, plyBottom) ; pStm->DoCompacting( STM_COMPACT_APPROX) ; // inserisco la superficie nel DB geometrico - int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nProcsId, Release( pStm)) ; - if ( nId == GDB_ID_NULL) - return false ; - // colore semitrasparente - SetAlpha( nId, 80) ; - // nome e info con tipo - SetNameAndInfo( nId, nGroup, nProc, nSide, sDes, nProcId) ; - // parametri - SetParams( nId, vnDPar, vdPar, vsUAtt) ; - // salvo Id - vIds.emplace_back( nId) ; + if ( ! pStm->IsEmpty()) { + int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nProcsId, Release( pStm)) ; + if ( nId == GDB_ID_NULL) + return false ; + // colore semitrasparente + SetAlpha( nId, 80) ; + // nome e info con tipo + SetNameAndInfo( nId, nGroup, nProc, nSide, sDes, nProcId) ; + // parametri + SetParams( nId, vnDPar, vdPar, vsUAtt) ; + // salvo Id + vIds.emplace_back( nId) ; + } } // se va fatto scasso sulla faccia davanti a quella di riferimento if ( ( nType & 2) != 0) { @@ -5688,17 +5692,19 @@ BtlGeom::AddPlaning( int nGroup, int nProc, int nSide, const string& sDes, int n DoSewing( pStm, plyBottom) ; pStm->DoCompacting( STM_COMPACT_APPROX) ; // inserisco la superficie nel DB geometrico - int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nProcsId, Release( pStm)) ; - if ( nId == GDB_ID_NULL) - return false ; - // colore semitrasparente - SetAlpha( nId, 80) ; - // nome e info con tipo - SetNameAndInfo( nId, nGroup, nProc, nSide, sDes, nProcId) ; - // parametri - SetParams( nId, vnDPar, vdPar, vsUAtt) ; - // salvo Id - vIds.emplace_back( nId) ; + if ( ! pStm->IsEmpty()) { + int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nProcsId, Release( pStm)) ; + if ( nId == GDB_ID_NULL) + return false ; + // colore semitrasparente + SetAlpha( nId, 80) ; + // nome e info con tipo + SetNameAndInfo( nId, nGroup, nProc, nSide, sDes, nProcId) ; + // parametri + SetParams( nId, vnDPar, vdPar, vsUAtt) ; + // salvo Id + vIds.emplace_back( nId) ; + } } // se va fatto scasso sulla faccia dietro a quella di riferimento if ( ( nType & 8) != 0) { @@ -5729,17 +5735,19 @@ BtlGeom::AddPlaning( int nGroup, int nProc, int nSide, const string& sDes, int n DoSewing( pStm, plyBottom) ; pStm->DoCompacting( STM_COMPACT_APPROX) ; // inserisco la superficie nel DB geometrico - int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nProcsId, Release( pStm)) ; - if ( nId == GDB_ID_NULL) - return false ; - // colore semitrasparente - SetAlpha( nId, 80) ; - // nome e info con tipo - SetNameAndInfo( nId, nGroup, nProc, nSide, sDes, nProcId) ; - // parametri - SetParams( nId, vnDPar, vdPar, vsUAtt) ; - // salvo Id - vIds.emplace_back( nId) ; + if ( ! pStm->IsEmpty()) { + int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nProcsId, Release( pStm)) ; + if ( nId == GDB_ID_NULL) + return false ; + // colore semitrasparente + SetAlpha( nId, 80) ; + // nome e info con tipo + SetNameAndInfo( nId, nGroup, nProc, nSide, sDes, nProcId) ; + // parametri + SetParams( nId, vnDPar, vdPar, vsUAtt) ; + // salvo Id + vIds.emplace_back( nId) ; + } } // se non è stata inserita alcuna geometria if ( vIds.empty()) {