Files
icarus/Icarus/ReferencePanel/ReferencePanelVM.vb
T
DarioS e65174209d Icarus 2.4i2 :
- piccole modifiche per togliere warning di compilazione
- aggiunta icona standard Egaltech.
2022-09-14 06:21:25 +02:00

142 lines
5.2 KiB
VB.net

Imports System.Collections.ObjectModel
Imports EgtUILib
Imports EgtWPFLib5
Public Class ReferencePanelVM
Inherits VMBase
Private m_nReferenceLayerId As Integer = GDB_ID.NULL
Private m_ReferenceList As New List(Of ReferenceBtn)({New ReferenceBtn(ReferenceBtn.References.TL),
New ReferenceBtn(ReferenceBtn.References.TC),
New ReferenceBtn(ReferenceBtn.References.TR),
New ReferenceBtn(ReferenceBtn.References.ML),
New ReferenceBtn(ReferenceBtn.References.MC),
New ReferenceBtn(ReferenceBtn.References.MR),
New ReferenceBtn(ReferenceBtn.References.BL),
New ReferenceBtn(ReferenceBtn.References.BC),
New ReferenceBtn(ReferenceBtn.References.BR)})
Public Property ReferenceList As List(Of ReferenceBtn)
Get
Return m_ReferenceList
End Get
Set(value As List(Of ReferenceBtn))
m_ReferenceList = value
End Set
End Property
Private m_SelReference As ReferenceBtn
Public Property SelReference As ReferenceBtn
Get
Return m_SelReference
End Get
Set(value As ReferenceBtn)
m_SelReference = value
' elimino precedente
EgtEmptyGroup(m_nReferenceLayerId)
Dim b3PrintSolid As New BBox3d
EgtGetBBoxGlob(Map.refTopPanelVM.SelPart.nPrintSolidId, GDB_BB.STANDARD, b3PrintSolid)
' Creo riferimento
Dim ptOrig As New Point3d(b3PrintSolid.Min())
Select Case m_SelReference.Type
Case ChooseReferenceWndVM.References.TL
ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX
Case ChooseReferenceWndVM.References.TR
ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
Case ChooseReferenceWndVM.References.BL
Case ChooseReferenceWndVM.References.BR
ptOrig += b3PrintSolid.DimX() * Vector3d.X_AX
Case ChooseReferenceWndVM.References.TC
ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
Case ChooseReferenceWndVM.References.ML
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX
Case ChooseReferenceWndVM.References.MR
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
Case ChooseReferenceWndVM.References.TC
ptOrig += b3PrintSolid.DimY() * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
Case ChooseReferenceWndVM.References.MR
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() * Vector3d.X_AX
Case ChooseReferenceWndVM.References.BC
ptOrig += b3PrintSolid.DimX() / 2 * Vector3d.X_AX
Case ChooseReferenceWndVM.References.MC
ptOrig += b3PrintSolid.DimY() / 2 * Vector3d.Y_AX + b3PrintSolid.DimX() / 2 * Vector3d.X_AX
End Select
Dim frPrintSolid As New Frame3d(ptOrig)
Dim nFrameId As Integer = EgtCreateGeoFrame(m_nReferenceLayerId, frPrintSolid, GDB_RT.GLOB)
If nFrameId Then
EgtSetName(nFrameId, FRAME_PART)
EgtSetMode(nFrameId, GDB_MD.LOCKED)
End If
EgtSetInfo(m_nReferenceLayerId, KEY_REFERENCE, m_SelReference.Type)
EgtDraw()
End Set
End Property
Sub New()
' Creo riferimento a questa classe in EgtCAM5Map
Map.SetRefReferencePanelVM(Me)
End Sub
Friend Sub Init()
m_nReferenceLayerId = EgtGetFirstNameInGroup(Map.refTopPanelVM.SelPart.nPartId, LAY_REFERENCE)
Dim nReference As Integer = 3
EgtGetInfo(m_nReferenceLayerId, KEY_REFERENCE, nReference)
m_SelReference = m_ReferenceList.FirstOrDefault(Function(x) x.Type = nReference)
NotifyPropertyChanged(NameOf(SelReference))
End Sub
End Class
Public Class ReferenceBtn
Public Enum References As Integer
TL = 1
TR = 2
BL = 3
BR = 4
TC = 5
ML = 6
MR = 7
BC = 8
MC = 9
End Enum
Private m_Type As References
Public ReadOnly Property Type As References
Get
Return m_Type
End Get
End Property
Public ReadOnly Property sText As String
Get
Select Case Type
Case References.TL
Return ""
Case References.TR
Return ""
Case References.BL
Return ""
Case References.BR
Return ""
Case References.TC
Return ""
Case References.ML
Return ""
Case References.MR
Return ""
Case References.BC
Return ""
Case References.MC
Return ""
Case Else
Return "X"
End Select
End Get
End Property
Sub New(Type As References)
m_Type = Type
End Sub
End Class