From dc070c45562dc2485381d8da118d5892a8e1a875 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 23 Sep 2024 13:01:07 +0200 Subject: [PATCH] EgtgeomKernel : - aggiunta funzione GetLoopCurveCount a FlatRegion. --- SurfFlatRegion.cpp | 13 +++++++++++++ SurfFlatRegion.h | 1 + 2 files changed, 14 insertions(+) diff --git a/SurfFlatRegion.cpp b/SurfFlatRegion.cpp index 844e0cc..503198b 100644 --- a/SurfFlatRegion.cpp +++ b/SurfFlatRegion.cpp @@ -1166,6 +1166,19 @@ SurfFlatRegion::GetLoop( int nChunk, int nLoop) const return pCrv ; } +//---------------------------------------------------------------------------- +int +SurfFlatRegion::GetLoopCurveCount( int nChunk, int nLoop) const +{ + // recupero il loop nel riferimento intrinseco + const ICurve* pMyCrv = GetMyLoop( nChunk, nLoop) ; + if ( pMyCrv == nullptr) + return 0 ; + // restituisco il numero di curve di cui è composto + const ICurveComposite* pMyCompo = GetCurveComposite( pMyCrv) ; + return ( pMyCompo == nullptr ? 1 : pMyCompo->GetCurveCount()) ; +} + //---------------------------------------------------------------------------- bool SurfFlatRegion::ApproxLoopWithLines( int nChunk, int nLoop, double dLinTol, double dAngTolDeg, int nType, PolyLine& PL) const diff --git a/SurfFlatRegion.h b/SurfFlatRegion.h index be42bea..70b865e 100644 --- a/SurfFlatRegion.h +++ b/SurfFlatRegion.h @@ -109,6 +109,7 @@ class SurfFlatRegion : public ISurfFlatRegion, public IGeoObjRW int GetChunkSimpleClassification( int nChunk, const ISurfFlatRegion& Other, int nOthChunk) const override ; // compare only outsides bool GetChunkMaxOffset( int nChunk, double& dOffs) const override ; int GetLoopCount( int nChunk) const override ; + int GetLoopCurveCount( int nChunk, int nLoop) const override ; ICurve* GetLoop( int nChunk, int nLoop) const override ; // nChunk 0-based, nLoop 0-based (1°esterno, successivi interni) bool ApproxLoopWithLines( int nChunk, int nLoop, double dLinTol, double dAngTolDeg, int nType, PolyLine& PL) const override ; bool SetCurveTempProp( int nChunk, int nLoop, int nCrv, int nProp, int nPropInd = 0) override ;