Aggiunto parametro per evitare casi ottimizzati
This commit is contained in:
+5
-3
@@ -58,6 +58,7 @@ struct PocketParams {
|
||||
bool bAboveHead = true ; // flag per testa da sopra ( Z+)
|
||||
bool bSmooth = false ; // curve smussate
|
||||
bool bInvert = false ; // inversione dei percorsi
|
||||
bool bAvoidOpt = false ; // flag per evitare casi ottimizzati
|
||||
Point3d ptStart = P_INVALID ; // punto d'inizio
|
||||
Point3d ptEnd = P_INVALID ; // punto di fine
|
||||
SurfFlatRegion SfrLimit ; // superficie limite per estensione lati aperti
|
||||
@@ -6107,9 +6108,9 @@ CalcSpiral( const ISurfFlatRegion* pSrfPock, const PocketParams& PockParams, int
|
||||
|
||||
// CONTROLLO PER CASI OTTIMIZZATI
|
||||
bool bHasIsland = ( pSrfPock->GetLoopCount( 0) > 1) ;
|
||||
|
||||
// se non ho isole e curva valida allora controllo casi ottimizzati
|
||||
if ( ! bHasIsland && ( ! vCrvOrigChunkLoops.empty()) && ! IsNull( vCrvOrigChunkLoops[0])) {
|
||||
if ( ! PockParams.bAvoidOpt && ! bHasIsland &&
|
||||
( ! vCrvOrigChunkLoops.empty()) && ! IsNull( vCrvOrigChunkLoops[0])) {
|
||||
|
||||
// --------------------------- caso spirale ---------------------------------------
|
||||
PtrOwner<ICurveComposite> pCrvBorder( ConvertCurveToComposite( pSrfPock->GetLoop( 0, 0))) ;
|
||||
@@ -7242,7 +7243,7 @@ AddOneWay( const ISurfFlatRegion* pSrfPock, const ISurfFlatRegion* pSfrOrig, con
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dRadOffs, double dStep, double dAngle,
|
||||
int nType, bool bSmooth, bool bInvert, ISurfFlatRegion* pSfrLimit, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
int nType, bool bSmooth, bool bInvert, bool bAvoidOpt, ISurfFlatRegion* pSfrLimit, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
{
|
||||
// controllo dei parametri
|
||||
if ( pSfr == nullptr || ! pSfr->IsValid() ||
|
||||
@@ -7262,6 +7263,7 @@ CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dRadOffs, double
|
||||
myParams.dAngle = dAngle ;
|
||||
myParams.dSideStep = dStep ;
|
||||
myParams.bInvert = bInvert ;
|
||||
myParams.bAvoidOpt = bAvoidOpt ;
|
||||
if ( pSfrLimit != nullptr && pSfrLimit->IsValid())
|
||||
myParams.SfrLimit.CopyFrom( pSfrLimit) ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user