From 62a3405d6a4e95fa8231a7e2b95907c015708536 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 4 Dec 2024 15:04:26 +0100 Subject: [PATCH] EgtGeomKernel 2.6l2 : - tolta da interfaccia ISurfTriMesh il metodo CreateByRegion (usare al suo posto la funzione GetSurfTriMeshByRegion) - aggiunta la funzione GetSurfTriMeshEmpty. --- EgtGeomKernel.rc | Bin 11718 -> 11718 bytes StmFromCurves.cpp | 4 ++-- StmStandard.cpp | 12 ++++++++++++ SurfTriMesh.h | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index f3f7b948d6bfae015e9f2095d118c51d164d2be2..cef4341d3ab35d1c5c497e5657c2bcea50ec27ae 100644 GIT binary patch delta 110 zcmX>WeJpyzA2vp#&G-4vGfl1&(wY2&Q;pGRvZAo=W*@FeEMOU1X1ItOWeJpyzA2vqA&G-4vGfl1&(wY2&Q;pGZvZAo=W*@FeEMOU1X1ItO pSci( CreateSurfTriMesh()) ; + PtrOwner pSci( CreateBasicSurfTriMesh()) ; INTMATRIX vnPLIndMat ; if ( ! pSci->CreateByRegion( vPLi, vnPLIndMat)) return nullptr ; @@ -1310,7 +1310,7 @@ GetSurfTriMeshSwept( const ISurfFlatRegion* pSfrSect, const ICurve* pGuide, cons if ( ! pStmSwept->GetLoops( vPLe)) return nullptr ; // creo la superficie alla fine e la attacco - PtrOwner pSce( CreateSurfTriMesh()) ; + PtrOwner pSce( CreateBasicSurfTriMesh()) ; vnPLIndMat.clear() ; if ( ! pSce->CreateByRegion( vPLe, vnPLIndMat)) return nullptr ; diff --git a/StmStandard.cpp b/StmStandard.cpp index e32198a..edc409a 100644 --- a/StmStandard.cpp +++ b/StmStandard.cpp @@ -22,6 +22,18 @@ using namespace std ; +//------------------------------------------------------------------------------- +ISurfTriMesh* +GetSurfTriMeshEmpty( void) +{ + // creo oggetto con superficie vuota + PtrOwner pStm( CreateBasicSurfTriMesh()) ; + if ( IsNull( pStm) || ! pStm->AdjustTopology()) + return nullptr ; + // restituisco la superficie + return Release( pStm) ; +} + //------------------------------------------------------------------------------- static SurfTriMesh* GetStandardSurfTriMeshBox( double dDimX, double dDimY, double dHeight) diff --git a/SurfTriMesh.h b/SurfTriMesh.h index 08a0e00..d8ca79f 100644 --- a/SurfTriMesh.h +++ b/SurfTriMesh.h @@ -251,7 +251,6 @@ class SurfTriMesh : public ISurfTriMesh, public IGeoObjRW bool RemoveTriangle( int nId) override ; bool AdjustTopology( void) override ; bool CreateByFlatContour( const PolyLine& PL) override ; - bool CreateByRegion( const POLYLINEVECTOR& vPL, const INTMATRIX& vnPLIndMat) override ; bool CreateByExtrusion( const PolyLine& PL, const Vector3d& vtExtr) override ; bool CreateByPointCurve( const Point3d& ptP, const PolyLine& PL) override ; bool CreateByTwoCurves( const PolyLine& PL1, const PolyLine& PL2, int nRuledType) override ; @@ -365,6 +364,7 @@ class SurfTriMesh : public ISurfTriMesh, public IGeoObjRW LOG_ERROR( GetEGkLogger(), "SurfTriMesh : copy error") return *this ; } bool Clear( void) ; + bool CreateByRegion( const POLYLINEVECTOR& vPL, const INTMATRIX& vnPLIndMat) ; bool ExistsTriangle( int nT) const { return ( nT >= 0 && nT < GetTriangleSize() && m_vTria[nT].nIdVert[0] != SVT_DEL) ; } bool GetTriangleAdjacencies( int nId, int nIdAdjTriaId[3]) const ;