EgtExecutor :
- piccole modifiche estetiche.
This commit is contained in:
+37
-34
@@ -802,7 +802,7 @@ MyVerifyPartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, const BBox3d&
|
||||
|
||||
// Eseguo verifiche
|
||||
// regioni dei pezzi
|
||||
for ( size_t i = 0 ; i < vReg.size() ; ++ i) {
|
||||
for ( int i = 0 ; i < ssize( vReg) ; ++ i) {
|
||||
// verifico con le regioni degli altri pezzi (sempre regioni standard)
|
||||
for ( int nOthRegId : vOthReg) {
|
||||
if ( ExeSurfFrChunkSimpleClassify( vReg[i], 0, nOthRegId, 0) != REGC_OUT)
|
||||
@@ -816,9 +816,9 @@ MyVerifyPartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, const BBox3d&
|
||||
}
|
||||
}
|
||||
// regioni sotto dei pezzi
|
||||
for ( size_t i = 0 ; i < vDwnReg.size() ; ++ i) {
|
||||
for ( int i = 0 ; i < ssize( vDwnReg) ; ++ i) {
|
||||
// verifico con le regioni sotto degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vOthDwnReg.size() ; ++ j) {
|
||||
for ( int j = 0 ; j < ssize( vOthDwnReg) ; ++ j) {
|
||||
if ( vDwnReg[i] != GDB_ID_NULL || vOthDwnReg[j] != GDB_ID_NULL) {
|
||||
int nDwnRegId = ( vDwnReg[i] != GDB_ID_NULL ? vDwnReg[i] : vReg[i]) ;
|
||||
int nOthDwnRegId = ( vOthDwnReg[j] != GDB_ID_NULL ? vOthDwnReg[j] : vOthReg[j]) ;
|
||||
@@ -827,7 +827,7 @@ MyVerifyPartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, const BBox3d&
|
||||
}
|
||||
}
|
||||
// e con le regioni sotto dei tagli degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vOthDwnCutReg.size() ; ++ j) {
|
||||
for ( int j = 0 ; j < ssize( vOthDwnCutReg) ; ++ j) {
|
||||
if ( vDwnReg[i] != GDB_ID_NULL || vOthDwnCutReg[j] != GDB_ID_NULL) {
|
||||
int nDwnRegId = ( vDwnReg[i] != GDB_ID_NULL ? vDwnReg[i] : vReg[i]) ;
|
||||
int nOthDwnCutRegId = ( vOthDwnCutReg[j] != GDB_ID_NULL ? vOthDwnCutReg[j] : vOthCutReg[j]) ;
|
||||
@@ -839,16 +839,16 @@ MyVerifyPartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, const BBox3d&
|
||||
// regioni delle lavorazioni dei pezzi
|
||||
for ( int nCutRegId : vCutReg) {
|
||||
// le confronto con le regioni degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vOthReg.size() ; ++ j) {
|
||||
for ( int j = 0 ; j < ssize( vOthReg) ; ++ j) {
|
||||
int nOthUpRegId = (( vOthUpReg[j] == GDB_ID_NULL) ? vOthReg[j] : vOthUpReg[j]) ;
|
||||
if ( ExeSurfFrChunkSimpleClassify( nCutRegId, 0, nOthUpRegId, 0) != REGC_OUT)
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
// regioni sotto delle lavorazioni dei pezzi
|
||||
for ( size_t i = 0 ; i < vDwnCutReg.size() ; ++ i) {
|
||||
for ( int i = 0 ; i < ssize( vDwnCutReg) ; ++ i) {
|
||||
// le confronto con le regioni sotto degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vOthDwnReg.size() ; ++ j) {
|
||||
for ( int j = 0 ; j < ssize( vOthDwnReg) ; ++ j) {
|
||||
if ( vDwnCutReg[i] != GDB_ID_NULL || vOthDwnReg[j] != GDB_ID_NULL) {
|
||||
int nDwnCutRegId = ( vDwnCutReg[i] != GDB_ID_NULL ? vDwnCutReg[i] : vCutReg[i]) ;
|
||||
int nOthDwnRegId = ( vOthDwnReg[j] != GDB_ID_NULL ? vOthDwnReg[j] : vOthReg[j]) ;
|
||||
@@ -1170,23 +1170,27 @@ MySurfFrMoveSimpleNoCollision( int nId1, int nId2, const Vector3d& vtDir, double
|
||||
VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL)
|
||||
// recupero la prima superficie FlatRegion
|
||||
ISurfFlatRegion* pSfr1 = GetSurfFlatRegion( pGeomDB->GetGeoObj( nId1)) ;
|
||||
bool bOk = ( pSfr1 != nullptr) ;
|
||||
if ( pSfr1 == nullptr)
|
||||
return false ;
|
||||
// recupero il riferimento della superficie
|
||||
Frame3d frSurf1 ;
|
||||
bOk = bOk && pGeomDB->GetGlobFrame( nId1, frSurf1) ;
|
||||
if ( ! pGeomDB->GetGlobFrame( nId1, frSurf1))
|
||||
return false ;
|
||||
// recupero la seconda superficie FlatRegion
|
||||
const ISurfFlatRegion* pSfr2 = GetSurfFlatRegion( pGeomDB->GetGeoObj( nId2)) ;
|
||||
bOk = bOk && ( pSfr2 != nullptr) ;
|
||||
if ( pSfr2 == nullptr)
|
||||
return false ;
|
||||
// recupero il riferimento della superficie
|
||||
Frame3d frSurf2 ;
|
||||
bOk = bOk && pGeomDB->GetGlobFrame( nId2, frSurf2) ;
|
||||
if ( ! pGeomDB->GetGlobFrame( nId2, frSurf2))
|
||||
return false ;
|
||||
// se riferimenti diversi, porto una copia della seconda nel riferimento della prima
|
||||
const ISurfFlatRegion* pSfr2L = pSfr2 ;
|
||||
PtrOwner<ISurfFlatRegion> pTmp ;
|
||||
if ( ! AreSameFrame( frSurf1, frSurf2)) {
|
||||
pTmp.Set( pSfr2->Clone()) ;
|
||||
bOk = bOk && ! IsNull( pTmp) ;
|
||||
bOk = bOk && pTmp->LocToLoc( frSurf2, frSurf1) ;
|
||||
if ( IsNull( pTmp) || ! pTmp->LocToLoc( frSurf2, frSurf1))
|
||||
return false ;
|
||||
pSfr2L = pTmp ;
|
||||
}
|
||||
// porto in locale alla prima superficie il versore di movimento
|
||||
@@ -1194,18 +1198,17 @@ MySurfFrMoveSimpleNoCollision( int nId1, int nId2, const Vector3d& vtDir, double
|
||||
vtDirL.ToLoc( frSurf1) ;
|
||||
// calcolo massima lunghezza di traslazione della prima regione senza semplice collisione con la seconda
|
||||
CAvSimpleSurfFrMove ScdSfrMove( *pSfr1, *pSfr2L) ;
|
||||
bOk = bOk && ScdSfrMove.Translate( vtDirL, dLen) ;
|
||||
if ( bOk) {
|
||||
scInfo = ScdSfrMove.GetSCollInfo() ;
|
||||
if ( scInfo.nType != SCI_NONE) {
|
||||
scInfo.ptP1.ToGlob( frSurf1) ;
|
||||
scInfo.vtDirM.ToGlob( frSurf1) ;
|
||||
scInfo.vtDirF.ToGlob( frSurf1) ;
|
||||
}
|
||||
if ( scInfo.nType == SCI_LINE_LINE)
|
||||
scInfo.ptP2.ToGlob( frSurf1) ;
|
||||
if ( ! ScdSfrMove.Translate( vtDirL, dLen))
|
||||
return false ;
|
||||
scInfo = ScdSfrMove.GetSCollInfo() ;
|
||||
if ( scInfo.nType != SCI_NONE) {
|
||||
scInfo.ptP1.ToGlob( frSurf1) ;
|
||||
scInfo.vtDirM.ToGlob( frSurf1) ;
|
||||
scInfo.vtDirF.ToGlob( frSurf1) ;
|
||||
}
|
||||
return bOk ;
|
||||
if ( scInfo.nType == SCI_LINE_LINE)
|
||||
scInfo.ptP2.ToGlob( frSurf1) ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -1340,7 +1343,7 @@ MyMovePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d b3Cluster
|
||||
}
|
||||
}
|
||||
// la confronto con le regioni in basso degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vOthDwnReg.size() ; ++ j) {
|
||||
for ( int j = 0 ; j < ssize( vOthDwnReg) ; ++ j) {
|
||||
if ( nDwnRegId != GDB_ID_NULL || vOthDwnReg[j] != GDB_ID_NULL) {
|
||||
int nTmpDwnRegId = ( nDwnRegId != GDB_ID_NULL ? nDwnRegId : nRegId) ;
|
||||
int nOthDwnRegId = ( vOthDwnReg[j] != GDB_ID_NULL ? vOthDwnReg[j] : vOthReg[j]) ;
|
||||
@@ -1349,7 +1352,7 @@ MyMovePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d b3Cluster
|
||||
}
|
||||
}
|
||||
// e con le regioni in basso dei tagli degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vOthDwnCutReg.size() ; ++ j) {
|
||||
for ( int j = 0 ; j < ssize( vOthDwnCutReg) ; ++ j) {
|
||||
if ( nDwnRegId != GDB_ID_NULL || vOthDwnCutReg[j] != GDB_ID_NULL) {
|
||||
int nTmpDwnRegId = ( nDwnRegId != GDB_ID_NULL ? nDwnRegId : nRegId) ;
|
||||
int nOthDwnCutRegId = ( vOthDwnCutReg[j] != GDB_ID_NULL ? vOthDwnCutReg[j] : vOthCutReg[j]) ;
|
||||
@@ -1366,7 +1369,7 @@ MyMovePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d b3Cluster
|
||||
}
|
||||
// le confronto con le regioni degli altri pezzi
|
||||
for ( int nCrId : vCrId) {
|
||||
for ( size_t k = 0 ; k < vOthReg.size() ; ++ k) {
|
||||
for ( int k = 0 ; k < ssize( vOthReg) ; ++ k) {
|
||||
int nOthRegId = ( vOthUpReg[k] == GDB_ID_NULL ? vOthReg[k] : vOthUpReg[k]) ;
|
||||
MySurfFrMoveSimpleNoCollision( nCrId, nOthRegId, vtDir, dLen, scInfoCurr) ;
|
||||
dPrevLen = UpdateCollId( dLen, dPrevLen, nCrId, nOthRegId, true, false, scInfoCurr) ;
|
||||
@@ -1380,8 +1383,8 @@ MyMovePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d b3Cluster
|
||||
break ;
|
||||
}
|
||||
// le confronto con le regioni in basso degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vDwnCrId.size() ; ++ j) {
|
||||
for ( size_t k = 0 ; k < vOthDwnReg.size() ; ++ k) {
|
||||
for ( int j = 0 ; j < ssize( vDwnCrId) ; ++ j) {
|
||||
for ( int k = 0 ; k < ssize( vOthDwnReg) ; ++ k) {
|
||||
if ( vDwnCrId[j] != GDB_ID_NULL || vOthDwnReg[k] != GDB_ID_NULL) {
|
||||
int nTmpDwnCrId = ( vDwnCrId[j] != GDB_ID_NULL ? vDwnCrId[j] : vCrId[j]) ;
|
||||
int nOthDwnRegId = ( vOthDwnReg[k] != GDB_ID_NULL ? vOthDwnReg[k] : vOthReg[k]) ;
|
||||
@@ -1591,7 +1594,7 @@ MyRotatePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d& b3Clus
|
||||
}
|
||||
}
|
||||
// la confronto con le regioni in basso degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vOthDwnReg.size() ; ++ j) {
|
||||
for ( int j = 0 ; j < ssize( vOthDwnReg) ; ++ j) {
|
||||
if ( nDwnRegId != GDB_ID_NULL || vOthDwnReg[j] != GDB_ID_NULL) {
|
||||
int nTmpDwnRegId = ( nDwnRegId != GDB_ID_NULL ? nDwnRegId : nRegId) ;
|
||||
int nOthDwnRegId = ( vOthDwnReg[j] != GDB_ID_NULL ? vOthDwnReg[j] : vOthReg[j]) ;
|
||||
@@ -1599,7 +1602,7 @@ MyRotatePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d& b3Clus
|
||||
}
|
||||
}
|
||||
// e con le regioni in basso dei tagli degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vOthDwnCutReg.size() ; ++ j) {
|
||||
for ( int j = 0 ; j < ssize( vOthDwnCutReg) ; ++ j) {
|
||||
if ( nDwnRegId != GDB_ID_NULL || vOthDwnCutReg[j] != GDB_ID_NULL) {
|
||||
int nTmpDwnRegId = ( nDwnRegId != GDB_ID_NULL ? nDwnRegId : nRegId) ;
|
||||
int nOthDwnCutRegId = ( vOthDwnCutReg[j] != GDB_ID_NULL ? vOthDwnCutReg[j] : vOthCutReg[j]) ;
|
||||
@@ -1615,7 +1618,7 @@ MyRotatePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d& b3Clus
|
||||
}
|
||||
// le confronto con le regioni degli altri pezzi
|
||||
for ( int nCrId : vCrId) {
|
||||
for ( size_t k = 0 ; k < vOthReg.size() ; ++ k) {
|
||||
for ( int k = 0 ; k < ssize( vOthReg) ; ++ k) {
|
||||
int nOthRegId = ( vOthUpReg[k] == GDB_ID_NULL ? vOthReg[k] : vOthUpReg[k]) ;
|
||||
ExeSurfFrRotateSimpleNoCollision( nCrId, nOthRegId, ptCen, dAng, RTY_GLOB) ;
|
||||
}
|
||||
@@ -1628,8 +1631,8 @@ MyRotatePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d& b3Clus
|
||||
break ;
|
||||
}
|
||||
// le confronto con le regioni in basso degli altri pezzi
|
||||
for ( size_t j = 0 ; j < vDwnCrId.size() ; ++ j) {
|
||||
for ( size_t k = 0 ; k < vOthDwnReg.size() ; ++ k) {
|
||||
for ( int j = 0 ; j < ssize( vDwnCrId) ; ++ j) {
|
||||
for ( int k = 0 ; k < ssize( vOthDwnReg) ; ++ k) {
|
||||
if ( vDwnCrId[j] != GDB_ID_NULL || vOthDwnReg[k] != GDB_ID_NULL) {
|
||||
int nTmpDwnCrId = ( vDwnCrId[j] != GDB_ID_NULL ? vDwnCrId[j] : vCrId[j]) ;
|
||||
int nOthDwnRegId = ( vOthDwnReg[k] != GDB_ID_NULL ? vOthDwnReg[k] : vOthReg[k]) ;
|
||||
|
||||
Reference in New Issue
Block a user