EgtExecutor 2.4l3 :
- migliorie alla funzione SpiralizeCurveAlongGuide.
This commit is contained in:
@@ -486,6 +486,21 @@ ExeSpiralizeCurveAlongGuide( int nCrvId, int nGuideId, double dLinTol)
|
||||
// porto la polyline della curva guida nel riferimento locale
|
||||
bOk = bOk && PL2.LocToLoc( frGuide, frCrv) ;
|
||||
|
||||
// modifico PL2 per gestire eventuali punti di intersezione
|
||||
PtrOwner<ICurveComposite> pCompoGuide( CreateCurveComposite()) ;
|
||||
bOk = bOk && ( ! IsNull( pCompoGuide)) ;
|
||||
bOk = bOk && pCompoGuide->FromPolyLine( PL2) ;
|
||||
Point3d ptP1 ;
|
||||
bool bFound = bOk && PL1.GetFirstPoint( ptP1) ;
|
||||
while ( bOk && bFound) {
|
||||
double dAddPar ;
|
||||
if ( bOk && pCompoGuide->GetParamAtPoint( ptP1, dAddPar, 100 * EPS_SMALL))
|
||||
bOk = bOk && pCompoGuide->AddJoint( dAddPar) ;
|
||||
bFound = PL1.GetNextPoint( ptP1) ;
|
||||
}
|
||||
bOk = bOk && pCompoGuide->ApproxWithLines( dLinTol, ANG_TOL_STD_DEG, APP_SPECIAL_LINES, PL2) ;
|
||||
|
||||
// associo i punti a minima distanza delle polylines
|
||||
PNTIVECTOR vPnt1, vPnt2 ;
|
||||
bool bTmp ;
|
||||
bOk = bOk && AssociatePolyLinesMinDistPoints( PL1, PL2, vPnt1, vPnt2, bTmp) ;
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user