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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user