Files
egtstone3d/Panel/EditPanelVM.vb
Daniele Bariletti 1a5d6a5ab5 - migliorata la gestione della modifica dei pezzi parte di un lavello.
- aggiunta la possibilità di aggiungere un numero indefinito di info ad un pezzo durante la sua creazione.
2025-03-07 16:22:21 +01:00

554 lines
24 KiB
VB.net

Imports EgtUILib
Public Class EditPanelVM
Inherits SceneUserControlVM
#Region "FIELDS & PROPERTIES"
Private Enum ParamEnum
MSG_ISTRUZ = 0
PARAG_PANEL = 1
PANEL_H = 2
PANEL_TH = 3
PANEL_J = 4
PARAG_BOTTOM = 5
BOTTOM_TH = 6
BOTTOM_ALPHA = 7
BOTTOM_DEPTH = 8
BOTTOM_HOLE_TYPE = 9
BOTTOM_HOLE_X = 10
BOTTOM_HOLE_Y = 11
BOTTOM_DIAM = 12
BOTTOM_HOLE_DIMX = 13
BOTTOM_HOLE_DIMY = 14
EDIT_NEIGH = 15
End Enum
Private ReadOnly m_MsgList As New List(Of String)({TopBar_Msg_Stg0, TopBar_Msg_Stg1, TopBar_Msg_Stg2, Msg_Paragraph1, Msg_Paragraph2})
Public ReadOnly Property MsgList As List(Of String)
Get
Return m_MsgList
End Get
End Property
Private m_Stage As EditPanelStage = EditPanelStage.SelectPart
Private Property Stage As EditPanelStage
Get
Return m_Stage
End Get
Set(value As EditPanelStage)
m_Stage = value
DirectCast(ParamList(ParamEnum.MSG_ISTRUZ), _TextBlockParam).MsgValue = MsgList(m_Stage)
ChangeTextColor()
End Set
End Property
Private m_PartType As PartType = PartType.Unknown
Friend Property PartType As PartType
Get
Return m_PartType
End Get
Set(value As PartType)
m_PartType = value
End Set
End Property
' id del part selezionato per essere modificato
Private m_nIdPart As Integer = GDB_ID.NULL
Public Property nIdPart As Integer
Get
Return m_nIdPart
End Get
Set(value As Integer)
SceneCmd.DeselectAll()
m_nIdPart = value
Stage = EditPanelStage.InsertNewParam
' devo capire che tipo di pezzo sto modificando
' se non ha info di accoppiamento è una base (piano cucina)
' se ha l'info "Sink" allora è un pezzo di una buca
' se ha info di accoppiamento generico è una paretina
PartType = GetPartType()
If ParamList.Count > 0 Then
Select Case PartType
Case PartType.Panel
UpdatePanelInfoFromPart(m_nIdPart)
Case PartType.Sink, PartType.SinkSplitBottom
Dim bIsBottom As Boolean = False
EgtGetInfo(m_nIdPart, "Bottom", bIsBottom)
If bIsBottom Then
Dim nParent As Integer = GDB_ID.NULL
EgtGetInfo(m_nIdPart, "Parent", nParent)
UpdatePanelInfoFromPart(nParent)
Else
UpdatePanelInfoFromPart(m_nIdPart)
End If
End Select
End If
UpdateParameterListShown()
End Set
End Property
#Region "Messages"
Public ReadOnly Property TopBar_Msg_Stg0 As String
Get
Return EgtMsg(110040) ' Seleziona il Part che vuoi modificare
End Get
End Property
Public ReadOnly Property TopBar_Msg_Stg1 As String
Get
Return EgtMsg(110041) ' Inserisci i nuovi parametri
End Get
End Property
Public ReadOnly Property TopBar_Msg_Stg2 As String
Get
Return EgtMsg(110042) ' Conferma, modifica con altri parametri o annulla
End Get
End Property
Public ReadOnly Property Msg_Paragraph1 As String
Get
Return EgtMsg(110038) ' Frontalino
End Get
End Property
Public ReadOnly Property Msg_Paragraph2 As String
Get
Return EgtMsg(110039) ' Fondo
End Get
End Property
#End Region ' Messages
#End Region ' Fields & Properties
#Region "CONSTRUCTOR"
Public Sub New()
MyBase.New()
Title = "Modifica Paretina".ToUpper()
LoadParamList()
If Map.refSceneHostVM.m_nIdPart <> GDB_ID.NULL Then
nIdPart = Map.refSceneHostVM.m_nIdPart
Stage = EditPanelStage.InsertNewParam
End If
UpdatePanelInfoFromPart(m_nIdPart)
End Sub
#End Region ' Constructor
#Region "METHODS"
Private Sub UpdatePanelInfoFromPart(nIdPart As Integer)
If nIdPart = GDB_ID.NULL Then Return
Dim dH As Double = 100
EgtGetInfo(nIdPart, "H", dH)
DirectCast(ParamList(ParamEnum.PANEL_H), _TextBoxParam).sValue = dH.ToString()
Dim dTh As Double = 10
EgtGetInfo(nIdPart, "Th", dTh)
DirectCast(ParamList(ParamEnum.PANEL_TH), _TextBoxParam).sValue = dTh.ToString()
Dim nJunctionType As Integer
EgtGetInfo(nIdPart, "JunctionType", nJunctionType)
DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx = nJunctionType - 1
If PartType = PartType.Sink Or PartType = PartType.SinkSplitBottom Then
' recupero un pezzo bottom
Dim bIsBottom As Boolean = False
EgtGetInfo(nIdPart, "Bottom", bIsBottom)
Dim nBottomId As Integer = nIdPart
If Not bIsBottom Then
Dim nWaterfallId As Integer = nIdPart
Dim sPartChildName As String = String.Empty
EgtGetInfo(nWaterfallId, "A3", sPartChildName)
nBottomId = EgtGetFirstNameInGroup(GDB_ID.ROOT, sPartChildName)
End If
Dim dDiam As Double = 0
EgtGetInfo(nBottomId, "HoleDiam", dDiam)
If dDiam < EPS_SMALL Then
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_TYPE), _ComboBoxParam).IndexSelParamCmBx = 0
Dim dDimX As Double = 0
Dim dDimY As Double = 0
EgtGetInfo(nBottomId, "HoleDimX", dDimX)
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_DIMX), _TextBoxParam).sValue = dDimX.ToString()
EgtGetInfo(nBottomId, "HoleDimY", dDimY)
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_DIMY), _TextBoxParam).sValue = dDimY.ToString()
Else
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_TYPE), _ComboBoxParam).IndexSelParamCmBx = 1
EgtGetInfo(nBottomId, "HoleDiam", dDiam)
DirectCast(ParamList(ParamEnum.BOTTOM_DIAM), _TextBoxParam).sValue = dDiam.ToString()
End If
Dim dPosX As Double = 0
Dim dPosY As Double = 0
EgtGetInfo(nBottomId, "HolePosX", dPosX)
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_X), _TextBoxParam).sValue = dPosX.ToString()
EgtGetInfo(nBottomId, "HolePosY", dPosY)
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_Y), _TextBoxParam).sValue = dPosY.ToString()
Dim dDepth As Double = 0
EgtGetInfo(nBottomId, "Depth", dDepth)
DirectCast(ParamList(ParamEnum.BOTTOM_DEPTH), _TextBoxParam).sValue = dDepth.ToString()
End If
End Sub
Private Sub UpdateParameterListShown()
'' dalle info leggo se l'oggetto è una paretina o una buca
If PartType = PartType.TopKitchen Then
'ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Collapsed
'ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Collapsed
'ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Visible
'ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Visible
'ParamList(ParamEnum.BOTTOM_ALPHA).nVisibility = Visibility.Visible
'ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Visible
'ParamList(ParamEnum.EDIT_NEIGH).nVisibility = Visibility.Visible
ElseIf PartType = PartType.SinkSplitBottom Then
ParamList(ParamEnum.PARAG_PANEL).nVisibility = Visibility.Visible
ParamList(ParamEnum.PANEL_H).nVisibility = Visibility.Visible
ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Visible
ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_ALPHA).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_DEPTH).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_HOLE_TYPE).nVisibility = Visibility.Visible
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_TYPE), _ComboBoxParam).IndexSelParamCmBx = 0
ParamList(ParamEnum.BOTTOM_HOLE_X).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_HOLE_Y).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Visible
ParamList(ParamEnum.EDIT_NEIGH).nVisibility = Visibility.Collapsed
ElseIf PartType = PartType.Sink Then
ParamList(ParamEnum.PARAG_PANEL).nVisibility = Visibility.Visible
ParamList(ParamEnum.PANEL_H).nVisibility = Visibility.Visible
ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Visible
ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_ALPHA).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_DEPTH).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_HOLE_TYPE).nVisibility = Visibility.Visible
DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_TYPE), _ComboBoxParam).IndexSelParamCmBx = 1
ParamList(ParamEnum.BOTTOM_HOLE_X).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_HOLE_Y).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Visible
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.EDIT_NEIGH).nVisibility = Visibility.Collapsed
ElseIf PartType = PartType.Panel Then
ParamList(ParamEnum.PARAG_PANEL).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.PANEL_H).nVisibility = Visibility.Visible
ParamList(ParamEnum.PANEL_TH).nVisibility = Visibility.Visible
ParamList(ParamEnum.PANEL_J).nVisibility = Visibility.Visible
ParamList(ParamEnum.PARAG_BOTTOM).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_TH).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_ALPHA).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_DEPTH).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_HOLE_TYPE).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_HOLE_X).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_HOLE_Y).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_DIAM).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_HOLE_DIMX).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.BOTTOM_HOLE_DIMY).nVisibility = Visibility.Collapsed
ParamList(ParamEnum.EDIT_NEIGH).nVisibility = Visibility.Visible
End If
End Sub
Public Overrides Sub LoadParamList()
AddGenericParam(New _TextBlockParam(EGT_MESSAGE, MsgList(0), ParamType.STR, Visibility.Visible))
' sezione paretina
AddGenericParam(New _TextBlockParam(EGT_MESSAGE, MsgList(3), ParamType.STR, Visibility.Collapsed))
Dim dH As Double = 200
AddGenericParam(New _TextBoxParam("Altezza", dH, ParamType.LEN, Visibility.Visible))
Dim dTh As Double = 20
AddGenericParam(New _TextBoxParam("Spessore", dTh, ParamType.LEN, Visibility.Visible))
Dim nJunctionType As Integer = 0
Dim JunctionTypeList As New List(Of ParamCmBx)({New ParamCmBx("Trim Start"), New ParamCmBx("Trim End"), New ParamCmBx("Angle"), New ParamCmBx("Trim Both")})
AddGenericParam(New _ComboBoxParam("Tipo Giunzione", JunctionTypeList, nJunctionType))
' sezione fondello
AddGenericParam(New _TextBlockParam(EGT_MESSAGE, MsgList(4), ParamType.STR, Visibility.Collapsed))
AddGenericParam(New _TextBoxParam("Spessore", 10, ParamType.LEN, Visibility.Collapsed))
AddGenericParam(New _TextBoxParam("Inclinazione", 0.1, ParamType.DOUB, Visibility.Collapsed))
AddGenericParam(New _TextBoxParam("Profondità", 0.1, ParamType.LEN, Visibility.Collapsed))
Dim HoleType As New List(Of ParamCmBx)({New ParamCmBx("Fessura"), New ParamCmBx("Foro")})
AddGenericParam(New _ComboBoxParam("TipoBuco", HoleType, 0, Visibility.Collapsed))
AddGenericParam(New _TextBoxParam("Posizione X foro", 50, ParamType.LEN, Visibility.Collapsed))
AddGenericParam(New _TextBoxParam("Posizione Y foro", 50, ParamType.LEN, Visibility.Collapsed))
AddGenericParam(New _TextBoxParam("Diametro foro", 30, ParamType.LEN, Visibility.Collapsed))
AddGenericParam(New _TextBoxParam("Dimensione X foro", 25, ParamType.LEN, Visibility.Collapsed))
AddGenericParam(New _TextBoxParam("Dimensione Y foro", 25, ParamType.LEN, Visibility.Collapsed))
' checkbox
AddGenericParam(New _CheckBoxParam("ModificaAdiacenti", "Modifica anche altre paretine dello stesso tipo", Visibility.Visible))
End Sub
Public Sub AdvanceStage()
Stage += 1
End Sub
Public Function AtStage()
Return Stage
End Function
Public Overrides Sub Conferma()
' in base al tipo di pezzo che sto modificando chiamo la funzione corrispondente
Select Case PartType
Case PartType.Sink
EditSink()
Case PartType.SinkSplitBottom
EditSinkWithSplitBottom()
Case PartType.Panel
EditPanel(nIdPart)
Case PartType.TopKitchen
'EditTopKitchen()
End Select
' aggiorno la lista dei partSolid
SolidManagerM.CreatePartSolid()
' chiudo lo user control
Close()
End Sub
Public Overrides Sub Annulla()
Map.refSceneHostVM.m_nIdPart = GDB_ID.NULL
SceneCmd.DeselectAll()
' chiudo lo user control
Close()
End Sub
Private Sub Close()
SolidManagerM.ResetOperationMarks(Map.refSceneHostVM.m_nIdPart)
EgtDraw()
Dim Btn As SceneBtn = Map.refSceneButtonVM.GetButton(EGT_EDIT_PANEL)
If TypeOf (Btn) Is _ToggleButton Then
DirectCast(Btn, _ToggleButton).IsChecked = False
Else
EgtOutLog("CONFIG ERR: Il pulsante di Edit Panel è stato definito come Button anziché ToggleButton")
End If
' rimuovo lo UC dalla griglia
Map.refSceneButtonVM.RemoveUC(Map.refSceneButtonVM.m_EditPanelUC)
SolidManagerM.ManageUndoRedo()
End Sub
Public Function GetPartType()
' controllo se è un lavandino con fondo unico
Dim bIsSink As Boolean = False
EgtGetInfo(m_nIdPart, "Sink", bIsSink)
If bIsSink Then
Return PartType.Sink
End If
' controllo se è un lavandino con fondo splittato
Dim bIsSinkSplitBottom As Boolean = False
EgtGetInfo(m_nIdPart, "SinkSplitBottom", bIsSinkSplitBottom)
If bIsSinkSplitBottom Then
Return PartType.SinkSplitBottom
End If
' sennò è una paretina o un piano cucina
Dim sPair As String = String.Empty
EgtGetInfo(m_nIdPart, "PairMyRef", sPair)
Dim bIsPanel As Boolean = sPair <> String.Empty
If bIsPanel Then
Return PartType.Panel
End If
' altrimenti è un piano cucina
Return PartType.TopKitchen
End Function
Private Sub SetVariablesAndRecreate(nEdgeId As Integer)
If EgtLuaSetGlobIntVar("TOOL.nEdgeId", nEdgeId) Then AssLog("TOOL.nEdgeId = " & nEdgeId.ToString())
Dim nJunctionType = DirectCast(ParamList(ParamEnum.PANEL_J), _ComboBoxParam).IndexSelParamCmBx + 1 ' in Lua l'enum è 1-based
If EgtLuaSetGlobIntVar("TOOL.nJunctionType", nJunctionType) Then AssLog("TOOL.nJunctionType = " & nJunctionType.ToString())
Dim dTh As Double = DirectCast(ParamList(ParamEnum.PANEL_TH), _TextBoxParam).GetValue()
If EgtLuaSetGlobNumVar("TOOL.dTh", dTh) Then AssLog("TOOL.dTh = " & dTh.ToString())
Dim dH As Double = DirectCast(ParamList(ParamEnum.PANEL_H), _TextBoxParam).GetValue()
If EgtLuaSetGlobNumVar("TOOL.dH", dH) Then AssLog("TOOL.dH = " & dH.ToString())
Dim bPrev As Boolean = True
If EgtLuaSetGlobBoolVar("TOOL.bPrev", bPrev) Then AssLog("TOOL.bPrev = true")
Dim bNext As Boolean = True
If EgtLuaSetGlobBoolVar("TOOL.bNext", bNext) Then AssLog("TOOL.bNext = true")
If EgtLuaCallFunction("TOOL.CreateParetinaFull") Then AssLog("TOOL.CreateParetinaFull()")
End Sub
Private Sub EditPanel(nId)
' recupero le info salvate nel Part
EgtLuaExecLine("TOOL.FillInfoTableFromPart(" & nId.ToString() & ")")
' recupero l'id dell'edge che ha generato la paretina
Dim nParent As Integer = GDB_ID.NULL
EgtGetInfo(nId, "Parent", nParent)
Dim nIn As Integer = 0
EgtGetInfo(nId, "nInLoop", nIn)
Dim sLayName As String = "OutLoop"
Dim nLayId As Integer = GDB_ID.NULL
If nIn = 0 Then
nLayId = EgtGetFirstNameInGroup(nParent, sLayName)
Else
sLayName = "InLoop"
nLayId = EgtGetFirstNameInGroup(nParent, sLayName)
Dim nInLays = 1
While nInLays <> nIn
nLayId = EgtGetNextName(nLayId, sLayName)
nInLays += 1
End While
End If
Dim nEdge As Integer = 0
EgtGetInfo(nId, "ParentEdge", nEdge)
Dim sEdgeName As String = "A" & nEdge.ToString()
Dim nEdgeId As Integer = EgtGetFirstNameInGroup(nLayId, sEdgeName)
' setto i parametri che ha scelto l'utente
SetVariablesAndRecreate(nEdgeId)
' se la checkbox per la modifica delle paretine dello stesso tipo, sullo stesso loop, è checkata allora scorro il loop e continuo a chiamare la ricreazione
If DirectCast(ParamList(ParamEnum.EDIT_NEIGH), _CheckBoxParam).IsChecked Then
' scorro i next e prev modificando anche le paretine adiacenti con le stesse modifiche
' facendo attenzione a non entrare in un loop
Dim sCurrPartName As String = String.Empty
EgtGetName(nId, sCurrPartName)
Dim sNamePrev As String = String.Empty
EgtGetInfo(nId, "Prev", sNamePrev)
Dim nLastPrev As Integer = GDB_ID.NULL
While sNamePrev <> String.Empty And sNamePrev <> sCurrPartName
Dim nPrev As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, sNamePrev)
' recupero l'edge del parent e ricreo la paretina
EgtGetInfo(nPrev, "ParentEdge", nEdge)
' recupero le info salvate nel Part
EgtLuaExecLine("TOOL.FillInfoTableFromPart(" & nPrev.ToString() & ")")
sEdgeName = "A" & nEdge.ToString()
nEdgeId = EgtGetFirstNameInGroup(nLayId, sEdgeName)
SetVariablesAndRecreate(nEdgeId)
EgtGetInfo(nPrev, "Prev", sNamePrev)
nLastPrev = nPrev
End While
Dim sNameNext As String = String.Empty
EgtGetInfo(nId, "Next", sNameNext)
While sNameNext <> String.Empty
Dim nNext As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, sNameNext)
' recupero l'edge del parent e ricreo la paretina
If nNext = nLastPrev Then Exit While
' recupero le info salvate nel Part
EgtLuaExecLine("TOOL.FillInfoTableFromPart(" & nNext.ToString() & ")")
EgtGetInfo(nNext, "ParentEdge", nEdge)
sEdgeName = "A" & nEdge.ToString()
nEdgeId = EgtGetFirstNameInGroup(nLayId, sEdgeName)
SetVariablesAndRecreate(nEdgeId)
EgtGetInfo(nNext, "Next", sNameNext)
End While
End If
End Sub
Private Function GetNeighbours(nId As Integer)
Dim NeighList As New List(Of Integer)
If nId = GDB_ID.NULL Then Return NeighList
Dim nNextId As Integer = nId
While nNextId <> GDB_ID.NULL
NeighList.Add(nNextId)
Dim sNextName As String = String.Empty
EgtGetInfo(nNextId, "Next", sNextName)
nNextId = EgtGetFirstNameInGroup(GDB_ID.ROOT, sNextName)
If nNextId = nId Then Exit While
End While
Return NeighList
End Function
Private Sub EditSink()
End Sub
Private Sub EditSplitBottom(PartList As List(Of Integer))
Dim lEdgeList As New List(Of Integer)
For Each nPart As Integer In PartList
Dim nOutLay As Integer = EgtGetFirstNameInGroup(nPart, "OutLoop")
Dim nEdge As Integer = EgtGetFirstNameInGroup(nOutLay, "A3")
lEdgeList.Add(nEdge)
Next
For i As Integer = 1 To lEdgeList.Count
EgtLuaSetGlobIntVar("TOOL.tbIdEdges." & i.ToString(), lEdgeList(i - 1).ToString())
Next
Dim dTh As Double = DirectCast(ParamList(ParamEnum.BOTTOM_TH), _TextBoxParam).GetValue()
EgtLuaSetGlobNumVar("TOOL.dTh", dTh)
Dim dDiam As Double = DirectCast(ParamList(ParamEnum.BOTTOM_DIAM), _TextBoxParam).GetValue()
EgtLuaSetGlobNumVar("TOOL.dDiamBore", dDiam)
Dim dDepth As Double = DirectCast(ParamList(ParamEnum.BOTTOM_DEPTH), _TextBoxParam).GetValue()
EgtLuaSetGlobNumVar("TOOL.dDepth", dDepth)
Dim dPosX As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_X), _TextBoxParam).GetValue()
EgtLuaSetGlobNumVar("TOOL.dHoleX", dPosX)
Dim dPosY As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_Y), _TextBoxParam).GetValue()
EgtLuaSetGlobNumVar("TOOL.dHoleY", dPosY)
Dim dDimX As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_DIMX), _TextBoxParam).GetValue()
EgtLuaSetGlobNumVar("TOOL.dHoleDimX", dDimX)
Dim dDimY As Double = DirectCast(ParamList(ParamEnum.BOTTOM_HOLE_DIMY), _TextBoxParam).GetValue()
EgtLuaSetGlobNumVar("TOOL.dHoleDimY", dDimY)
EgtLuaCallFunction("TOOL.CreateSplitBottom")
End Sub
Private Sub EditSinkWithSplitBottom()
' risalgo ai frontalini
Dim bBottom As Boolean = False
EgtGetInfo(nIdPart, "Bottom", bBottom)
Dim nWaterfallId As Integer = nIdPart
If bBottom Then
Dim sInfoPartDest As String = String.Empty
EgtGetInfo(nIdPart, "PairToRef", sInfoPartDest)
Dim sInfoPartDestSplit As Array = sInfoPartDest.Split(","c)
Dim sPartDest As String = sInfoPartDestSplit(0)
nWaterfallId = EgtGetFirstNameInGroup(GDB_ID.ROOT, sPartDest)
End If
' modifico i frontalini
DirectCast(ParamList(ParamEnum.EDIT_NEIGH), _CheckBoxParam).IsChecked = True
EditPanel(nWaterfallId)
' recupero la lista degli id dei frontalini
Dim WaterfallList As List(Of Integer) = GetNeighbours(nWaterfallId)
' modifico i pezzi dello split bottom
EditSplitBottom(WaterfallList)
End Sub
Public Sub SelectPartOrPartsToEdit()
If PartType = PartType.Sink Or PartType = PartType.SinkSplitBottom Then
Dim bBottom As Boolean = False
EgtGetInfo(nIdPart, "Bottom", bBottom)
Dim BottomList As List(Of Integer)
Dim WaterFallList As List(Of Integer)
If bBottom Then
BottomList = GetNeighbours(nIdPart)
Dim nWaterfallId As Integer = GDB_ID.NULL
EgtGetInfo(nIdPart, "Parent", nWaterfallId)
WaterFallList = GetNeighbours(nWaterfallId)
Else
WaterFallList = GetNeighbours(nIdPart)
Dim sBottomName As String = String.Empty
EgtGetInfo(nIdPart, "A3", sBottomName)
Dim nBottomId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, sBottomName)
BottomList = GetNeighbours(nBottomId)
End If
For Each nPartId In BottomList
Dim PartSolidSel As PartSolidM = GetPartSolid(nPartId)
PartSolidSel.SelectSinglePart()
Next
For Each nPartId In WaterFallList
Dim PartSolidSel As PartSolidM = GetPartSolid(nPartId)
PartSolidSel.SelectSinglePart()
Next
Else
Dim PartSolidSel As PartSolidM = GetPartSolid(nIdPart)
PartSolidSel.SelectSinglePart()
End If
EgtDraw()
End Sub
#End Region ' Methods
End Class