From a4582b3fc2e69895a836edb3b8f2046d036126f4 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Sun, 31 May 2015 14:05:58 +0000 Subject: [PATCH] EgtGraphics : - modifiche per vettore nullo - snap endpoint anche su tip di vettore. --- SceneGeom.cpp | 8 +++++--- SceneSnap.cpp | 11 +++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/SceneGeom.cpp b/SceneGeom.cpp index 06f7ba5..c45fe9f 100644 --- a/SceneGeom.cpp +++ b/SceneGeom.cpp @@ -191,11 +191,13 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj) if ( pVector == nullptr) return false ; // calcolo la grafica - PolyLine PL ; - pVector->GetDrawWithArrowHead( 0.1, 10, PL) ; pGraphics->Clear() ; pGraphics->AddColor( siObj.colObj) ; - pGraphics->AddPolyLine( PL) ; + PolyLine PL ; + if ( pVector->GetDrawWithArrowHead( 0.1, 10, PL)) + pGraphics->AddPolyLine(PL) ; + else + pGraphics->AddPoint( pVector->GetBase()) ; } // se punto else if ( nGeoType == GEO_PNT3D) { diff --git a/SceneSnap.cpp b/SceneSnap.cpp index dbc2e3d..df52979 100644 --- a/SceneSnap.cpp +++ b/SceneSnap.cpp @@ -250,6 +250,17 @@ Scene::FindSelectedSnapPoint( int nSnap, const Point3d& ptWin, int nW, int nH) m_vtLastSnapDir = pGV->GetVector() ; m_vtLastSnapDir.ToGlob( frEnt) ; } + // recupero il punto tip + Point3d ptTip= pGV->GetBase() + pGV->GetVector() ; + ptTip.ToGlob( frEnt) ; + if ( VerifySnapPoint( ptTip, ptWin, dMinSqDist)) { + bFound = true ; + m_nLastSnapId = nId ; + m_ptLastSnapPnt = ptTip ; + m_bLastSnapDirOk = true ; + m_vtLastSnapDir = pGV->GetVector() ; + m_vtLastSnapDir.ToGlob( frEnt) ; + } } // se frame else if ( pGObj->GetType() == GEO_FRAME3D) {