EgtGeomKernel :
- In CalcPocketing ConformalZigZag, piccola modifica alla tolleranza per riconoscimento lati Open/Close.
This commit is contained in:
+49
-1
@@ -79,6 +79,53 @@ static double TOL_TRAPEZOID = 50 * EPS_SMALL ; // tolleranza per casi a trapezio
|
||||
typedef vector<ICRVCOMPOPOVECTOR> VICRVCOMPOPOVECTOR ;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// definizione varibaile di debug
|
||||
#define ENABLE_DEBUG 0
|
||||
#if ENABLE_DEBUG
|
||||
#include "EgtDev/Include/EGkGeoObjSave.h"
|
||||
#include "EgtDev/Include/EGkGeoPoint3d.h"
|
||||
#include "EgtDev/Include/EGkGeoVector3d.h"
|
||||
//----------------------------------------------------------------------------
|
||||
// Debug Functions
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
DrawObjs( const ISURFFRPOVECTOR& vSfr, bool bSfrUniform, bool bAlphaCoverage,
|
||||
const ICRVCOMPOPOVECTOR& vCompo, bool bCompoUniform, string sName)
|
||||
{
|
||||
// definisco i vettori per geometrie e colori
|
||||
vector<IGeoObj*> VT ;
|
||||
vector<Color> VC ;
|
||||
|
||||
// disegno le superfici
|
||||
for ( int nS = 0 ; nS < int( vSfr.size()) ; ++ nS) {
|
||||
if ( vSfr[nS] == nullptr || ! vSfr[nS]->IsValid())
|
||||
return ;
|
||||
VT.emplace_back( static_cast<IGeoObj*>( vSfr[nS]->Clone())) ;
|
||||
VC.emplace_back( bAlphaCoverage ? Color( 0., 64., 0., .5) : Color( 0., 255., 0., .5)) ;
|
||||
for ( int nC = 0 ; nC < vSfr[nS]->GetChunkCount() ; ++ nC) {
|
||||
for ( int nL = 0 ; nL < vSfr[nS]->GetLoopCount( nC) ; ++ nL) {
|
||||
PtrOwner<ICurveComposite> pCrvCompo( ConvertCurveToComposite( vSfr[nS]->GetLoop( nC, nL))) ;
|
||||
for ( int nU = 0 ; nU < pCrvCompo->GetCurveCount() ; ++ nU) {
|
||||
int nProp0 ; pCrvCompo->GetCurveTempProp( nU, nProp0, 0) ;
|
||||
VT.emplace_back( static_cast<IGeoObj*>( pCrvCompo->GetCurve( nU)->Clone())) ;
|
||||
VC.emplace_back( bSfrUniform ? WHITE : ( nProp0 == 0 ? ( bAlphaCoverage ? AQUA : BLUE) : ( bAlphaCoverage ? ORANGE : RED))) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// disegno le curve
|
||||
for ( int nC = 0 ; nC < int( vCompo.size()) ; ++ nC) {
|
||||
if ( vCompo[nC] == nullptr || ! vCompo[nC]->IsValid())
|
||||
continue ;
|
||||
VT.emplace_back( static_cast<IGeoObj*>( vCompo[nC]->Clone())) ;
|
||||
VC.emplace_back( Color( double( rand()) / RAND_MAX, double( rand()) / RAND_MAX, double( rand()) / RAND_MAX, 1.)) ;
|
||||
}
|
||||
|
||||
SaveGeoObj( VT, VC, sName) ;
|
||||
return ;
|
||||
}
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
static double
|
||||
@@ -7374,7 +7421,7 @@ AdjustCloseEsgesForConformalGuide( ICurveComposite* pCrvCompo, const PocketParam
|
||||
if ( IsNull( pMyCompo))
|
||||
return false ;
|
||||
CRVCVECTOR ccClass ;
|
||||
if ( pSfrLimit->GetCurveClassification( *vpCrvs[i], EPS_SMALL, ccClass)) {
|
||||
if ( pSfrLimit->GetCurveClassification( *vpCrvs[i], 125 * EPS_SMALL, ccClass)) {
|
||||
for ( int j = 0 ; j < int( ccClass.size()) ; ++ j) {
|
||||
// recupero il tratto di curva
|
||||
PtrOwner<ICurveComposite> pMyCurve( ConvertCurveToComposite( vpCrvs[i]->CopyParamRange( ccClass[j].dParS, ccClass[j].dParE))) ;
|
||||
@@ -8395,6 +8442,7 @@ GetConformalOffsets( const ISurfFlatRegion* pSfrChunk, const ISurfFlatRegion* pS
|
||||
for ( int j = 0 ; j < int( vCrvOffs[i].size()) ; ++ j)
|
||||
ModifyCurveToSmoothed( vCrvOffs[i][j], PockParam, dSmoothPar, dSmoothPar, false) ;
|
||||
}
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user