From da7e9dd6e2d3b480c80c4efcc5ddde17a0468481 Mon Sep 17 00:00:00 2001 From: SaraP Date: Thu, 19 Sep 2024 16:28:19 +0200 Subject: [PATCH] =?UTF-8?q?EgtGeomKernel=20:=20-=20aggiunte=20funzioni=20p?= =?UTF-8?q?er=20calcolare=20Voronoi=20e=20medial=20axis=20di=20pi=C3=B9=20?= =?UTF-8?q?curve.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CurveAux.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/CurveAux.cpp b/CurveAux.cpp index dec95b4..f4a44e5 100644 --- a/CurveAux.cpp +++ b/CurveAux.cpp @@ -1796,6 +1796,22 @@ CalcCurveVoronoiDiagram( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nBound) return pVoronoiObj->CalcVoronoiDiagram( vCrvs, nBound) ; } +//---------------------------------------------------------------------------- +bool +CalcCurvesVoronoiDiagram( const CICURVEPVECTOR& vCrvC, ICURVEPOVECTOR& vCrvs, int nBound) +{ + // creo oggetto Voronoi con le curve passate + PtrOwner pVoronoiObj( new( std::nothrow) Voronoi()) ; + if ( pVoronoiObj == nullptr) + return false ; + for ( int i = 0 ; i < int( vCrvC.size()) ; i ++) { + if ( ! pVoronoiObj->AddCurve( vCrvC[i])) + return false ; + } + + return pVoronoiObj->CalcVoronoiDiagram( vCrvs, nBound) ; +} + //---------------------------------------------------------------------------- bool CalcCurveMedialAxis( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nSide) @@ -1807,6 +1823,22 @@ CalcCurveMedialAxis( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nSide) return pVoronoiObj->CalcMedialAxis( vCrvs, nSide) ; } +//---------------------------------------------------------------------------- +bool +CalcCurvesMedialAxis( const CICURVEPVECTOR& vCrvC, ICURVEPOVECTOR& vCrvs, int nSide) +{ + // creo oggetto Voronoi con le curve passate + PtrOwner pVoronoiObj( new( std::nothrow) Voronoi()) ; + if ( pVoronoiObj == nullptr) + return false ; + for ( int i = 0 ; i < int( vCrvC.size()) ; i ++) { + if ( ! pVoronoiObj->AddCurve( vCrvC[i])) + return false ; + } + + return pVoronoiObj->CalcMedialAxis( vCrvs, nSide) ; +} + //---------------------------------------------------------------------------- bool CalcCurveFatCurve( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, double dRadius, bool bSquareEnds, bool bSquareMids)