diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index f3f7b94..cef4341 100644 Binary files a/EgtGeomKernel.rc and b/EgtGeomKernel.rc differ diff --git a/StmFromCurves.cpp b/StmFromCurves.cpp index a35ed06..c2d3097 100644 --- a/StmFromCurves.cpp +++ b/StmFromCurves.cpp @@ -1300,7 +1300,7 @@ GetSurfTriMeshSwept( const ISurfFlatRegion* pSfrSect, const ICurve* pGuide, cons } } // creo il cap sull'inizio e lo attacco alla swept ( è già in posizione giusta) - PtrOwner 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 ;