Imports EgtUILib Public Class CurrentProjectPageUC ' Riferimento alla MainWindow Private m_MainWindow As MainWindow = Application.Current.MainWindow ' Properties Private m_bFirst As Boolean = True ' Dichiarazione Scene Friend WithEvents CurrentProjectScene As New Scene Private CurrentProjectSceneHost As New System.Windows.Forms.Integration.WindowsFormsHost ' Identificativo del grezzo Friend m_nRawId As Integer = GDB_ID.NULL Private Sub CurrentProjectPage_Initialized(sender As Object, e As EventArgs) 'Posizionemento nella griglia delle Page UserControl m_MainWindow.m_DirectCutPageUC.SetValue(Grid.RowSpanProperty, 3) m_MainWindow.m_DirectCutPageUC.SetValue(Grid.ColumnSpanProperty, 2) m_MainWindow.m_CadCutPageUC.SetValue(Grid.RowSpanProperty, 3) m_MainWindow.m_CadCutPageUC.SetValue(Grid.ColumnSpanProperty, 2) m_MainWindow.m_FrameCutPageUC.SetValue(Grid.RowSpanProperty, 3) m_MainWindow.m_FrameCutPageUC.SetValue(Grid.ColumnSpanProperty, 2) 'Assegnazione scena all'host e posizionamento nella PlacePageGrid CurrentProjectSceneHost.Child = CurrentProjectScene CurrentProjectSceneHost.SetValue(Grid.ColumnProperty, 1) CurrentProjectSceneHost.SetValue(Grid.RowProperty, 1) Me.CurrentProjectPageGrid.Children.Add(CurrentProjectSceneHost) End Sub Private Sub CurrentProjectPage_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()) CurrentProjectScene.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()) CurrentProjectScene.SetViewBackground(BackTopColor, BackBotColor) ' imposto colore di evidenziazione Dim MarkColor As New Color3d(255, 255, 0) GetPrivateProfileColor(S_SCENE, K_MARK, MarkColor, m_MainWindow.GetIniFile()) CurrentProjectScene.SetMarkMaterial(MarkColor) ' imposto colore per superfici selezionate Dim SelSurfColor As New Color3d(255, 255, 192) GetPrivateProfileColor(S_SCENE, K_SELSURF, SelSurfColor, m_MainWindow.GetIniFile()) CurrentProjectScene.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()) CurrentProjectScene.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()) CurrentProjectScene.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()) CurrentProjectScene.SetViewAttributes(nDriver, b2Buff, nColorBits, nDepthBits) ' inizializzo la scena (DB geometrico + visualizzazione) e verifico presenza chiave If Not CurrentProjectScene.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 ' inizializzo gestore lavorazioni EgtInitMachMgr(m_MainWindow.GetMachinesRootDir()) m_bFirst = False ' carico la macchina corrente Dim sCurrMach As String = String.Empty GetPrivateProfileString(S_MACH, K_CURRMACH, "", sCurrMach, m_MainWindow.GetIniFile()) EgtAddMachGroup("Mach01", sCurrMach) ' imposto la tavola corrente EgtSetTable("MainTab") Else EgtSetCurrentContext(CurrentProjectScene.GetCtx()) End If ' inibisco selezione diretta da Scene CurrentProjectScene.SetStatusNull() End Sub End Class