TestEIn 1.5j3 :

- unificati Scene, EgtInterface e GenInterface con EgtUILib
- modifiche a gestione mouse in Scene
- aggiunte funzioni in EgtInterface.
This commit is contained in:
Dario Sassi
2014-10-15 08:03:07 +00:00
parent 5270e46c5b
commit 3eb7aedd9e
12 changed files with 413 additions and 64 deletions
+99 -6
View File
@@ -87,6 +87,19 @@ Public Class Form1
ToolStripStatusCursorPos.Text = sCursorPos
End Sub
Private Sub OnMouseSelected(ByVal sender As Object, ByVal nId As Integer) Handles Scene1.OnMouseSelected
If EgtIsSelectedObj(Scene1.GetCtx(), nId) Then
EgtDeselectObj(Scene1.GetCtx(), nId)
Else
EgtSelectObj(Scene1.GetCtx(), nId)
End If
EgtDraw(Scene1.GetCtx())
End Sub
Private Sub OnMouseAnalyzed(ByVal sender As Object, ByVal nId As Integer) Handles Scene1.OnMouseAnalyzed
SelectIdInObjTree(nId)
End Sub
Private Sub OnShowDistance(ByVal sender As Object, ByVal sDistance As String) Handles Scene1.OnShowDistance
ToolStripStatusOutput.Text = sDistance
End Sub
@@ -173,23 +186,34 @@ Public Class Form1
End Sub
Private Sub rbtWireFrame_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rbtWireFrame.CheckedChanged
EgtSetShowMode(Scene1.GetCtx, SM_WIREFRAME)
EgtSetShowMode(Scene1.GetCtx(), SM_WIREFRAME)
End Sub
Private Sub rbtHiddenLine_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rbtHiddenLine.CheckedChanged
EgtSetShowMode(Scene1.GetCtx, SM_HIDDENLINE)
EgtSetShowMode(Scene1.GetCtx(), SM_HIDDENLINE)
End Sub
Private Sub rbtShading_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rbtShading.CheckedChanged
EgtSetShowMode(Scene1.GetCtx, SM_SHADING)
EgtSetShowMode(Scene1.GetCtx(), SM_SHADING)
End Sub
Private Sub chkCurveDir_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkCurveDir.CheckedChanged
EgtSetShowCurveDirection(Scene1.GetCtx, chkCurveDir.Checked)
EgtSetShowCurveDirection(Scene1.GetCtx(), chkCurveDir.Checked)
End Sub
Private Sub chkAnalyze_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkAnalyze.CheckedChanged
If chkAnalyze.Checked Then
chkGetDist.Checked = False
Scene1.SetStatusAnalyze()
Else
Scene1.ResetStatusAnalyze()
SelectIdInObjTree(GDB_ID_NULL)
End If
End Sub
Private Sub chkGetDist_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkGetDist.CheckedChanged
If chkGetDist.Checked Then
chkAnalyze.Checked = False
Scene1.SetStatusGetDistance()
ToolStripStatusOutput.Text = " "
Else
@@ -234,7 +258,73 @@ Public Class Form1
EgtSetView(Scene1.GetCtx, CT_ISO_SW)
End Sub
'-------------------------------- Command Box ----------------------------------------------------
Private Sub btnRotP90_Click(sender As System.Object, e As System.EventArgs) Handles btnRotP90.Click
Rotate(Scene1.GetCtx(), 90)
' aggiorno visualizzazione
EgtZoom(Scene1.GetCtx(), ZM_ALL)
UpdateObjInObjTree(m_nOldIdTree)
End Sub
Private Sub btnRotM90_Click(sender As System.Object, e As System.EventArgs) Handles btnRotM90.Click
Rotate(Scene1.GetCtx(), -90)
' aggiorno visualizzazione
EgtZoom(Scene1.GetCtx(), ZM_ALL)
UpdateObjInObjTree(m_nOldIdTree)
End Sub
Private Sub Rotate(ByVal nCtx As Integer, ByVal dAngRotDeg As Double)
' indice del primo gruppo sotto la radice
Dim nId As Integer = EgtGetFirstInGroup(nCtx, GDB_ID_ROOT)
' recupero il box del gruppo in globale
Dim PtMinPre As New Point3d
Dim PtMaxPre As New Point3d
EgtGetBBoxGlob(nCtx, nId, BBF_IGNORE_TEXT, PtMinPre, PtMaxPre)
' ruoto attorno al punto minimo
EgtRotateGlob(nCtx, nId, PtMinPre, Vector3d.Z_AX, dAngRotDeg)
' calcolo nuovo box in globale
Dim PtMinPost As New Point3d
Dim PtMaxPost As New Point3d
EgtGetBBoxGlob(nCtx, nId, BBF_IGNORE_TEXT, PtMinPost, PtMaxPost)
' eseguo traslazione per riavere lo stesso punto minimo
Dim VtMove As Vector3d = Vector3d.FromPointDiff(PtMinPre, PtMinPost)
EgtMoveGlob(nCtx, nId, VtMove)
End Sub
Private Sub btnMirror_Click(sender As System.Object, e As System.EventArgs) Handles btnMirror.Click
' indice del primo gruppo sotto la radice
Dim nId As Integer = EgtGetFirstInGroup(Scene1.GetCtx(), GDB_ID_ROOT)
' recupero il box del gruppo in globale
Dim PtMin As New Point3d
Dim PtMax As New Point3d
EgtGetBBoxGlob(Scene1.GetCtx(), nId, BBF_IGNORE_TEXT, PtMin, PtMax)
Dim PtCen As Point3d = Point3d.Media(PtMin, PtMax)
' mirror rispetto a Y centrato nel box
EgtMirrorGlob(Scene1.GetCtx(), nId, PtCen, Vector3d.X_AX)
' sistemo gli eventuali testi
UnMirrorTexts(Scene1.GetCtx(), nId)
' aggiorno visualizzazione
EgtZoom(Scene1.GetCtx(), ZM_ALL)
UpdateObjInObjTree(m_nOldIdTree)
End Sub
Private Sub UnMirrorTexts(ByVal nCtx As Integer, ByVal nGroupId As Integer)
Dim nId As Integer = EgtGetFirstInGroup(nCtx, nGroupId)
While nId <> GDB_ID_NULL
'recupero il tipo di oggetto
Dim nType As Integer = EgtGetType(nCtx, nId)
'se gruppo
If nType = TY_GROUP Then
UnMirrorTexts(nCtx, nId)
' se testo
ElseIf nType = TY_EXT_TEXT Then
EgtMirrorText(nCtx, nId, True)
End If
' passo al successivo
nId = EgtGetNext(nCtx, nId)
End While
End Sub
'-------------------------------- Command Box ----------------------------------------------------
Private Sub tboxCmd_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles tboxCmd.KeyDown
If (e.KeyCode = Keys.Enter) Then
Dim nLine As Integer = tboxCmd.GetLineFromCharIndex(tboxCmd.GetFirstCharIndexOfCurrentLine)
@@ -354,6 +444,10 @@ Public Class Form1
If Not Int32.TryParse(e.Node.Name, nId) Then
Return
End If
UpdateObjInObjTree(nId)
End Sub
Private Sub UpdateObjInObjTree(ByVal nId As Integer)
' ripristino eventuale vecchio oggetto selezionato
RevertOldIdInObjTree()
' recupero il tipo del nuovo oggetto
@@ -406,7 +500,6 @@ Public Class Form1
End Function
Private Function SelectIdInObjTree(ByVal nId As Integer) As Boolean
Dim tNode() As TreeNode = TreeView1.Nodes.Find(nId.ToString, True)
If tNode.Length > 0 Then
TreeView1.SelectedNode = tNode(0)