Imports EgtUILib Public Class WorkInProgressPageUC ' Riferimento alla MainWindow Private m_MainWindow As MainWindow = Application.Current.MainWindow ' Properties Private m_bFirst As Boolean = True ' Dichiarazione Scene Friend WithEvents WorkInProgressScene As New Scene Private WorkInProgressSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost Private Sub WorkInProgressPage_Initialized(sender As Object, e As EventArgs) 'Assegnazione scena all'host e posizionamento nella PlacePageGrid WorkInProgressSceneHost.Child = WorkInProgressScene WorkInProgressSceneHost.SetValue(Grid.ColumnProperty, 0) WorkInProgressSceneHost.SetValue(Grid.RowProperty, 1) Me.WorkInProgressPageGrid.Children.Add(WorkInProgressSceneHost) 'Imposto i messaggi letti dal file dei messaggi End Sub Private Sub WorkInProgressPage_Loaded(sender As Object, e As RoutedEventArgs) If m_bFirst Then ' imposto colore di default Dim DefColor As New Color3d(0, 0, 0) GetPrivateProfileColor(S_GEOMDB, K_DEFAULTCOLOR, DefColor, m_MainWindow.GetIniFile()) WorkInProgressScene.SetDefaultMaterial(DefColor) ' imposto colori sfondo Dim BackTopColor As New Color3d(192, 192, 192) GetPrivateProfileColor(S_SCENE, K_BACKTOP, BackTopColor, m_MainWindow.GetIniFile()) Dim BackBotColor As New Color3d(BackTopColor) GetPrivateProfileColor(S_SCENE, K_BACKBOTTOM, BackBotColor, m_MainWindow.GetIniFile()) WorkInProgressScene.SetViewBackground(BackTopColor, BackBotColor) ' imposto colore di evidenziazione Dim MarkColor As New Color3d(255, 255, 0) GetPrivateProfileColor(S_SCENE, K_MARK, MarkColor, m_MainWindow.GetIniFile()) WorkInProgressScene.SetMarkMaterial(MarkColor) ' imposto colore per superfici selezionate Dim SelSurfColor As New Color3d(255, 255, 192) GetPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor, m_MainWindow.GetIniFile()) WorkInProgressScene.SetSelSurfMaterial(SelSurfColor) ' imposto tipo e colore del rettangolo di zoom Dim bOutline As Boolean = True Dim ZwColor As New Color3d(0, 0, 0) GetPrivateProfileZoomWin(S_SCENE, K_ZOOMWIN, bOutline, ZwColor, m_MainWindow.GetIniFile()) WorkInProgressScene.SetZoomWinAttribs(bOutline, ZwColor) ' imposto colore della linea di distanza Dim DstLnColor As New Color3d(255, 0, 0) GetPrivateProfileColor(S_SCENE, K_DISTLINE, DstLnColor, m_MainWindow.GetIniFile()) WorkInProgressScene.SetDistLineMaterial(DstLnColor) ' imposto parametri OpenGL Dim nDriver As Integer = GetPrivateProfileInt(S_OPENGL, K_DRIVER, 3, m_MainWindow.GetIniFile()) Dim b2Buff As Boolean = (GetPrivateProfileInt(S_OPENGL, K_DOUBLEBUFFER, 1, m_MainWindow.GetIniFile()) <> 0) Dim nColorBits As Integer = GetPrivateProfileInt(S_OPENGL, K_COLORBITS, 32, m_MainWindow.GetIniFile()) Dim nDepthBits As Integer = GetPrivateProfileInt(S_OPENGL, K_DEPTHBITS, 32, m_MainWindow.GetIniFile()) WorkInProgressScene.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits) ' inizializzo la scena (DB geometrico + visualizzazione) e verifico presenza chiave If Not WorkInProgressScene.Init() Then Dim m_MissingKeyWindow As New MissingKeyWD m_MissingKeyWindow.Top = m_MainWindow.Top + (m_MainWindow.Height / 2 - m_MissingKeyWindow.Height / 2) m_MissingKeyWindow.Left = m_MainWindow.Left + (m_MainWindow.Width / 2 - m_MissingKeyWindow.Width / 2) m_MainWindow.Close() m_MissingKeyWindow.Show() End If ' carico la macchina 'If Not LoadMachine() Then ' EgtOutLog("Error loading machine") 'End If ' carico la griglia 'LoadGridData() m_bFirst = False Else EgtSetCurrentContext(WorkInProgressScene.GetCtx()) End If ' inibisco selezione diretta da Scene WorkInProgressScene.SetStatusNull() End Sub End Class