diff --git a/Controller.vb b/Controller.vb index c984229..82c14b4 100644 --- a/Controller.vb +++ b/Controller.vb @@ -24,7 +24,7 @@ Public Class Controller TY_POINT3D End Enum Public Event SetInputBox(ByVal sTitle As String, ByVal sLabel As String, ByVal nType As IBT) - Public Event UpdateUI(ByVal sender As Object) + Public Event UpdateUI(ByVal sender As Object, ByVal bReloadUI As Boolean) ' Documento e vista Private m_Scene As Scene @@ -32,12 +32,18 @@ Public Class Controller ' Stato e comandi Public Enum CMD As Integer NULL = 0 + GRID + GRID_ELEVATION + GRID_ORIGIN + GRID_ROTATE + GRID_3P NEWPART NEWLAYER SETCURRPARTLAYER RESETCURRPARTLAYER - DELETEPARTLAYER LAYERCOLOR + SHOW + HIDE POINT LINE2P ARCCSE @@ -50,17 +56,35 @@ Public Class Controller CHANGECOLOR RESETCOLOR INVERTCRVSURF + BREAKCURVE JOINCURVE - SPLITCURVE + SEPARATECURVE MOVE COPY ROTATE ROTATE3D MIRROR End Enum + Public Enum GRID_TYPE As Integer + NONE = 0 + TOP + FRONT + RIGHT + BACK + LEFT + BOTTOM + End Enum Private m_nLastCmd As CMD = CMD.NULL Private Enum EST As Integer NULL = 0 + GRID_ELEVATION_1 + GRID_ORIGIN_1 + GRID_ROTATE_1 + GRID_ROTATE_2 + GRID_ROTATE_3 + GRID_3P_1 + GRID_3P_2 + GRID_3P_3 POINT_1 LINE2P_1 LINE2P_2 @@ -75,6 +99,7 @@ Public Class Controller EXTRUDE_1 REVOLVE_1 REVOLVE_2 + BREAKCURVE_1 MOVE_1 MOVE_2 COPY_1 @@ -150,6 +175,54 @@ Public Class Controller End If ' eseguo il comando Select Case nCmd + Case CMD.GRID + Dim frNew As New Frame3d + Select Case m_nLast1 + Case GRID_TYPE.TOP + frNew.Setup(Point3d.ORIG, Vector3d.X_AX, Vector3d.Y_AX, Vector3d.Z_AX) + Case GRID_TYPE.FRONT + frNew.Setup(Point3d.ORIG, Vector3d.X_AX, Vector3d.Z_AX, -Vector3d.Y_AX) + Case GRID_TYPE.RIGHT + frNew.Setup(Point3d.ORIG, Vector3d.Y_AX, Vector3d.Z_AX, Vector3d.X_AX) + Case GRID_TYPE.BACK + frNew.Setup(Point3d.ORIG, -Vector3d.X_AX, Vector3d.Z_AX, Vector3d.Y_AX) + Case GRID_TYPE.LEFT + frNew.Setup(Point3d.ORIG, -Vector3d.Y_AX, Vector3d.Z_AX, -Vector3d.X_AX) + Case GRID_TYPE.BOTTOM + frNew.Setup(Point3d.ORIG, -Vector3d.X_AX, Vector3d.Y_AX, -Vector3d.Z_AX) + Case Else + Return False + End Select + EgtSetGridFrame(frNew) + EgtDraw() + Case CMD.GRID_ELEVATION + ' non serve il gruppo di drag + m_Scene.SetStatusSelPoint() + ' imposto stato a primo punto per elevazione griglia + m_nStatus = EST.GRID_ELEVATION_1 + ' abilito dialogo + RaiseEvent SetInputBox("GRID", "Insert Elevation", IBT.TY_DOUBLE) + Case CMD.GRID_ORIGIN + ' non serve il gruppo di drag + m_Scene.SetStatusSelPoint() + ' imposto stato a primo punto per origine griglia + m_nStatus = EST.GRID_ORIGIN_1 + ' abilito dialogo + RaiseEvent SetInputBox("GRID", "Insert Origin", IBT.TY_POINT3D) + Case CMD.GRID_ROTATE + ' non serve il gruppo di drag + m_Scene.SetStatusSelPoint() + ' imposto stato a primo punto per rotazione griglia + m_nStatus = EST.GRID_ROTATE_1 + ' abilito dialogo + RaiseEvent SetInputBox("GRID ROTATE", "Insert First Point on Axis", IBT.TY_POINT3D) + Case CMD.GRID_3P + ' non serve il gruppo di drag + m_Scene.SetStatusSelPoint() + ' imposto stato a primo punto per rotazione griglia + m_nStatus = EST.GRID_3P_1 + ' abilito dialogo + RaiseEvent SetInputBox("GRID 3 POINTS", "Insert Origin", IBT.TY_POINT3D) Case CMD.NEWPART ' inserisco un nuovo gruppo (piece) sotto la radice Dim nIdNewPart As Integer = EgtCreateGroup(GDB_ID.ROOT) @@ -173,16 +246,6 @@ Public Class Controller SetCurrPartLayer(m_nLast1, m_nLast2) Case CMD.RESETCURRPARTLAYER ResetCurrPartLayer() - Case CMD.DELETEPARTLAYER - If m_nLast1 <> GDB_ID.NULL Then - EgtErase(m_nLast1) - If m_nLast1 = m_nCurrPart Then - ResetCurrPartLayer() - ElseIf m_nLast1 = m_nCurrLayer Then - SetCurrPartLayer(m_nCurrPart, EgtGetFirstGroupInGroup(m_nCurrPart)) - End If - SetModified() - End If Case CMD.LAYERCOLOR Dim nCurrId As Integer If m_nCurrPart <> GDB_ID.NULL Then @@ -205,6 +268,26 @@ Public Class Controller SetModified() EgtDraw() End If + Case CMD.SHOW + If m_nLast1 <> GDB_ID.NULL Then + Dim nStat As GDB_ST = GDB_ST.ON_ + EgtGetStatus(m_nLast1, nStat) + If nStat = GDB_ST.OFF Then + EgtSetStatus(m_nLast1, GDB_ST.ON_) + SetModified(False) + EgtDraw() + End If + End If + Case CMD.HIDE + If m_nLast1 <> GDB_ID.NULL Then + Dim nStat As GDB_ST = GDB_ST.ON_ + EgtGetStatus(m_nLast1, nStat) + If nStat <> GDB_ST.OFF Then + EgtSetStatus(m_nLast1, GDB_ST.OFF) + SetModified(False) + EgtDraw() + End If + End If Case CMD.POINT ' posso partire solo se esiste un gruppo corrente If GetCurrLayer() = GDB_ID.NULL Then @@ -285,7 +368,6 @@ Public Class Controller ' reset stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) Case CMD.EXTRUDE ' posso partire solo se esiste un gruppo corrente If GetCurrLayer() = GDB_ID.NULL Then @@ -310,14 +392,18 @@ Public Class Controller ' abilito dialogo RaiseEvent SetInputBox("REVOLVE", "Insert First Point on Axis", IBT.TY_POINT3D) Case CMD.DELETE - ' lancio la cancellazione - EgtErase(GDB_ID.SEL) - ' reset stato scena - m_Scene.ResetStatus() - ' reset stato - m_nStatus = EST.NULL - SetModified() - RaiseEvent UpdateUI(Me) + If m_nLast1 <> GDB_ID.NULL Then + EgtErase(m_nLast1) + If m_nLast1 = m_nCurrPart Then + ResetCurrPartLayer() + ElseIf m_nLast1 = m_nCurrLayer Then + SetCurrPartLayer(m_nCurrPart, EgtGetFirstGroupInGroup(m_nCurrPart)) + End If + ' reset + m_Scene.ResetStatus() + m_nStatus = EST.NULL + SetModified() + End If Case CMD.CHANGECOLOR ' verifico ci sia qualcosa di selezionato Dim nId As Integer = EgtGetFirstSelectedObj() @@ -343,7 +429,6 @@ Public Class Controller ' reset stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) Case CMD.RESETCOLOR ' verifico ci sia qualcosa di selezionato Dim nId As Integer = EgtGetFirstSelectedObj() @@ -358,15 +443,14 @@ Public Class Controller ' reset stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) Case CMD.INVERTCRVSURF ' lancio l'inversione delle curve/superfici Dim nId As Integer = EgtGetFirstSelectedObj() While nId <> GDB_ID.NULL Select Case EgtGetType(nId) - Case TY.CRV_LINE, TY.CRV_ARC, TY.CRV_BEZ, TY.CRV_COMPO + Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO EgtInvertCurve(nId) - Case TY.SRF_MESH + Case GDB_TY.SRF_MESH EgtInvertSurface(nId) End Select nId = EgtGetNextSelectedObj() @@ -377,7 +461,12 @@ Public Class Controller ' reset stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) + Case CMD.BREAKCURVE + m_Scene.SetStatusSelPoint() + ' imposto stato a punto per BreakCurve + m_nStatus = EST.BREAKCURVE_1 + ' abilito dialogo + RaiseEvent SetInputBox("BREAK", "Insert Point on Curve", IBT.TY_POINT3D) Case CMD.JOINCURVE ' posso partire solo se esiste un gruppo corrente If GetCurrLayer() = GDB_ID.NULL Then @@ -400,17 +489,15 @@ Public Class Controller ' reset stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) - Case CMD.SPLITCURVE + Case CMD.SEPARATECURVE ' divido la curva composita nelle curve componenti - EgtSplitCurveCompo(EgtGetFirstSelectedObj()) + EgtSeparateCurveCompo(EgtGetFirstSelectedObj()) EgtDeselectAll() ' reset stato scena m_Scene.ResetStatus() ' reset stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) Case CMD.MOVE ' verifico condizioni e preparo per il drag If Not PrepareTransform() Then @@ -496,6 +583,75 @@ Public Class Controller Public Function GoToNextStatus() As Boolean Select Case m_nStatus + ' Grid origin + Case EST.GRID_ELEVATION_1 + ' recupero il piano di griglia corrente + Dim frCurr As New Frame3d + EgtGetGridFrame(frCurr) + ' cambio l'elevazione dell'origine + frCurr.Move(EgtGetGridVersZ() * m_dLast) + ' imposto nuova griglia + EgtSetGridFrame(frCurr) + ' reset stato scena + m_Scene.ResetStatus() + ' aggiorno stato + m_nStatus = EST.NULL + RaiseEvent UpdateUI(Me, False) + Case EST.GRID_ORIGIN_1 + ' recupero il piano di griglia corrente + Dim frCurr As New Frame3d + EgtGetGridFrame(frCurr) + ' ne modifico l'origine + frCurr.Move(m_ptLast - frCurr.Orig()) + ' imposto nuova griglia + EgtSetGridFrame(frCurr) + ' reset stato scena + m_Scene.ResetStatus() + ' aggiorno stato + m_nStatus = EST.NULL + RaiseEvent UpdateUI(Me, False) + Case EST.GRID_ROTATE_1 + m_ptP1 = m_ptLast + m_ptP2 = m_ptP1 + m_nStatus = EST.GRID_ROTATE_2 + RaiseEvent SetInputBox("GRID ROTATE", "Insert Second Point on Axis", IBT.TY_POINT3D) + Case EST.GRID_ROTATE_2 + m_ptP2 = m_ptLast + m_nStatus = EST.GRID_ROTATE_3 + RaiseEvent SetInputBox("GRID ROTATE", "Insert angle", IBT.TY_DOUBLE) + Case EST.GRID_ROTATE_3 + ' eseguo rotazione + Dim VtAx As Vector3d = m_ptP2 - m_ptP1 + Dim frCurr As New Frame3d + EgtGetGridFrame(frCurr) + frCurr.Rotate(m_ptP1, VtAx, m_dLast) + EgtSetGridFrame(frCurr) + ' reset + m_Scene.ResetStatus() + m_nStatus = EST.NULL + RaiseEvent UpdateUI(Me, False) + Case EST.GRID_3P_1 + m_ptP1 = m_ptLast + m_ptP2 = m_ptP1 + m_nStatus = EST.GRID_3P_2 + RaiseEvent SetInputBox("GRID 3 POINTS", "Insert Point on X Axis", IBT.TY_POINT3D) + Case EST.GRID_3P_2 + m_ptP2 = m_ptLast + m_nStatus = EST.GRID_3P_3 + RaiseEvent SetInputBox("GRID 3 POINTS", "Insert Point Near Y Axis", IBT.TY_POINT3D) + Case EST.GRID_3P_3 + ' calcolo griglia per 3 punti + Dim frCurr As New Frame3d + If Not frCurr.Setup(m_ptP1, m_ptP2, m_ptLast) Then + m_Scene.ResetStatus() + m_nStatus = EST.NULL + Return False + End If + EgtSetGridFrame(frCurr) + ' reset + m_Scene.ResetStatus() + m_nStatus = EST.NULL + RaiseEvent UpdateUI(Me, False) ' Point Case EST.POINT_1 ' creo il punto (i dati sono in globale) @@ -505,7 +661,6 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' Line2P Case EST.LINE2P_1 m_ptP1 = m_ptLast @@ -521,7 +676,6 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' CircleCR Case EST.CIRCLECR_1 m_ptP1 = m_ptLast @@ -537,7 +691,6 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' ArcCSE Case EST.ARCCSE_1 m_ptP1 = m_ptLast @@ -558,7 +711,6 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' Arc3P Case EST.ARC3P_1 m_ptP1 = m_ptLast @@ -579,20 +731,18 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' Extrude Case EST.EXTRUDE_1 ' reset scena m_Scene.ResetStatus(False) ' creo la superficie di estrusione (a partire da un contorno selezionato) - Dim VtExtr As New Vector3d(0, 0, m_dLast) + Dim VtExtr As Vector3d = EgtGetGridVersZ().Loc(GetCurrLayer()) * m_dLast EgtCreateSurfTriMeshByExtrusion(GetCurrLayer(), EgtGetFirstSelectedObj(), VtExtr, EPS_STM) EgtDeselectAll() EgtDraw() ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' Revolve Case EST.REVOLVE_1 m_ptP1 = m_ptLast @@ -612,7 +762,16 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) + ' Break Curve + Case EST.BREAKCURVE_1 + ' eseguo spezzatura + EgtSplitCurveAtPoint(EgtGetFirstSelectedObj(), m_ptLast) + EgtDeselectAll() + ' reset stato scena + m_Scene.ResetStatus() + ' aggiorno stato + m_nStatus = EST.NULL + SetModified() ' Move Case EST.MOVE_1 m_ptP1 = m_ptLast @@ -628,7 +787,6 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' Copy Case EST.COPY_1 m_ptP1 = m_ptLast @@ -650,7 +808,6 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' Rotate Case EST.ROTATE_1 m_ptP1 = m_ptLast @@ -661,6 +818,7 @@ Public Class Controller m_ptP2 = m_ptLast m_nStatus = EST.ROTATE_3 m_Scene.EnableDrag() + EgtSetGeoLine(m_ptP1, m_ptLast) RaiseEvent SetInputBox("ROTATE", "Insert Rotation Point", IBT.TY_POINT3D) Case EST.ROTATE_3 ' eseguo rotazione @@ -674,7 +832,6 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' Rotate3d Case EST.ROTATE3D_1 m_ptP1 = m_ptLast @@ -685,6 +842,7 @@ Public Class Controller Case EST.ROTATE3D_2 m_ptP2 = m_ptLast m_nStatus = EST.ROTATE3D_3 + m_dLast = 0 ' abilito dialogo RaiseEvent SetInputBox("ROTATE3D", "Insert angle", IBT.TY_DOUBLE) Case EST.ROTATE3D_3 @@ -696,7 +854,6 @@ Public Class Controller m_Scene.ResetStatus() m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) ' Mirror Case EST.MIRROR_1 m_ptP1 = m_ptLast @@ -716,7 +873,6 @@ Public Class Controller ' aggiorno stato m_nStatus = EST.NULL SetModified() - RaiseEvent UpdateUI(Me) Case Else Return False End Select @@ -725,6 +881,9 @@ Public Class Controller Public Function ExecuteDrag() As Boolean Select Case m_nStatus + Case EST.GRID_ROTATE_2, EST.GRID_ROTATE_3 + EgtSetGeoLine(m_ptP1, m_ptP2) + EgtDraw() Case EST.LINE2P_2 ' durante la creazione di oggetti il gruppo di Drag ha riferimento globale Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup()) @@ -756,7 +915,7 @@ Public Class Controller Case EST.ARCCSE_3 ' durante la creazione di oggetti il gruppo di Drag ha riferimento globale Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup()) - If EgtGetType(nId) <> TY.CRV_ARC Then + If EgtGetType(nId) <> GDB_TY.CRV_ARC Then EgtErase(nId) nId = GDB_ID.NULL End If @@ -769,7 +928,7 @@ Public Class Controller Case EST.ARC3P_3 ' durante la creazione di oggetti il gruppo di Drag ha riferimento globale Dim nId As Integer = EgtGetFirstInGroup(m_Scene.GetDragGroup()) - If EgtGetType(nId) <> TY.CRV_ARC Then + If EgtGetType(nId) <> GDB_TY.CRV_ARC Then EgtErase(nId) nId = GDB_ID.NULL End If @@ -803,7 +962,11 @@ Public Class Controller EgtMoveGlob(m_Scene.GetDragGroup(), (m_ptLast - m_ptP1)) EgtSetGeoLine(m_ptP1, m_ptLast) EgtDraw() + Case EST.ROTATE_2 + EgtSetGeoLine(m_ptP1, m_ptLast) + EgtDraw() Case EST.ROTATE_3 + EgtSetGeoLine(m_ptP1, m_ptLast) ' ripristino lo stato iniziale EgtChangeGroupFrame(m_Scene.GetDragGroup(), Frame3d.GLOB) ' eseguo rotazione @@ -816,6 +979,7 @@ Public Class Controller EgtSetGeoLine(m_ptP1, m_ptLast) EgtDraw() Case EST.ROTATE3D_3 + EgtSetGeoLine(m_ptP1, m_ptP2) ' ripristino lo stato iniziale EgtChangeGroupFrame(m_Scene.GetDragGroup(), Frame3d.GLOB) ' eseguo rotazione @@ -856,13 +1020,21 @@ Public Class Controller End Function Private Function SetCurrPartLayer(ByVal nPart As Integer, ByVal nLayer As Integer) As Boolean - ' verifico esistenza - If Not EgtExistsObj(nPart) Or EgtGetParent(nLayer) <> nPart Then + ' reset + m_nCurrPart = GDB_ID.NULL + m_nCurrLayer = GDB_ID.NULL + ' verifico esistenza e validità pezzo + If EgtExistsObj(nPart) And EgtGetParent(nPart) = GDB_ID.ROOT Then + m_nCurrPart = nPart + Else + Return False + End If + ' verifico esistenza e validità layer + If EgtExistsObj(nLayer) And EgtGetParent(nLayer) = nPart Then + m_nCurrLayer = nLayer + Else Return False End If - ' assegno - m_nCurrPart = nPart - m_nCurrLayer = nLayer Return True End Function @@ -902,12 +1074,14 @@ Public Class Controller Return m_sCurrFile End Function - Public Sub SetModified() + Public Sub SetModified(Optional ByVal bReloadUI As Boolean = True) m_bModified = True + RaiseEvent UpdateUI(Me, bReloadUI) End Sub - Public Sub ResetModified() + Public Sub ResetModified(Optional ByVal bReloadUI As Boolean = True) m_bModified = False + RaiseEvent UpdateUI(Me, bReloadUI) End Sub Public Function GetModified() As Boolean diff --git a/EgtInterface.vb b/EgtInterface.vb index 300e7d9..80bcf68 100644 --- a/EgtInterface.vb +++ b/EgtInterface.vb @@ -312,6 +312,9 @@ Class Frame3d bOk = True Return bOk End Function + Public Function Setup(ByRef PtOri As Point3d, ByRef PtOnX As Point3d, ByRef PtNearY As Point3d) As Boolean + Return EgtFrameFrom3Points(PtOri, PtOnX, PtNearY, PtOrig, VtDirX, VtDirY, VtDirZ) + End Function ' Verifica Private Function Verify() As Boolean ' verifica della ortogonalità dei versori e del senso destrorso @@ -555,6 +558,11 @@ Private Shared Function EgtPointLocToLoc(ByRef X As Double, ByRef Y As Double, B ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean End Function + +Private Shared 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 + Private Shared Function EgtFrameTranslate(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d, ByRef VtMove As Vector3d) As Boolean @@ -727,6 +735,10 @@ End Function Public Shared Function EgtModifyCurveEndPoint(ByVal nId As Integer, ByRef PtEnd As Point3d) As Boolean End Function + +Public Shared Function EgtSplitCurveAtPoint(ByVal nId As Integer, ByRef PtOn As Point3d) As Boolean +End Function + Public Shared Function EgtModifyCurveCircleCPN(ByVal nId As Integer, ByRef PtOn As Point3d) As Boolean End Function @@ -740,7 +752,7 @@ Public Shared Function EgtModifyCurveArc3P(ByVal nId As Integer, ByRef PtMid As End Function -Public Shared Function EgtSplitCurveCompo(ByVal nId As Integer) As Boolean +Public Shared Function EgtSeparateCurveCompo(ByVal nId As Integer) As Boolean End Function @@ -834,7 +846,7 @@ Public Shared Function EgtErase(ByVal nId As Integer) As Boolean End Function -Public Shared Function EgtGetType(ByVal nId As Integer) As Integer +Public Shared Function EgtGetType(ByVal nId As Integer) As GDB_TY End Function @@ -1144,6 +1156,10 @@ End Function Public Shared Function EgtSetMarkAttribs(ByRef colMark As Color3d) As Boolean End Function + +Public Shared Function EgtSetSelSurfAttribs(ByRef colSelSurf As Color3d) As Boolean +End Function + Public Shared Function EgtSetGeoLineAttribs(ByRef colGl As Color3d) As Boolean End Function @@ -1399,7 +1415,7 @@ Public Enum GDB_ID As Integer SEL = -2 End Enum 'Costanti : TIPO OGGETTI -Public Enum TY As Integer +Public Enum GDB_TY As Integer NONE = 0 GROUP = 2 GEO_VECTOR = 128 diff --git a/Form1.Designer.vb b/Form1.Designer.vb index b4ae452..ed22dc0 100644 --- a/Form1.Designer.vb +++ b/Form1.Designer.vb @@ -28,8 +28,9 @@ Partial Class Form1 Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() Me.ToolStripStatusOnL = New System.Windows.Forms.ToolStripStatusLabel() Me.ToolStripStatusOutput = New System.Windows.Forms.ToolStripStatusLabel() - Me.ToolStripStatusCursorPos = New System.Windows.Forms.ToolStripStatusLabel() Me.ToolStripStatusOnR = New System.Windows.Forms.ToolStripStatusLabel() + Me.ToolStripStatusGrid = New System.Windows.Forms.ToolStripStatusLabel() + Me.ToolStripStatusCursorPos = New System.Windows.Forms.ToolStripStatusLabel() Me.TabControl1 = New System.Windows.Forms.TabControl() Me.TabHome = New System.Windows.Forms.TabPage() Me.btnSaveAs = New System.Windows.Forms.Button() @@ -41,6 +42,7 @@ Partial Class Form1 Me.btnExport = New System.Windows.Forms.Button() Me.btnExec = New System.Windows.Forms.Button() Me.TabView = New System.Windows.Forms.TabPage() + Me.btnBottom = New System.Windows.Forms.Button() Me.btnIsoNW = New System.Windows.Forms.Button() Me.btnIsoNE = New System.Windows.Forms.Button() Me.btnIsoSE = New System.Windows.Forms.Button() @@ -62,11 +64,24 @@ Partial Class Form1 Me.btnFront = New System.Windows.Forms.Button() Me.btnZoomIn = New System.Windows.Forms.Button() Me.btnTop = New System.Windows.Forms.Button() + Me.TabCPlane = New System.Windows.Forms.TabPage() + Me.btnCplane3P = New System.Windows.Forms.Button() + Me.btnCplaneRotate = New System.Windows.Forms.Button() + Me.btnCplaneBottom = New System.Windows.Forms.Button() + Me.btnCplaneLeft = New System.Windows.Forms.Button() + Me.btnCplaneBack = New System.Windows.Forms.Button() + Me.btnCplaneElevation = New System.Windows.Forms.Button() + Me.btnCplaneRight = New System.Windows.Forms.Button() + Me.btnCplaneOrigin = New System.Windows.Forms.Button() + Me.PictureBox2 = New System.Windows.Forms.PictureBox() + Me.btnCplaneFront = New System.Windows.Forms.Button() + Me.btnCplaneTop = New System.Windows.Forms.Button() Me.TableLayoutPanel3 = New System.Windows.Forms.TableLayoutPanel() Me.tBoxInfo = New System.Windows.Forms.TextBox() Me.tboxCmd = New System.Windows.Forms.TextBox() Me.TreeView1 = New System.Windows.Forms.TreeView() Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.ImageList2 = New System.Windows.Forms.ImageList(Me.components) Me.Panel1 = New System.Windows.Forms.Panel() Me.txtColor = New System.Windows.Forms.TextBox() Me.btnColor = New System.Windows.Forms.Button() @@ -89,8 +104,9 @@ Partial Class Form1 Me.btnExtrude = New System.Windows.Forms.Button() Me.btnPlane = New System.Windows.Forms.Button() Me.TabEdit = New System.Windows.Forms.TabPage() + Me.btnBreakCurve = New System.Windows.Forms.Button() Me.btnChangeColor = New System.Windows.Forms.Button() - Me.btnSplitCurve = New System.Windows.Forms.Button() + Me.btnSeparateCurve = New System.Windows.Forms.Button() Me.btnJoinCurve = New System.Windows.Forms.Button() Me.btnInvertCurve = New System.Windows.Forms.Button() Me.btnDelete = New System.Windows.Forms.Button() @@ -118,6 +134,8 @@ Partial Class Form1 CType(Me.PictureBox5, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox4, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabCPlane.SuspendLayout() + CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit() Me.TableLayoutPanel3.SuspendLayout() Me.Panel1.SuspendLayout() Me.InputBox.SuspendLayout() @@ -148,7 +166,7 @@ Partial Class Form1 Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 80.0!)) Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle()) - Me.TableLayoutPanel1.Size = New System.Drawing.Size(1056, 533) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(1096, 533) Me.TableLayoutPanel1.TabIndex = 0 ' 'StatusStrip1 @@ -157,12 +175,12 @@ Partial Class Form1 Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.TableLayoutPanel1.SetColumnSpan(Me.StatusStrip1, 3) Me.StatusStrip1.Dock = System.Windows.Forms.DockStyle.None - Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusOnL, Me.ToolStripStatusOutput, Me.ToolStripStatusCursorPos, Me.ToolStripStatusOnR}) + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusOnL, Me.ToolStripStatusOutput, Me.ToolStripStatusOnR, Me.ToolStripStatusGrid, Me.ToolStripStatusCursorPos}) Me.StatusStrip1.Location = New System.Drawing.Point(0, 511) Me.StatusStrip1.MaximumSize = New System.Drawing.Size(0, 22) Me.StatusStrip1.MinimumSize = New System.Drawing.Size(0, 22) Me.StatusStrip1.Name = "StatusStrip1" - Me.StatusStrip1.Size = New System.Drawing.Size(1056, 22) + Me.StatusStrip1.Size = New System.Drawing.Size(1096, 22) Me.StatusStrip1.TabIndex = 6 Me.StatusStrip1.Text = "StatusStrip1" ' @@ -180,10 +198,26 @@ Partial Class Form1 Me.ToolStripStatusOutput.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text Me.ToolStripStatusOutput.MergeIndex = 1 Me.ToolStripStatusOutput.Name = "ToolStripStatusOutput" - Me.ToolStripStatusOutput.Size = New System.Drawing.Size(446, 17) + Me.ToolStripStatusOutput.Size = New System.Drawing.Size(449, 17) Me.ToolStripStatusOutput.Spring = True Me.ToolStripStatusOutput.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' + 'ToolStripStatusOnR + ' + Me.ToolStripStatusOnR.AutoSize = False + Me.ToolStripStatusOnR.Name = "ToolStripStatusOnR" + Me.ToolStripStatusOnR.Size = New System.Drawing.Size(190, 17) + Me.ToolStripStatusOnR.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'ToolStripStatusGrid + ' + Me.ToolStripStatusGrid.BorderSides = CType((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Top) _ + Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) _ + Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides) + Me.ToolStripStatusGrid.Name = "ToolStripStatusGrid" + Me.ToolStripStatusGrid.Size = New System.Drawing.Size(43, 17) + Me.ToolStripStatusGrid.Text = " GRID " + ' 'ToolStripStatusCursorPos ' Me.ToolStripStatusCursorPos.AutoSize = False @@ -193,28 +227,22 @@ Partial Class Form1 Me.ToolStripStatusCursorPos.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text Me.ToolStripStatusCursorPos.MergeIndex = 2 Me.ToolStripStatusCursorPos.Name = "ToolStripStatusCursorPos" - Me.ToolStripStatusCursorPos.Size = New System.Drawing.Size(200, 17) + Me.ToolStripStatusCursorPos.Size = New System.Drawing.Size(194, 17) Me.ToolStripStatusCursorPos.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' - 'ToolStripStatusOnR - ' - Me.ToolStripStatusOnR.AutoSize = False - Me.ToolStripStatusOnR.Name = "ToolStripStatusOnR" - Me.ToolStripStatusOnR.Size = New System.Drawing.Size(190, 17) - Me.ToolStripStatusOnR.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' 'TabControl1 ' Me.TableLayoutPanel1.SetColumnSpan(Me.TabControl1, 3) Me.TabControl1.Controls.Add(Me.TabHome) Me.TabControl1.Controls.Add(Me.TabView) + Me.TabControl1.Controls.Add(Me.TabCPlane) Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill Me.TabControl1.HotTrack = True Me.TabControl1.ItemSize = New System.Drawing.Size(60, 18) Me.TabControl1.Location = New System.Drawing.Point(3, 3) Me.TabControl1.Name = "TabControl1" Me.TabControl1.SelectedIndex = 0 - Me.TabControl1.Size = New System.Drawing.Size(1050, 74) + Me.TabControl1.Size = New System.Drawing.Size(1090, 74) Me.TabControl1.TabIndex = 8 ' 'TabHome @@ -231,7 +259,7 @@ Partial Class Form1 Me.TabHome.Location = New System.Drawing.Point(4, 22) Me.TabHome.Name = "TabHome" Me.TabHome.Padding = New System.Windows.Forms.Padding(3) - Me.TabHome.Size = New System.Drawing.Size(1042, 48) + Me.TabHome.Size = New System.Drawing.Size(1082, 48) Me.TabHome.TabIndex = 0 Me.TabHome.Text = "Home" ' @@ -371,6 +399,7 @@ Partial Class Form1 'TabView ' Me.TabView.BackColor = System.Drawing.SystemColors.Control + Me.TabView.Controls.Add(Me.btnBottom) Me.TabView.Controls.Add(Me.btnIsoNW) Me.TabView.Controls.Add(Me.btnIsoNE) Me.TabView.Controls.Add(Me.btnIsoSE) @@ -395,10 +424,27 @@ Partial Class Form1 Me.TabView.Location = New System.Drawing.Point(4, 22) Me.TabView.Name = "TabView" Me.TabView.Padding = New System.Windows.Forms.Padding(3) - Me.TabView.Size = New System.Drawing.Size(1042, 48) + Me.TabView.Size = New System.Drawing.Size(1082, 48) Me.TabView.TabIndex = 3 Me.TabView.Text = "View" ' + 'btnBottom + ' + Me.btnBottom.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnBottom.FlatAppearance.BorderSize = 0 + Me.btnBottom.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnBottom.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnBottom.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnBottom.Image = CType(resources.GetObject("btnBottom.Image"), System.Drawing.Image) + Me.btnBottom.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnBottom.Location = New System.Drawing.Point(628, 0) + Me.btnBottom.Name = "btnBottom" + Me.btnBottom.Size = New System.Drawing.Size(56, 48) + Me.btnBottom.TabIndex = 32 + Me.btnBottom.Text = "Bottom" + Me.btnBottom.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnBottom.UseVisualStyleBackColor = False + ' 'btnIsoNW ' Me.btnIsoNW.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control @@ -408,7 +454,7 @@ Partial Class Form1 Me.btnIsoNW.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnIsoNW.Image = CType(resources.GetObject("btnIsoNW.Image"), System.Drawing.Image) Me.btnIsoNW.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnIsoNW.Location = New System.Drawing.Point(796, 0) + Me.btnIsoNW.Location = New System.Drawing.Point(852, 0) Me.btnIsoNW.Name = "btnIsoNW" Me.btnIsoNW.Size = New System.Drawing.Size(56, 48) Me.btnIsoNW.TabIndex = 31 @@ -425,7 +471,7 @@ Partial Class Form1 Me.btnIsoNE.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnIsoNE.Image = CType(resources.GetObject("btnIsoNE.Image"), System.Drawing.Image) Me.btnIsoNE.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnIsoNE.Location = New System.Drawing.Point(740, 0) + Me.btnIsoNE.Location = New System.Drawing.Point(796, 0) Me.btnIsoNE.Name = "btnIsoNE" Me.btnIsoNE.Size = New System.Drawing.Size(56, 48) Me.btnIsoNE.TabIndex = 30 @@ -442,7 +488,7 @@ Partial Class Form1 Me.btnIsoSE.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnIsoSE.Image = CType(resources.GetObject("btnIsoSE.Image"), System.Drawing.Image) Me.btnIsoSE.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnIsoSE.Location = New System.Drawing.Point(684, 0) + Me.btnIsoSE.Location = New System.Drawing.Point(740, 0) Me.btnIsoSE.Name = "btnIsoSE" Me.btnIsoSE.Size = New System.Drawing.Size(56, 48) Me.btnIsoSE.TabIndex = 29 @@ -461,7 +507,7 @@ Partial Class Form1 Me.chkGetDist.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.chkGetDist.Image = CType(resources.GetObject("chkGetDist.Image"), System.Drawing.Image) Me.chkGetDist.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.chkGetDist.Location = New System.Drawing.Point(968, 0) + Me.chkGetDist.Location = New System.Drawing.Point(1024, 0) Me.chkGetDist.Name = "chkGetDist" Me.chkGetDist.Size = New System.Drawing.Size(56, 48) Me.chkGetDist.TabIndex = 24 @@ -479,7 +525,7 @@ Partial Class Form1 Me.chkAnalyze.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption Me.chkAnalyze.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.chkAnalyze.Image = CType(resources.GetObject("chkAnalyze.Image"), System.Drawing.Image) - Me.chkAnalyze.Location = New System.Drawing.Point(912, 0) + Me.chkAnalyze.Location = New System.Drawing.Point(968, 0) Me.chkAnalyze.Name = "chkAnalyze" Me.chkAnalyze.Size = New System.Drawing.Size(56, 48) Me.chkAnalyze.TabIndex = 25 @@ -490,7 +536,7 @@ Partial Class Form1 'PictureBox5 ' Me.PictureBox5.BackColor = System.Drawing.SystemColors.ActiveBorder - Me.PictureBox5.Location = New System.Drawing.Point(853, 4) + Me.PictureBox5.Location = New System.Drawing.Point(909, 4) Me.PictureBox5.Name = "PictureBox5" Me.PictureBox5.Size = New System.Drawing.Size(2, 40) Me.PictureBox5.TabIndex = 28 @@ -516,7 +562,7 @@ Partial Class Form1 Me.chkCurveDir.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.chkCurveDir.Image = CType(resources.GetObject("chkCurveDir.Image"), System.Drawing.Image) Me.chkCurveDir.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.chkCurveDir.Location = New System.Drawing.Point(856, 0) + Me.chkCurveDir.Location = New System.Drawing.Point(912, 0) Me.chkCurveDir.Name = "chkCurveDir" Me.chkCurveDir.Size = New System.Drawing.Size(56, 48) Me.chkCurveDir.TabIndex = 20 @@ -620,7 +666,7 @@ Partial Class Form1 Me.btnIsoSW.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnIsoSW.Image = CType(resources.GetObject("btnIsoSW.Image"), System.Drawing.Image) Me.btnIsoSW.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnIsoSW.Location = New System.Drawing.Point(628, 0) + Me.btnIsoSW.Location = New System.Drawing.Point(684, 0) Me.btnIsoSW.Name = "btnIsoSW" Me.btnIsoSW.Size = New System.Drawing.Size(56, 48) Me.btnIsoSW.TabIndex = 8 @@ -747,6 +793,207 @@ Partial Class Form1 Me.btnTop.TextAlign = System.Drawing.ContentAlignment.BottomCenter Me.btnTop.UseVisualStyleBackColor = False ' + 'TabCPlane + ' + Me.TabCPlane.BackColor = System.Drawing.SystemColors.Control + Me.TabCPlane.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None + Me.TabCPlane.Controls.Add(Me.btnCplane3P) + Me.TabCPlane.Controls.Add(Me.btnCplaneRotate) + Me.TabCPlane.Controls.Add(Me.btnCplaneBottom) + Me.TabCPlane.Controls.Add(Me.btnCplaneLeft) + Me.TabCPlane.Controls.Add(Me.btnCplaneBack) + Me.TabCPlane.Controls.Add(Me.btnCplaneElevation) + Me.TabCPlane.Controls.Add(Me.btnCplaneRight) + Me.TabCPlane.Controls.Add(Me.btnCplaneOrigin) + Me.TabCPlane.Controls.Add(Me.PictureBox2) + Me.TabCPlane.Controls.Add(Me.btnCplaneFront) + Me.TabCPlane.Controls.Add(Me.btnCplaneTop) + Me.TabCPlane.ForeColor = System.Drawing.SystemColors.ControlText + Me.TabCPlane.Location = New System.Drawing.Point(4, 22) + Me.TabCPlane.Name = "TabCPlane" + Me.TabCPlane.Size = New System.Drawing.Size(1082, 48) + Me.TabCPlane.TabIndex = 4 + Me.TabCPlane.Text = "CPlane" + ' + 'btnCplane3P + ' + Me.btnCplane3P.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplane3P.FlatAppearance.BorderSize = 0 + Me.btnCplane3P.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplane3P.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplane3P.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplane3P.Image = CType(resources.GetObject("btnCplane3P.Image"), System.Drawing.Image) + Me.btnCplane3P.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplane3P.Location = New System.Drawing.Point(508, 0) + Me.btnCplane3P.Name = "btnCplane3P" + Me.btnCplane3P.Size = New System.Drawing.Size(56, 48) + Me.btnCplane3P.TabIndex = 37 + Me.btnCplane3P.Text = "3 Points" + Me.btnCplane3P.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplane3P.UseVisualStyleBackColor = False + ' + 'btnCplaneRotate + ' + Me.btnCplaneRotate.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneRotate.FlatAppearance.BorderSize = 0 + Me.btnCplaneRotate.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneRotate.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneRotate.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneRotate.Image = CType(resources.GetObject("btnCplaneRotate.Image"), System.Drawing.Image) + Me.btnCplaneRotate.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneRotate.Location = New System.Drawing.Point(452, 0) + Me.btnCplaneRotate.Name = "btnCplaneRotate" + Me.btnCplaneRotate.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneRotate.TabIndex = 36 + Me.btnCplaneRotate.Text = "Rotate" + Me.btnCplaneRotate.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneRotate.UseVisualStyleBackColor = False + ' + 'btnCplaneBottom + ' + Me.btnCplaneBottom.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneBottom.FlatAppearance.BorderSize = 0 + Me.btnCplaneBottom.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneBottom.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneBottom.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneBottom.Image = CType(resources.GetObject("btnCplaneBottom.Image"), System.Drawing.Image) + Me.btnCplaneBottom.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneBottom.Location = New System.Drawing.Point(280, 0) + Me.btnCplaneBottom.Name = "btnCplaneBottom" + Me.btnCplaneBottom.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneBottom.TabIndex = 35 + Me.btnCplaneBottom.Text = "Bottom" + Me.btnCplaneBottom.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneBottom.UseVisualStyleBackColor = False + ' + 'btnCplaneLeft + ' + Me.btnCplaneLeft.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneLeft.FlatAppearance.BorderSize = 0 + Me.btnCplaneLeft.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneLeft.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneLeft.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneLeft.Image = CType(resources.GetObject("btnCplaneLeft.Image"), System.Drawing.Image) + Me.btnCplaneLeft.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneLeft.Location = New System.Drawing.Point(224, 0) + Me.btnCplaneLeft.Name = "btnCplaneLeft" + Me.btnCplaneLeft.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneLeft.TabIndex = 34 + Me.btnCplaneLeft.Text = "Left" + Me.btnCplaneLeft.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneLeft.UseVisualStyleBackColor = False + ' + 'btnCplaneBack + ' + Me.btnCplaneBack.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneBack.FlatAppearance.BorderSize = 0 + Me.btnCplaneBack.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneBack.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneBack.Image = CType(resources.GetObject("btnCplaneBack.Image"), System.Drawing.Image) + Me.btnCplaneBack.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneBack.Location = New System.Drawing.Point(168, 0) + Me.btnCplaneBack.Name = "btnCplaneBack" + Me.btnCplaneBack.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneBack.TabIndex = 33 + Me.btnCplaneBack.Text = "Back" + Me.btnCplaneBack.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneBack.UseVisualStyleBackColor = False + ' + 'btnCplaneElevation + ' + Me.btnCplaneElevation.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneElevation.FlatAppearance.BorderSize = 0 + Me.btnCplaneElevation.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneElevation.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneElevation.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneElevation.Image = CType(resources.GetObject("btnCplaneElevation.Image"), System.Drawing.Image) + Me.btnCplaneElevation.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneElevation.Location = New System.Drawing.Point(340, 0) + Me.btnCplaneElevation.Name = "btnCplaneElevation" + Me.btnCplaneElevation.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneElevation.TabIndex = 32 + Me.btnCplaneElevation.Text = "Elevat" + Me.btnCplaneElevation.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneElevation.UseVisualStyleBackColor = False + ' + 'btnCplaneRight + ' + Me.btnCplaneRight.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneRight.FlatAppearance.BorderSize = 0 + Me.btnCplaneRight.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneRight.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneRight.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneRight.Image = CType(resources.GetObject("btnCplaneRight.Image"), System.Drawing.Image) + Me.btnCplaneRight.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneRight.Location = New System.Drawing.Point(112, 0) + Me.btnCplaneRight.Name = "btnCplaneRight" + Me.btnCplaneRight.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneRight.TabIndex = 31 + Me.btnCplaneRight.Text = "Right" + Me.btnCplaneRight.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneRight.UseVisualStyleBackColor = False + ' + 'btnCplaneOrigin + ' + Me.btnCplaneOrigin.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneOrigin.FlatAppearance.BorderSize = 0 + Me.btnCplaneOrigin.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneOrigin.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneOrigin.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneOrigin.Image = CType(resources.GetObject("btnCplaneOrigin.Image"), System.Drawing.Image) + Me.btnCplaneOrigin.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneOrigin.Location = New System.Drawing.Point(396, 0) + Me.btnCplaneOrigin.Name = "btnCplaneOrigin" + Me.btnCplaneOrigin.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneOrigin.TabIndex = 30 + Me.btnCplaneOrigin.Text = "Origin" + Me.btnCplaneOrigin.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneOrigin.UseVisualStyleBackColor = False + ' + 'PictureBox2 + ' + Me.PictureBox2.BackColor = System.Drawing.SystemColors.ActiveBorder + Me.PictureBox2.Location = New System.Drawing.Point(337, 3) + Me.PictureBox2.Name = "PictureBox2" + Me.PictureBox2.Size = New System.Drawing.Size(2, 40) + Me.PictureBox2.TabIndex = 29 + Me.PictureBox2.TabStop = False + ' + 'btnCplaneFront + ' + Me.btnCplaneFront.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneFront.FlatAppearance.BorderSize = 0 + Me.btnCplaneFront.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneFront.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneFront.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneFront.Image = CType(resources.GetObject("btnCplaneFront.Image"), System.Drawing.Image) + Me.btnCplaneFront.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneFront.Location = New System.Drawing.Point(56, 0) + Me.btnCplaneFront.Name = "btnCplaneFront" + Me.btnCplaneFront.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneFront.TabIndex = 9 + Me.btnCplaneFront.Text = "Front" + Me.btnCplaneFront.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneFront.UseVisualStyleBackColor = False + ' + 'btnCplaneTop + ' + Me.btnCplaneTop.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnCplaneTop.FlatAppearance.BorderSize = 0 + Me.btnCplaneTop.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnCplaneTop.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnCplaneTop.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnCplaneTop.Image = CType(resources.GetObject("btnCplaneTop.Image"), System.Drawing.Image) + Me.btnCplaneTop.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnCplaneTop.Location = New System.Drawing.Point(0, 0) + Me.btnCplaneTop.Name = "btnCplaneTop" + Me.btnCplaneTop.Size = New System.Drawing.Size(56, 48) + Me.btnCplaneTop.TabIndex = 8 + Me.btnCplaneTop.Text = "Top" + Me.btnCplaneTop.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnCplaneTop.UseVisualStyleBackColor = False + ' 'TableLayoutPanel3 ' Me.TableLayoutPanel3.ColumnCount = 1 @@ -757,7 +1004,7 @@ Partial Class Form1 Me.TableLayoutPanel3.Controls.Add(Me.Panel1, 0, 0) Me.TableLayoutPanel3.Controls.Add(Me.InputBox, 0, 3) Me.TableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill - Me.TableLayoutPanel3.Location = New System.Drawing.Point(853, 83) + Me.TableLayoutPanel3.Location = New System.Drawing.Point(893, 83) Me.TableLayoutPanel3.Name = "TableLayoutPanel3" Me.TableLayoutPanel3.RowCount = 5 Me.TableLayoutPanel3.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50.0!)) @@ -793,6 +1040,7 @@ Partial Class Form1 ' 'TreeView1 ' + Me.TreeView1.CheckBoxes = True Me.TreeView1.Dock = System.Windows.Forms.DockStyle.Fill Me.TreeView1.FullRowSelect = True Me.TreeView1.HideSelection = False @@ -803,6 +1051,7 @@ Partial Class Form1 Me.TreeView1.Name = "TreeView1" Me.TreeView1.SelectedImageIndex = 0 Me.TreeView1.Size = New System.Drawing.Size(194, 126) + Me.TreeView1.StateImageList = Me.ImageList2 Me.TreeView1.TabIndex = 0 ' 'ImageList1 @@ -824,6 +1073,13 @@ Partial Class Form1 Me.ImageList1.Images.SetKeyName(12, "STriMesh.ico") Me.ImageList1.Images.SetKeyName(13, "text.ico") ' + 'ImageList2 + ' + Me.ImageList2.ImageStream = CType(resources.GetObject("ImageList2.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList2.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList2.Images.SetKeyName(0, "LampOff.png") + Me.ImageList2.Images.SetKeyName(1, "LampOn.png") + ' 'Panel1 ' Me.Panel1.AutoSize = True @@ -1114,8 +1370,9 @@ Partial Class Form1 'TabEdit ' Me.TabEdit.BackColor = System.Drawing.SystemColors.Control + Me.TabEdit.Controls.Add(Me.btnBreakCurve) Me.TabEdit.Controls.Add(Me.btnChangeColor) - Me.TabEdit.Controls.Add(Me.btnSplitCurve) + Me.TabEdit.Controls.Add(Me.btnSeparateCurve) Me.TabEdit.Controls.Add(Me.btnJoinCurve) Me.TabEdit.Controls.Add(Me.btnInvertCurve) Me.TabEdit.Controls.Add(Me.btnDelete) @@ -1125,6 +1382,23 @@ Partial Class Form1 Me.TabEdit.TabIndex = 3 Me.TabEdit.Text = "Edit" ' + 'btnBreakCurve + ' + Me.btnBreakCurve.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnBreakCurve.FlatAppearance.BorderSize = 0 + Me.btnBreakCurve.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnBreakCurve.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnBreakCurve.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnBreakCurve.Image = CType(resources.GetObject("btnBreakCurve.Image"), System.Drawing.Image) + Me.btnBreakCurve.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnBreakCurve.Location = New System.Drawing.Point(0, 144) + Me.btnBreakCurve.Name = "btnBreakCurve" + Me.btnBreakCurve.Size = New System.Drawing.Size(56, 48) + Me.btnBreakCurve.TabIndex = 38 + Me.btnBreakCurve.Text = "Break" + Me.btnBreakCurve.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnBreakCurve.UseVisualStyleBackColor = False + ' 'btnChangeColor ' Me.btnChangeColor.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control @@ -1142,22 +1416,23 @@ Partial Class Form1 Me.btnChangeColor.TextAlign = System.Drawing.ContentAlignment.BottomCenter Me.btnChangeColor.UseVisualStyleBackColor = False ' - 'btnSplitCurve + 'btnSeparateCurve ' - Me.btnSplitCurve.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control - Me.btnSplitCurve.FlatAppearance.BorderSize = 0 - Me.btnSplitCurve.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control - Me.btnSplitCurve.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption - Me.btnSplitCurve.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnSplitCurve.Image = CType(resources.GetObject("btnSplitCurve.Image"), System.Drawing.Image) - Me.btnSplitCurve.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSplitCurve.Location = New System.Drawing.Point(0, 192) - Me.btnSplitCurve.Name = "btnSplitCurve" - Me.btnSplitCurve.Size = New System.Drawing.Size(56, 48) - Me.btnSplitCurve.TabIndex = 36 - Me.btnSplitCurve.Text = "Split" - Me.btnSplitCurve.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSplitCurve.UseVisualStyleBackColor = False + Me.btnSeparateCurve.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control + Me.btnSeparateCurve.FlatAppearance.BorderSize = 0 + Me.btnSeparateCurve.FlatAppearance.MouseDownBackColor = System.Drawing.SystemColors.Control + Me.btnSeparateCurve.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.btnSeparateCurve.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnSeparateCurve.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSeparateCurve.Image = CType(resources.GetObject("btnSeparateCurve.Image"), System.Drawing.Image) + Me.btnSeparateCurve.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSeparateCurve.Location = New System.Drawing.Point(0, 240) + Me.btnSeparateCurve.Name = "btnSeparateCurve" + Me.btnSeparateCurve.Size = New System.Drawing.Size(56, 48) + Me.btnSeparateCurve.TabIndex = 36 + Me.btnSeparateCurve.Text = "Separate" + Me.btnSeparateCurve.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSeparateCurve.UseVisualStyleBackColor = False ' 'btnJoinCurve ' @@ -1168,7 +1443,7 @@ Partial Class Form1 Me.btnJoinCurve.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnJoinCurve.Image = CType(resources.GetObject("btnJoinCurve.Image"), System.Drawing.Image) Me.btnJoinCurve.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnJoinCurve.Location = New System.Drawing.Point(0, 144) + Me.btnJoinCurve.Location = New System.Drawing.Point(0, 192) Me.btnJoinCurve.Name = "btnJoinCurve" Me.btnJoinCurve.Size = New System.Drawing.Size(56, 48) Me.btnJoinCurve.TabIndex = 35 @@ -1380,7 +1655,7 @@ Partial Class Form1 Me.Scene1.Dock = System.Windows.Forms.DockStyle.Fill Me.Scene1.Location = New System.Drawing.Point(92, 83) Me.Scene1.Name = "Scene1" - Me.Scene1.Size = New System.Drawing.Size(755, 425) + Me.Scene1.Size = New System.Drawing.Size(795, 425) Me.Scene1.TabIndex = 1 ' 'Form1 @@ -1389,14 +1664,14 @@ Partial Class Form1 Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoSize = True Me.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None - Me.ClientSize = New System.Drawing.Size(1056, 533) + Me.ClientSize = New System.Drawing.Size(1096, 533) Me.Controls.Add(Me.TableLayoutPanel1) Me.Cursor = System.Windows.Forms.Cursors.Arrow Me.ForeColor = System.Drawing.SystemColors.ControlText Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.KeyPreview = True Me.Margin = New System.Windows.Forms.Padding(2) - Me.MinimumSize = New System.Drawing.Size(1072, 512) + Me.MinimumSize = New System.Drawing.Size(1112, 512) Me.Name = "Form1" Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual @@ -1412,6 +1687,8 @@ Partial Class Form1 CType(Me.PictureBox5, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox4, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabCPlane.ResumeLayout(False) + CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit() Me.TableLayoutPanel3.ResumeLayout(False) Me.TableLayoutPanel3.PerformLayout() Me.Panel1.ResumeLayout(False) @@ -1503,7 +1780,7 @@ End Sub Friend WithEvents btnPlane As System.Windows.Forms.Button Friend WithEvents btnInvertCurve As System.Windows.Forms.Button Friend WithEvents btnJoinCurve As System.Windows.Forms.Button - Friend WithEvents btnSplitCurve As System.Windows.Forms.Button + Friend WithEvents btnSeparateCurve As System.Windows.Forms.Button Friend WithEvents btnChangeColor As System.Windows.Forms.Button Friend WithEvents btnExtrude As System.Windows.Forms.Button Friend WithEvents InputBox As System.Windows.Forms.GroupBox @@ -1512,5 +1789,21 @@ End Sub Friend WithEvents InputText As System.Windows.Forms.TextBox Friend WithEvents btnCircleCR As System.Windows.Forms.Button Friend WithEvents btnRevolve As System.Windows.Forms.Button + Friend WithEvents ImageList2 As System.Windows.Forms.ImageList + Friend WithEvents ToolStripStatusGrid As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents btnBottom As System.Windows.Forms.Button + Friend WithEvents TabCPlane As System.Windows.Forms.TabPage + Friend WithEvents btnCplaneFront As System.Windows.Forms.Button + Friend WithEvents btnCplaneTop As System.Windows.Forms.Button + Friend WithEvents btnCplaneOrigin As System.Windows.Forms.Button + Friend WithEvents PictureBox2 As System.Windows.Forms.PictureBox + Friend WithEvents btnCplaneRight As System.Windows.Forms.Button + Friend WithEvents btnCplaneElevation As System.Windows.Forms.Button + Friend WithEvents btnCplaneBack As System.Windows.Forms.Button + Friend WithEvents btnCplaneBottom As System.Windows.Forms.Button + Friend WithEvents btnCplaneLeft As System.Windows.Forms.Button + Friend WithEvents btnCplane3P As System.Windows.Forms.Button + Friend WithEvents btnCplaneRotate As System.Windows.Forms.Button + Friend WithEvents btnBreakCurve As System.Windows.Forms.Button End Class diff --git a/Form1.resx b/Form1.resx index c3fd425..e53186c 100644 --- a/Form1.resx +++ b/Form1.resx @@ -312,6 +312,19 @@ Fheu8EVY3uyhzvJhG9vqLYsMFUmB5OROwJbnJpA2eaOLGssX+ZBkqHACaZPb8lwF1OTNPqqztQ+xqe7O Q4YKW24FbHmuAmryoIMKy8PW7x9OGjJUJAVsuRcBO3mjhyOWT9pYU2cXQYYKJ8BywnLvApyaH81/FDtk qGC5W/vKBFS+LDL0iQx9IkOfyNAfEX4Asj8tHRoshHQAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCRImG7ghlLIAAAFwSURBVFhHxZYxTgQxDEVzA0rqvQINDSwdFefY + SyC2pEErrkDFYbjUMLbGUWx/m0xWCsWT4mfnO7BiRVmW5V+BciZQRpSbw3N5/Pi8BpdpRUS5vXtBgXtx + uVYg0E+O5hD24a5vhUUtb85o1oJ+a27Giha7nF0QZFF3m4e4OSsE9fptOfsgqGXPw1VRZSkPNqD2giBh + 78NVwSJZzv0giHvBcu4F91TBQgKuYX1IlOu8E23QIDazzXXeiSSEyPojPVWwSEKIrD/SUwWLJITI+iM9 + VbBIQoisP9JTBYskhMj6Iz1VsMhC1r9t6Y/iMp2IBmn50+W9hh0vKjjl/vwmZ5frBBisy4nT92v5+jlB + trvK0bx49AXlxDZc697lhCySul1uvpprvhPbBT63n/lfywmZpXPHcsKL5lI99ywn2nk5J8sJL+Si0Luc + sHfBZ27xwoaM0rGc8AKF7WX9n8LmRkA5EyhnAuVMoJwJlDOBch5L+QUjK5chq38+mgAAAABJRU5ErkJg + gg== @@ -681,6 +694,128 @@ VAQhQjTPzJqDiiBEiOaZWXNQEYQI0Twzaw4qghAhmmdmzUFFFIKf5iSUSaL3oJQ/nN/2sOO5CQ65fX2p vymXhPPgXi6YLxzS3d28+4EiYUJGywV3d3O9XRYQMhKAZHZZwNJIAJLZZVEXBwMQ2nXu3MLChmQZKBdY eGG/Zf1PYXN7uHImrpyJK2fiypm4ciaunMdSfgDRq45RqelmwQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LChATEwX6pbYAAAD9SURBVFhHxZLLDYMwEAV9TTcpIMWlmdzSUi7h + mCKctYORWY/5Si8rDfBmzQIWIcb4V1AqQakEpRKUSlAqQakEpRKUSlAexepupIuM7xMolxgf0iOGx/WV + z9zPzObVYQvNgDFbpUNhWlNfY67DGla3RDfb1z+H8O72Xc6uDktY4XZO/LaeeyM4lyThBzTZXmCWV9ZP + nqTHCrfSSF+WRGZrv6YRnnFIj+mv/4TL4Ck+r7P1OJ9kwd9UZ6t0KGRfzr0+gTJhhdt+NPdAmbCiLd8F + zfWwdDefzUu0YmUr9+Y1WmFvfxY/cwmUSlAqQakEpRKUSlAqQakEpRKUOmL4AtFUb1iP3tZtAAAAAElF + TkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LChAgNrqVFMEAAAEDSURBVFhHzZLBDcIwDEVzZRsG6HAsw42VuNAj + QxSnaoLrvKaK2hgsPcF/KXZkGqZp+ikoPUHpCUqNlHzw2Rmg1MQL9LwEyxCGNFhjnzuDUnyHD0vuNjxS + CjU85fS9B6XoPNBSin+4gJD/AovUrcr9+kSvWPXTYRbmJYTzdQOb5QKrvPe8Dlkul9jw+gVdZxn+GMNr + 89zk2elQQwrXmWlcfe5LkrANity4+uxJWqROX30+I6mRwnVmZPg7XMYa1DeBMhEHnJkJlBGp+tob8xYo + I1K88gaor4Wl+fHRXKMUO6tszXuUQm5/FNuzBkpPUHqC0hOUnqD0BKUnKD1B6QlKP6bwAbN5X05yNz+R + AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCg8yM6VxdNAAAAGESURBVFhHxZYxTgQxDEXTUlFScwNEQ7NAR8WV + oKRZrTgFx6Ki5BDD+DMOdvLjDVkUkJ6Iv/2/M4x2RVqW5V+hImP92aXb/etf4HJt0SJdXD+yoFFcti0Y + bDmba5HOLx8ivxsucWZzZrOMHr8zWEozNBLQotfvTFkkZugkgAH//eEFHPHnQxbsOzdm9EhASWs5esSf + D1nYhtLN81M+93B3+DmT5TbbabaAoCGnQJbbbKfZAgIZ6ukJI303ACEIiXrCSN8NQAhCop4w0ncDEIKQ + qCeM9N0AhCAk6gkjfTcAIQjR3qm4TFtAIEPQ9QtqtTTZvLRncLm2gEAugG83DTaf8Sqs8Grf+df/K7SP + ni0glCHe3Obt6l29tP+NW478SjAX6H7ydTl+mwugtv71Feq8pRY0ZHvnn+nsIwJPLgsE9WqtmMuX1IKG + aFD05GWtvsZfjlELdvlvKb1Hlgu1oAEaNlo33nlJLYh5FL1A53KBijOh4kyoOBMqzoSKM6HiTKg4jyV9 + AcTrZLNBwImMAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCg81L/4xvlgAAAGeSURBVFhHxZQxUgQhEEVJjQyNvYFlYrJqZuSV + NDSxtjyFxzIy9BAj/0tTDQ0MzKzsVv0CfjP9PuzUuGVZzqqiWZP/HbwWd//+sVWmZ27UFOHnCOCubp8j + OIylfSW5y+unXQHYAFBI5p0BcvhwADb4vPniw9yKHH0BEriam325IYqnRQCZi1YCcP/j8U3g9EYCJP+5 + D0CPW//GVoAIhwKcfm+ACIfQDDcQ1qxjXglQg7PWHSBs3KUMrvsa3xi60UblPXVf4xsjXHG88oF3gM89 + HE8QIIjrkXegAmnVkgWNABDgj7v4Fl/XMc9Vg7RqyYKGCgA4xuiLBiGtWrKgEQClk+s65rlqkFYtWdDw + Vu3kcf2fAQjHZgWUkR+aEGCr0EsrWdAQAMag6EtthzSLfY0hEA3WJ/efar1fqwThs8H3PQ66xroxAApK + 1mhQ+MRq5QESeCW4NQSGUZ98BQ4JjPMOOGQNHWAADkWghq88aw0dAGMjfS7uv3t96YVD1gBY4HvUe2vG + OAV85NZK5kwVzZkqmjNVNGeqaM5U0Zynxf0CXxxkRNo+7IcAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCg4hM8VcX3UAAAF7SURBVFhH7ZY7TgRBDETnBoTE3ACRkPDJiLgS + hJugFafgWJxl6LLGTY3L8+ld1EiIlZ6mXW6XS9rVaIdxHH+VVMwon7sCDst8XH+mOiG+UcgYLm+eh/u3 + dzPB04k1AnCd3BfvKETqcjKsvWCIALP63ADDxdVTHca5IYDM4tkSIBqYhgBr8G/AZ7lf4B3mGQUTk+Wm + w6RoXPvZagTA7OPxYFDfw3hddRH4O6fl1tsTwJcjyEkBfPnt60s9b/Fw/D5Py83rrACnUizXkH0iTEZR + tx5MqMeG2Zz0/wP8SIAlprm0R4inCFsBqMeG2Zz0/0yASqwjyX3xFGG6LDrekDBcgpasIb4iJAHsteoL + ShDu1TvJnOn8ak9mZ4UJwWjPchDnTOPZ8o+Ke/WOCGQ0M5je70vwnNV7g4tAQ/W8sRz4XTu3BBfBB52V + 9Ey937AcqODDYOdyMJsDO5YDFaLRKbQEFyEzbKFhOUjFnqRiT1KxJ6nYk1TsSSr2Yxy+AFzjT2hlhvv7 + AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCg8rIyPGzawAAAD7SURBVFhHxZDBEcIgEEVztRsLsDib8WZLXszR + IvDjCJLlBSFx1p15Q/6DLMxOIYS/gtITlJ6g9ASlJyhHUGnhvR5Q9hIvT9i9XlD2UF6esGd6QDnC1osT + KEdwf4DqbIjyky/H2yIDi35l6KFqYCYQH7DI9fntD1CdIibr8511+XWe7mbfns/55crQQoXjFHFzePS5 + L0nCNkhZpUXr4OizJ2lRrY5SFbaMPu+RLFHhOAvCYzrMLahvAmUiXvDLTKCMqJpjHM1roIyoaNxDUF8L + S/Pz3tyiFl9GOZq/UQu9fi+2ZwuUnqD0BKUnKD1B6QlKT1B6gtITlH6E6QkiUYDZP7fHEAAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCg4dJUJ7k9sAAAG/SURBVFhHxZQ9TsRADIWnpaLcmhsgGpoFOiqu + BCUNWu0pOBYVJYcI44c98l9mkoBC8WniZ6/fy46UMk3Tv5KKGeVw81Tu3s6/AnZurxcyyuXVY7pwDdVq + UwBjfvvyTGc2l9H+NTLnM8x4QWPM1XM262nzZL4lgLnzugwa137W08zfrz/wvDZAZg6dNT3rMW9eA0Cj + Z0bPoheEUo6ZOXqDAObOKYgOwLqeRy8IbLIZMmMjXAHX0hMfwRQQ/MI1kBHfOXa5f+CrXHyKj2AKCLzM + 64t6YkyGhApA5nRSrTEFhD8KgJMDwFz1NaaAMDLp9eo6AVoNIG8ufZkXTAFhZNLriTGfcudU677GFBBG + Jr2eCiBktcYUEHom96dV/4A+dV9jCgi9ANybhYyEmTrsDAIvC7p8Ynsoo7kz7A0CDVaMRuYPp1fgPs9t + RhnAUOAPE6ifav0bzAbBBVhiTvgAcoqemWMmCCoAzKkemBPNSNBv3gseBA7QzPnZz3kkAJ7JlOth8CCI + qbDAnNCGOBeYE1HYYE60AHLO3LknCjrAWsj4h6PfO0cUssVLWWlOpOKepOKepOKepOKepOKepOJ+TOUb + rZ9hivkFJpoAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCggICDScVQgAAADqSURBVFhHxZDBDcIwEATzpRsKoDia4UdLfMiT + Isw5wtHlPLaxkJaThmgH55LsklL6KyiVoFSCUglKJSiVoFSCUglKJSiVoOxhc+1yOz/QOw77fPiGakHM + 9gKHPDrvwwibS6aZ7eH3dXk2/w95cz70sME6dyar3/eSJOKCKk9Wv3uSERus0shflsXG6HzJnkpEbKoq + HelTfXotp7UF7S2gLOSHtLJN/ilsvlzdGazdgzJj061xNrdAmbGhyqegvRGW4eZfc49aDKqczSNqYW// + K3FnD5RKUCpBqQSlEpRKUCpBqQSlEpQ60vIGRimMPzioXXoAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCRYDGbnVjaUAAAF6SURBVFhH5ZSxTgNBDES3paJMzR8gGpoAHRW/ + BCUNivIVfBYVJR9x3Jj1yTu2L3c6tJGgeMrOeHfGIihlGIazEpoZZXfzVO7ejltwmWxk/EY5cLlsRJTL + q8dTQRm8uJuzwTTl5hzdZaK/mrvDhoXLxUuCmOatWcTdY0Nptq/l4idBljWLN2IyS9lzwDRLgpS1izdC + DBswnt08CZJZUi6z5F0jxBitWd6vP0LfsmLxRoiBgHpZYI0FrA7ucybQufOdUQOt1rPousCkzfwPLTDH + gv8BzgTrFjAXOfCffAVnX2CGr3LxeQoti3B9zkCRuQgtn/h9fzi86rzcH35CVSuswe3Ls541V2mEGDWg + 0VpeF9CZzqczSniOt7U8/IV0Bgp5AS1HGBcYzQs05eNZfYs3ULgRyVlQDryBkPpIPqFNgBZE2t5fUg68 + gQB9XAN5nmm9P70NvnPGGzaAA9foBeXAGwjYzp5zM0KzJ6HZk9DsSWj2JDR7Epr9GMo3hq1PGzbInJQA + AAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAAd0SU1FB94LCRYDLO9mSYYAAAF/SURBVFhHxZY9TgUxDITTUlFScwNEQ8NPR8WV + oKRBT5yCY1FRcoglNollO7PZBEvhSd/TeuwZZ1mxkLZt+1eguBIo7pEurp9StnT5uPqEusJk6qKHLL97 + exd8Tct1vTNvcnWxRzq/fGRzj4E7rwcx2bpAyHIy03W5EzOTl5ta9Y1/9gCjd/6dzr568GJ6hDMHMM88 + H4S1WpcQquu8r/1PjjXllTldiJjSLZujqOWcO3KA/PldrsxUS590VbOm++DOpTd4APqKQYvyI2yyhw5Q + hqL4XJ1tNF2w0AkgIn3UMwMsdAKISB/1zAALnQAi0kc9M8BCJ4CI9FHPDLDQCSAifdQzAyz0Auh3vPQj + mExdsACGWKflD6dXCbo/mdBDbl6e67XJ1QULaKguJ9zbzbPrL7p/QcmFCC5gZjkB/UVDflOwoAKOzIhZ + fysow5EZMetvhWoaMCMaP/ijpGkFHxDhYDnRCijoL+T/K3w2AoorgeJKoLgSKK4EiiuB4jq29ANKFWH5 + Upl5AwAAAABJRU5ErkJggg== @@ -691,7 +826,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC4 - DQAAAk1TRnQBSQFMAgEBDgEAAcgBCAHIAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + DQAAAk1TRnQBSQFMAgEBDgEAAfABCQHwAQkBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -750,6 +885,54 @@ AaEBHQGAAQ8BwAEDAv8BsgFxAYABBwHAAQMB/gF/AXkBggGAAQMBwAEDAf4BfwFyARIBwAEBAcABAwH/ AT8BQAFyAeABAAHAAQMB/wGfARkBEgHwAQABwAEDAfkBnwGyAQ0B+AEAAcABAwH5AZ8BsgENAfwBAAHA AQMB/AE/AdsBGwH+AQABwAEDAv8C5wL/AcABAwL/AfgBHwr/Cw== + + + + 757, 10 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW + CAAAAk1TRnQBSQFMAgEBAgEAARABAQEQAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA + AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 + AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA + AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm + AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM + AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA + ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz + AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ + AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM + AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA + AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA + AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ + AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ + AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA + AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm + ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ + Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz + AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA + AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM + AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM + ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM + Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA + AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM + AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ + AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz + AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm + AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw + AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/4QAAv8BAAH/AgcB/wEA + A/8IAAH/AQcBvAH/KQAD/wHxAvIB8QT/CAAB8QLyAfEmAAH/AgAD/wHyAfEB8gHzBP8HAAH/AfECGgHy + Af8lAAH/AgAC/wEAAfMBvAHwAfQE/wcAAf8BmgIyARoB/yUAAf8CAAH/AQAB/wHyAvAB8gH/AQAC/wcA + Af8BegJTAZoB/yUAAf8CAAH/AQAB9AHxAfIC8QH0AQAC/wcAAfMBUwF6AVkBUwHzJQAB/wMAAf8B8gLz + AvIB8AH/AQAB/wYAAf8BWQN6AVkBMgH/JAAB/wMAAfQB8wH0AvMC8gH0AQAB/wYAARoCmgN6AVkBGiQA + Af8DAAX0AvMB9AEAAf8GAAEaBHoCmgEaJAAB/wMABf8C9AH/AQAB/wYAAf8GegH/JAAB/wIAC/8GAAH/ + ARoBmgJ6AZoBGwH/JAAB/wIAAf8BAAb/AQAC/wcAAv8C9AL/JQAB/z8AAf8/AAFCAU0BPgcAAT4DAAEo + AwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAE/wQABP8EAAHkASMB/AE/BAAB4AEDAfwBPwQAAWABAwH4 + AR8EAAFkAQMB+AEfBAABaAETAfgBHwQAAWgBEwH4AR8EAAFwAQsB8AEPBAABcAELAfABDwQAAXABCwHw + AQ8EAAFwAQsB8AEPBAABYAEDAfABDwQAAWgBEwH4AR8EAAF/A/8EAAF/A/8EAAs= @@ -845,6 +1028,17 @@ Y4C55tAaQOosc+gKMMscbgvAjp18d86hEWFGgGQcv0Zr90FTwmiAwjie9KsSkv6/r4SRAJl5PLmx/Kos tDAYYN9x+C+5Qgu9AY5vX2UOWhgIsM/L23NdgxbGA/BR9faghTxAI/l8LVpoXFAyJcAo5c4rTNETU/TE FD0xRU9M0RNT9CMsP8YUDae/Iv6fAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfeCwsKBjVJT4ecAAAA7UlEQVRYR8WTDQ6CMBTG + OJin9XTeYlIj5jm78TeeJk2kkPQjwFRK+SsqM1GZicqRzL/bDH/mQzlvchQxnj6gjnOs15k8C7EQbsZB + pTHdH2WhPhchFsLQjINKIw5ojSAWwtCNg0qjHlCPIBbCsBoHlS1aI4iFMGyKg8oeNuJoHFSu0RmxKw4q + t2Aj6mu2oHIN7vR1xwNGqOzxiS+cHKGyxU/8/czPjFBpEAth+Hrhjo5QWUMshEHf9ksGEAth6H5qQwcQ + C2HY/Z2voRKIhfAlcXCZFAeXSXFwmRQHlZmozERlJiozUZmJykxU5lGmJ/1JCrpcgBacAAAAAElFTkSu + QmCC @@ -907,7 +1101,7 @@ 1AXpLtPnGvrkHPrkHPrkHPrkHPrkHPrkHPrkHPrkHPrkHPqj8QedywzpExYb4AAAAABJRU5ErkJggg== - + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO xAAADsQBlSsOGwAAAAd0SU1FB94KHhYtDVimFmIAAAC6SURBVFhH7Y9RDoMwDEM5GPe/VldLzcgSUxKY @@ -1010,7 +1204,7 @@ 634, 10 - 34 + 42 diff --git a/Form1.vb b/Form1.vb index 28c9a2c..6a4588c 100644 --- a/Form1.vb +++ b/Form1.vb @@ -12,6 +12,8 @@ Public Class Form1 Private m_sIniFile As String = String.Empty Private WithEvents m_Controller As New Controller + Private m_bShowGrid As Boolean + Private m_bShowGridFrame As Boolean '-------------------------------- Form ------------------------------------------------------------ Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load @@ -47,6 +49,10 @@ Public Class Form1 Dim MarkColor As New Color3d(255, 255, 0) GetPrivateProfileColor("Scene", "Mark", MarkColor, m_sIniFile) Scene1.SetMarkMaterial(MarkColor) + ' imposto colore per superfici selezionate + Dim SelSurfColor As New Color3d(255, 255, 192) + GetPrivateProfileColor("Scene", "SelSurf", SelSurfColor, m_sIniFile) + Scene1.SetSelSurfMaterial(SelSurfColor) ' imposto tipo e colore del rettangolo di zoom Dim bOutline As Boolean = True Dim ZwColor As New Color3d(0, 0, 0) @@ -65,8 +71,8 @@ Public Class Form1 ' inizializzo scena Scene1.Init() ' imposto i dati della griglia - Dim bShowGrid As Boolean = (GetPrivateProfileInt("Grid", "ShowGrid", 1, m_sIniFile) <> 0) - Dim bShowFrame As Boolean = (GetPrivateProfileInt("Grid", "ShowFrame", 1, m_sIniFile) <> 0) + m_bShowGrid = (GetPrivateProfileInt("Grid", "ShowGrid", 1, m_sIniFile) <> 0) + m_bShowGridFrame = (GetPrivateProfileInt("Grid", "ShowFrame", 1, m_sIniFile) <> 0) Dim dSnapStep As Double = GetPrivateProfileDouble("Grid", "SnapStep", 10, m_sIniFile) Dim nMinLineSStep As Integer = GetPrivateProfileInt("Grid", "MinLineSStep", 1, m_sIniFile) Dim nMajLineSStep As Integer = GetPrivateProfileInt("Grid", "MajLineSStep", 10, m_sIniFile) @@ -75,7 +81,7 @@ Public Class Form1 GetPrivateProfileColor("Grid", "MinLnColor", MinLnColor, m_sIniFile) Dim MajLnColor As New Color3d(160, 160, 160) GetPrivateProfileColor("Grid", "MajLnColor", MajLnColor, m_sIniFile) - EgtSetGridShow(bShowGrid, bShowFrame) + EgtSetGridShow(m_bShowGrid, m_bShowGridFrame) EgtSetGridFrame(Frame3d.GLOB) EgtSetGridGeo(dSnapStep, nMinLineSStep, nMajLineSStep, nExtSStep) EgtSetGridColor(MinLnColor, MajLnColor) @@ -190,11 +196,8 @@ Public Class Form1 Private Sub OnNewProject(ByVal sender As Object) Handles Scene1.OnNewProject m_Controller.ResetCurrFile() - m_Controller.ResetModified() m_Controller.ExecuteCommand(CMD.RESETCURRPARTLAYER) - EmitTitle() - EmitCurrPartLayer() - LoadObjTree() + m_Controller.ResetModified() End Sub Private Sub OnOpeningProject(ByVal sender As Object) Handles Scene1.OnOpeningProject @@ -203,11 +206,8 @@ Public Class Form1 Private Sub OnOpenProject(ByVal sender As Object, ByVal sFile As String) Handles Scene1.OnOpenProject m_Controller.SetCurrFile(sFile) - m_Controller.ResetModified() m_Controller.ExecuteCommand(CMD.RESETCURRPARTLAYER) - EmitTitle() - EmitCurrPartLayer() - LoadObjTree() + m_Controller.ResetModified() WritePrivateProfileString("General", "LastNgeDir", Path.GetDirectoryName(sFile), m_sIniFile) End Sub @@ -227,11 +227,8 @@ Public Class Form1 Private Sub OnImportedProject(ByVal sender As Object, ByVal sFile As String) Handles Scene1.OnImportedProject m_Controller.SetCurrFile(sFile) - m_Controller.SetModified() m_Controller.ExecuteCommand(CMD.RESETCURRPARTLAYER) - EmitTitle() - EmitCurrPartLayer() - LoadObjTree() + m_Controller.SetModified() WritePrivateProfileString("General", "LastImpDir", Path.GetDirectoryName(sFile), m_sIniFile) End Sub @@ -249,7 +246,6 @@ Public Class Form1 Private Sub OnExecutedScript(ByVal sender As Object) Handles Scene1.OnExecutedScript m_Controller.SetModified() - LoadObjTree() End Sub Private Sub OnMouseSelectedPoint(ByVal sender As Object, ByVal PtP As Point3d) Handles Scene1.OnMouseSelectedPoint @@ -275,10 +271,18 @@ Public Class Form1 SetInputBox(sTitle, sLabel, nType) End Sub - Private Sub OnUpdateUI(ByVal sender) Handles m_Controller.UpdateUI + Private Sub OnUpdateUI(ByVal sender As Object, ByVal bReloadUI As Boolean) Handles m_Controller.UpdateUI + ' pulisco input e relativi messaggi ResetInputBox() ToolStripStatusOutput.Text = "" - LoadObjTree() + ' aggiorno dati correnti + EmitTitle() + EmitCurrPartLayer() + If bReloadUI Then + LoadObjTree() + Else + UpdateObjTree() + End If End Sub '-------------------------------- Buttons -------------------------------------------------------- @@ -400,6 +404,10 @@ Public Class Form1 Scene1.RightView() End Sub + Private Sub btnBottom_Click(sender As System.Object, e As System.EventArgs) Handles btnBottom.Click + Scene1.BottomView() + End Sub + Private Sub btnIsoSW_Click(sender As System.Object, e As System.EventArgs) Handles btnIsoSW.Click Scene1.IsoViewSW() End Sub @@ -416,11 +424,62 @@ Public Class Form1 Scene1.IsoViewNW() End Sub + Private Sub btnCplaneTop_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneTop.Click + m_Controller.SetLastIntegers(GRID_TYPE.TOP, 0) + m_Controller.ExecuteCommand(CMD.GRID) + End Sub + + Private Sub btnCplaneFront_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneFront.Click + m_Controller.SetLastIntegers(GRID_TYPE.FRONT, 0) + m_Controller.ExecuteCommand(CMD.GRID) + End Sub + + Private Sub btnCplaneRight_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneRight.Click + m_Controller.SetLastIntegers(GRID_TYPE.RIGHT, 0) + m_Controller.ExecuteCommand(CMD.GRID) + End Sub + + Private Sub btnCplaneBack_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneBack.Click + m_Controller.SetLastIntegers(GRID_TYPE.BACK, 0) + m_Controller.ExecuteCommand(CMD.GRID) + End Sub + + Private Sub btnCplaneLeft_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneLeft.Click + m_Controller.SetLastIntegers(GRID_TYPE.LEFT, 0) + m_Controller.ExecuteCommand(CMD.GRID) + End Sub + + Private Sub btnCplaneBottom_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneBottom.Click + m_Controller.SetLastIntegers(GRID_TYPE.BOTTOM, 0) + m_Controller.ExecuteCommand(CMD.GRID) + End Sub + + Private Sub btnCplaneElevation_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneElevation.Click + m_Controller.ExecuteCommand(CMD.GRID_ELEVATION) + End Sub + + Private Sub btnCplaneOrigin_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneOrigin.Click + m_Controller.ExecuteCommand(CMD.GRID_ORIGIN) + End Sub + + Private Sub btnCplaneRotate_Click(sender As System.Object, e As System.EventArgs) Handles btnCplaneRotate.Click + m_Controller.ExecuteCommand(CMD.GRID_ROTATE) + End Sub + + Private Sub btnCplane3Points_Click(sender As System.Object, e As System.EventArgs) Handles btnCplane3P.Click + m_Controller.ExecuteCommand(CMD.GRID_3P) + End Sub + ' --------------------- Update UI ------------------------------- Private Sub Application_Idle(ByVal sender As Object, ByVal e As EventArgs) ' Gestione abilitazione bottoni Dim bLayerOk As Boolean = (m_Controller.GetCurrLayer() <> GDB_ID.NULL) Dim bSelOk As Boolean = (EgtGetFirstSelectedObj() <> GDB_ID.NULL) + ' Grid + btnCplaneElevation.Enabled = m_bShowGrid + btnCplaneOrigin.Enabled = m_bShowGrid + btnCplaneRotate.Enabled = m_bShowGrid + btnCplane3P.Enabled = m_bShowGrid ' Draw btnPoint.Enabled = bLayerOk btnLine2P.Enabled = bLayerOk @@ -435,8 +494,9 @@ Public Class Form1 btnDelete.Enabled = bSelOk btnChangeColor.Enabled = bSelOk btnInvertCurve.Enabled = bSelOk + btnBreakCurve.Enabled = bSelOk btnJoinCurve.Enabled = bLayerOk And bSelOk - btnSplitCurve.Enabled = bSelOk + btnSeparateCurve.Enabled = bSelOk ' Transform btnCopy.Enabled = bSelOk btnMove.Enabled = bSelOk @@ -479,6 +539,7 @@ Public Class Form1 End Sub Private Sub btnDelete_Click(sender As System.Object, e As System.EventArgs) Handles btnDelete.Click + m_Controller.SetLastIntegers(GDB_ID.SEL, 0) m_Controller.ExecuteCommand(CMD.DELETE) End Sub @@ -494,12 +555,16 @@ Public Class Form1 m_Controller.ExecuteCommand(CMD.INVERTCRVSURF) End Sub + Private Sub btnBreakCurve_Click(sender As System.Object, e As System.EventArgs) Handles btnBreakCurve.Click + m_Controller.ExecuteCommand(CMD.BREAKCURVE) + End Sub + Private Sub btnJoinCurve_Click(sender As System.Object, e As System.EventArgs) Handles btnJoinCurve.Click m_Controller.ExecuteCommand(CMD.JOINCURVE) End Sub - Private Sub btnSplitCurve_Click(sender As System.Object, e As System.EventArgs) Handles btnSplitCurve.Click - m_Controller.ExecuteCommand(CMD.SPLITCURVE) + Private Sub btnSeparateCurve_Click(sender As System.Object, e As System.EventArgs) Handles btnSeparateCurve.Click + m_Controller.ExecuteCommand(CMD.SEPARATECURVE) End Sub Private Sub btnMove_Click(sender As System.Object, e As System.EventArgs) Handles btnMove.Click @@ -579,10 +644,10 @@ Public Class Form1 'recupero il tipo di oggetto Dim nType As Integer = EgtGetType(nId) 'se gruppo - If nType = TY.GROUP Then + If nType = GDB_TY.GROUP Then XUnMirrorTexts(nId) ' se testo - ElseIf nType = TY.EXT_TEXT Then + ElseIf nType = GDB_TY.EXT_TEXT Then EgtMirrorText(nId, True) End If ' passo al successivo @@ -609,6 +674,7 @@ Public Class Form1 Private Sub Scene1_KeyDown(ByVal sender As System.Object, ByVal e As KeyEventArgs) Handles Scene1.KeyDown ' Con DEL eseguo cancellazione delle entità selezionate If e.KeyData = Keys.Delete Then + m_Controller.SetLastIntegers(GDB_ID.SEL, 0) m_Controller.ExecuteCommand(CMD.DELETE) ' con SPAZIO ripeto l'ultimo comando ElseIf e.KeyData = Keys.Space Then @@ -740,22 +806,14 @@ Public Class Form1 '-------------------------------- Current Piece/Layer -------------------------------------------- Private Sub btnNewPart_Click(sender As System.Object, e As System.EventArgs) Handles btnNewPart.Click m_Controller.ExecuteCommand(CMD.NEWPART) - ' aggiorno visualizzazione - EmitCurrPartLayer() - LoadObjTree() End Sub Private Sub btnNewLayer_Click(sender As System.Object, e As System.EventArgs) Handles btnNewLayer.Click m_Controller.ExecuteCommand(CMD.NEWLAYER) - ' aggiorno visualizzazione - EmitCurrPartLayer() - LoadObjTree() End Sub Private Sub btnColor_Click(sender As System.Object, e As System.EventArgs) Handles btnColor.Click m_Controller.ExecuteCommand(CMD.LAYERCOLOR) - ' aggiorno visualizzazione - EmitCurrPartLayer() End Sub Private Sub EmitCurrPartLayer() @@ -780,7 +838,6 @@ Public Class Form1 '-------------------------------- Tree View ------------------------------------------------------ Private m_nObjTreeOldId As Integer = GDB_ID.NULL - Private m_bMark As Boolean = True Private Sub ObjTreeTickEvent(source As Object, e As EventArgs) Handles ObjTreeTimer.Tick If m_nObjTreeOldId <> GDB_ID.NULL Then @@ -796,9 +853,7 @@ Public Class Form1 AddGroupInObjTree(GDB_ID.ROOT, 0, TreeView1.Nodes) TreeView1.EndUpdate() If nOldId <> GDB_ID.NULL Then - m_bMark = False SelectIdInObjTree(nOldId) - m_bMark = True End If End Sub @@ -834,13 +889,17 @@ Public Class Form1 sText = "Group " + nGroupId.ToString End If End If - Dim nImage As Integer = TypeToImageInObjTree(TY.GROUP, nLev) - CurrNodColl = PrevNodColl.Add(nGroupId.ToString, sText, nImage, nImage).Nodes + Dim nImage As Integer = TypeToImageInObjTree(GDB_TY.GROUP, nLev) + Dim CurrNod As TreeNode = PrevNodColl.Add(nGroupId.ToString(), sText, nImage, nImage) + CurrNodColl = CurrNod.Nodes + Dim nStat As GDB_ST = GDB_ST.ON_ + EgtGetStatus(nGroupId, nStat) + CurrNod.Checked = (nStat <> GDB_ST.OFF) End If Dim nObjs As Integer = EgtGetGroupObjs(nGroupId) If (nObjs > 20000) Then - CurrNodColl.Add("-1", "Too many entities") + CurrNodColl.Add(GDB_ID.NULL.ToString(), "Too many entities") Return End If @@ -849,10 +908,10 @@ Public Class Form1 'recupero il tipo di nodo Dim nType As Integer = EgtGetType(nId) 'se gruppo - If nType = TY.GROUP Then + If nType = GDB_TY.GROUP Then AddGroupInObjTree(nId, nLev + 1, CurrNodColl) 'se oggetto geometrico - ElseIf nType >= TY.GEO_VECTOR Then + ElseIf nType >= GDB_TY.GEO_VECTOR Then Dim sTitle As String = String.Empty EgtGetTitle(nId, sTitle) Dim sName As String = String.Empty @@ -863,16 +922,23 @@ Public Class Form1 sText = sTitle + " " + nId.ToString End If Dim nImage As Integer = TypeToImageInObjTree(nType, nLev) - CurrNodColl.Add(nId.ToString, sText, nImage, nImage) + Dim CurrNod As TreeNode = CurrNodColl.Add(nId.ToString, sText, nImage, nImage) + Dim nStat As GDB_ST = GDB_ST.ON_ + EgtGetStatus(nId, nStat) + CurrNod.Checked = (nStat <> GDB_ST.OFF) End If 'passo al successivo nId = EgtGetNext(nId) End While End Sub + Private Sub UpdateObjTree() + ' per aggiornare l'albero senza ricostruirlo da capo + End Sub + Private Function TypeToImageInObjTree(ByVal nType As Integer, ByVal nLev As Integer) As Integer Select Case nType - Case TY.GROUP + Case GDB_TY.GROUP If nLev = 1 Then Return 3 ElseIf nLev = 2 Then @@ -880,29 +946,52 @@ Public Class Form1 Else Return 2 End If - Case TY.GEO_VECTOR + Case GDB_TY.GEO_VECTOR Return 5 - Case TY.GEO_POINT + Case GDB_TY.GEO_POINT Return 6 - Case TY.GEO_FRAME + Case GDB_TY.GEO_FRAME Return 7 - Case TY.CRV_LINE + Case GDB_TY.CRV_LINE Return 8 - Case TY.CRV_ARC + Case GDB_TY.CRV_ARC Return 9 - Case TY.CRV_BEZ + Case GDB_TY.CRV_BEZ Return 10 - Case TY.CRV_COMPO + Case GDB_TY.CRV_COMPO Return 11 - Case TY.SRF_MESH + Case GDB_TY.SRF_MESH Return 12 - Case TY.EXT_TEXT + Case GDB_TY.EXT_TEXT Return 13 End Select Return 1 End Function + Private Sub ObjTree_AfterCheck(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles TreeView1.AfterCheck + ' verifico che il check derivi da azione utente + If e.Action = TreeViewAction.Unknown Then + Return + End If + ' recupero l'Id del nuovo oggetto + Dim nId As Integer + If Not Int32.TryParse(e.Node.Name, nId) Then + Return + End If + ' eseguo operazione + m_Controller.SetLastIntegers(nId, 0) + If e.Node.Checked Then + m_Controller.ExecuteCommand(CMD.SHOW) + Else + m_Controller.ExecuteCommand(CMD.HIDE) + End If + End Sub + Private Sub ObjTree_AfterSelect(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles TreeView1.AfterSelect + ' verifico che il select derivi da azione utente + If e.Action = TreeViewAction.Unknown Then + Return + End If ' recupero l'Id del nuovo oggetto selezionato Dim nId As Integer If Not Int32.TryParse(e.Node.Name, nId) Then @@ -912,7 +1001,10 @@ Public Class Form1 End Sub Private Sub ObjTree_MouseUp(ByVal sender As Object, e As MouseEventArgs) Handles TreeView1.MouseUp - If m_nObjTreeOldId <> GDB_ID.NULL Then + Dim nId As Integer + Dim TNode As TreeNode = TreeView1.GetNodeAt(e.Location) + If TNode IsNot Nothing AndAlso Int32.TryParse(TNode.Name, nId) AndAlso + m_nObjTreeOldId = nId Then ' evidenzio EgtSetMark(m_nObjTreeOldId) EgtDraw() @@ -924,20 +1016,28 @@ Public Class Form1 Private Sub ObjTree_MouseDoubleClick(ByVal sender As Object, e As MouseEventArgs) Handles TreeView1.MouseDoubleClick If m_nObjTreeOldId <> GDB_ID.NULL Then + ' se non è un gruppo ne cerco il padre + Dim nId As Integer = m_nObjTreeOldId + While EgtGetType(nId) <> GDB_TY.GROUP + nId = EgtGetParent(nId) + If nId = GDB_ID.NULL Then + Return + End If + End While ' recupero il padre - Dim nIdParent As Integer = EgtGetParent(m_nObjTreeOldId) + Dim nIdParent As Integer = EgtGetParent(nId) If nIdParent = GDB_ID.NULL Then Return ' se Part ElseIf nIdParent = GDB_ID.ROOT Then ' cerco il primo Layer del Part - Dim nId As Integer = EgtGetFirstGroupInGroup(m_nObjTreeOldId) - m_Controller.SetLastIntegers(m_nObjTreeOldId, nId) + Dim nIdLayer As Integer = EgtGetFirstGroupInGroup(nId) + m_Controller.SetLastIntegers(nId, nIdLayer) m_Controller.ExecuteCommand(CMD.SETCURRPARTLAYER) EmitCurrPartLayer() ' se Layer ElseIf EgtGetParent(nIdParent) = GDB_ID.ROOT Then - m_Controller.SetLastIntegers(nIdParent, m_nObjTreeOldId) + m_Controller.SetLastIntegers(nIdParent, nId) m_Controller.ExecuteCommand(CMD.SETCURRPARTLAYER) EmitCurrPartLayer() End If @@ -948,9 +1048,7 @@ Public Class Form1 ' Con DEL eseguo cancellazione del pezzo o del layer selezionati If e.KeyData = Keys.Delete Then m_Controller.SetLastIntegers(m_nObjTreeOldId, 0) - m_Controller.ExecuteCommand(CMD.DELETEPARTLAYER) - EmitCurrPartLayer() - LoadObjTree() + m_Controller.ExecuteCommand(CMD.DELETE) End If End Sub @@ -961,9 +1059,9 @@ Public Class Form1 Dim nType As Integer = EgtGetType(nId) ' stampa dei dati del nuovo oggetto Dim sDump As String = String.Empty - If nType = TY.NONE Then + If nType = GDB_TY.NONE Then tBoxInfo.Text = String.Empty - ElseIf nType = TY.GROUP Then + ElseIf nType = GDB_TY.GROUP Then If EgtGroupDump(nId, sDump) Then tBoxInfo.Text = sDump Else @@ -976,19 +1074,7 @@ Public Class Form1 tBoxInfo.Text = String.Empty End If End If - If Not m_bMark Then - m_nObjTreeOldId = nId - Return - End If - ' permetto in ogni caso la visualizzazione dell'oggetto e lo evidenzio - Dim nOldMode As Integer = GDB_MD.STD - EgtGetMode(nId, nOldMode) - Dim nMode As Integer = IIf((nOldMode = GDB_MD.HIDDEN), GDB_MD.STD, nOldMode) - EgtSetMode(nId, nMode) - Dim nOldStatus As Integer = GDB_ST.ON_ - EgtGetStatus(nId, nOldStatus) - Dim nStat As Integer = IIf((nOldStatus = GDB_ST.OFF), GDB_ST.ON_, nOldStatus) - EgtSetStatus(nId, nStat) + ' evidenzio l'oggetto EgtSetMark(nId) m_nObjTreeOldId = nId ' imposto il ridisegno della scena @@ -1003,9 +1089,7 @@ Public Class Form1 Dim nOldId As Integer = m_nObjTreeOldId ' se non nullo... If EgtExistsObj(m_nObjTreeOldId) Then - ' ripristino il modo e lo stato precedente dell'oggetto e lo smarco - EgtRevertMode(m_nObjTreeOldId) - EgtRevertStatus(m_nObjTreeOldId) + ' smarco l'oggetto EgtResetMark(m_nObjTreeOldId) ' annullo oggetto da ripristinare m_nObjTreeOldId = GDB_ID.NULL @@ -1018,15 +1102,17 @@ Public Class Form1 If tNode.Length > 0 Then TreeView1.SelectedNode = tNode(0) TreeView1.SelectedNode.Expand() + m_nObjTreeOldId = nId Return True Else + m_nObjTreeOldId = GDB_ID.NULL Return False End If End Function '-------------------------------- Program Title -------------------------------------------------- - Private Sub EmitTitle() + Private Sub EmitTitle() ' nome file Dim sTitle As String = m_Controller.GetCurrFile() If String.IsNullOrEmpty(sTitle) Then @@ -1042,4 +1128,16 @@ Public Class Form1 Me.Text = sTitle End Sub + '-------------------------------- Status Bar ----------------------------------------------------- + Private Sub ToolStripStatusGrid_Click() Handles ToolStripStatusGrid.Click + m_bShowGrid = Not m_bShowGrid + If m_bShowGrid Then + ToolStripStatusGrid.ForeColor = Color.Black + Else + ToolStripStatusGrid.ForeColor = Color.LightGray + End If + EgtSetGridShow(m_bShowGrid, m_bShowGrid And m_bShowGridFrame) + EgtDraw() + End Sub + End Class diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 20840c9..fc7a76c 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -43,5 +43,5 @@ Imports System.Runtime.InteropServices ' utilizzando l'asterisco (*) come descritto di seguito: ' - - + + diff --git a/Resources/BreakCurve.png b/Resources/BreakCurve.png new file mode 100644 index 0000000..a68906b Binary files /dev/null and b/Resources/BreakCurve.png differ diff --git a/Resources/Cplane3POINTS.png b/Resources/Cplane3POINTS.png new file mode 100644 index 0000000..1c00185 Binary files /dev/null and b/Resources/Cplane3POINTS.png differ diff --git a/Resources/CplaneBACK.png b/Resources/CplaneBACK.png new file mode 100644 index 0000000..55c030f Binary files /dev/null and b/Resources/CplaneBACK.png differ diff --git a/Resources/CplaneBOTTOM.png b/Resources/CplaneBOTTOM.png new file mode 100644 index 0000000..4ed2c5b Binary files /dev/null and b/Resources/CplaneBOTTOM.png differ diff --git a/Resources/CplaneELEVATION.png b/Resources/CplaneELEVATION.png new file mode 100644 index 0000000..7238a18 Binary files /dev/null and b/Resources/CplaneELEVATION.png differ diff --git a/Resources/CplaneFRONT.png b/Resources/CplaneFRONT.png new file mode 100644 index 0000000..f4007b9 Binary files /dev/null and b/Resources/CplaneFRONT.png differ diff --git a/Resources/CplaneLEFT.png b/Resources/CplaneLEFT.png new file mode 100644 index 0000000..87afec4 Binary files /dev/null and b/Resources/CplaneLEFT.png differ diff --git a/Resources/CplaneORIGIN.png b/Resources/CplaneORIGIN.png new file mode 100644 index 0000000..fb91c47 Binary files /dev/null and b/Resources/CplaneORIGIN.png differ diff --git a/Resources/CplaneRIGHT.png b/Resources/CplaneRIGHT.png new file mode 100644 index 0000000..de30cb2 Binary files /dev/null and b/Resources/CplaneRIGHT.png differ diff --git a/Resources/CplaneROTATE.png b/Resources/CplaneROTATE.png new file mode 100644 index 0000000..1fec793 Binary files /dev/null and b/Resources/CplaneROTATE.png differ diff --git a/Resources/CplaneTOP.png b/Resources/CplaneTOP.png new file mode 100644 index 0000000..8b99343 Binary files /dev/null and b/Resources/CplaneTOP.png differ diff --git a/Resources/LookFromBOTTOM.png b/Resources/LookFromBOTTOM.png new file mode 100644 index 0000000..73804fc Binary files /dev/null and b/Resources/LookFromBOTTOM.png differ diff --git a/Resources/SplitCurve.png b/Resources/SeparateCurve.png similarity index 100% rename from Resources/SplitCurve.png rename to Resources/SeparateCurve.png diff --git a/Scene.vb b/Scene.vb index 90a7e2f..9784892 100644 --- a/Scene.vb +++ b/Scene.vb @@ -36,6 +36,7 @@ Public Class Scene Private m_BackBotColor As Color3d Private m_DefColor As Color3d Private m_MarkColor As Color3d + Private m_SelSurfColor As Color3d Private m_bZwOutline As Boolean Private m_ZwColor As Color3d Private m_DstLnColor As Color3d @@ -62,6 +63,7 @@ Public Class Scene m_BackBotColor.Setup(40, 44, 48) m_DefColor.Setup(255, 165, 0) m_MarkColor.Setup(255, 255, 0) + m_SelSurfColor.Setup(255, 255, 192) m_bZwOutline = True m_ZwColor.Setup(0, 0, 0) m_DstLnColor.Setup(255, 0, 0) @@ -89,6 +91,10 @@ Public Class Scene m_MarkColor = DefColor End Sub + Public Sub SetSelSurfMaterial(ByRef DefColor As Color3d) + m_SelSurfColor = DefColor + End Sub + Public Sub SetZoomWinAttribs(ByVal bZwOutline As Boolean, ByRef ZwColor As Color3d) m_bZwOutline = bZwOutline m_ZwColor = ZwColor @@ -107,6 +113,7 @@ Public Class Scene EgtInitScene(Handle, m_nDriver, m_b2Buff, m_nColorBits, m_nDepthBits) EgtSetBackground(m_BackTopColor, m_BackBotColor) EgtSetMarkAttribs(m_MarkColor) + EgtSetSelSurfAttribs(m_SelSurfColor) EgtSetWinRectAttribs(m_bZwOutline, m_ZwColor) EgtSetGeoLineAttribs(m_DstLnColor) EgtInitTscExec() @@ -1007,6 +1014,10 @@ Public Class Scene EgtSetView(VT.RIGHT) End Sub + Public Sub BottomView() + EgtSetView(VT.BOTTOM) + End Sub + Public Sub IsoViewSW() EgtSetView(VT.ISO_SW) End Sub