From b107596f846bc98da1037db6f1cd4753bb10d7a9 Mon Sep 17 00:00:00 2001 From: DarioS Date: Thu, 24 Mar 2022 10:50:38 +0100 Subject: [PATCH] EgtGeomKernel 2.4c2 : - aggiunto a CurveComposite metodo AddLineTg. --- CurveComposite.cpp | 34 ++++++++++++++++++++++++++++++++++ CurveComposite.h | 6 ++++-- EgtGeomKernel.rc | Bin 11718 -> 11718 bytes 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/CurveComposite.cpp b/CurveComposite.cpp index 6ba894b..b1a7f09 100644 --- a/CurveComposite.cpp +++ b/CurveComposite.cpp @@ -1626,6 +1626,40 @@ CurveComposite::AddPoint( const Point3d& ptStart) return true ; } +//---------------------------------------------------------------------------- +bool +CurveComposite::AddLineTg( double dLen, bool bEndOrStart) +{ + // verifico lo stato + if ( m_nStatus != OK) + return false ; + // costruisco la linea + PtrOwner pLine( CreateBasicCurveLine()) ; + if ( IsNull( pLine)) + return false ; + // se da aggiungere alla fine + if ( bEndOrStart) { + Point3d ptEnd ; + Vector3d vtEnd ; + if ( ! GetEndPoint( ptEnd) || ! GetEndDir( vtEnd)) + return false ; + Point3d ptNew = ptEnd + vtEnd * dLen ; + if ( ! pLine->Set( ptEnd, ptNew)) + return false ; + } + // altrimenti da aggiungere all'inizio + else { + Point3d ptStart ; + Vector3d vtStart ; + if ( ! GetStartPoint( ptStart) || ! GetStartDir( vtStart)) + return false ; + Point3d ptNew = ptStart - vtStart * dLen ; + if ( ! pLine->Set( ptNew, ptStart)) + return false ; + } + return AddCurve( Release( pLine), bEndOrStart) ; +} + //---------------------------------------------------------------------------- bool CurveComposite::AddLine( const Point3d& ptNew, bool bEndOrStart) diff --git a/CurveComposite.h b/CurveComposite.h index 3e28f5d..e641285 100644 --- a/CurveComposite.h +++ b/CurveComposite.h @@ -1,12 +1,13 @@ //---------------------------------------------------------------------------- // EgalTech 2013-2022 //---------------------------------------------------------------------------- -// File : CurveComposite.h Data : 23.01.22 Versione : 2.4a4 +// File : CurveComposite.h Data : 24.03.22 Versione : 2.4c2 // Contenuto : Dichiarazione della classe Curva composita. // // // // Modifiche : 16.04.13 DS Creazione modulo. +// 24.03.22 DS Aggiunto metodo AddLineTg. // // //---------------------------------------------------------------------------- @@ -144,8 +145,9 @@ class CurveComposite : public ICurveComposite, public IGeoObjRW bool ChangeStartPoint( double dU) override ; bool AddPoint( const Point3d& ptStart) override ; bool AddLine( const Point3d& ptNew, bool bEndOrStart = true) override ; - bool AddArcTg( const Point3d& ptNew, bool bEndOrStart = true) override ; + bool AddLineTg( double dLen, bool bEndOrStart = true) override ; bool AddArc2P( const Point3d& ptOther, const Point3d& ptNew, bool bEndOrStart = true) override ; + bool AddArcTg( const Point3d& ptNew, bool bEndOrStart = true) override ; bool AddJoint( double dU) override ; bool ModifyJoint( int nU, const Point3d& ptNewJoint) override ; bool RemoveJoint( int nU) override ; diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index 1f03f6acd4e2dd5c1ff746f890ef923934df4bac..8ff5da2da14cf99f38225e2dec2a8bf71af5cef1 100644 GIT binary patch delta 100 zcmX>WeJpyzFE&P_&G*I5Gfl4J(wY2?Q;pGRvLd(cW-qP@EMOU1W|)YS2jk{G;Q$~X Qr~yeBsu05nEu}f!0J&5j?f?J) delta 100 zcmX>WeJpyzFE&QQ&G*I5Gfl4J(wY2?Q;pGZvLd(cW-qP@EMOU1W|)YS2jk{G;Q$~X Qr~yeBsu05nEu}f!0Jpp!<^TWy