From 691c3def9ec00ef76783cce4bead8f49fc7752ad Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Mon, 20 May 2024 15:08:57 +0200 Subject: [PATCH] =?UTF-8?q?EgtExch3dm=20:=20-=20reso=20pi=C3=B9=20robusto?= =?UTF-8?q?=20il=20controllo=20per=20capire=20se=20una=20superficie=20?= =?UTF-8?q?=C3=A8=20trimmata.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Import3dm.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Import3dm.cpp b/Import3dm.cpp index a9b8917..9e8c725 100644 --- a/Import3dm.cpp +++ b/Import3dm.cpp @@ -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 using namespace std ; @@ -838,7 +837,7 @@ Import3dm::ConvertBrep( const ON_Brep* onBrep, const bool bForceTriMesh) bOk = false ; break ; } - PtrOwner pCrvCompo( ApproxTrim( Release(pCrv))) ; + PtrOwner 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 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()) {