EgtGeomKernel 2.6f1 :
- modifiche a pocketing.
This commit is contained in:
+39
-39
@@ -136,7 +136,7 @@ GetCoeffLinArc( const ICurveArc* pArc, double dDiam, double& dSubArc)
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
GetParamForPtStartOnEdge( const ICurve* pCrvCheck, const ICurveComposite* pCrvCompo,
|
||||
const ICRVCOMPOPOVECTOR& vOtherCrv, PocketParams PockParams, double& dPar)
|
||||
const ICRVCOMPOPOVECTOR& vOtherCrv, const PocketParams& PockParams, double& dPar)
|
||||
{
|
||||
|
||||
// ==================== INFO ================================================================
|
||||
@@ -279,7 +279,7 @@ GetParamForPtStartOnEdge( const ICurve* pCrvCheck, const ICurveComposite* pCrvCo
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
AdjustContourStart( ICurveComposite* pCompo, PocketParams PockParams, const ICRVCOMPOPOVECTOR& vCrvIsl,
|
||||
AdjustContourStart( ICurveComposite* pCompo, const PocketParams& PockParams, const ICRVCOMPOPOVECTOR& vCrvIsl,
|
||||
bool bOrder, Point3d ptRef)
|
||||
{
|
||||
// se cerco semplicemente il tratto lineare chiuso più lungo ...
|
||||
@@ -429,7 +429,7 @@ AdjustContourStart( ICurveComposite* pCompo, PocketParams PockParams, const ICRV
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
GetHomogeneousParts( ICurveComposite* pCrvCompo, PocketParams PockParams, ICRVCOMPOPOVECTOR& vpCrvs)
|
||||
GetHomogeneousParts( ICurveComposite* pCrvCompo, const PocketParams& PockParams, ICRVCOMPOPOVECTOR& vpCrvs)
|
||||
{
|
||||
|
||||
// controllo dei parametri
|
||||
@@ -603,7 +603,7 @@ static bool
|
||||
AdjustOpenEdge( const ICurveComposite* pCrvCompo, const ICRVCOMPOPOVECTOR& vCrvIsland,
|
||||
const double dParS, const double dParE, const Vector3d& vtTanS,
|
||||
const Vector3d& vtTanE, const double dRad, const double dDiamJ,
|
||||
PocketParams PockParams, ICurveComposite* pCrvBorder)
|
||||
const PocketParams& PockParams, ICurveComposite* pCrvBorder)
|
||||
{
|
||||
/* parametri :
|
||||
pCrvCompo -> curva originaria di bordo
|
||||
@@ -816,7 +816,7 @@ AdjustOpenEdge( const ICurveComposite* pCrvCompo, const ICRVCOMPOPOVECTOR& vCrvI
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
AdjustContourWithOpenEdges( ICurveComposite* pCrvCompo, ICRVCOMPOPOVECTOR& vCrvIsl, const double dDiam,
|
||||
const double dOffR, const double dStep, PocketParams PockParams)
|
||||
const double dOffR, const double dStep, const PocketParams& PockParams)
|
||||
{
|
||||
// controllo dei parametri
|
||||
if ( pCrvCompo == nullptr || ! pCrvCompo->IsValid())
|
||||
@@ -929,7 +929,7 @@ CheckForRemovingIsland( const ICurveComposite* pCrvIslandBorder, double dOffs, b
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
ModifySurfByOpenEdges( ISurfFlatRegion* pSfr, PocketParams PockParams)
|
||||
ModifySurfByOpenEdges( ISurfFlatRegion* pSfr, const PocketParams& PockParams)
|
||||
{
|
||||
// controllo parametri :
|
||||
if ( pSfr == nullptr || ! pSfr->IsValid())
|
||||
@@ -1076,7 +1076,7 @@ ModifySurfByOpenEdges( ISurfFlatRegion* pSfr, PocketParams PockParams)
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
GetParamOnOpenSide( const ICurveComposite* pCompo, const ICRVCOMPOPOVECTOR& vOtherCrv,
|
||||
const Frame3d& frPocket, PocketParams PockParams, Point3d& ptMid, Vector3d& vtMidOrt)
|
||||
const Frame3d& frPocket, const PocketParams& PockParams, Point3d& ptMid, Vector3d& vtMidOrt)
|
||||
{
|
||||
// recupero il vettore estrusione
|
||||
Vector3d vtExtr = Z_AX ;
|
||||
@@ -1224,7 +1224,7 @@ GetParamOnOpenSide( const ICurveComposite* pCompo, const ICRVCOMPOPOVECTOR& vOth
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
SetSpecialPtStartForOpenEdges( const ICurveComposite* pCrvOrig, const Frame3d& frPocket,
|
||||
PocketParams PockParams, ICurveComposite* pCrvCompo, Point3d& ptStart,
|
||||
const PocketParams& PockParams, ICurveComposite* pCrvCompo, Point3d& ptStart,
|
||||
Vector3d& vtMidOut, bool& bMidOut)
|
||||
{
|
||||
// controllo dei parametri
|
||||
@@ -1264,7 +1264,7 @@ SetSpecialPtStartForOpenEdges( const ICurveComposite* pCrvOrig, const Frame3d& f
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
SetPtStartForPath( ICurveComposite* pCrvOffsAct, PocketParams PockParams, const ISurfFlatRegion* pSrfToWork,
|
||||
SetPtStartForPath( ICurveComposite* pCrvOffsAct, const PocketParams& PockParams, const ISurfFlatRegion* pSrfToWork,
|
||||
const Point3d& ptEndPrec, const Frame3d& frPocket, Point3d& ptStart,
|
||||
Vector3d& vtMidOut, bool& bMidOut, int nOffs, ICurveComposite* pCrvOrig)
|
||||
{
|
||||
@@ -1547,7 +1547,7 @@ OptimizedSpiralCirle( const ICurveComposite* pCrvCompo, const double dToll, doub
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
CalcCircleSpiral( const Point3d& ptCen, const Vector3d& vtN, double dOutRad, double dIntRad,
|
||||
PocketParams PockParams, ICurveComposite* pMCrv, ICurveComposite* pRCrv)
|
||||
const PocketParams& PockParams, ICurveComposite* pMCrv, ICurveComposite* pRCrv)
|
||||
{
|
||||
/* calcola il percorso di a spirale assieme al percorso di ritorno */
|
||||
|
||||
@@ -1812,7 +1812,7 @@ PreparareTrapezoidTwoBases( const ICurveComposite* pCrvCompo, const double dDiam
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
GetTrapezoidFromShape( const ICurveComposite* pCrvCompo, ICurveComposite* pCrvTrap,
|
||||
Frame3d& frTrap, PocketParams PockParams, double& dPocketSize, int& nBase, int& nSecondBase)
|
||||
Frame3d& frTrap, const PocketParams& PockParams, double& dPocketSize, int& nBase, int& nSecondBase)
|
||||
{
|
||||
// controllo parametri
|
||||
if ( pCrvCompo == nullptr || ! pCrvCompo->IsValid())
|
||||
@@ -2205,7 +2205,7 @@ GetTrapezoidFromShape( const ICurveComposite* pCrvCompo, ICurveComposite* pCrvTr
|
||||
//----------------------------------------------------
|
||||
static bool
|
||||
SpecialAdjustTrapezoidSpiralForAngles( ICurveComposite* pMCrv, const bool bEvenClosed,
|
||||
const ICurveComposite* pCrvPocket, PocketParams PockParams)
|
||||
const ICurveComposite* pCrvPocket, const PocketParams& PockParams)
|
||||
{
|
||||
// parametri
|
||||
double dDiam = PockParams.dRad_prec > 0 ? 2 * PockParams.dRad_prec : 2 * PockParams.dRad ;
|
||||
@@ -2283,7 +2283,7 @@ SpecialAdjustTrapezoidSpiralForAngles( ICurveComposite* pMCrv, const bool bEvenC
|
||||
static bool
|
||||
CalcTrapezoidSpiralXCoord( const ICurveComposite* pCrvPocket, int nBase, int nSecondBase,
|
||||
bool bStart, double dYCoord, double& dXCoord, double dPocketSize,
|
||||
PocketParams PockParams)
|
||||
const PocketParams& PockParams)
|
||||
{
|
||||
// parametri
|
||||
double dDiam = PockParams.dRad_prec > 0 ? 2 * PockParams.dRad_prec : 2 * PockParams.dRad ;
|
||||
@@ -2390,7 +2390,7 @@ CalcTrapezoidSpiralXCoord( const ICurveComposite* pCrvPocket, int nBase, int nSe
|
||||
//----------------------------------------------------
|
||||
static bool
|
||||
SpecialAdjustTrapezoidSpiralForAngles( ICurveComposite* pMCrv, const bool bEvenClosed,
|
||||
PocketParams PockParams, const ICurveComposite* pCrvPocket)
|
||||
const PocketParams& PockParams, const ICurveComposite* pCrvPocket)
|
||||
{
|
||||
// parametri
|
||||
double dDiam = PockParams.dRad_prec > 0 ? 2 * PockParams.dRad_prec : 2 * PockParams.dRad ;
|
||||
@@ -2467,7 +2467,7 @@ SpecialAdjustTrapezoidSpiralForAngles( ICurveComposite* pMCrv, const bool bEvenC
|
||||
//----------------------------------------------------
|
||||
static bool
|
||||
AdjustTrapezoidSpiralForAngles( ICurveComposite* pMCrv, const ICurveComposite* pCrvPocket,
|
||||
PocketParams PockParams, bool bStart)
|
||||
const PocketParams& PockParams, bool bStart)
|
||||
{
|
||||
// parametri
|
||||
double dDiam = PockParams.dRad_prec > 0 ? 2 * PockParams.dRad_prec : 2 * PockParams.dRad ;
|
||||
@@ -2623,7 +2623,7 @@ AdjustTrapezoidSpiralForAngles( ICurveComposite* pMCrv, const ICurveComposite* p
|
||||
//----------------------------------------------------
|
||||
static bool
|
||||
CalcTrapezoidSpiral( ICurveComposite* pCrvPocket, const Frame3d& frTrap, double dPocketSize, int nBase,
|
||||
int nSecondBase, PocketParams PockParams, ICurveComposite* pMCrv, ICurveComposite* pRCrv, bool& bOptimizedTrap)
|
||||
int nSecondBase, const PocketParams& PockParams, ICurveComposite* pMCrv, ICurveComposite* pRCrv, bool& bOptimizedTrap)
|
||||
{
|
||||
// parametri
|
||||
double dDiam = 2 * PockParams.dRad ;
|
||||
@@ -2814,7 +2814,7 @@ CalcTrapezoidSpiral( ICurveComposite* pCrvPocket, const Frame3d& frTrap, double
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
ModifyCurveToSmoothed( ICurveComposite* pCrv, PocketParams PockParams, double dRightLen, double dLeftLen, bool bAsParam)
|
||||
ModifyCurveToSmoothed( ICurveComposite* pCrv, const PocketParams& PockParams, double dRightLen, double dLeftLen, bool bAsParam)
|
||||
{
|
||||
// se non richiesto non faccio nulla
|
||||
if ( ! PockParams.bSmooth)
|
||||
@@ -3191,7 +3191,7 @@ ModifyBiArc( ICurve* pBiArcLink, double dToll, ICurveComposite* pNewBiArc)
|
||||
static bool
|
||||
CalcBoundedSmootedLink( const Point3d& ptStart, const Vector3d& vtStart, const Point3d& ptEnd,
|
||||
const Vector3d& vtEnd, double dParMeet, const ICRVCOMPOPOVECTOR& vOffIslands,
|
||||
PocketParams PockParams, ICurveComposite* pCrvLink)
|
||||
const PocketParams& PockParams, ICurveComposite* pCrvLink)
|
||||
{
|
||||
// se senza smusso, ritorno tratto lineare
|
||||
if ( ! PockParams.bSmooth)
|
||||
@@ -3314,8 +3314,8 @@ CalcBoundedSmootedLink( const Point3d& ptStart, const Vector3d& vtStart, const P
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
CutCurveToConnect( ICurveComposite* pCrvS, ICurveComposite* pCrvE, const ICRVCOMPOPOVECTOR& vOffsCL,
|
||||
const ICRVCOMPOPOVECTOR& vFirstOffset, PocketParams PockParams, ICurveComposite* pCrvLink, double dLenPercS,
|
||||
double dLenPercE, int nMaxIter)
|
||||
const ICRVCOMPOPOVECTOR& vFirstOffset, const PocketParams& PockParams, ICurveComposite* pCrvLink,
|
||||
double dLenPercS, double dLenPercE, int nMaxIter)
|
||||
{
|
||||
// controllo i parametri
|
||||
if ( pCrvS == nullptr || pCrvE == nullptr )
|
||||
@@ -3419,7 +3419,7 @@ CutCurveToConnect( ICurveComposite* pCrvS, ICurveComposite* pCrvE, const ICRVCOM
|
||||
//----------------------------------------------------------
|
||||
static bool
|
||||
GetUnclearedRegion( ICRVCOMPOPOVECTOR& vFirstOffs, ICRVCOMPOPOVECTOR& vCrvs, ICURVEPOVECTOR& vLinks,
|
||||
const ICurveComposite* pCrv_orig, PocketParams PockParams, ISurfFlatRegion* pSrfToCut)
|
||||
const ICurveComposite* pCrv_orig, const PocketParams& PockParams, ISurfFlatRegion* pSrfToCut)
|
||||
{
|
||||
|
||||
// controllo dei parametri
|
||||
@@ -3545,7 +3545,7 @@ RemoveFirstLoopFromSfr( ISurfFlatRegion* pSrfOrig)
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
RemoveExtraPartByMedialAxis( const ISurfFlatRegion* pChunkToCut, ICRVCOMPOPOVECTOR& vOffsFirstCurve,
|
||||
PocketParams PockParams, int& nOptFlag, Point3d& ptCentroid, ICurveComposite* pCrvPath)
|
||||
const PocketParams& PockParams, int& nOptFlag, Point3d& ptCentroid, ICurveComposite* pCrvPath)
|
||||
{
|
||||
|
||||
// nOptFlag : 0 -> non faccio nulla | 1 -> svuoto con un centroide | 2 -> svuoto con un percorso
|
||||
@@ -4016,7 +4016,7 @@ CutCurveByOffsets( ICurveComposite* pCurve, ICRVCOMPOPOVECTOR& vOffs)
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
GetNewCurvetWithCentroid( const ICurveComposite* pCrvH1, const ICurveComposite* pCrvH2,
|
||||
PocketParams PockParams, Point3d& ptC,
|
||||
const PocketParams& PockParams, Point3d& ptC,
|
||||
bool bCir, ICRVCOMPOPOVECTOR& VFirstOff, ICurveComposite* pCrvNewCurve)
|
||||
{
|
||||
// creazione dei due possibili percorsi per raggiungere il centroide
|
||||
@@ -4107,7 +4107,7 @@ GetNewCurvetWithCentroid( const ICurveComposite* pCrvH1, const ICurveComposite*
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
ManageSmoothAndAutoInters( ICurveComposite* pCrv, ICurveComposite* pCrvPath, ICurveComposite* pPath1,
|
||||
PocketParams PockParams, ICurveComposite* pPath2, ICRVCOMPOPOVECTOR& vOffsCL)
|
||||
const PocketParams& PockParams, ICurveComposite* pPath2, ICRVCOMPOPOVECTOR& vOffsCL)
|
||||
{
|
||||
// controllo parametri
|
||||
if ( pCrv == nullptr)
|
||||
@@ -4210,7 +4210,7 @@ ManageSmoothAndAutoInters( ICurveComposite* pCrv, ICurveComposite* pCrvPath, ICu
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
GetNewCurvetWithPath( const ICurveComposite* pCrvH1, const ICurveComposite* pCrvH2, ICurveComposite* pCrvPath,
|
||||
ICRVCOMPOPOVECTOR& VFirstOff, ICRVCOMPOPOVECTOR& VoffsCl, PocketParams PockParams,
|
||||
ICRVCOMPOPOVECTOR& VFirstOff, ICRVCOMPOPOVECTOR& VoffsCl, const PocketParams& PockParams,
|
||||
ICurveComposite* pCrvNewCurve)
|
||||
{
|
||||
// inizializzo i due possibili percorsi
|
||||
@@ -4423,7 +4423,7 @@ ChoosePath( const ICurveComposite* pCrv1, const ICurveComposite* pCrv2, int nP,
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
RemoveExtraParts( ISurfFlatRegion* pSrfToCut, ICRVCOMPOPOVECTOR& vOffs, ICRVCOMPOPOVECTOR& vOffsClosedCurves,
|
||||
ICRVCOMPOPOVECTOR& vOffsFirstCurve, ICURVEPOVECTOR& vLinks, PocketParams PockParams)
|
||||
ICRVCOMPOPOVECTOR& vOffsFirstCurve, ICURVEPOVECTOR& vLinks, const PocketParams& PockParams)
|
||||
{
|
||||
|
||||
// controllo parametri
|
||||
@@ -4586,7 +4586,7 @@ RemoveExtraParts( ISurfFlatRegion* pSrfToCut, ICRVCOMPOPOVECTOR& vOffs, ICRVCOMP
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
CreateSpiralPocketingPath( ICRVCOMPOPOVECTOR& vOffs, ICURVEPOVECTOR& vLinks, PocketParams PockParams,
|
||||
CreateSpiralPocketingPath( ICRVCOMPOPOVECTOR& vOffs, ICURVEPOVECTOR& vLinks, const PocketParams& PockParams,
|
||||
const ICRVCOMPOPOVECTOR& vOffsClosedCurves, const ICRVCOMPOPOVECTOR& vOffsFirstCurve)
|
||||
{
|
||||
// controllo dei parametri
|
||||
@@ -4717,7 +4717,7 @@ CreateSpiralPocketingPath( ICRVCOMPOPOVECTOR& vOffs, ICURVEPOVECTOR& vLinks, Poc
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
CheckIfOffsetIsNecessary( const ICurveComposite* pCrvOffs, const double dOffs, const int nOffsCount,
|
||||
const int nIter, const Vector3d& vtN, PocketParams PockParams, bool& bInsert)
|
||||
const int nIter, const Vector3d& vtN, const PocketParams& PockParams, bool& bInsert)
|
||||
{
|
||||
|
||||
// controllo dei parametri
|
||||
@@ -4800,7 +4800,7 @@ CheckIfOffsetIsNecessary( const ICurveComposite* pCrvOffs, const double dOffs, c
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
CalcSpiral( const ISurfFlatRegion* pSrfPock, PocketParams PockParams, int& nReg, Point3d& ptStart,
|
||||
CalcSpiral( const ISurfFlatRegion* pSrfPock, const PocketParams& PockParams, int& nReg, Point3d& ptStart,
|
||||
ICurveComposite* pCrvOEWithFlags, ICurveComposite* pMCrv, ICurveComposite* pRCrv,
|
||||
bool& bOptimizedTrap)
|
||||
{
|
||||
@@ -5066,7 +5066,7 @@ CheckSimpleOverlap( const ICurve* pCrv, const ICurveComposite* pCrvOri, int& nSt
|
||||
|
||||
//----------------------------------------------------------
|
||||
static bool
|
||||
CalcZigZagLink( ICurveComposite* pCrv1, ICurveComposite* pCrv2, PocketParams PockParams,
|
||||
CalcZigZagLink( ICurveComposite* pCrv1, ICurveComposite* pCrv2, const PocketParams& PockParams,
|
||||
ICurveComposite* pCrvLink)
|
||||
{
|
||||
// se non richiesto, esco
|
||||
@@ -5215,7 +5215,7 @@ CalcZigZagLink( ICurveComposite* pCrv1, ICurveComposite* pCrv2, PocketParams Poc
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
CalcZigZag( const ISurfFlatRegion* pSrfZigZag, PocketParams PockParams, ICRVCOMPOPOVECTOR& vpCrvs,
|
||||
CalcZigZag( const ISurfFlatRegion* pSrfZigZag, const PocketParams& PockParams, ICRVCOMPOPOVECTOR& vpCrvs,
|
||||
bool bFromInfill)
|
||||
{
|
||||
|
||||
@@ -5536,7 +5536,7 @@ CalcZigZag( const ISurfFlatRegion* pSrfZigZag, PocketParams PockParams, ICRVCOMP
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
AddSpiralIn( const ISurfFlatRegion* pSrfPock, PocketParams PockParams,
|
||||
AddSpiralIn( const ISurfFlatRegion* pSrfPock, const PocketParams& PockParams,
|
||||
const ICRVCOMPOPOVECTOR& vCrvOrig, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
{
|
||||
// ciclo sui chunk della superficie da svuotare
|
||||
@@ -5587,8 +5587,8 @@ AddSpiralIn( const ISurfFlatRegion* pSrfPock, PocketParams PockParams,
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
AddSpiralOut( const ISurfFlatRegion* pSrfPock, PocketParams PockParams,
|
||||
const ICRVCOMPOPOVECTOR& vCrvOrig, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
AddSpiralOut( const ISurfFlatRegion* pSrfPock, const PocketParams& PockParams,
|
||||
const ICRVCOMPOPOVECTOR& vCrvOrig, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
{
|
||||
// ciclo sui chunk della superficie da svuotare
|
||||
for ( int c = 0 ; c < pSrfPock->GetChunkCount() ; ++ c) {
|
||||
@@ -5641,7 +5641,7 @@ AddSpiralOut( const ISurfFlatRegion* pSrfPock, PocketParams PockParams,
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
AddZigZag( const ISurfFlatRegion* pSrfPock, PocketParams PockParams, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
AddZigZag( const ISurfFlatRegion* pSrfPock, const PocketParams& PockParams, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
{
|
||||
|
||||
// Offset della regione per curva ZigZag
|
||||
@@ -5771,7 +5771,7 @@ OptimizeChunkOneWay( ISurfFlatRegion* pSrfOrig, ISURFFRPOVECTOR& vSrfIdeal)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
AddOneWay( const ISurfFlatRegion* pSrfPock, PocketParams PockParams, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
AddOneWay( const ISurfFlatRegion* pSrfPock, const PocketParams& PockParams, ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
{
|
||||
|
||||
double dOffs = PockParams.dRad ;
|
||||
@@ -5876,7 +5876,7 @@ AddOneWay( const ISurfFlatRegion* pSrfPock, PocketParams PockParams, ICRVCOMPOPO
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
CalcPocketing( const ISurfFlatRegion *pSfr, double dRad, double dStep, double dAngle, int nType, bool bSmooth,
|
||||
CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dStep, double dAngle, int nType, bool bSmooth,
|
||||
ICRVCOMPOPOVECTOR& vCrvCompoRes)
|
||||
{
|
||||
// controllo dei parametri
|
||||
@@ -6048,7 +6048,7 @@ AdjustLinkSameY( ICurveComposite* pCrvLink, bool& bSplit)
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
AdjustLinkDifferentY( const ICurve* pCrvSegPrec, const ICurve* pCrvSegSucc,
|
||||
const ICurveComposite* pCrvLink, PocketParams PockParams, bool& bSplit)
|
||||
const ICurveComposite* pCrvLink, const PocketParams& PockParams, bool& bSplit)
|
||||
{
|
||||
// controllo dei parametri
|
||||
if ( pCrvLink == nullptr || ! pCrvLink->IsValid())
|
||||
@@ -6114,7 +6114,7 @@ AdjustLinkDifferentY( const ICurve* pCrvSegPrec, const ICurve* pCrvSegSucc,
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
static bool
|
||||
AdjustLinkZigZagInfill( ICurveComposite* pCrvCompo, PocketParams PockParams, ICRVCOMPOPOVECTOR& vNewCrv)
|
||||
AdjustLinkZigZagInfill( ICurveComposite* pCrvCompo, const PocketParams& PockParams, ICRVCOMPOPOVECTOR& vNewCrv)
|
||||
{
|
||||
// controllo dei parametri
|
||||
if ( pCrvCompo == nullptr || ! pCrvCompo->IsValid())
|
||||
|
||||
@@ -371,6 +371,14 @@ CurveDump( const ICurve& crvC, string& sOut, bool bMM, const char* szNewLine)
|
||||
sOut += string( "Closed") + ( bCCW ? " CCW" : " CW") + " AreaXY=" +
|
||||
ToString( dAreaUi, nDec) + szNewLine ;
|
||||
}
|
||||
// eventuali proprietà temporanee
|
||||
vector<int> vProp{ crvC.GetTempProp( 0), crvC.GetTempProp( 1)} ;
|
||||
if ( vProp[0] != 0 || vProp[1] != 0)
|
||||
sOut += string( "TmpProp=") + ToString( vProp) + szNewLine ;
|
||||
// eventuali parametri temporanei
|
||||
vector<double> vParam{ crvC.GetTempParam( 0), crvC.GetTempParam( 1)} ;
|
||||
if ( abs( vParam[0]) > EPS_ZERO || abs( vParam[1]) > EPS_ZERO)
|
||||
sOut += string( "TmpParam=") + ToString( vParam) + szNewLine ;
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
+1
-1
@@ -662,7 +662,7 @@ CurveComposite::Dump( string& sOut, bool bMM, const char* szNewLine) const
|
||||
while ( pCrvSmpl != nullptr && i < MAX_CRV) {
|
||||
// assegno ed emetto nome e tipo della curva semplice
|
||||
sOut += "#" + ToString( i) + " " + pCrvSmpl->GetTitle() + szNewLine ;
|
||||
// salvataggio della curva semplice
|
||||
// dati della curva semplice
|
||||
if ( ! pCrvSmpl->Dump( sOut, bMM, szNewLine))
|
||||
return false ;
|
||||
// passo alla successiva
|
||||
|
||||
Binary file not shown.
+10
-29
@@ -367,25 +367,14 @@ GetSurfFlatRegionFromTriangle( const Triangle3d& Tria)
|
||||
ISurfFlatRegion*
|
||||
GetSurfFlatRegionFromPolyLine( const PolyLine& ContourPolyLine)
|
||||
{
|
||||
// Creo la regione.
|
||||
PtrOwner<SurfFlatRegion> pSfr( CreateBasicSurfFlatRegion()) ;
|
||||
if ( IsNull( pSfr))
|
||||
return nullptr ;
|
||||
// Creo curva composita.
|
||||
PtrOwner<CurveComposite> pLoop( CreateBasicCurveComposite()) ;
|
||||
if ( IsNull( pLoop))
|
||||
if ( IsNull( pLoop) || ! pLoop->FromPolyLine( ContourPolyLine))
|
||||
return nullptr ;
|
||||
// Creo la regione.
|
||||
PtrOwner<SurfFlatRegion> pSfr( CreateBasicSurfFlatRegion()) ;
|
||||
if ( IsNull( pSfr) || ! pSfr->AddExtLoop( Release( pLoop)))
|
||||
return nullptr ;
|
||||
Point3d ptSt, ptEn ;
|
||||
bool bContinue = ContourPolyLine.GetFirstPoint( ptSt) &&
|
||||
ContourPolyLine.GetNextPoint( ptEn) ;
|
||||
while ( bContinue) {
|
||||
CurveLine cvLine ;
|
||||
cvLine.Set( ptSt, ptEn) ;
|
||||
pLoop->AddCurve( cvLine) ;
|
||||
ptSt = ptEn ;
|
||||
bContinue = ContourPolyLine.GetNextPoint( ptEn) ;
|
||||
}
|
||||
pSfr->AddExtLoop( Release( pLoop)) ;
|
||||
return Release( pSfr) ;
|
||||
}
|
||||
|
||||
@@ -401,25 +390,17 @@ GetSurfFlatRegionFromPolyLineVector( const POLYLINEVECTOR& vContoursPolyLineVec)
|
||||
for ( int nL = 0 ; nL < int( vContoursPolyLineVec.size()) ; ++ nL) {
|
||||
// Creo curva composita.
|
||||
PtrOwner<CurveComposite> pLoop( CreateBasicCurveComposite()) ;
|
||||
if ( IsNull( pLoop))
|
||||
if ( IsNull( pLoop) || ! pLoop->FromPolyLine( vContoursPolyLineVec[nL]))
|
||||
return nullptr ;
|
||||
Point3d ptSt, ptEn ;
|
||||
bool bContinue = vContoursPolyLineVec[nL].GetFirstPoint( ptSt) &&
|
||||
vContoursPolyLineVec[nL].GetNextPoint( ptEn) ;
|
||||
while ( bContinue) {
|
||||
CurveLine cvLine ;
|
||||
cvLine.Set( ptSt, ptEn) ;
|
||||
pLoop->AddCurve( cvLine) ;
|
||||
ptSt = ptEn ;
|
||||
bContinue = vContoursPolyLineVec[nL].GetNextPoint( ptEn) ;
|
||||
}
|
||||
// Loop esterno
|
||||
if ( nL == 0) {
|
||||
pSfr->AddExtLoop( Release( pLoop)) ;
|
||||
if ( ! pSfr->AddExtLoop( Release( pLoop)))
|
||||
return nullptr ;
|
||||
}
|
||||
// Loop interno
|
||||
else {
|
||||
pSfr->AddIntLoop( Release( pLoop)) ;
|
||||
if ( ! pSfr->AddIntLoop( Release( pLoop)))
|
||||
return nullptr ;
|
||||
}
|
||||
}
|
||||
return Release( pSfr) ;
|
||||
|
||||
+1
-1
@@ -1233,7 +1233,7 @@ SurfTriMesh::GetSilhouette( const Plane3d& plPlane, double dTol, POLYLINEVECTOR&
|
||||
|
||||
// Se non esiste la regione
|
||||
if ( IsNull( pSfr))
|
||||
return false ;
|
||||
return true ;
|
||||
|
||||
// Effettuo contro-offset
|
||||
pSfr->Offset( -dTol, ICurve::OFF_EXTEND) ;
|
||||
|
||||
Reference in New Issue
Block a user