EgtGeomKernel :
- correzione per memory leaks a offset semplice di curve composite - aggiunta creazione regione da curva ingrossata - collisione tra regioni estesa a contorni sia con curve composite sia con singola curva.
This commit is contained in:
+8
-10
@@ -124,14 +124,13 @@ MySimpleCDSurfFrMove::Translate( const Vector3d& vtDir, double& dLen)
|
||||
const ICurve* pCrv1Loc = m_pRegM->GetMyLoop( j, 0) ;
|
||||
|
||||
// verifico la collisione tra le entità dei loop esterni dei due chunk
|
||||
// per ora solo curve composite
|
||||
const CurveComposite* pCompo1 = GetBasicCurveComposite( pCrv1Loc) ;
|
||||
const CurveComposite* pCompo2 = GetBasicCurveComposite( pCrv2Loc) ;
|
||||
int k = 0 ;
|
||||
const ICurve* pCrv1 = pCompo1->GetFirstCurve() ;
|
||||
const ICurve* pCrv1 = ( pCompo1 != nullptr ? pCompo1->GetFirstCurve() : pCrv1Loc) ;
|
||||
while ( pCrv1 != nullptr) {
|
||||
int l = 0 ;
|
||||
const ICurve* pCrv2 = pCompo2->GetFirstCurve() ;
|
||||
const ICurve* pCrv2 = ( pCompo2 != nullptr ? pCompo2->GetFirstCurve() : pCrv2Loc) ;
|
||||
while ( pCrv2 != nullptr) {
|
||||
SCollInfo scInfoCurr ;
|
||||
double dPrevLenXY = dNewLenXY ;
|
||||
@@ -153,10 +152,10 @@ MySimpleCDSurfFrMove::Translate( const Vector3d& vtDir, double& dLen)
|
||||
m_SCollInfo.nChunkF = i ;
|
||||
m_SCollInfo.nCrvF = l ;
|
||||
}
|
||||
pCrv2 = pCompo2->GetNextCurve() ;
|
||||
pCrv2 = ( pCompo2 != nullptr ? pCompo2->GetNextCurve() : nullptr) ;
|
||||
++ l ;
|
||||
}
|
||||
pCrv1 = pCompo1->GetNextCurve() ;
|
||||
pCrv1 = ( pCompo1 != nullptr ? pCompo1->GetNextCurve() : nullptr) ;
|
||||
++ k ;
|
||||
}
|
||||
}
|
||||
@@ -224,18 +223,17 @@ MySimpleCDSurfFrMove::Rotate( const Point3d& ptCen, double& dAng)
|
||||
const ICurve* pCrv1Loc = m_pRegM->GetMyLoop( j, 0) ;
|
||||
|
||||
// verifico la collisione tra le entità dei loop esterni dei due chunk
|
||||
// per ora solo curve composite
|
||||
const CurveComposite* pCompo1 = GetBasicCurveComposite( pCrv1Loc) ;
|
||||
const CurveComposite* pCompo2 = GetBasicCurveComposite( pCrv2Loc) ;
|
||||
const ICurve* pCrv1 = pCompo1->GetFirstCurve() ;
|
||||
const ICurve* pCrv1 = ( pCompo1 != nullptr ? pCompo1->GetFirstCurve() : pCrv1Loc) ;
|
||||
while ( pCrv1 != nullptr) {
|
||||
const ICurve* pCrv2 = pCompo2->GetFirstCurve() ;
|
||||
const ICurve* pCrv2 = ( pCompo2 != nullptr ? pCompo2->GetFirstCurve() : pCrv2Loc) ;
|
||||
while ( pCrv2 != nullptr) {
|
||||
if ( ! RotateCurveNoCollisionCurve( pCrv1, pCrv2, ptCenL, dNewAng))
|
||||
return false ;
|
||||
pCrv2 = pCompo2->GetNextCurve() ;
|
||||
pCrv2 = ( pCompo2 != nullptr ? pCompo2->GetNextCurve() : nullptr) ;
|
||||
}
|
||||
pCrv1 = pCompo1->GetNextCurve() ;
|
||||
pCrv1 = ( pCompo1 != nullptr ? pCompo1->GetNextCurve() : nullptr) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user