EgtExch3dm :
- reso più robusto il controllo per capire se una superficie è trimmata.
This commit is contained in:
+3
-4
@@ -36,7 +36,6 @@
|
||||
#include "/EgtDev/Include/EGkExtText.h"
|
||||
#include "/EgtDev/Include/EGkExtDimension.h"
|
||||
#include "/EgtDev/Include/EGkVector3d.h"
|
||||
#include "/EgtDev/Include/EGkGeoObjSave.h"
|
||||
#include <map>
|
||||
|
||||
using namespace std ;
|
||||
@@ -838,7 +837,7 @@ Import3dm::ConvertBrep( const ON_Brep* onBrep, const bool bForceTriMesh)
|
||||
bOk = false ;
|
||||
break ;
|
||||
}
|
||||
PtrOwner<ICurveComposite> pCrvCompo( ApproxTrim( Release(pCrv))) ;
|
||||
PtrOwner<ICurveComposite> pCrvCompo( ApproxTrim( pCrv)) ;
|
||||
double dArea = 0 ;
|
||||
pCrvCompo->GetAreaXY(dArea) ;
|
||||
if (abs(dArea) > EPS_SMALL) { // qui non sarebbe meglio mettere SQ_EPS_SMALL oppure addirittura EPS_ZERO o 0 ?
|
||||
@@ -882,8 +881,8 @@ Import3dm::ConvertBrep( const ON_Brep* onBrep, const bool bForceTriMesh)
|
||||
pSurfBezNew->GetInfo( nDegU, nDegV, nSpanU, nSpanV, bRat, bTrim) ;
|
||||
// devo rendere lo spazio parametrico uniforme solo se la superficie è trimmata, sennò non serve
|
||||
// per capire se la superficie sia trimmata controllo che lo spazio parametrico trimmato non coincida con tutto lo spazio parametrico
|
||||
double dParamX = dScaleU /* * SBZ_TREG_COEFF*/ - EPS_SMALL ;
|
||||
double dParamY = dScaleV /* * SBZ_TREG_COEFF*/ - EPS_SMALL ;
|
||||
double dParamX = dScaleU /* * SBZ_TREG_COEFF*/ - 5 * EPS_SMALL ;
|
||||
double dParamY = dScaleV /* * SBZ_TREG_COEFF*/ - 5 * EPS_SMALL ;
|
||||
PtrOwner<ISurfFlatRegion> pSurfParam(GetSurfFlatRegionRectangle( dParamX > 0 ? dParamX : 2 * EPS_SMALL, dParamY > 0 ? dParamY : 2 * EPS_SMALL)) ;
|
||||
// se la sottrazione tra spazio parametrico e superficie di trim è diversa da zero, allora la superficie era trimmata
|
||||
if ( pSfrTrim != nullptr && pSurfParam->Subtract( *pSfrTrim) && pSurfParam->IsValid()) {
|
||||
|
||||
Reference in New Issue
Block a user