diff --git a/EgtInterface.vb b/EgtInterface.vb index 6cc79fd..f154be0 100644 --- a/EgtInterface.vb +++ b/EgtInterface.vb @@ -1875,11 +1875,8 @@ Public Function EgtSelect(ByVal Curr As Point, ByVal nSelW As Integer, ByVal nSe End Function -Public Function EgtGetFirstObjInSelWin() As Integer -End Function - - -Public Function EgtGetNextObjInSelWin() As Integer +Public Function EgtSetObjFilterForSelect(ByVal bZeroDim As Boolean, ByVal bCurve As Boolean, + ByVal bSurf As Boolean, ByVal bVolume As Boolean, ByVal bExtra As Boolean) As Boolean End Function @@ -1894,6 +1891,14 @@ End Function Public Function EgtUnselectableClearAll() As Boolean End Function + +Public Function EgtGetFirstObjInSelWin() As Integer +End Function + + +Public Function EgtGetNextObjInSelWin() As Integer +End Function + Private Function EgtGetPointFromSelect(ByVal nSelId As Integer, ByVal nWinX As Integer, ByVal nWinY As Integer, ByRef ptP As Point3d, ByRef nAux As Integer) As Boolean @@ -1932,11 +1937,6 @@ End Function Public Function EgtGetLastSnapDir(ByRef VtDir As Vector3d) As Boolean End Function - -Public Function EgtSetObjFilterForSnap(ByVal bZeroDim As Boolean, ByVal bCurve As Boolean, - ByVal bSurf As Boolean, ByVal bVolume As Boolean, ByVal bExtra As Boolean) As Boolean -End Function - Public Function EgtSetShowMode(ByVal nShowMode As SM, Optional ByVal bRedraw As Boolean = True) As Boolean End Function diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index e00da79..33275bf 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -46,5 +46,5 @@ Imports System.Runtime.InteropServices ' utilizzando l'asterisco (*) come descritto di seguito: ' - - + + diff --git a/Scene.vb b/Scene.vb index 7f32915..7d8eb8f 100644 --- a/Scene.vb +++ b/Scene.vb @@ -228,6 +228,12 @@ Public Class Scene Else Cursor = New Cursor(Me.GetType(), "Analyze.cur") End If + ' per selezione percorso abilito solo le curve + If m_nStatus = ST.SELPATH Or m_nStatus = ST.SELPATHAUTO Then + EgtSetObjFilterForSelect(False, True, False, False, False) + Else + EgtSetObjFilterForSelect(True, True, True, True, True) + End If Dim nId As Integer = GDB_ID.NULL Dim nSel As Integer EgtSelect(e.Location, DIM_SEL, DIM_SEL, nSel) @@ -272,6 +278,9 @@ Public Class Scene End If ' se stato misura di distanza (primo punto) ElseIf m_nStatus = ST.GETDIST Then + If m_bExcludeSurfForSnap Then + EgtSetObjFilterForSelect(True, True, False, True, True) + End If If EgtGetGraphicSnapPoint(m_nSnapType, e.Location, DIM_SEL, DIM_SEL, m_ptPrev) Then ' salvo il punto di riferimento Dim ptWin As Point3d @@ -281,6 +290,9 @@ Public Class Scene End If ' se stato misura di distanza (secondo punto) ElseIf m_nStatus = ST.GETDIST2 Then + If m_bExcludeSurfForSnap Then + EgtSetObjFilterForSelect(True, True, False, True, True) + End If Dim ptSel As Point3d If EgtGetGraphicSnapPoint(m_nSnapType, e.Location, DIM_SEL, DIM_SEL, ptSel) Then ' disegno la linea (coordinate geo globali) @@ -306,6 +318,9 @@ Public Class Scene End If ' se stato selezione punto ElseIf m_nStatus = ST.SELPOINT Then + If m_bExcludeSurfForSnap Then + EgtSetObjFilterForSelect(True, True, False, True, True) + End If If Not m_bDragOn Then ' rendo selezionabile gruppo di drag If Not m_bDragSelectable Then @@ -874,7 +889,6 @@ Public Class Scene ' esclusione superfici da punto snap ElseIf e.ClickedItem.Name = "cmdExcludeSurfForSnap" Then m_bExcludeSurfForSnap = Not m_bExcludeSurfForSnap - EgtSetObjFilterForSnap(True, True, Not m_bExcludeSurfForSnap, True, True) ' Sospensione drag ElseIf e.ClickedItem.Name = "cmdStopDrag" Then m_bDragOn = False @@ -1007,6 +1021,7 @@ Public Class Scene EgtResetGeoTria(False) EgtResetWinRect(False) ' reset entità non selezionabili + EgtSetObjFilterForSelect(True, True, True, True, True) EgtUnselectableClearAll() ' imposto lo stato m_nStatus = ST.SEL