diff --git a/BtlGeomOutline.cpp b/BtlGeomOutline.cpp index 9ab0aa6..0b21039 100644 --- a/BtlGeomOutline.cpp +++ b/BtlGeomOutline.cpp @@ -75,6 +75,16 @@ BtlGeom::AddPartOutline( int nSide, const FCEDEQUE& dqFce, const STRVECTOR& vsUA int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nOutsId, Release( pStm)) ; if ( nId == GDB_ID_NULL) return false ; + // copio la curva per inserirla nel DBG + PtrOwner pCopy( pCrvCompo->Clone()) ; + if ( IsNull( pCopy)) + return false ; + pCopy->SetThickness( -GetSideHeight( nSide)) ; + pCopy->SetExtrusion( frRef.VersZ()) ; + // eseguo trim con le facce della trave + TrimFlatCurveWithBox( pCopy) ; + // inserisco la curva nel DB geometrico + int nTId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nOutsId, Release( pCopy)) ; // colore Color cCol = m_ProcsCol ; //cCol.SetAlpha( 80) ; @@ -88,6 +98,8 @@ BtlGeom::AddPartOutline( int nSide, const FCEDEQUE& dqFce, const STRVECTOR& vsUA // elenco degli eventuali attributi utente if ( ! SetUserAttributes( nId, vsUAtt)) return false ; + // identificativi di geometrie ausiliarie + SetAuxId( nId, {nTId}) ; // Creo le regioni sopra e sotto PtrOwner pSfr1( CreateSurfFlatRegion()) ; if ( IsNull( pSfr1) || ! pSfr1->AddExtLoop( Release( pCrvCompo))) @@ -159,6 +171,17 @@ BtlGeom::AddPartAperture( int nSide, const FCEDEQUE& dqFce, const STRVECTOR& vsU int nId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nOutsId, Release( pStm)) ; if ( nId == GDB_ID_NULL) return false ; + // copio la curva per inserirla nel DBG + PtrOwner pCopy( pCrvCompo->Clone()) ; + if ( IsNull( pCopy)) + return false ; + pCopy->Invert() ; + pCopy->SetThickness( -GetSideHeight( nSide)) ; + pCopy->SetExtrusion( frRef.VersZ()) ; + // eseguo trim con le facce della trave + TrimFlatCurveWithBox( pCopy) ; + // inserisco la curva nel DB geometrico + int nTId = m_pGDB->AddGeoObj( GDB_ID_NULL, m_nOutsId, Release( pCopy)) ; // colore Color cCol = m_ProcsCol ; //cCol.SetAlpha( 80) ; @@ -172,6 +195,8 @@ BtlGeom::AddPartAperture( int nSide, const FCEDEQUE& dqFce, const STRVECTOR& vsU // elenco degli eventuali attributi utente if ( ! SetUserAttributes( nId, vsUAtt)) return false ; + // identificativi di geometrie ausiliarie + SetAuxId( nId, {nTId}) ; // Creo le regioni sopra e sotto PtrOwner pSfr1( CreateSurfFlatRegion()) ; if ( IsNull( pSfr1) || ! pSfr1->AddExtLoop( Release( pCrvCompo))) diff --git a/EgtExchange.rc b/EgtExchange.rc index 47a20e8..3a84dd9 100644 Binary files a/EgtExchange.rc and b/EgtExchange.rc differ