diff --git a/Constants/ConstEgtStone3D.vb b/Constants/ConstEgtStone3D.vb index 6cad8c2..2c52e31 100644 --- a/Constants/ConstEgtStone3D.vb +++ b/Constants/ConstEgtStone3D.vb @@ -6,6 +6,10 @@ Public Const EGT_MOVE As String = "Move" + Public Const EGT_ALZ As String = "AddSplashTop" + + Public Const EGT_FRO As String = "AddWaterfall" + Public Const ASSEMBLER_FILENAME As String = "AssemblerLog.txt" Public Const TERNA_FILENAME As String = "TernaVeinMatch.nge" Public Const CREATESOLID_FILENAME As String = "CreateSOLID_FromPartsInPark.lua" @@ -32,6 +36,7 @@ Public Const AXISZ As String = "AxisZ" Public Const OUTLOOP As String = "OutLoop" + Public Const INLOOP As String = "InLoop" Public Const TOPLIST_BTN As String = "TopListBtn" Public Const LEFTLIST_BTN As String = "LeftListBtn" diff --git a/SceneButton/SceneButtonVM.vb b/SceneButton/SceneButtonVM.vb index 6881629..bc0b519 100644 --- a/SceneButton/SceneButtonVM.vb +++ b/SceneButton/SceneButtonVM.vb @@ -320,13 +320,13 @@ Module SceneCmd EgtLuaCallFunction("ASS.PairAll") Case "Unpair" SolidManagerM.Unpair(Map.refSceneHostV.m_nIdPart) - Case "Pair" + Case EGT_PAIR Map.refSceneButtonV.LoadPairUC() Case "ResetInters" SolidManagerM.ResetInters() - Case "Rotate" + Case EGT_ROTATE Map.refSceneButtonV.LoadRotateUC() - Case "Move" + Case EGT_MOVE Map.refSceneButtonV.LoadMoveUC() Case "Undo" ' se con questa operazione torno all'inizio disattivo il bottone undo @@ -341,15 +341,16 @@ Module SceneCmd Case "SelType" Map.refSceneButtonV.MenuSelType.IsOpen = True Case "ImportLoop" - ImportLoop() + 'ImportLoop() + EgtInsertFile("D:\Temp\marmo\Vein3D\OutLoop.nge") Case "CreateSolidFromLoop" SolidManagerM.CreateSolidFromLoop(Map.refSceneHostV.m_nIdPart) - Case "AddSplashTop" + Case EGT_ALZ Map.refSceneHostV.m_SelType = GDB_TY.CRV_LINE - Case "AddWaterfall" + SolidManagerM.ShowLoopEdges() + Case EGT_FRO Map.refSceneHostV.m_SelType = GDB_TY.CRV_LINE - Case "qqq" - Map.refSceneButtonV.LoadSceneUserControl() + SolidManagerM.ShowLoopEdges() Case Else Dim x As Boolean = False End Select @@ -377,7 +378,6 @@ Module SceneCmd 'If (m_nIdPart = GDB_ID.NULL) Then Return ''abilito i bottoni che possono eseguire delle azioni - 'TgBtn_Rotation.IsEnabled = True 'Dim PartSolidSel As PartSolid = GetPartSolid(m_nIdPart) 'If Not IsNothing(PartSolidSel) And PartSolidSel.IsPaired() Then ' UnpairBtn.IsEnabled = True @@ -388,8 +388,6 @@ Module SceneCmd Public Sub DisableActionButtons() ''disabilito tutti i bottoni che eseguono azioni sul pezzo selezionato - ''TgBtn_Rotation.IsEnabled = False - 'ResetRotationBtn.IsEnabled = False 'UnpairBtn.IsEnabled = False 'ExplodeBtn.IsEnabled = False 'ExplodeNormalsBtn.IsEnabled = False diff --git a/SceneHost/SceneHostV.xaml.vb b/SceneHost/SceneHostV.xaml.vb index a88990a..f667e49 100644 --- a/SceneHost/SceneHostV.xaml.vb +++ b/SceneHost/SceneHostV.xaml.vb @@ -10,11 +10,11 @@ Public Class SceneHostV ' variabili per la selezione in over Public m_SelType As Integer = GDB_TY.CRV_LINE ' tipo di oggetti da evidenziare con il mouse over - Private m_nIdMouseOverSel As Integer = 0 ' id dell'oggetto attualmente evidenziato dal mouse over - Public m_nIdMarked1 As Integer = 0 ' oggetto da tenere evidenziato - Public m_nIdMarked2 As Integer = 0 - Public m_nIdMarked3 As Integer = 0 - Public m_nIdMarked4 As Integer = 0 + Private m_nIdMouseOverSel As Integer = GDB_ID.NULL ' id dell'oggetto attualmente evidenziato dal mouse over + Public m_nIdMarked1 As Integer = GDB_ID.NULL ' oggetto da tenere evidenziato + Public m_nIdMarked2 As Integer = GDB_ID.NULL + Public m_nIdMarked3 As Integer = GDB_ID.NULL + Public m_nIdMarked4 As Integer = GDB_ID.NULL Public m_nAlphaTransparent As Integer = 0 ' trasparenza originale dell'oggetto evidenziato Public m_nAlphaTransparent1 As Integer = 0 ' trsparenza dell'oggetto Marked3 Public m_nAlphaTransparent2 As Integer = 0 ' trsparenza dell'oggetto Marked4 @@ -190,7 +190,7 @@ Public Class SceneHostV EgtGetName(EgtGetParent(nId), sNameLay) ' se sono attivi i bottoni AddSplashTop o AddWaterfall, posso evidenziare solo i lati dell'OUTLOOP Dim bParetinaApproved As Boolean = ((Map.refSceneButtonVM.IsTgBtnChecked("AddSplashTop") Or - Map.refSceneButtonVM.IsTgBtnChecked("AddWaterfall")) And sNameLay = OUTLOOP) Or + Map.refSceneButtonVM.IsTgBtnChecked("AddWaterfall")) And (sNameLay = OUTLOOP Or sNameLay = INLOOP)) Or (Not Map.refSceneButtonVM.IsTgBtnChecked("AddSplashTop") And Not Map.refSceneButtonVM.IsTgBtnChecked("AddWaterfall")) If EgtGetType(nId) = IdType Then @@ -480,13 +480,35 @@ Line1: Continue While End If - ' modalità alzatina - If Map.refSceneButtonVM.IsTgBtnChecked("AddSplashTop") Then - Dim sNameLay As String = String.Empty - EgtGetName(EgtGetParent(nId), sNameLay) - If EgtGetType(nId) = GDB_TY.CRV_LINE And sNameLay = OUTLOOP Then - ''''' qui chiamo le funzioni del TemplateTool + If Map.refSceneButtonVM.IsTgBtnChecked(EGT_ALZ) Then + If EgtGetType(nId) = GDB_TY.CRV_LINE Then + Dim sEdgeName As String = String.Empty + EgtGetName(nId, sEdgeName) + If sEdgeName.Length > 0 And sEdgeName(0) = "A" Then + ' setto l'indice del lato e il parent + If EgtLuaSetGlobIntVar("TOOL.nEdgeId", nId) Then AssLog("TOOL.nEdgeId = " & nId.ToString()) + If EgtLuaSetGlobIntVar("TOOL.nParent", nPartId) Then AssLog("TOOL.nParent = " & nPartId.ToString()) + ' setto le variabili per l'alzatina + Dim dAngAlzatina As Double = 90 + If EgtLuaSetGlobNumVar("TOOL.dPairAng", dAngAlzatina) Then AssLog("TOOL.dPairAng = " & dAngAlzatina.ToString()) + Dim nJunctionTypeAlz = 1 + If EgtLuaSetGlobIntVar("TOOL.nJunctionType", nJunctionTypeAlz) Then AssLog("TOOL.nJunctionType = " & nJunctionTypeAlz.ToString()) + Dim bOnLoop As Boolean = False + If EgtLuaSetGlobBoolVar("TOOL.bOnLoop", bOnLoop) Then AssLog("TOOL.bOnLoop = false") + ' setto le varibili generiche per il pezzo + Dim dTh As Double = 10 + If EgtLuaSetGlobNumVar("TOOL.dTh", dTh) Then AssLog("TOOL.dTh = " & dTh.ToString()) + Dim dH As Double = 100 + If EgtLuaSetGlobNumVar("TOOL.dH", dH) Then AssLog("TOOL.dH = " & dH.ToString()) + If EgtLuaSetGlobBoolVar("TOOL.bPrev", True) Then AssLog("TOOL.bPrev = true") + If EgtLuaSetGlobBoolVar("TOOL.bNext", True) Then AssLog("TOOL.bNext = true") + ' chiamo la funzione per la creazione + If EgtLuaCallFunction("TOOL.CreateParetinaFull") Then AssLog("TOOL.CreateParetinaFull()") + Return + End If End If + nId = EgtGetNextObjInSelWin() + Continue While End If ' selezione semplice diff --git a/SceneUserControl/SceneUserControlVM.vb b/SceneUserControl/SceneUserControlVM.vb index 7481946..7fc4aec 100644 --- a/SceneUserControl/SceneUserControlVM.vb +++ b/SceneUserControl/SceneUserControlVM.vb @@ -201,9 +201,10 @@ End Class Public Class _TextBoxParam Inherits GenericParam - Public Event TextChanged(sender As Object, text As String) #Region "FIELDS & PROPERTIES" + Public Event TextChanged(sender As Object, text As String) + Private m_sValue As String = String.Empty Public Property sValue As String Get @@ -261,9 +262,10 @@ End Class Public Class _ComboBoxParam Inherits GenericParam - Public Event SelectionChanged(sender As Object, selection As ParamCmBx) #Region "FIELDS & PROPERTIES" + Public Event SelectionChanged(sender As Object, selection As ParamCmBx) + Private m_ParamCmBxList As New List(Of ParamCmBx) Public Property ParamCmBxList As List(Of ParamCmBx) Get @@ -331,9 +333,11 @@ End Class Public Class _CheckBoxParam Inherits GenericParam - Public Event CheckChanged(sender As Object, checked As Boolean) + #Region "FIELDS & PROPERTIES" + Public Event CheckChanged(sender As Object, checked As Boolean) + Private m_MsgValue As String = String.Empty Public Property MsgValue As String Get diff --git a/Utility/EgtStone3DDefaultStyle.xaml b/Utility/EgtStone3DDefaultStyle.xaml index dbee9a8..8c386fa 100644 --- a/Utility/EgtStone3DDefaultStyle.xaml +++ b/Utility/EgtStone3DDefaultStyle.xaml @@ -222,7 +222,8 @@ CornerRadius="2" BorderThickness="1" BorderBrush="{DynamicResource Border_Button.Static.Border}" - Background="DarkOrange"> + Background="DarkOrange" + Opacity="0.9"> GDB_ID.NULL + Dim sPartName As String = String.Empty + EgtGetName(nPart, sPartName) + If sPartName = "SOLID" Then + nPart = EgtGetNext(nPart) + Continue While + End If + EgtSetStatus(nPart, GDB_ST.ON_) + Dim nLay As Integer = EgtGetFirstInGroup(nPart) + While nLay <> GDB_ID.NULL + Dim sLayName As String = String.Empty + EgtGetName(nLay, sLayName) + If sLayName <> "OutLoop" And sLayName <> "InLoop" Then EgtSetStatus(nLay, GDB_ST.OFF) + nLay = EgtGetNext(nLay) + End While + nPart = EgtGetNext(nPart) + End While + End Sub + + Public Sub HideLoopEdges() + Dim nPart As Integer = EgtGetFirstPart() + While nPart <> GDB_ID.NULL + Dim sPartName As String = String.Empty + EgtGetName(nPart, sPartName) + If sPartName = "SOLID" Then + nPart = EgtGetNext(nPart) + Continue While + End If + EgtSetStatus(nPart, GDB_ST.OFF) + Dim nLay As Integer = EgtGetFirstInGroup(nPart) + While nLay <> GDB_ID.NULL + Dim sLayName As String = String.Empty + EgtGetName(nLay, sLayName) + If sLayName <> "OutLoop" And sLayName <> "InLoop" And sLayName <> "Ref" Then EgtSetStatus(nLay, GDB_ST.ON_) + nLay = EgtGetNext(nLay) + End While + nPart = EgtGetNext(nPart) + End While + End Sub + #End Region ' Methods End Module