Files
EgtCAM5/DrawPanel/DrawPanelVM.vb
T
Emmanuele Sassi 6dd2abf95d EgtCAM5 :
- Altri nomi modificati.
- Eliminato namespace.
2018-04-11 10:43:14 +00:00

1454 lines
42 KiB
VB.net

Imports EgtUILib
Public Class DrawPanelVM
Inherits ViewModelBase
Private WithEvents IdleTimer As New System.Windows.Threading.DispatcherTimer(TimeSpan.FromMilliseconds(200), Windows.Threading.DispatcherPriority.ApplicationIdle, AddressOf OnIdle, Application.Current.Dispatcher)
#Region "FIELDS & PROPERTIES"
#Region "Messages"
Public ReadOnly Property Draw2DMsg As String
Get
Return EgtMsg(MSG_DRAWPANEL + 44)
End Get
End Property
Public ReadOnly Property Draw3DMsg As String
Get
Return EgtMsg(MSG_DRAWPANEL + 45)
End Get
End Property
Public ReadOnly Property ModifyMsg As String
Get
Return EgtMsg(MSG_DRAWPANEL + 46)
End Get
End Property
Public ReadOnly Property TransformMsg As String
Get
Return EgtMsg(MSG_DRAWPANEL + 47)
End Get
End Property
#End Region ' Messages
#Region "ToolTip"
'Proprietà ToolTip
Public ReadOnly Property PointToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 1)
End Get
End Property
Public ReadOnly Property Line2PToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 2)
End Get
End Property
Public ReadOnly Property LinePDLToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 3)
End Get
End Property
Public ReadOnly Property CirclePDToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 4)
End Get
End Property
Public ReadOnly Property CircleCDToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 5)
End Get
End Property
Public ReadOnly Property ArcCSEToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 6)
End Get
End Property
Public ReadOnly Property Arc3PToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 7)
End Get
End Property
Public ReadOnly Property ArcPDPToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 8)
End Get
End Property
Public ReadOnly Property FilletToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 9)
End Get
End Property
Public ReadOnly Property ChamferToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 10)
End Get
End Property
Public ReadOnly Property Rectangle2PToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 11)
End Get
End Property
Public ReadOnly Property PolygonToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 12)
End Get
End Property
Public ReadOnly Property PolygonSideToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 13)
End Get
End Property
Public ReadOnly Property TextToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 14)
End Get
End Property
Public ReadOnly Property PlaneToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 15)
End Get
End Property
Public ReadOnly Property ExtrudeToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 16)
End Get
End Property
Public ReadOnly Property RevolveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 17)
End Get
End Property
Public ReadOnly Property ScrewToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 18)
End Get
End Property
Public ReadOnly Property RuledToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 19)
End Get
End Property
Public ReadOnly Property MergeSurfToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 20)
End Get
End Property
Public ReadOnly Property ExplodeSurfToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 21)
End Get
End Property
Public ReadOnly Property InvertSurfToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 22)
End Get
End Property
Public ReadOnly Property DeleteToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 23)
End Get
End Property
Public ReadOnly Property ChangeLayerToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 24)
End Get
End Property
Public ReadOnly Property ChangeAlphaToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 25)
End Get
End Property
Public ReadOnly Property ResetColorToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 26)
End Get
End Property
Public ReadOnly Property ChangeColorToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 27)
End Get
End Property
Public ReadOnly Property InvertCurveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 28)
End Get
End Property
Public ReadOnly Property ChangeStartToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 29)
End Get
End Property
Public ReadOnly Property ExtendCurveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 30)
End Get
End Property
Public ReadOnly Property BreakCurveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 31)
End Get
End Property
Public ReadOnly Property SplitCurveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 32)
End Get
End Property
Public ReadOnly Property JoinCurveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 33)
End Get
End Property
Public ReadOnly Property ExplodeCurveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 34)
End Get
End Property
Public ReadOnly Property ThickCurveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 35)
End Get
End Property
Public ReadOnly Property MoveToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 36)
End Get
End Property
Public ReadOnly Property RotateToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 37)
End Get
End Property
Public ReadOnly Property Rotate3DToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 38)
End Get
End Property
Public ReadOnly Property MirrorToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 39)
End Get
End Property
Public ReadOnly Property Mirror3DToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 40)
End Get
End Property
Public ReadOnly Property ScaleToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 41)
End Get
End Property
Public ReadOnly Property Scale3DToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 42)
End Get
End Property
Public ReadOnly Property OffsetToolTip As String
Get
Return EgtMsg(MSG_DRAWPANEL + 43)
End Get
End Property
#End Region ' ToolTip
' Proprietà che permettono di aprire e chiudere gli expander
Private m_Draw2DIsExpanded As Boolean
Public Property Draw2DIsExpanded As Boolean
Get
Return m_Draw2DIsExpanded
End Get
Set(value As Boolean)
m_Draw2DIsExpanded = value
End Set
End Property
Private m_Draw3DIsExpanded As Boolean
Public Property Draw3DIsExpanded As Boolean
Get
Return m_Draw3DIsExpanded
End Get
Set(value As Boolean)
m_Draw3DIsExpanded = value
End Set
End Property
Private m_ModifyIsExpanded As Boolean
Public Property ModifyIsExpanded As Boolean
Get
Return m_ModifyIsExpanded
End Get
Set(value As Boolean)
m_ModifyIsExpanded = value
End Set
End Property
Private m_TransformIsExpanded As Boolean
Public Property TransformIsExpanded As Boolean
Get
Return m_TransformIsExpanded
End Get
Set(value As Boolean)
m_TransformIsExpanded = value
End Set
End Property
#Region "Button state"
Private m_bLayerOk As Boolean
Public Property bLayerOk As Boolean
Get
Return m_bLayerOk
End Get
Set(value As Boolean)
m_bLayerOk = value
OnPropertyChanged("bLayerOk")
End Set
End Property
Private m_bSelOk As Boolean
Public Property bSelOk As Boolean
Get
Return m_bSelOk
End Get
Set(value As Boolean)
m_bSelOk = value
OnPropertyChanged("bSelOk")
End Set
End Property
Private m_bLayerOkAndSelOk As Boolean
Public Property bLayerOkAndSelOk As Boolean
Get
Return m_bLayerOkAndSelOk
End Get
Set(value As Boolean)
m_bLayerOkAndSelOk = value
OnPropertyChanged("bLayerOkAndSelOk")
End Set
End Property
#End Region ' Button state
' Definizione comandi
Private m_cmdPoint As ICommand
Private m_cmdLine2P As ICommand
Private m_cmdLinePDL As ICommand
Private m_cmdCircleCP As ICommand
Private m_cmdCircleCD As ICommand
Private m_cmdArcCSE As ICommand
Private m_cmdArc3P As ICommand
Private m_cmdArcPDP As ICommand
Private m_cmdFillet As ICommand
Private m_cmdChamfer As ICommand
Private m_cmdRectangle2P As ICommand
Private m_cmdPolygon As ICommand
Private m_cmdPolygonSide As ICommand
Private m_cmdText As ICommand
Private m_cmdPlane As ICommand
Private m_cmdExtrude As ICommand
Private m_cmdRevolve As ICommand
Private m_cmdScrew As ICommand
Private m_cmdRuled As ICommand
Private m_cmdMergeSurf As ICommand
Private m_cmdExplodeSurf As ICommand
Private m_cmdInvertSurf As ICommand
Private m_cmdDelete As ICommand
Private m_cmdChangeLayer As ICommand
Private m_cmdChangeAlpha As ICommand
Private m_cmdResetColor As ICommand
Private m_cmdChangeColor As ICommand
Private m_cmdInvertCurve As ICommand
Private m_cmdChangeStartCurve As ICommand
Private m_cmdExtendCurve As ICommand
Private m_cmdBreakCurve As ICommand
Private m_cmdSplitCurve As ICommand
Private m_cmdJoinCurve As ICommand
Private m_cmdExplodeCurve As ICommand
Private m_cmdSetCurveTh As ICommand
Private m_cmdMove As ICommand
Private m_cmdRotate As ICommand
Private m_cmdRotate3D As ICommand
Private m_cmdMirror As ICommand
Private m_cmdMirror3D As ICommand
Private m_cmdScale As ICommand
Private m_cmdScale3D As ICommand
Private m_cmdOffset As ICommand
#End Region ' Fileds & Properties
#Region "CONSTRUCTOR"
Sub New()
' Leggo stato expander da file ini
Draw2DIsExpanded = If(GetPrivateProfileInt(S_GENERAL, K_DRAW2D, 0) = 0, False, True)
Draw3DIsExpanded = If(GetPrivateProfileInt(S_GENERAL, K_DRAW3D, 0) = 0, False, True)
ModifyIsExpanded = If(GetPrivateProfileInt(S_GENERAL, K_MODIFY, 0) = 0, False, True)
TransformIsExpanded = If(GetPrivateProfileInt(S_GENERAL, K_TRANSFORM, 0) = 0, False, True)
Application.Msn.Register(Application.CLOSEAPPLICATION, Sub()
If Not IniFile.m_bFailedRun Then
WritePrivateProfileString(S_GENERAL, K_DRAW2D, If(m_Draw2DIsExpanded, "1", "0"))
WritePrivateProfileString(S_GENERAL, K_DRAW3D, If(m_Draw3DIsExpanded, "1", "0"))
WritePrivateProfileString(S_GENERAL, K_MODIFY, If(m_ModifyIsExpanded, "1", "0"))
WritePrivateProfileString(S_GENERAL, K_TRANSFORM, If(m_TransformIsExpanded, "1", "0"))
End If
End Sub)
End Sub
#End Region ' Constructor
#Region "COMMANDS"
#Region "PointCommand"
''' <summary>
''' Returns a command that do Point.
''' </summary>
Public ReadOnly Property PointCommand As ICommand
Get
If m_cmdPoint Is Nothing Then
m_cmdPoint = New RelayCommand(AddressOf Point)
End If
Return m_cmdPoint
End Get
End Property
''' <summary>
''' Execute the Point. This method is invoked by the PointCommand.
''' </summary>
Public Sub Point(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.FRAME)
ElseIf (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.VECTOR)
Else
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.POINT)
End If
End Sub
#End Region ' PointCommand
#Region "Line2PCommand"
''' <summary>
''' Returns a command that do Line2P.
''' </summary>
Public ReadOnly Property Line2PCommand As ICommand
Get
If m_cmdLine2P Is Nothing Then
m_cmdLine2P = New RelayCommand(AddressOf Line2P)
End If
Return m_cmdLine2P
End Get
End Property
''' <summary>
''' Execute the Line2P. This method is invoked by the Line2PCommand.
''' </summary>
Public Sub Line2P(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
Map.refProjectVM.GetController.SetContinue()
'EmitStripStatusOutput(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
End If
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.LINE2P)
End Sub
#End Region ' Line2PCommand
#Region "LinePDLCommand"
''' <summary>
''' Returns a command that do LinePDL.
''' </summary>
Public ReadOnly Property LinePDLCommand As ICommand
Get
If m_cmdLinePDL Is Nothing Then
m_cmdLinePDL = New RelayCommand(AddressOf LinePDL)
End If
Return m_cmdLinePDL
End Get
End Property
''' <summary>
''' Execute the LinePDL. This method is invoked by the LinePDLCommand.
''' </summary>
Public Sub LinePDL(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.LINEPDL)
Else
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.LINEPVL)
End If
End Sub
#End Region ' LinePDLCommand
#Region "CircleCPCommand"
''' <summary>
''' Returns a command that do CircleCP.
''' </summary>
Public ReadOnly Property CircleCPCommand As ICommand
Get
If m_cmdCircleCP Is Nothing Then
m_cmdCircleCP = New RelayCommand(AddressOf CircleCP)
End If
Return m_cmdCircleCP
End Get
End Property
''' <summary>
''' Execute the CircleCP. This method is invoked by the CircleCPCommand.
''' </summary>
Public Sub CircleCP(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CIRCLECP)
End Sub
#End Region ' CircleCPCommand
#Region "CircleCDCommand"
''' <summary>
''' Returns a command that do CircleCD.
''' </summary>
Public ReadOnly Property CircleCDCommand As ICommand
Get
If m_cmdCircleCD Is Nothing Then
m_cmdCircleCD = New RelayCommand(AddressOf CircleCD)
End If
Return m_cmdCircleCD
End Get
End Property
''' <summary>
''' Execute the CircleCD. This method is invoked by the CircleCDCommand.
''' </summary>
Public Sub CircleCD(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CIRCLECD)
End Sub
#End Region ' CircleCDCommand
#Region "ArcCSECommand"
''' <summary>
''' Returns a command that do ArcCSE.
''' </summary>
Public ReadOnly Property ArcCSECommand As ICommand
Get
If m_cmdArcCSE Is Nothing Then
m_cmdArcCSE = New RelayCommand(AddressOf ArcCSE)
End If
Return m_cmdArcCSE
End Get
End Property
''' <summary>
''' Execute the ArcCSE. This method is invoked by the ArcCSECommand.
''' </summary>
Public Sub ArcCSE(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.ARCCSE)
End Sub
#End Region ' ArcCSECommand
#Region "Arc3PCommand"
''' <summary>
''' Returns a command that do Arc3P.
''' </summary>
Public ReadOnly Property Arc3PCommand As ICommand
Get
If m_cmdArc3P Is Nothing Then
m_cmdArc3P = New RelayCommand(AddressOf Arc3P)
End If
Return m_cmdArc3P
End Get
End Property
''' <summary>
''' Execute the Arc3P. This method is invoked by the Arc3PCommand.
''' </summary>
Public Sub Arc3P(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.ARC3P)
End Sub
#End Region ' Arc3PCommand
#Region "ArcPDPCommand"
''' <summary>
''' Returns a command that do ArcPDP.
''' </summary>
Public ReadOnly Property ArcPDPCommand As ICommand
Get
If m_cmdArcPDP Is Nothing Then
m_cmdArcPDP = New RelayCommand(AddressOf ArcPDP)
End If
Return m_cmdArcPDP
End Get
End Property
''' <summary>
''' Execute the ArcPDP. This method is invoked by the ArcPDPCommand.
''' </summary>
Public Sub ArcPDP(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
If (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control Then
Map.refProjectVM.GetController.SetContinue()
'EmitStripStatusOutput(EgtMsg(399)) ' Continue : 'L' with line, 'A' with arc
End If
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.ARCPDP)
Else
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.ARCPVP)
End If
End Sub
#End Region ' ArcPDPCommand
#Region "FilletCommand"
''' <summary>
''' Returns a command that do Fillet.
''' </summary>
Public ReadOnly Property FilletCommand As ICommand
Get
If m_cmdFillet Is Nothing Then
m_cmdFillet = New RelayCommand(AddressOf Fillet)
End If
Return m_cmdFillet
End Get
End Property
''' <summary>
''' Execute the Fillet. This method is invoked by the FilletCommand.
''' </summary>
Public Sub Fillet(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.FILLET)
End Sub
#End Region ' FilletCommand
#Region "ChamferCommand"
''' <summary>
''' Returns a command that do Chamfer.
''' </summary>
Public ReadOnly Property ChamferCommand As ICommand
Get
If m_cmdChamfer Is Nothing Then
m_cmdChamfer = New RelayCommand(AddressOf Chamfer)
End If
Return m_cmdChamfer
End Get
End Property
''' <summary>
''' Execute the Chamfer. This method is invoked by the ChamferCommand.
''' </summary>
Public Sub Chamfer(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CHAMFER)
End Sub
#End Region ' ChamferCommand
#Region "Rectangle2PCommand"
''' <summary>
''' Returns a command that do Rectangle2P.
''' </summary>
Public ReadOnly Property Rectangle2PCommand As ICommand
Get
If m_cmdRectangle2P Is Nothing Then
m_cmdRectangle2P = New RelayCommand(AddressOf Rectangle2P)
End If
Return m_cmdRectangle2P
End Get
End Property
''' <summary>
''' Execute the Rectangle2P. This method is invoked by the Rectangle2PCommand.
''' </summary>
Public Sub Rectangle2P(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.RECTANGLE2P)
End Sub
#End Region ' Rectangle2PCommand
#Region "PolygonCommand"
''' <summary>
''' Returns a command that do Polygon.
''' </summary>
Public ReadOnly Property PolygonCommand As ICommand
Get
If m_cmdPolygon Is Nothing Then
m_cmdPolygon = New RelayCommand(AddressOf Polygon)
End If
Return m_cmdPolygon
End Get
End Property
''' <summary>
''' Execute the Polygon. This method is invoked by the PolygonCommand.
''' </summary>
Public Sub Polygon(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.POLYGON)
End Sub
#End Region ' PolygonCommand
#Region "PolygonSideCommand"
''' <summary>
''' Returns a command that do PolygonSide.
''' </summary>
Public ReadOnly Property PolygonSideCommand As ICommand
Get
If m_cmdPolygonSide Is Nothing Then
m_cmdPolygonSide = New RelayCommand(AddressOf PolygonSide)
End If
Return m_cmdPolygonSide
End Get
End Property
''' <summary>
''' Execute the PolygonSide. This method is invoked by the PolygonSideCommand.
''' </summary>
Public Sub PolygonSide(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.POLYGONSIDE)
End Sub
#End Region ' PolygonSideCommand
#Region "TextCommand"
''' <summary>
''' Returns a command that do Text.
''' </summary>
Public ReadOnly Property TextCommand As ICommand
Get
If m_cmdText Is Nothing Then
m_cmdText = New RelayCommand(AddressOf Text)
End If
Return m_cmdText
End Get
End Property
''' <summary>
''' Execute the Text. This method is invoked by the TextCommand.
''' </summary>
Public Sub Text(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.TEXT)
Else
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.TEXTPLUS)
End If
End Sub
#End Region ' TextCommand
#Region "PlaneCommand"
''' <summary>
''' Returns a command that do Plane.
''' </summary>
Public ReadOnly Property PlaneCommand As ICommand
Get
If m_cmdPlane Is Nothing Then
m_cmdPlane = New RelayCommand(AddressOf Plane)
End If
Return m_cmdPlane
End Get
End Property
''' <summary>
''' Execute the Plane. This method is invoked by the PlaneCommand.
''' </summary>
Public Sub Plane(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.REGION)
Else
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.PLANE)
End If
End Sub
#End Region ' PlaneCommand
#Region "ExtrudeCommand"
''' <summary>
''' Returns a command that do Extrude.
''' </summary>
Public ReadOnly Property ExtrudeCommand As ICommand
Get
If m_cmdExtrude Is Nothing Then
m_cmdExtrude = New RelayCommand(AddressOf Extrude)
End If
Return m_cmdExtrude
End Get
End Property
''' <summary>
''' Execute the Extrude. This method is invoked by the ExtrudeCommand.
''' </summary>
Public Sub Extrude(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.EXTRUDE)
End Sub
#End Region ' ExtrudeCommand
#Region "RevolveCommand"
''' <summary>
''' Returns a command that do Revolve.
''' </summary>
Public ReadOnly Property RevolveCommand As ICommand
Get
If m_cmdRevolve Is Nothing Then
m_cmdRevolve = New RelayCommand(AddressOf Revolve)
End If
Return m_cmdRevolve
End Get
End Property
''' <summary>
''' Execute the Revolve. This method is invoked by the RevolveCommand.
''' </summary>
Public Sub Revolve(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.REVOLVE)
End Sub
#End Region ' RevolveCommand
#Region "ScrewCommand"
''' <summary>
''' Returns a command that do Screw.
''' </summary>
Public ReadOnly Property ScrewCommand As ICommand
Get
If m_cmdScrew Is Nothing Then
m_cmdScrew = New RelayCommand(AddressOf Screw)
End If
Return m_cmdScrew
End Get
End Property
''' <summary>
''' Execute the Screw. This method is invoked by the ScrewCommand.
''' </summary>
Public Sub Screw(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.SCREW)
End Sub
#End Region ' ScrewCommand
#Region "RuledCommand"
''' <summary>
''' Returns a command that do Ruled.
''' </summary>
Public ReadOnly Property RuledCommand As ICommand
Get
If m_cmdRuled Is Nothing Then
m_cmdRuled = New RelayCommand(AddressOf Ruled)
End If
Return m_cmdRuled
End Get
End Property
''' <summary>
''' Execute the Ruled. This method is invoked by the RuledCommand.
''' </summary>
Public Sub Ruled(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.RULED)
End Sub
#End Region ' RuledCommand
#Region "MergeSurfCommand"
''' <summary>
''' Returns a command that do MergeSurf.
''' </summary>
Public ReadOnly Property MergeSurfCommand As ICommand
Get
If m_cmdMergeSurf Is Nothing Then
m_cmdMergeSurf = New RelayCommand(AddressOf MergeSurf)
End If
Return m_cmdMergeSurf
End Get
End Property
''' <summary>
''' Execute the MergeSurf. This method is invoked by the MergeSurfCommand.
''' </summary>
Public Sub MergeSurf(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.MERGESURF)
End Sub
#End Region ' MergeSurfCommand
#Region "ExplodeSurfCommand"
''' <summary>
''' Returns a command that do ExplodeSurf.
''' </summary>
Public ReadOnly Property ExplodeSurfCommand As ICommand
Get
If m_cmdExplodeSurf Is Nothing Then
m_cmdExplodeSurf = New RelayCommand(AddressOf ExplodeSurf)
End If
Return m_cmdExplodeSurf
End Get
End Property
''' <summary>
''' Execute the ExplodeSurf. This method is invoked by the ExplodeSurfCommand.
''' </summary>
Public Sub ExplodeSurf(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.EXPLODESURF)
End Sub
#End Region ' ExplodeSurfCommand
#Region "InvertSurfCommand"
''' <summary>
''' Returns a command that do InvertSurf.
''' </summary>
Public ReadOnly Property InvertSurfCommand As ICommand
Get
If m_cmdInvertSurf Is Nothing Then
m_cmdInvertSurf = New RelayCommand(AddressOf InvertSurf)
End If
Return m_cmdInvertSurf
End Get
End Property
''' <summary>
''' Execute the InvertSurf. This method is invoked by the InvertSurfCommand.
''' </summary>
Public Sub InvertSurf(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.INVERTSURF)
End Sub
#End Region ' InvertSurfCommand
#Region "DeleteCommand"
''' <summary>
''' Returns a command that do Delete.
''' </summary>
Public ReadOnly Property DeleteCommand As ICommand
Get
If m_cmdDelete Is Nothing Then
m_cmdDelete = New RelayCommand(AddressOf Delete)
End If
Return m_cmdDelete
End Get
End Property
''' <summary>
''' Execute the Delete. This method is invoked by the DeleteCommand.
''' </summary>
Public Sub Delete(ByVal param As Object)
Map.refProjectVM.GetController.SetLastInteger(GDB_ID.SEL)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.DELETE)
End Sub
#End Region ' DeleteCommand
#Region "ChangeLayerCommand"
''' <summary>
''' Returns a command that do ChangeLayer.
''' </summary>
Public ReadOnly Property ChangeLayerCommand As ICommand
Get
If m_cmdChangeLayer Is Nothing Then
m_cmdChangeLayer = New RelayCommand(AddressOf ChangeLayer)
End If
Return m_cmdChangeLayer
End Get
End Property
''' <summary>
''' Execute the ChangeLayer. This method is invoked by the ChangeLayerCommand.
''' </summary>
Public Sub ChangeLayer(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CHANGELAYERGLOB)
Else
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CHANGELAYER)
End If
End Sub
#End Region ' ChangeLayerCommand
#Region "ChangeAlphaCommand"
''' <summary>
''' Returns a command that do ChangeAlpha.
''' </summary>
Public ReadOnly Property ChangeAlphaCommand As ICommand
Get
If m_cmdChangeAlpha Is Nothing Then
m_cmdChangeAlpha = New RelayCommand(AddressOf ChangeAlpha)
End If
Return m_cmdChangeAlpha
End Get
End Property
''' <summary>
''' Execute the ChangeAlpha. This method is invoked by the ChangeAlphaCommand.
''' </summary>
Public Sub ChangeAlpha(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CHANGEALPHA)
End Sub
#End Region ' ChangeAlphaCommand
#Region "ResetColorCommand"
''' <summary>
''' Returns a command that do ResetColor.
''' </summary>
Public ReadOnly Property ResetColorCommand As ICommand
Get
If m_cmdResetColor Is Nothing Then
m_cmdResetColor = New RelayCommand(AddressOf ResetColor)
End If
Return m_cmdResetColor
End Get
End Property
''' <summary>
''' Execute the ResetColor. This method is invoked by the ResetColorCommand.
''' </summary>
Public Sub ResetColor(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.RESETCOLOR)
End Sub
#End Region ' ResetColorCommand
#Region "ChangeColorCommand"
''' <summary>
''' Returns a command that do ChangeColor.
''' </summary>
Public ReadOnly Property ChangeColorCommand As ICommand
Get
If m_cmdChangeColor Is Nothing Then
m_cmdChangeColor = New RelayCommand(AddressOf ChangeColor)
End If
Return m_cmdChangeColor
End Get
End Property
''' <summary>
''' Execute the ChangeColor. This method is invoked by the ChangeColorCommand.
''' </summary>
Public Sub ChangeColor(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CHANGECOLOR)
End Sub
#End Region ' ChangeColorCommand
#Region "InvertCurveCommand"
''' <summary>
''' Returns a command that do InvertCurve.
''' </summary>
Public ReadOnly Property InvertCurveCommand As ICommand
Get
If m_cmdInvertCurve Is Nothing Then
m_cmdInvertCurve = New RelayCommand(AddressOf InvertCurve)
End If
Return m_cmdInvertCurve
End Get
End Property
''' <summary>
''' Execute the InvertCurve. This method is invoked by the InvertCurveCommand.
''' </summary>
Public Sub InvertCurve(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.INVERTCURVE)
End Sub
#End Region ' InvertCurveCommand
#Region "ChangeStartCurveCommand"
''' <summary>
''' Returns a command that do ChangeStartCurve.
''' </summary>
Public ReadOnly Property ChangeStartCurveCommand As ICommand
Get
If m_cmdChangeStartCurve Is Nothing Then
m_cmdChangeStartCurve = New RelayCommand(AddressOf ChangeStartCurve)
End If
Return m_cmdChangeStartCurve
End Get
End Property
''' <summary>
''' Execute the ChangeStartCurve. This method is invoked by the InvertCurveCommand.
''' </summary>
Public Sub ChangeStartCurve(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.CHANGESTARTCURVE)
End Sub
#End Region ' ChangeStartCurveCommand
#Region "ExtendCurveCommand"
''' <summary>
''' Returns a command that do ExtendCurve.
''' </summary>
Public ReadOnly Property ExtendCurveCommand As ICommand
Get
If m_cmdExtendCurve Is Nothing Then
m_cmdExtendCurve = New RelayCommand(AddressOf ExtendCurve)
End If
Return m_cmdExtendCurve
End Get
End Property
''' <summary>
''' Execute the ExtendCurve. This method is invoked by the ExtendCurveCommand.
''' </summary>
Public Sub ExtendCurve(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.TRIMEXTENDCURVE)
End Sub
#End Region ' ExtendCurveCommand
#Region "BreakCurveCommand"
''' <summary>
''' Returns a command that do BreakCurve.
''' </summary>
Public ReadOnly Property BreakCurveCommand As ICommand
Get
If m_cmdBreakCurve Is Nothing Then
m_cmdBreakCurve = New RelayCommand(AddressOf BreakCurve)
End If
Return m_cmdBreakCurve
End Get
End Property
''' <summary>
''' Execute the BreakCurve. This method is invoked by the BreakCurveCommand.
''' </summary>
Public Sub BreakCurve(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.BREAKCURVE)
End Sub
#End Region ' BreakCurveCommand
#Region "SplitCurveCommand"
''' <summary>
''' Returns a command that do SplitCurve.
''' </summary>
Public ReadOnly Property SplitCurveCommand As ICommand
Get
If m_cmdSplitCurve Is Nothing Then
m_cmdSplitCurve = New RelayCommand(AddressOf SplitCurve)
End If
Return m_cmdSplitCurve
End Get
End Property
''' <summary>
''' Execute the SplitCurve. This method is invoked by the SplitCurveCommand.
''' </summary>
Public Sub SplitCurve(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.SPLITCURVE)
End Sub
#End Region ' SplitCurveCommand
#Region "JoinCurveCommand"
''' <summary>
''' Returns a command that do JoinCurve.
''' </summary>
Public ReadOnly Property JoinCurveCommand As ICommand
Get
If m_cmdJoinCurve Is Nothing Then
m_cmdJoinCurve = New RelayCommand(AddressOf JoinCurve)
End If
Return m_cmdJoinCurve
End Get
End Property
''' <summary>
''' Execute the JoinCurve. This method is invoked by the JoinCurveCommand.
''' </summary>
Public Sub JoinCurve(ByVal param As Object)
If (Keyboard.Modifiers And ModifierKeys.Shift) <> ModifierKeys.Shift Then
Map.refProjectVM.GetController.SetLastBoolean(False)
Else
Map.refProjectVM.GetController.SetLastBoolean(True)
End If
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.JOINCURVE)
End Sub
#End Region ' JoinCurveCommand
#Region "ExplodeCurveCommand"
''' <summary>
''' Returns a command that do ExplodeCurve.
''' </summary>
Public ReadOnly Property ExplodeCurveCommand As ICommand
Get
If m_cmdExplodeCurve Is Nothing Then
m_cmdExplodeCurve = New RelayCommand(AddressOf ExplodeCurve)
End If
Return m_cmdExplodeCurve
End Get
End Property
''' <summary>
''' Execute the ExplodeCurve. This method is invoked by the ExplodeCurveCommand.
''' </summary>
Public Sub ExplodeCurve(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.EXPLODECURVE)
End Sub
#End Region ' ExplodeCurveCommand
#Region "SetCurveThCommand"
''' <summary>
''' Returns a command that do SetCurveTh.
''' </summary>
Public ReadOnly Property SetCurveThCommand As ICommand
Get
If m_cmdSetCurveTh Is Nothing Then
m_cmdSetCurveTh = New RelayCommand(AddressOf SetCurveTh)
End If
Return m_cmdSetCurveTh
End Get
End Property
''' <summary>
''' Execute the SetCurveTh. This method is invoked by the SetCurveThCommand.
''' </summary>
Public Sub SetCurveTh(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.SETCURVETHICKNESS)
End Sub
#End Region ' SetCurveThCommand
#Region "MoveCommand"
''' <summary>
''' Returns a command that do Move.
''' </summary>
Public ReadOnly Property MoveCommand As ICommand
Get
If m_cmdMove Is Nothing Then
m_cmdMove = New RelayCommand(AddressOf Move)
End If
Return m_cmdMove
End Get
End Property
''' <summary>
''' Execute the Move. This method is invoked by the MoveCommand.
''' </summary>
Public Sub Move(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.MOVE)
End Sub
#End Region ' MoveCommand
#Region "RotateCommand"
''' <summary>
''' Returns a command that do Rotate.
''' </summary>
Public ReadOnly Property RotateCommand As ICommand
Get
If m_cmdRotate Is Nothing Then
m_cmdRotate = New RelayCommand(AddressOf Rotate)
End If
Return m_cmdRotate
End Get
End Property
''' <summary>
''' Execute the Rotate. This method is invoked by the RotateCommand.
''' </summary>
Public Sub Rotate(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.ROTATE)
End Sub
#End Region ' RotateCommand
#Region "Rotate3DCommand"
''' <summary>
''' Returns a command that do Rotate3D.
''' </summary>
Public ReadOnly Property Rotate3DCommand As ICommand
Get
If m_cmdRotate3D Is Nothing Then
m_cmdRotate3D = New RelayCommand(AddressOf Rotate3D)
End If
Return m_cmdRotate3D
End Get
End Property
''' <summary>
''' Execute the Rotate3D. This method is invoked by the Rotate3DCommand.
''' </summary>
Public Sub Rotate3D(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.ROTATE3D)
End Sub
#End Region ' Rotate3DCommand
#Region "MirrorCommand"
''' <summary>
''' Returns a command that do Mirror.
''' </summary>
Public ReadOnly Property MirrorCommand As ICommand
Get
If m_cmdMirror Is Nothing Then
m_cmdMirror = New RelayCommand(AddressOf Mirror)
End If
Return m_cmdMirror
End Get
End Property
''' <summary>
''' Execute the Mirror. This method is invoked by the MirrorCommand.
''' </summary>
Public Sub Mirror(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.MIRROR)
End Sub
#End Region ' MirrorCommand
#Region "Mirror3DCommand"
''' <summary>
''' Returns a command that do Mirror3D.
''' </summary>
Public ReadOnly Property Mirror3DCommand As ICommand
Get
If m_cmdMirror3D Is Nothing Then
m_cmdMirror3D = New RelayCommand(AddressOf Mirror3D)
End If
Return m_cmdMirror3D
End Get
End Property
''' <summary>
''' Execute the Mirror3D. This method is invoked by the Mirror3DCommand.
''' </summary>
Public Sub Mirror3D(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.MIRROR3D)
End Sub
#End Region ' Mirror3DCommand
#Region "ScaleCommand"
''' <summary>
''' Returns a command that do Scale.
''' </summary>
Public ReadOnly Property ScaleCommand As ICommand
Get
If m_cmdScale Is Nothing Then
m_cmdScale = New RelayCommand(AddressOf Scale)
End If
Return m_cmdScale
End Get
End Property
''' <summary>
''' Execute the Scale. This method is invoked by the ScaleCommand.
''' </summary>
Public Sub Scale(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.SCALE)
End Sub
#End Region ' ScaleCommand
#Region "Scale3DCommand"
''' <summary>
''' Returns a command that do Scale3D.
''' </summary>
Public ReadOnly Property Scale3DCommand As ICommand
Get
If m_cmdScale3D Is Nothing Then
m_cmdScale3D = New RelayCommand(AddressOf Scale3D)
End If
Return m_cmdScale3D
End Get
End Property
''' <summary>
''' Execute the Scale3D. This method is invoked by the Scale3DCommand.
''' </summary>
Public Sub Scale3D(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.SCALE3D)
End Sub
#End Region ' Scale3DCommand
#Region "OffsetCommand"
''' <summary>
''' Returns a command that do Offset.
''' </summary>
Public ReadOnly Property OffsetCommand As ICommand
Get
If m_cmdOffset Is Nothing Then
m_cmdOffset = New RelayCommand(AddressOf Offset)
End If
Return m_cmdOffset
End Get
End Property
''' <summary>
''' Execute the Offset. This method is invoked by the OffsetCommand.
''' </summary>
Public Sub Offset(ByVal param As Object)
Map.refProjectVM.GetController.ExecuteCommand(Controller.CMD.OFFSET)
End Sub
#End Region ' OffsetCommand
#End Region ' Commands
Private Sub OnIdle()
If IniFile.m_ProjectMode = ProjectModeOpt.DRAW OrElse IniFile.m_ProjectMode = ProjectModeOpt.ONLYDRAW Then
bLayerOk = Map.refProjectVM.GetController.GetCurrLayer <> GDB_ID.NULL
If Not IniFile.m_ProjectSceneContext = 0 Then
bSelOk = EgtGetFirstSelectedObj() <> GDB_ID.NULL
bLayerOkAndSelOk = m_bLayerOk And m_bSelOk
End If
If Application.m_UpdateLayerTree Then
Application.Msn.NotifyColleagues(Application.LOADOBJTREE)
Application.m_UpdateLayerTree = False
End If
End If
End Sub
End Class