EgtExecutor 1.6i6 :
- corretta gestione riferimenti nelle operazione booleane delle regioni - migliorata gestione abilitazione segnalazione modifiche.
This commit is contained in:
+12
-2
@@ -598,7 +598,10 @@ ExePackPart( int nId, double dXmin, double dYmin, double dXmax, double dYmax, do
|
||||
else if ( ! bBottomUp && b3Part.GetMin().y - ptPart.y + dYok < dYmin - dOffs - EPS_SMALL)
|
||||
return false ;
|
||||
// Porto il pezzo nella giusta posizione
|
||||
return pGeomDB->TranslateGlob( nId, Point3d( dXok, dYok, 0) - ptPart) ;
|
||||
if ( ! pGeomDB->TranslateGlob( nId, Point3d( dXok, dYok, 0) - ptPart))
|
||||
return false ;
|
||||
ExeSetModified() ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -623,6 +626,9 @@ ExePackCluster( const INTVECTOR& vIds, double dXmin, double dYmin, double dXmax,
|
||||
nTrueId = (( nId != GDB_ID_SEL) ? GDB_ID_NULL : pGeomDB->GetNextSelectedObj()) ;
|
||||
}
|
||||
}
|
||||
// Se non sono rimasti oggetti, esco con successo
|
||||
if ( vTrueIds.empty())
|
||||
return true ;
|
||||
// Flag per calcolo box
|
||||
const int BBF_MY_FLAG = BBF_ONLY_VISIBLE | BBF_IGNORE_TEXT | BBF_IGNORE_DIM ;
|
||||
// Determino il box del cluster (insieme di pezzi)
|
||||
@@ -698,6 +704,7 @@ ExePackCluster( const INTVECTOR& vIds, double dXmin, double dYmin, double dXmax,
|
||||
for ( auto nTrueId : vTrueIds) {
|
||||
pGeomDB->TranslateGlob( nTrueId, Point3d( dXok, dYok, 0) - ptCluster) ;
|
||||
}
|
||||
ExeSetModified() ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
@@ -825,7 +832,7 @@ VerifyBoxMoveOutBox( const BBox3d& b3Other, const BBox3d& b3Box, Vector3d& vtMov
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeMoveCluster( const INTVECTOR& vIds, const Vector3d& vtMove,
|
||||
ExeMoveCluster( const INTVECTOR& vIds, Vector3d& vtMove,
|
||||
double dXmin, double dYmin, double dXmax, double dYmax, double dOffs)
|
||||
{
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
@@ -838,6 +845,7 @@ ExeMoveCluster( const INTVECTOR& vIds, const Vector3d& vtMove,
|
||||
|
||||
// Vettore movimento nel solo piano XY
|
||||
Vector3d vtMoveXY( vtMove.x, vtMove.y, 0) ;
|
||||
vtMove = V_NULL ;
|
||||
if ( vtMoveXY.IsSmall())
|
||||
return true ;
|
||||
|
||||
@@ -926,6 +934,8 @@ ExeMoveCluster( const INTVECTOR& vIds, const Vector3d& vtMove,
|
||||
// Eseguo movimento dei pezzi del cluster
|
||||
for ( auto nTrueId : vTrueIds)
|
||||
pGeomDB->TranslateGlob( nTrueId, vtMoveXY) ;
|
||||
ExeSetModified() ;
|
||||
|
||||
vtMove = vtMoveXY ;
|
||||
return true ;
|
||||
}
|
||||
Reference in New Issue
Block a user