187 lines
7.4 KiB
VB.net
187 lines
7.4 KiB
VB.net
Imports EgtUILib
|
|
Imports EgtPHOTOLib
|
|
Imports System.IO
|
|
|
|
Public Class ScrapsWD
|
|
' Riferimento alla MainWindow
|
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
|
Private m_refProjectMgrUC As ProjectMgrUC
|
|
|
|
Private m_ScrapList As New List(Of Scrap)
|
|
Private m_CurrScrapId As Integer = GDB_ID.NULL
|
|
Private m_CurrScrapState As Integer = 2
|
|
Private m_sDatabaseId As String = ""
|
|
|
|
Private Sub Initalized()
|
|
' resetto eventuali errori mostrati nella pagina
|
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
|
|
|
' inserisco il titolo della pagina aperta
|
|
TitleTxBl.Content = EgtMsg(91246) ' Scraps List
|
|
ScrapsListBox.ItemsSource = m_ScrapList
|
|
' definzione posizione finetra
|
|
Me.Left = 25
|
|
Me.Top = 25
|
|
End Sub
|
|
|
|
Public Sub New(Owner As Window, LocalProjectMgrUC As ProjectMgrUC, MyScrapList As List(Of Scrap))
|
|
Me.Owner = Owner
|
|
InitializeComponent()
|
|
m_ScrapList = MyScrapList
|
|
m_refProjectMgrUC = LocalProjectMgrUC
|
|
Initalized()
|
|
End Sub
|
|
|
|
|
|
' visualizzo la fase del pezzo selezionato
|
|
Private Sub ScrapListBox_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles ScrapsListBox.PreviewMouseUp
|
|
Dim vItems As Scrap = ScrapsListBox.SelectedItems(0)
|
|
' elimino l'utimo selzione
|
|
EgtResetMark(m_CurrScrapId)
|
|
EgtDeselectObj(m_CurrScrapId)
|
|
' ricerco il grezzo associato a questo Id
|
|
Dim nRawId As Integer = EgtGetFirstRawPart()
|
|
While nRawId <> GDB_ID.NULL
|
|
If nRawId = vItems.IdRaw Then
|
|
m_CurrScrapId = nRawId
|
|
m_CurrScrapState = vItems.nState
|
|
If m_CurrScrapState = 2 Then
|
|
EgtGetInfo(nRawId, K_DATABASEID, m_sDatabaseId)
|
|
Else
|
|
m_sDatabaseId = String.Empty
|
|
End If
|
|
Dim nCurrRawPhase As Integer = 0
|
|
' recupero la fase del grezzo corrente
|
|
EgtGetInfo(nRawId, "Ph", nCurrRawPhase)
|
|
If nCurrRawPhase <> 0 Then
|
|
' evidenzio lo sfrido selezionato all'interno della fase
|
|
EgtSetCurrPhase(nCurrRawPhase)
|
|
EgtSetMark(m_CurrScrapId)
|
|
EgtSelectObj(m_CurrScrapId)
|
|
EgtDraw()
|
|
Return
|
|
End If
|
|
End If
|
|
nRawId = EgtGetNextRawPart(nRawId)
|
|
End While
|
|
|
|
End Sub
|
|
|
|
Private Sub OkBtn_Click() Handles OkBtn.Click
|
|
If m_CurrScrapId = GDB_ID.NULL Then Return
|
|
' creo una copia dell'immagine attuale (fotocamera 1)
|
|
Dim sImage As String = String.Empty
|
|
Dim sInfo As String = String.Empty
|
|
GetPrivateProfileString(S_CAMERA, K_CAM_IMAGE, "", sImage, m_MainWindow.GetIniFile())
|
|
GetPrivateProfileString(S_CAMERA, K_CAM_INFO, "", sInfo, m_MainWindow.GetIniFile())
|
|
' recupero dalla libreria il percoso del database
|
|
Dim sPhotoDir As String = String.Empty
|
|
EgtPHOTOLib.GetPhotoDir(sPhotoDir)
|
|
' recupero l'ora corrente
|
|
Dim sDate As String = Date.Now.ToString
|
|
sDate = sDate.Replace("/", "_")
|
|
sDate = sDate.Replace(" ", "_")
|
|
sDate = sDate.Replace(":", "_")
|
|
Dim sNewPath As String = sPhotoDir & "\Scrap_" & sDate
|
|
Try
|
|
File.Copy(sImage, sNewPath & ".jpg", False)
|
|
File.Copy(sInfo, sNewPath & ".txt", False)
|
|
Catch ex As Exception
|
|
EgtOutLog(ex.Message.ToString)
|
|
End Try
|
|
|
|
' se non esiste la classe StatusBar allora provo ad inizializzarla...
|
|
If IsNothing(EgtWPFLib5.LibMap.refStatusBarVM) Then
|
|
Dim objStatusBarVM As New EgtWPFLib5.StatusBarVM
|
|
End If
|
|
' salvo il contesto corrente del programma
|
|
Dim nCurrentContetxt As Integer = EgtGetCurrentContext()
|
|
' costruisco l'elenco ordinato dei punti che reppresentano il contorno del grezzo da salvare
|
|
Dim ContornScrapList As New List(Of Point3d)
|
|
|
|
Dim RefId As New Frame3d
|
|
Dim nRawSolidId As Integer = EgtGetFirstNameInGroup(m_CurrScrapId, "RawSolid")
|
|
EgtGetTextureFrame(nRawSolidId, nRawSolidId, RefId)
|
|
Dim nCurveCompoId As Integer = EgtGetFirstNameInGroup(m_CurrScrapId, "RawOutline")
|
|
Dim dStart As Double = 0
|
|
Dim dEnd As Double = 0
|
|
EgtCurveDomain(nCurveCompoId, dStart, dEnd)
|
|
Dim ptCurrPoint As Point3d
|
|
For dU As Integer = dStart To dEnd - 1
|
|
EgtAtParamPoint(nCurveCompoId, dU, m_CurrScrapId, ptCurrPoint)
|
|
ptCurrPoint.z = 0
|
|
ptCurrPoint.ToLoc(RefId)
|
|
ContornScrapList.Add(ptCurrPoint)
|
|
Next
|
|
|
|
MainData.SetPreviousContext(nCurrentContetxt)
|
|
|
|
'If Not IsNothing(MainData.ContextSTONELib) Or MainData.ContextSTONELib <> 0 Then
|
|
'If MainData.ContextSTONELib <> 0 Then
|
|
' EgtSetCurrentContext(MainData.ContextSTONELib)
|
|
'End If
|
|
|
|
' inizializzo PojectSlabV pechè si occupa di inizializzare le pagine Detail e Option
|
|
Dim MyProjectSlab As New EgtPHOTOLib.ProjectSlabV
|
|
' ACCELERARE il processo di creazione di questo oggetto!
|
|
MyProjectSlab.DataContext = New EgtPHOTOLib.ProjectSlabVM
|
|
' per ogni creazione della nuova pagina viene creata una nuova scena, ma non viene eliminata
|
|
Dim refProjectVMSceneContext As Integer = EgtGetCurrentContext()
|
|
|
|
' apro la finestra OmagPHOTO (passo il nome del file come copia dell'originale)
|
|
If ContornScrapList.Count > 2 Then
|
|
Dim MyOmagPhotoWD As New OmagPhotoWD(sNewPath & ".jpg", ContornScrapList, m_MainWindow, m_CurrScrapState, m_sDatabaseId)
|
|
OmagPhotoWD.m_IsAdded = False
|
|
OmagPhotoWD.m_sDtBsId = String.Empty
|
|
OmagPhotoWD.m_IsDeleted = False
|
|
MyOmagPhotoWD.ShowDialog()
|
|
Else
|
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
|
m_MainWindow.m_CurrentProjectPageUC.SetErrorMessage(EgtMsg(91247)) ' Error loading contour scrap
|
|
End If
|
|
|
|
' ripristino il contesto corrente dell'immagine
|
|
EgtSetCurrentContext(EgtPHOTOLib.MainData.PreviousContext)
|
|
' se l'inserimento è andatoa buon fine allora procedo a notificarlo
|
|
If OmagPhotoWD.m_IsAdded AndAlso Not String.IsNullOrEmpty(OmagPhotoWD.m_sDtBsId) Then
|
|
EgtSetInfo(m_CurrScrapId, K_ISNEWSCRAPS, 2)
|
|
EgtSetInfo(m_CurrScrapId, K_DATABASEID, OmagPhotoWD.m_sDtBsId)
|
|
Else
|
|
' se è stato eliminato dal DB allora aggiorno la lista dei grezzi
|
|
If OmagPhotoWD.m_IsDeleted Then
|
|
EgtSetInfo(m_CurrScrapId, K_ISNEWSCRAPS, 1)
|
|
EgtRemoveInfo(m_CurrScrapId, K_DATABASEID)
|
|
End If
|
|
Try
|
|
File.Delete(sNewPath & ".jpg")
|
|
File.Delete(sNewPath & ".txt")
|
|
Catch ex As Exception
|
|
EgtOutLog(ex.Message.ToString)
|
|
End Try
|
|
End If
|
|
|
|
'----------------INIZIO ELIMINAZIONE contesti generati da OmagPHOTOLib per la visualizzazione delle Texture
|
|
EgtDeleteContext(EgtPHOTOLib.MainData.ContextSTONELib)
|
|
EgtDeleteContext(refProjectVMSceneContext)
|
|
'---------------- FINE ELIMINAZIONE contesti
|
|
|
|
' aggiorno la lista degli scrap
|
|
m_refProjectMgrUC.UpDateScrapList(m_ScrapList)
|
|
ScrapsListBox.ItemsSource = m_ScrapList
|
|
ScrapsListBox.Items.Refresh()
|
|
End Sub
|
|
|
|
Private Sub ExitBtn_Click() Handles ExitBtn.Click
|
|
' resetto eventuali errori mostrati nella pagina
|
|
m_MainWindow.m_CurrentProjectPageUC.ClearMessage()
|
|
' deseleziono l'oggetto corrente
|
|
EgtResetMark(m_CurrScrapId)
|
|
EgtDeselectObj(m_CurrScrapId)
|
|
' reimposto la fase iniziale
|
|
EgtSetCurrPhase(1)
|
|
EgtDraw()
|
|
Me.Close()
|
|
End Sub
|
|
|
|
End Class
|