diff --git a/CurveComposite.cpp b/CurveComposite.cpp index 35bc353..6e3e776 100644 --- a/CurveComposite.cpp +++ b/CurveComposite.cpp @@ -192,7 +192,7 @@ CurveComposite::AddSimpleCurve( ICurve* pSmplCrv, bool bEndOrStart, double dLinT return false ; // verifico lo stato - if ( m_nStatus != OK && ! ( m_CrvSmplS.empty() && m_nStatus == TO_VERIFY)) + if ( m_nStatus != OK && ! ( m_CrvSmplS.empty() && ( m_nStatus == TO_VERIFY || m_nStatus == IS_A_POINT))) return false ; // controllo la tolleranza @@ -1778,10 +1778,11 @@ bool CurveComposite::AddPoint( const Point3d& ptStart) { // verifico lo stato - if ( m_nStatus != TO_VERIFY) + if ( m_nStatus != TO_VERIFY && m_nStatus != IS_A_POINT) return false ; - // assegno il punto + // assegno il punto e setto lo stato m_ptStart = ptStart ; + m_nStatus = IS_A_POINT ; return true ; } @@ -1825,7 +1826,7 @@ bool CurveComposite::AddLine( const Point3d& ptNew, bool bEndOrStart) { // verifico lo stato - if ( m_nStatus != OK && m_nStatus != TO_VERIFY) + if ( m_nStatus != OK && m_nStatus != IS_A_POINT) return false ; // costruisco la linea PtrOwner pLine( CreateBasicCurveLine()) ; @@ -3801,19 +3802,6 @@ CurveComposite::ResetVoronoiObject() const m_pVoronoiObj = nullptr ; } -//---------------------------------------------------------------------------- -bool -CurveComposite::FromPoint(Point3d& ptStart) -{ - // verifico lo stato - if ( m_nStatus != TO_VERIFY) - return false ; - // assegno il punto e setto lo stato - m_ptStart = ptStart ; - m_nStatus = IS_A_POINT ; - return true ; -} - //---------------------------------------------------------------------------- bool CurveComposite::GetOnlyPoint(Point3d& ptStart) const diff --git a/CurveComposite.h b/CurveComposite.h index 1c9b2eb..646105e 100644 --- a/CurveComposite.h +++ b/CurveComposite.h @@ -177,8 +177,7 @@ class CurveComposite : public ICurveComposite, public IGeoObjRW bool GetCurveTempProp( int nCrv, int& nProp, int nPropInd = 0) const override ; bool SetCurveTempParam( int nCrv, double dParam, int nParamInd = 0) override ; bool GetCurveTempParam( int nCrv, double& dParam, int nParamInd = 0) const override ; - bool FromPoint( Point3d& ptStart) override ; // funzione per settare la curva ad un unico punto - bool GetOnlyPoint( Point3d& ptStart) const override ; // funzione per recuperare l'unico punto da cui è composta la curva ( degenere) + bool GetOnlyPoint( Point3d& ptStart) const override ; public : // IGeoObjRW int GetNgeId( void) const override ; diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index e014c00..b40b336 100644 Binary files a/EgtGeomKernel.rc and b/EgtGeomKernel.rc differ diff --git a/Tree.cpp b/Tree.cpp index 47f0bfc..5064b47 100644 --- a/Tree.cpp +++ b/Tree.cpp @@ -2101,7 +2101,7 @@ Tree::UpdateSplitLoop( ICurveComposite* pCC, Point3d& pt) // potrei avere una compo vuota o con solo un punto // se non riesco ad aggiungere una linea allora era una compo vuota if ( ! pCC->GetOnlyPoint( ptLast)) { - pCC->FromPoint( pt) ; + pCC->AddPoint( pt) ; ptLast = pt ; } else { @@ -4139,7 +4139,7 @@ Tree::GetEdges3D( vector& mCCEdges, POLYLINEVECTOR& vPolygons pt3d = ORIG ; GetPoint( cNeigh.GetBottomLeft().x, cNeigh.GetTopRight().y, pt3d) ; mCCEdges.back().back()->AddLine( pt3d) ; if ( ! mCCEdges.back().back()->IsValid()) - mCCEdges.back().back()->FromPoint( pt3d) ; + mCCEdges.back().back()->AddPoint( pt3d) ; } else if ( i == 1 ) { while ( ! AreSamePointXYApprox(pt, cNeigh.GetTopLeft()) && plCell.GetNextPoint( pt)) { @@ -4155,7 +4155,7 @@ Tree::GetEdges3D( vector& mCCEdges, POLYLINEVECTOR& vPolygons pt3d = ORIG ; GetPoint( cNeigh.GetBottomLeft().x, cNeigh.GetBottomLeft().y, pt3d) ; mCCEdges.back().back()->AddLine( pt3d) ; if ( ! mCCEdges.back().back()->IsValid()) - mCCEdges.back().back()->FromPoint( pt3d) ; + mCCEdges.back().back()->AddPoint( pt3d) ; } else if ( i == 2) { while ( ! AreSamePointXYApprox(pt, cNeigh.GetBottomLeft()) && plCell.GetNextPoint( pt)) { @@ -4171,7 +4171,7 @@ Tree::GetEdges3D( vector& mCCEdges, POLYLINEVECTOR& vPolygons pt3d = ORIG ; GetPoint( cNeigh.GetTopRight().x, cNeigh.GetBottomLeft().y, pt3d) ; mCCEdges.back().back()->AddLine( pt3d) ; if ( ! mCCEdges.back().back()->IsValid()) - mCCEdges.back().back()->FromPoint( pt3d) ; + mCCEdges.back().back()->AddPoint( pt3d) ; } else if ( i == 3) { while ( ! AreSamePointXYApprox(pt, cNeigh.GetBottomRight()) && plCell.GetNextPoint( pt)) { @@ -4187,7 +4187,7 @@ Tree::GetEdges3D( vector& mCCEdges, POLYLINEVECTOR& vPolygons pt3d = ORIG ; GetPoint( cNeigh.GetTopRight().x, cNeigh.GetTopRight().y, pt3d) ; mCCEdges.back().back()->AddLine( pt3d) ; if ( ! mCCEdges.back().back()->IsValid()) - mCCEdges.back().back()->FromPoint( pt3d) ; + mCCEdges.back().back()->AddPoint( pt3d) ; } } } @@ -4212,7 +4212,7 @@ Tree::GetEdges3D( vector& mCCEdges, POLYLINEVECTOR& vPolygons pCC3D->AddLine( pt3D) ; } if ( ! pCC3D->IsValid()) - pCC3D->FromPoint( pt3D) ; + pCC3D->AddPoint( pt3D) ; // qui devo fare dei controlli prima di aggiungere questa polyline? mCCEdges[i].emplace_back( Release(pCC3D)) ; }