TestEIn 1.6a7 :

- modifiche per EgtInterface (spostamento gestione nome progetto e stato + pezzi/layer).
This commit is contained in:
Dario Sassi
2015-01-30 08:17:25 +00:00
parent 99bce8284e
commit cf3b45bee6
5 changed files with 479 additions and 431 deletions
+133 -188
View File
@@ -173,13 +173,15 @@ Public Class Controller
Dim nIdNewPart As Integer = EgtCreateGroup(GDB_ID.ROOT)
' inserisco un nuovo gruppo (layer) sotto quello appena creato
Dim nIdNewLayer As Integer = EgtCreateGroup(nIdNewPart)
' reset flag di modificato
EgtResetModified()
End If
' aggiorno pezzo e layer correnti
EgtResetCurrPartLayer()
DisableCommandLog()
' aggiorno
EgtZoom(ZM.ALL)
ResetCurrFile()
ResetCurrPartLayer()
ResetModified()
RaiseEvent UpdateUI(Me, True)
' Gestione risultato
RaiseEvent OnNewProject(Me, bOk)
Return bOk
@@ -212,13 +214,12 @@ Public Class Controller
m_Scene.Cursor = Cursors.WaitCursor
EnableCommandLog()
Dim bOk As Boolean = EgtOpenFile(sFile)
EgtResetCurrPartLayer()
DisableCommandLog()
EgtZoom(ZM.ALL)
m_Scene.Cursor = Cursors.Default
' Aggiornamento
SetCurrFile(sFile)
ResetCurrPartLayer()
ResetModified()
RaiseEvent UpdateUI(Me, True)
'Gestione risultato
RaiseEvent OnOpenProject(Me, sFile, bOk)
Return bOk
@@ -242,31 +243,32 @@ Public Class Controller
End If
'Inserimento del progetto
m_Scene.Cursor = Cursors.WaitCursor
EnableCommandLog()
Dim bOk As Boolean = EgtInsertFile(sFile)
DisableCommandLog()
EgtZoom(ZM.ALL)
m_Scene.Cursor = Cursors.Default
' Aggiornamento
SetModified()
RaiseEvent UpdateUI(Me, True)
Return bOk
End Function
Public Function SaveProject(Optional ByVal sFile As String = "", Optional ByVal nType As NGE = NGE.CMPTEXT) As Boolean
If String.IsNullOrWhiteSpace(sFile) Or EgtGetFileType(sFile) <> FT.NGE Then
Return SaveAsProject(sFile, nType)
Public Function SaveProject(Optional ByVal nType As NGE = NGE.CMPTEXT) As Boolean
Dim sCurrFile As String = GetCurrFile()
If String.IsNullOrWhiteSpace(sCurrFile) Or EgtGetFileType(sCurrFile) <> FT.NGE Then
Return SaveAsProject(sCurrFile, nType)
Else
'Prima del salvataggio
SetCurrFile(sFile)
RaiseEvent OnSavingProject(Me, sFile)
RaiseEvent OnSavingProject(Me, sCurrFile)
'Salvataggio del progetto
m_Scene.Cursor = Cursors.WaitCursor
EnableCommandLog()
Dim bOk As Boolean = EgtSaveFile(sFile, nType)
Dim bOk As Boolean = EgtSaveFile(sCurrFile, nType)
DisableCommandLog()
m_Scene.Cursor = Cursors.Default
'Aggiorno
RaiseEvent UpdateUI(Me, False)
'Gestione risultato
If bOk Then
ResetModified()
End If
RaiseEvent OnSavedProject(Me, bOk)
Return bOk
End If
@@ -285,7 +287,6 @@ Public Class Controller
Return True
End If
'Prima del salvataggio
SetCurrFile(SaveFileDialog.FileName)
RaiseEvent OnSavingProject(Me, SaveFileDialog.FileName)
'Salvataggio del progetto
m_Scene.Cursor = Cursors.WaitCursor
@@ -293,10 +294,9 @@ Public Class Controller
Dim bOk As Boolean = EgtSaveFile(SaveFileDialog.FileName, nType)
DisableCommandLog()
m_Scene.Cursor = Cursors.Default
'Aggiorno
RaiseEvent UpdateUI(Me, False)
'Gestione risultato
If bOk Then
ResetModified()
End If
RaiseEvent OnSavedProject(Me, bOk)
Return bOk
End Function
@@ -343,13 +343,12 @@ Public Class Controller
ElseIf nFileType = FT.CNC Then
bOk = bOk And EgtImportCnc(sFile)
End If
EgtResetCurrPartLayer()
DisableCommandLog()
EgtZoom(ZM.ALL)
m_Scene.Cursor = Cursors.Default
' Aggiornamento
SetCurrFile(sFile)
ResetCurrPartLayer()
SetModified()
RaiseEvent UpdateUI(Me, True)
'Gestione risultato
RaiseEvent OnImportedProject(Me, sFile, bOk)
Return bOk
@@ -386,6 +385,8 @@ Public Class Controller
End If
DisableCommandLog()
m_Scene.Cursor = Cursors.Default
'Aggiornamento
RaiseEvent UpdateUI(Me, False)
'Gestione risultato
RaiseEvent OnExportedProject(Me, bOk)
Return bOk
@@ -428,7 +429,7 @@ Public Class Controller
EgtZoom(ZM.ALL)
m_Scene.Cursor = Cursors.Default
' Aggiornamento
SetModified()
RaiseEvent UpdateUI(Me, True)
'Gestione risultato
Dim sError As String = String.Empty
If Not bOk Then
@@ -907,6 +908,7 @@ Public Class Controller
End Function
Private Function ExecuteDrag() As Boolean
EgtDisableModified()
Select Case m_nLastCmd
Case CMD.GRID_ROTATE
DragGridRotate()
@@ -961,8 +963,10 @@ Public Class Controller
Case CMD.OFFSET
DragOffset()
Case Else
EgtEnableModified()
Return False
End Select
EgtEnableModified()
Return True
End Function
@@ -985,7 +989,8 @@ Public Class Controller
EnableCommandLog()
Dim bOk As Boolean = EgtLuaExecLine(m_sLast)
DisableCommandLog()
SetModified()
' Aggiornamento
RaiseEvent UpdateUI(Me, True)
EgtDraw()
Return bOk
End Function
@@ -1316,13 +1321,12 @@ Public Class Controller
Dim nIdNewPart As Integer = EgtCreateGroup(GDB_ID.ROOT)
' inserisco un nuovo gruppo (layer) sotto quello appena creato
Dim nIdNewLayer As Integer = EgtCreateGroup(nIdNewPart)
DisableCommandLog()
' se ok, salvo nuova situazione
If nIdNewPart <> GDB_ID.NULL And nIdNewLayer <> GDB_ID.NULL Then
m_nCurrPart = nIdNewPart
m_nCurrLayer = nIdNewLayer
SetModified()
EgtSetCurrPartLayer(nIdNewPart, nIdNewLayer)
End If
DisableCommandLog()
RaiseEvent UpdateUI(Me, True)
Return True
End Function
@@ -1332,13 +1336,13 @@ Public Class Controller
End If
EnableCommandLog()
' inserisco un nuovo gruppo (layer) sotto il pezzo corrente
Dim nIdNewLayer As Integer = EgtCreateGroup(m_nCurrPart, Frame3d.GLOB(), REF_TY.GRID)
DisableCommandLog()
Dim nIdNewLayer As Integer = EgtCreateGroup(EgtGetCurrPart(), Frame3d.GLOB(), REF_TY.GRID)
' se ok, salvo nuova situazione
If nIdNewLayer <> GDB_ID.NULL Then
m_nCurrLayer = nIdNewLayer
SetModified()
EgtSetCurrPartLayer(EgtGetCurrPart(), nIdNewLayer)
End If
DisableCommandLog()
RaiseEvent UpdateUI(Me, True)
Return True
End Function
@@ -1355,18 +1359,20 @@ Public Class Controller
End If
End While
' recupero il padre
Dim nIdParent As Integer = EgtGetParent(nId)
If nIdParent = GDB_ID.NULL Then
EgtEnableCommandLogger()
Dim nParentId As Integer = EgtGetParent(nId)
If nParentId = GDB_ID.NULL Then
Return False
' se Part
ElseIf nIdParent = GDB_ID.ROOT Then
ElseIf nParentId = GDB_ID.ROOT Then
' cerco il primo Layer del Part
Dim nIdLayer As Integer = EgtGetFirstVisibleLayer(nId)
SetCurrPartLayer(nId, nIdLayer)
EgtSetCurrPartLayer(nId, nIdLayer)
' se Layer
ElseIf EgtGetParent(nIdParent) = GDB_ID.ROOT Then
SetCurrPartLayer(nIdParent, nId)
ElseIf EgtGetParent(nParentId) = GDB_ID.ROOT Then
EgtSetCurrPartLayer(nParentId, nId)
End If
EgtDisableCommandLogger()
RaiseEvent UpdateUI(Me, False)
Return True
End Function
@@ -1375,7 +1381,9 @@ Public Class Controller
If m_nStep <> 0 Then
Return False
End If
ResetCurrPartLayer()
EgtEnableCommandLogger()
EgtResetCurrPartLayer()
EgtDisableCommandLogger()
Return True
End Function
@@ -1384,10 +1392,10 @@ Public Class Controller
Return False
End If
Dim nCurrId As Integer
If m_nCurrPart <> GDB_ID.NULL Then
nCurrId = m_nCurrPart
If m_nCurrLayer <> GDB_ID.NULL Then
nCurrId = m_nCurrLayer
If EgtGetCurrPart() <> GDB_ID.NULL Then
nCurrId = EgtGetCurrPart()
If EgtGetCurrLayer() <> GDB_ID.NULL Then
nCurrId = EgtGetCurrLayer()
End If
Else
Return False
@@ -1403,7 +1411,7 @@ Public Class Controller
EnableCommandLog()
EgtSetColor(nCurrId, colObj)
DisableCommandLog()
SetModified()
RaiseEvent UpdateUI(Me, False)
EgtDraw()
End If
Return True
@@ -1447,7 +1455,7 @@ Public Class Controller
Return False
End If
End If
SetModified()
RaiseEvent UpdateUI(Me, False)
EgtDraw()
Return True
End Function
@@ -1490,7 +1498,7 @@ Public Class Controller
Return False
End If
End If
SetModified()
RaiseEvent UpdateUI(Me, False)
EgtDraw()
Return True
End Function
@@ -1510,12 +1518,13 @@ Public Class Controller
nPos = GDB_POS.AFTER
' se layer
ElseIf EgtGetParent(EgtGetParent(m_nLast)) = GDB_ID.ROOT Then
Dim nCurrPartId = EgtGetCurrPart()
' il riferimento è il pezzo corrente
nRefId = m_nCurrPart
nRefId = nCurrPartId
' se il pezzo sorgente è il corrente
If EgtGetParent(m_nLast) = m_nCurrPart Then
If EgtGetParent(m_nLast) = nCurrPartId Then
' il riferimento è dopo l'ultimo sotto il pezzo
nRefId = EgtGetLastInGroup(m_nCurrPart)
nRefId = EgtGetLastInGroup(nCurrPartId)
nPos = GDB_POS.AFTER
End If
' altrimenti errore
@@ -1524,19 +1533,20 @@ Public Class Controller
End If
' altrimenti entità
Else
Dim nCurrLayerId As Integer = EgtGetCurrLayer()
' il riferimento è il layer corrente
nRefId = m_nCurrLayer
nRefId = nCurrLayerId
' se il layer sorgente è il corrente
If EgtGetParent(m_nLast) = m_nCurrLayer Then
If EgtGetParent(m_nLast) = nCurrLayerId Then
' il riferimento è dopo l'ultimo sotto il layer
nRefId = EgtGetLastInGroup(m_nCurrLayer)
nRefId = EgtGetLastInGroup(nCurrLayerId)
nPos = GDB_POS.AFTER
End If
End If
EnableCommandLog()
EgtRelocateGlob(m_nLast, nRefId, nPos)
DisableCommandLog()
SetModified()
RaiseEvent UpdateUI(Me, True)
EgtDraw()
Return True
End Function
@@ -1562,7 +1572,7 @@ Public Class Controller
ElseIf EgtGetParent(EgtGetParent(m_nLast)) = GDB_ID.ROOT Then
EnableCommandLog()
' eseguo copia
nNewId = EgtCopyGlob(m_nLast, m_nCurrPart)
nNewId = EgtCopyGlob(m_nLast, EgtGetCurrPart())
' seleziono tutti gli oggetti del layer
bOk = EgtSelectLayerObjs(nNewId)
DisableCommandLog()
@@ -1574,7 +1584,7 @@ Public Class Controller
Else
EnableCommandLog()
' eseguo copia
nNewId = EgtCopyGlob(m_nLast, m_nCurrLayer)
nNewId = EgtCopyGlob(m_nLast, EgtGetCurrLayer())
' la seleziono
bOk = EgtSelectObj(nNewId)
DisableCommandLog()
@@ -1583,8 +1593,8 @@ Public Class Controller
If Not bOk Then
Return False
End If
' dichiaro modifica
SetModified()
' aggiorno
RaiseEvent UpdateUI(Me, True)
' se non ci sono oggetti selezionati esco subito
If EgtGetSelectedObjNbr() = 0 Then
Return True
@@ -1615,7 +1625,7 @@ Public Class Controller
EnableCommandLog()
EgtSetStatus(m_nLast, GDB_ST.ON_)
DisableCommandLog()
SetModified(False)
RaiseEvent UpdateUI(Me, False)
EgtDraw()
End If
End If
@@ -1634,13 +1644,7 @@ Public Class Controller
EnableCommandLog()
EgtSetStatus(m_nLast, GDB_ST.OFF)
DisableCommandLog()
' eventuale aggiustamento pezzo/percorso correnti
If m_nLast = m_nCurrPart Then
ResetCurrPartLayer()
ElseIf m_nLast = m_nCurrLayer Then
SetCurrPartLayer(m_nCurrPart, EgtGetFirstVisibleLayer(m_nCurrPart))
End If
SetModified(False)
RaiseEvent UpdateUI(Me, False)
EgtDraw()
End If
End If
@@ -1676,7 +1680,7 @@ Public Class Controller
m_Scene.ResetStatus()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -1713,7 +1717,7 @@ Public Class Controller
m_Scene.ResetStatus()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, False)
Case Else
m_nStep = 0
Return False
@@ -1747,7 +1751,7 @@ Public Class Controller
m_Scene.ResetStatus()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -1806,7 +1810,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -1888,7 +1892,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -1954,7 +1958,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2008,7 +2012,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2073,7 +2077,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2145,7 +2149,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2234,7 +2238,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2315,7 +2319,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2374,7 +2378,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2431,7 +2435,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2522,7 +2526,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2579,7 +2583,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Return True
End Function
@@ -2609,7 +2613,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2660,7 +2664,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2724,7 +2728,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -2775,7 +2779,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Return True
End Function
@@ -2787,15 +2791,10 @@ Public Class Controller
EnableCommandLog()
EgtErase(m_nLast)
DisableCommandLog()
If m_nLast = m_nCurrPart Then
ResetCurrPartLayer()
ElseIf m_nLast = m_nCurrLayer Then
SetCurrPartLayer(m_nCurrPart, EgtGetFirstVisibleLayer(m_nCurrPart))
End If
' reset
m_Scene.ResetStatus()
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
End If
Return True
End Function
@@ -2810,19 +2809,20 @@ Public Class Controller
Return False
End If
' verifico ci sia un layer corrente
If m_nCurrLayer = GDB_ID.NULL Then
Dim nCurrLayerId As Integer = EgtGetCurrLayer()
If nCurrLayerId = GDB_ID.NULL Then
Return False
End If
' ciclo di cambiamento layer (rilocazione)
While nId <> GDB_ID.NULL
' il riferimento è il layer corrente
Dim nRefId As Integer = m_nCurrLayer
Dim nRefId As Integer = nCurrLayerId
' la posizione è come figlio
Dim nPos As GDB_POS = GDB_POS.SON
' se il layer sorgente è il corrente
If EgtGetParent(nId) = m_nCurrLayer Then
If EgtGetParent(nId) = nCurrLayerId Then
' il riferimento è dopo l'ultimo sotto il layer
nRefId = EgtGetLastInGroup(m_nCurrLayer)
nRefId = EgtGetLastInGroup(nCurrLayerId)
nPos = GDB_POS.AFTER
End If
EnableCommandLog()
@@ -2834,7 +2834,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Return True
End Function
@@ -2866,7 +2866,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, False)
Return True
End Function
@@ -2887,7 +2887,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, False)
Return True
End Function
@@ -2903,7 +2903,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, False)
Return True
End Function
@@ -2955,7 +2955,7 @@ Public Class Controller
m_Scene.ResetStatus()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, False)
Case Else
m_nStep = 0
Return False
@@ -3028,7 +3028,7 @@ Public Class Controller
m_Scene.ResetStatus()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, False)
Case Else
m_nStep = 0
Return False
@@ -3064,7 +3064,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Return True
End Function
@@ -3098,7 +3098,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Return True
End Function
@@ -3133,7 +3133,7 @@ Public Class Controller
m_Scene.ResetStatus()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, False)
Case Else
m_nStep = 0
Return False
@@ -3177,7 +3177,7 @@ Public Class Controller
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, False)
Return True
End Function
@@ -3220,7 +3220,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -3289,7 +3289,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -3363,7 +3363,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -3430,7 +3430,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -3509,7 +3509,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -3582,7 +3582,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -3653,7 +3653,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -3732,7 +3732,7 @@ Public Class Controller
EgtDraw()
' aggiorno stato
m_nStep = 0
SetModified()
RaiseEvent UpdateUI(Me, True)
Case Else
m_nStep = 0
Return False
@@ -3826,114 +3826,59 @@ Public Class Controller
End Function
'-------------------------------- Current Part and Layer -----------------------------------------
Private m_nCurrPart As Integer = GDB_ID.NULL
Private m_nCurrLayer As Integer = GDB_ID.NULL
Public Function GetCurrPart() As Integer
Return m_nCurrPart
Return EgtGetCurrPart()
End Function
Public Function GetCurrLayer() As Integer
Return m_nCurrLayer
End Function
Private Function SetCurrPartLayer(ByVal nPartId As Integer, ByVal nLayerId As Integer) As Boolean
' verifico validità e visibilità pezzo
If EgtGetParent(nPartId) = GDB_ID.ROOT AndAlso EgtIsVisibleObj(nPartId) Then
If nPartId <> m_nCurrPart Then
m_nCurrLayer = GDB_ID.NULL
End If
m_nCurrPart = nPartId
Else
If nPartId = m_nCurrPart Or nPartId = GDB_ID.NULL Then
m_nCurrPart = GDB_ID.NULL
m_nCurrLayer = GDB_ID.NULL
End If
Return False
End If
' verifico validità e visibilità layer
If EgtGetParent(nLayerId) = nPartId AndAlso EgtIsVisibleObj(nLayerId) Then
m_nCurrLayer = nLayerId
Else
If nLayerId = m_nCurrLayer Or nLayerId = GDB_ID.NULL Then
m_nCurrLayer = GDB_ID.NULL
End If
Return False
End If
Return True
End Function
Private Function ResetCurrPartLayer() As Boolean
' reset
m_nCurrPart = GDB_ID.NULL
m_nCurrLayer = GDB_ID.NULL
' cerco il primo pezzo con un layer visibile
Dim nPartId As Integer = EgtGetFirstVisiblePart()
While nPartId <> GDB_ID.NULL
' cerco il primo layer visibile del pezzo
Dim nLayerId As Integer = EgtGetFirstVisibleLayer(nPartId)
If nLayerId <> GDB_ID.NULL Then
' assegno il pezzo corrente
m_nCurrPart = nPartId
' assegno il layer corrente
m_nCurrLayer = nLayerId
' esco dal ciclo di ricerca
Exit While
End If
nPartId = EgtGetNextVisiblePart(nPartId)
End While
' se non ho trovato layer visibile mi accontento del primo pezzo visibile
If m_nCurrPart = GDB_ID.NULL Then
m_nCurrPart = EgtGetFirstVisiblePart()
End If
Return True
Return EgtGetCurrLayer()
End Function
'-------------------------------- Modified Status ------------------------------------------------
Private m_sCurrFile As String = String.Empty
Private m_bModified As Boolean = False
Public Function SetCurrFile(ByVal sFile As String) As Boolean
Return EgtSetCurrFilePath(sFile)
End Function
Public Sub SetCurrFile(ByRef sFile As String)
m_sCurrFile = sFile
End Sub
Public Sub ResetCurrFile()
m_sCurrFile = String.Empty
End Sub
Public Function ResetCurrFile() As Boolean
Return EgtSetCurrFilePath("")
End Function
Public Function GetCurrFile() As String
Return m_sCurrFile
Dim sCurrFile As String = String.Empty
EgtGetCurrFilePath(sCurrFile)
Return sCurrFile
End Function
Public Sub SetModified(Optional ByVal bReloadUI As Boolean = True)
m_bModified = True
EgtSetModified()
RaiseEvent UpdateUI(Me, bReloadUI)
End Sub
Public Sub ResetModified(Optional ByVal bReloadUI As Boolean = True)
m_bModified = False
EgtResetModified()
RaiseEvent UpdateUI(Me, bReloadUI)
End Sub
Public Function GetModified() As Boolean
Return m_bModified
Return EgtGetModified()
End Function
Public Function ManageModified() As Boolean
' se non modificato, procedo normalmente
If Not m_bModified Then
If Not GetModified() Then
Return True
End If
' chiedo cosa fare
Dim sMsg As String = "Salvare le modifiche"
If Not String.IsNullOrEmpty(m_sCurrFile) Then
sMsg += " a " + m_sCurrFile
Dim sMsg As String = "Save changes"
Dim sCurrFile = GetCurrFile()
If Not String.IsNullOrEmpty(sCurrFile) Then
sMsg += " to " + sCurrFile
End If
sMsg += " ?"
Dim nRes = MessageBox.Show(sMsg, "", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
Select Case nRes
Case Windows.Forms.DialogResult.Yes
SaveProject(m_sCurrFile)
SaveProject()
Return True
Case Windows.Forms.DialogResult.No
Return True
+309 -220
View File
@@ -556,8 +556,12 @@ End Function
Public Function EgtGetNfeFontDir(ByRef sNfeFontDir As String) As Boolean
Dim psNfeFontDir As IntPtr
Dim bOk As Boolean = EgtGetNfeFontDir(psNfeFontDir)
sNfeFontDir = Marshal.PtrToStringUni(psNfeFontDir)
EgtFreeMemory(psNfeFontDir)
If bOk Then
sNfeFontDir = Marshal.PtrToStringUni(psNfeFontDir)
EgtFreeMemory(psNfeFontDir)
Else
sNfeFontDir = String.Empty
End If
Return bOk
End Function
@@ -567,8 +571,12 @@ End Function
Public Function EgtGetDefaultFont(ByRef sDefaultFont As String) As Boolean
Dim psDefaultFont As IntPtr
Dim bOk As Boolean = EgtGetDefaultFont(psDefaultFont)
sDefaultFont = Marshal.PtrToStringUni(psDefaultFont)
EgtFreeMemory(psDefaultFont)
If bOk Then
sDefaultFont = Marshal.PtrToStringUni(psDefaultFont)
EgtFreeMemory(psDefaultFont)
Else
sDefaultFont = String.Empty
End If
Return bOk
End Function
@@ -597,133 +605,6 @@ Public Function EgtOutLog(ByVal sMag As String) As Boolean
End Function
'---------- Geo Base -----------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtVectorNormalize(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
Optional ByVal dEps As Double = EPS_SMALL) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtVectorRotate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtVectorScale(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtVectorMirror(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef VtNorm As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtVectorShear(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtVectorToGlob(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtVectorToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtVectorLocToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetVectorRotation(ByRef VtS As Vector3d, ByRef VtE As Vector3d, ByRef VtAx As Vector3d,
ByRef dAngRotDeg As Double, ByRef bDet As Boolean) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointTranslate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef VtMove As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointRotate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointScale(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointMirror(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointShear(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointToGlob(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointLocToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameFrom3Points(ByRef PtO As Point3d, ByRef PtOnX As Point3d, ByRef PtOnY As Point3d,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameOCS(ByRef PtO As Point3d, ByRef VtDirZ As Vector3d,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameTranslate(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef VtMove As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameRotate(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameToGlob(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameToLoc(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameLocToLoc(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
End Function
'---------- GeomDb -------------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtInitGeomDB() As Integer
@@ -795,6 +676,45 @@ Public Function EgtGetGridVersZ() As Vector3d
Return VtDirZ
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSetCurrFilePath(ByVal sFilePath As String) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtGetCurrFilePath(ByRef psFilePath As IntPtr) As Boolean
End Function
Public Function EgtGetCurrFilePath(ByRef sFilePath As String) As Boolean
Dim psFilePath As IntPtr
Dim bOk As Boolean = EgtGetCurrFilePath(psFilePath)
If bOk Then
sFilePath = Marshal.PtrToStringUni(psFilePath)
EgtFreeMemory(psFilePath)
Else
sFilePath = String.Empty
End If
Return bOk
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtEnableModified() As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtDisableModified() As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSetModified() As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtResetModified() As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetModified() As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtNewFile() As Boolean
End Function
@@ -811,6 +731,8 @@ End Function
Public Function EgtSaveFile(ByVal sFilePath As String, ByVal nFlag As NGE) As Boolean
End Function
'---------- Exchange -----------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetFileType(ByVal sFilePath As String) As Integer
End Function
@@ -836,6 +758,68 @@ Public Function EgtExportStl(ByVal nId As Integer, ByVal sFilePath As String) As
End Function
'---------- Tsc Executor -------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtInitTscExec() As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtTscExecFile(ByVal sFilePath As String) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtTscExecLine(ByVal sLine As String) As Boolean
End Function
'---------- LUA Executor -------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtLuaEvalNumExpr(ByVal sLine As String, ByRef dVal As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtLuaEvalStringExpr(ByVal sLine As String, ByRef psVal As IntPtr) As Boolean
End Function
Public Function EgtLuaEvalStringExpr(ByVal sLine As String, ByRef sVal As String) As Boolean
Dim psVal As IntPtr
Dim bOk As Boolean = EgtLuaEvalStringExpr(sLine, psVal)
If bOk Then
sVal = Marshal.PtrToStringUni(psVal)
EgtFreeMemory(psVal)
Else
sVal = String.Empty
End If
Return bOk
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtLuaExecLine(ByVal sLine As String) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtLuaExecFile(ByVal sFilePath As String) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtLuaRequire(ByVal sFilePath As String) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtLuaGetLastError(ByRef psError As IntPtr) As Boolean
End Function
Public Function EgtLuaGetLastError(ByRef sError As String) As Boolean
Dim psError As IntPtr
Dim bOk As Boolean = EgtLuaGetLastError(psError)
If bOk Then
sError = Marshal.PtrToStringUni(psError)
EgtFreeMemory(psError)
Else
sError = String.Empty
End If
Return bOk
End Function
'---------- GeomDb Objects Create ----------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtCreateGroup(ByVal nParentId As Integer,
@@ -963,6 +947,7 @@ Public Function EgtCreateTextAdv(ByVal nParentId As Integer, ByRef ptP As Point3
Optional ByVal nRefType As REF_TY = REF_TY.LOC) As Integer
End Function
'---------- GeomDb Objects Modify ----------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtChangeGroupFrame(ByVal nId As Integer, ByRef PtOrig As Point3d,
@@ -1059,6 +1044,56 @@ Public Function EgtExplodeCurveBezier(ByVal nId As Integer, ByVal dTolLin As Dou
End Function
'---------- GeomDb Parts & Layers ----------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetCurrPart() As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetCurrLayer() As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSetCurrPartLayer(ByVal nPartId As Integer, ByVal nLayerId As Integer) As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtResetCurrPartLayer() As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetFirstVisiblePart() As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetNextVisiblePart(ByVal nPartId As Integer) As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetFirstVisibleLayer(ByVal nPartId As Integer) As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetNextVisibleLayer(ByVal nLayerId As Integer) As Integer
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSelectPartObjs(ByVal nPartId As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtDeselectPartObjs(ByVal nPartId As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSelectLayerObjs(ByVal nLayerId As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtDeselectLayerObjs(ByVal nLayerId As Integer) As Boolean
End Function
'---------- GeomDb Objects -----------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtExistsObj(ByVal nId As Integer) As Boolean
@@ -1118,42 +1153,6 @@ End Function
Public Function EgtGetPrevGroup(ByVal nId As Integer) As Integer
End Function
Public Function EgtGetFirstVisiblePart() As Integer
Dim nPartId As Integer = EgtGetFirstGroupInGroup(GDB_ID.ROOT)
Return EgtVerifyOrNextVisible(nPartId)
End Function
Public Function EgtGetNextVisiblePart(ByVal nPartId As Integer) As Integer
Dim nNextId As Integer = EgtGetNextGroup(nPartId)
Return EgtVerifyOrNextVisible(nNextId)
End Function
Public Function EgtGetFirstVisibleLayer(ByVal nPartId As Integer) As Integer
' verifico visibilità del pezzo
If Not EgtIsVisibleObj(nPartId) Then
Return GDB_ID.NULL
End If
' cerco il primo layer visibile
Dim nLayerId As Integer = EgtGetFirstGroupInGroup(nPartId)
Return EgtVerifyOrNextVisible(nLayerId)
End Function
Public Function EgtGetNextVisibleLayer(ByVal nLayerId As Integer) As Integer
Dim nNextId As Integer = EgtGetNextGroup(nLayerId)
Return EgtVerifyOrNextVisible(nNextId)
End Function
Private Function EgtVerifyOrNextVisible(ByVal nId As Integer) As Integer
While nId <> GDB_ID.NULL
If EgtIsVisibleObj(nId) Then
Return nId
End If
nId = EgtGetNextGroup(nId)
End While
Return GDB_ID.NULL
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetBBox(ByVal nId As Integer, ByVal nFlag As Integer,
ByRef PtMin As Point3d, ByRef PtMax As Point3d) As Boolean
@@ -1194,8 +1193,12 @@ End Function
Public Function EgtGetTitle(ByVal nId As Integer, ByRef sTitle As String) As Boolean
Dim psTitle As IntPtr
Dim bOk As Boolean = EgtGetTitle(nId, psTitle)
sTitle = Marshal.PtrToStringUni(psTitle)
EgtFreeMemory(psTitle)
If bOk Then
sTitle = Marshal.PtrToStringUni(psTitle)
EgtFreeMemory(psTitle)
Else
sTitle = String.Empty
End If
Return bOk
End Function
@@ -1205,8 +1208,12 @@ End Function
Public Function EgtGroupDump(ByVal nId As Integer, ByRef sDump As String) As Boolean
Dim psDump As IntPtr
Dim bOk As Boolean = EgtGroupDump(nId, psDump)
sDump = Marshal.PtrToStringUni(psDump)
EgtFreeMemory(psDump)
If bOk Then
sDump = Marshal.PtrToStringUni(psDump)
EgtFreeMemory(psDump)
Else
sDump = String.Empty
End If
Return bOk
End Function
@@ -1216,8 +1223,12 @@ End Function
Public Function EgtGeoObjDump(ByVal nId As Integer, ByRef sDump As String) As Boolean
Dim psDump As IntPtr
Dim bOk As Boolean = EgtGeoObjDump(nId, psDump)
sDump = Marshal.PtrToStringUni(psDump)
EgtFreeMemory(psDump)
If bOk Then
sDump = Marshal.PtrToStringUni(psDump)
EgtFreeMemory(psDump)
Else
sDump = String.Empty
End If
Return bOk
End Function
@@ -1318,8 +1329,12 @@ End Function
Public Function EgtGetName(ByVal nId As Integer, ByRef sName As String) As Boolean
Dim psName As IntPtr
Dim bOk As Boolean = EgtGetName(nId, psName)
sName = Marshal.PtrToStringUni(psName)
EgtFreeMemory(psName)
If bOk Then
sName = Marshal.PtrToStringUni(psName)
EgtFreeMemory(psName)
Else
sName = String.Empty
End If
Return bOk
End Function
@@ -1341,8 +1356,12 @@ End Function
Public Function EgtGetInfo(ByVal nId As Integer, ByVal sKey As String, ByRef sInfo As String) As Boolean
Dim psInfo As IntPtr
Dim bOk As Boolean = EgtGetInfo(nId, sKey, psInfo)
sInfo = Marshal.PtrToStringUni(psInfo)
EgtFreeMemory(psInfo)
If bOk Then
sInfo = Marshal.PtrToStringUni(psInfo)
EgtFreeMemory(psInfo)
Else
sInfo = String.Empty
End If
Return bOk
End Function
@@ -1380,19 +1399,11 @@ Public Function EgtDeselectAll() As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSelectPartObjs(ByVal nPartId As Integer) As Boolean
Public Function EgtSelectGroupObjs(ByVal nGroupId As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtDeselectPartObjs(ByVal nPartId As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSelectLayerObjs(ByVal nLayerId As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtDeselectLayerObjs(ByVal nLayerId As Integer) As Boolean
Public Function EgtDeselectGroupObjs(ByVal nGroupId As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
@@ -1618,7 +1629,7 @@ End Function
'---------- Scene --------------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtInitScene(ByVal hWnd As IntPtr, ByVal nDriver As Integer,
ByVal b2Buff As Boolean, ByVal nColorBits As Integer, ByVal nDepthBits As Integer) As Boolean
ByVal b2Buff As Boolean, ByVal nColorBits As Integer, ByVal nDepthBits As Integer) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
@@ -1627,12 +1638,15 @@ End Function
Public Function EgtGetSceneInfo(ByRef sInfo As String) As Boolean
Dim psInfo As IntPtr
Dim bOk As Boolean = EgtGetSceneInfo(psInfo)
sInfo = Marshal.PtrToStringUni(psInfo)
EgtFreeMemory(psInfo)
If bOk Then
sInfo = Marshal.PtrToStringUni(psInfo)
EgtFreeMemory(psInfo)
Else
sInfo = String.Empty
End If
Return bOk
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtSetBackground(ByRef colTop As Color3d, ByRef colBottom As Color3d, Optional ByVal bRedraw As Boolean = True) As Boolean
End Function
@@ -1843,59 +1857,134 @@ Public Function EgtUnProjectPoint(ByVal Curr As Point, ByRef ptP As Point3d) As
End Function
'---------- Tsc Executor -------------------------------------------------------
'---------- Geo Base -----------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtInitTscExec() As Boolean
Private Function EgtVectorNormalize(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
Optional ByVal dEps As Double = EPS_SMALL) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtTscExecFile(ByVal sFilePath As String) As Boolean
Private Function EgtVectorRotate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtTscExecLine(ByVal sLine As String) As Boolean
End Function
'---------- LUA Executor -------------------------------------------------------
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtLuaEvalNumExpr(ByVal sLine As String, ByRef dVal As Double) As Boolean
Private Function EgtVectorScale(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtLuaEvalStringExpr(ByVal sLine As String, ByRef psVal As IntPtr) As Boolean
End Function
Public Function EgtLuaEvalStringExpr(ByVal sLine As String, ByRef sVal As String) As Boolean
Dim psVal As IntPtr
Dim bOk As Boolean = EgtLuaEvalStringExpr(sLine, psVal)
sVal = Marshal.PtrToStringUni(psVal)
EgtFreeMemory(psVal)
Return bOk
Private Function EgtVectorMirror(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef VtNorm As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtLuaExecLine(ByVal sLine As String) As Boolean
Private Function EgtVectorShear(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtLuaExecFile(ByVal sFilePath As String) As Boolean
Private Function EgtVectorToGlob(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtLuaRequire(ByVal sFilePath As String) As Boolean
Private Function EgtVectorToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtLuaGetLastError(ByRef psError As IntPtr) As Boolean
End Function
Public Function EgtLuaGetLastError(ByRef sError As String) As Boolean
Dim psError As IntPtr
Dim bOk As Boolean = EgtLuaGetLastError(psError)
sError = Marshal.PtrToStringUni(psError)
EgtFreeMemory(psError)
Return bOk
Private Function EgtVectorLocToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Public Function EgtGetVectorRotation(ByRef VtS As Vector3d, ByRef VtE As Vector3d, ByRef VtAx As Vector3d,
ByRef dAngRotDeg As Double, ByRef bDet As Boolean) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointTranslate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef VtMove As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointRotate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointScale(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointMirror(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointShear(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointToGlob(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtPointLocToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameFrom3Points(ByRef PtO As Point3d, ByRef PtOnX As Point3d, ByRef PtOnY As Point3d,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameOCS(ByRef PtO As Point3d, ByRef VtDirZ As Vector3d,
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameTranslate(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef VtMove As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameRotate(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameToGlob(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameToLoc(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean
End Function
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
Private Function EgtFrameLocToLoc(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
End Function
'---------- Costanti -----------------------------------------------------------
'Costanti : GEOMETRIA
Public Const EPS_SMALL As Double = 0.001
Public Const EPS_ZERO As Double = 0.0000001
+1 -1
View File
@@ -487,7 +487,7 @@ Public Class Form1
Private Sub btnSave_Click(sender As System.Object, e As System.EventArgs) Handles btnSave.Click
Dim nType As NGE = GetPrivateProfileInt("GeomDB", "SaveType", NGE.CMPTEXT, m_sIniFile)
If Not String.IsNullOrWhiteSpace(m_Controller.GetCurrFile()) Then
m_Controller.SaveProject(m_Controller.GetCurrFile(), nType)
m_Controller.SaveProject(nType)
Else
Dim sFile As String = String.Empty
GetPrivateProfileString("General", "LastNgeDir", "", sFile, m_sIniFile)
+2 -2
View File
@@ -43,5 +43,5 @@ Imports System.Runtime.InteropServices
' utilizzando l'asterisco (*) come descritto di seguito:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.6.1.6")>
<Assembly: AssemblyFileVersion("1.6.1.6")>
<Assembly: AssemblyVersion("1.6.1.7")>
<Assembly: AssemblyFileVersion("1.6.1.7")>
+34 -20
View File
@@ -935,42 +935,56 @@ Public Class Scene
End Function
Public Function CreateDragGroup(Optional bSelectable As Boolean = False) As Boolean
' le azioni successive sono temporanee -> non devono cambiare lo stato di modifica del progetto
EgtDisableModified()
' creo il gruppo di drag
m_nDragGroup = EgtCreateGroup(GDB_ID.ROOT)
If m_nDragGroup = GDB_ID.NULL Then
Return False
Dim bOk As Boolean = (m_nDragGroup <> GDB_ID.NULL)
If bOk Then
EgtSetLevel(m_nDragGroup, GDB_LV.TEMP)
EgtSetMark(m_nDragGroup)
m_bDragSelectable = bSelectable
If m_bDragSelectable Then
EgtUnselectableRemove(m_nDragGroup)
Else
EgtUnselectableAdd(m_nDragGroup)
End If
End If
EgtSetLevel(m_nDragGroup, GDB_LV.TEMP)
EgtSetMark(m_nDragGroup)
m_bDragSelectable = bSelectable
If m_bDragSelectable Then
EgtUnselectableRemove(m_nDragGroup)
Else
EgtUnselectableAdd(m_nDragGroup)
End If
Return True
' riabilito possibilità modifica stato progetto
EgtEnableModified()
Return bOk
End Function
Public Function EraseDragGroup() As Boolean
' le azioni successive sono temporanee -> non devono cambiare lo stato di modifica del progetto
EgtDisableModified()
' cancello il gruppo di drag
EgtErase(m_nDragGroup)
m_bDragSelectable = False
EgtUnselectableRemove(m_nDragGroup)
m_nDragGroup = GDB_ID.NULL
' riabilito possibilità modifica stato progetto
EgtEnableModified()
Return True
End Function
Public Function AddToDragGroup(ByVal nId As Integer) As Boolean
' le azioni successive sono temporanee -> non devono cambiare lo stato di modifica del progetto
EgtDisableModified()
' copio entità
Dim nNewId As Integer = EgtCopyGlob(nId, m_nDragGroup, GDB_POS.SON)
If nNewId = GDB_ID.NULL Then
Return False
Dim bOk As Boolean = (nNewId <> GDB_ID.NULL)
If bOk Then
' assegno il colore (potrebbe essere da layer, quindi va fatto)
Dim ColObj As Color3d
EgtGetCalcColor(nId, ColObj)
EgtSetColor(nNewId, ColObj)
' assegno Id entità origine
EgtSetInfo(nNewId, "Id", nId.ToString())
End If
' assegno il colore (potrebbe essere da layer, quindi va fatto)
Dim ColObj As Color3d
EgtGetCalcColor(nId, ColObj)
EgtSetColor(nNewId, ColObj)
' assegno Id entità origine
EgtSetInfo(nNewId, "Id", nId.ToString())
Return True
' riabilito possibilità modifica stato progetto
EgtEnableModified()
Return bOk
End Function
Public Function GetDragGroup() As Integer