From 68d889e080c8574b384589eeafe240479ebe04aa Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 16 Sep 2015 07:37:28 +0000 Subject: [PATCH] TestEIn 1.6i7 : - controllo esistenza direttorio e file nel dialogo dei componenti - corretta visualizzazione coordinate mouse con grid perp. alla vista. --- Component.vb | 8 ++++ My Project/AssemblyInfo.vb | 4 +- Scene.vb | 86 ++++++++++++++++++++++++++------------ 3 files changed, 70 insertions(+), 28 deletions(-) diff --git a/Component.vb b/Component.vb index f36bc6a..5583cd1 100644 --- a/Component.vb +++ b/Component.vb @@ -85,11 +85,19 @@ Public Class Component GetPrivateProfileString(S_COMPO, K_COMPODIR, "", m_sCompoDir, Form1.GetIniFile()) ' recupero i file lua del direttorio e li inserisco nella lista dei componenti Dim DirInfo As New IO.DirectoryInfo(m_sCompoDir) + If Not DirInfo.Exists Then + EgtOutLog("Error : CompoDir does not exist") + Return + End If Dim vFi As IO.FileInfo() = DirInfo.GetFiles("*.lua") Dim Fi As IO.FileInfo For Each Fi In vFi ListBox1.Items.Add(IO.Path.GetFileNameWithoutExtension(Fi.Name)) Next + If ListBox1.Items.Count = 0 Then + EgtOutLog("Error : CompoDir empty (missing lua files)") + Return + End If ' Imposto selezione sul primo -> viene caricato il relativo componente ListBox1.SelectedIndex = 0 End Sub diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index d191172..d4b800c 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -46,5 +46,5 @@ Imports System.Runtime.InteropServices ' utilizzando l'asterisco (*) come descritto di seguito: ' - - + + diff --git a/Scene.vb b/Scene.vb index eb4452b..0c25706 100644 --- a/Scene.vb +++ b/Scene.vb @@ -690,32 +690,66 @@ Public Class Scene ' ricavo il punto 3d da proiezione inversa Dim ptWorld As Point3d EgtUnProjectPoint(WinXY, ptWorld) - 'ricavo direzione di vista - Dim nDir As Integer - EgtGetView(nDir) - 'costruisco stringa con dati - Dim sCursorPos As New System.Text.StringBuilder - Select Case nDir - Case VT.TOP, VT.BOTTOM - sCursorPos.Append("X=") - sCursorPos.Append(EgtToUiUnits(ptWorld.x).ToString("F4", CultureInfo.InvariantCulture)) - sCursorPos.Append(" Y=") - sCursorPos.Append(EgtToUiUnits(ptWorld.y).ToString("F4", CultureInfo.InvariantCulture)) - Case VT.FRONT, VT.BACK - sCursorPos.Append("X=") - sCursorPos.Append(EgtToUiUnits(ptWorld.x).ToString("F4", CultureInfo.InvariantCulture)) - sCursorPos.Append(" Z=") - sCursorPos.Append(EgtToUiUnits(ptWorld.z).ToString("F4", CultureInfo.InvariantCulture)) - Case VT.LEFT, VT.RIGHT - sCursorPos.Append("Y=") - sCursorPos.Append(EgtToUiUnits(ptWorld.y).ToString("F4", CultureInfo.InvariantCulture)) - sCursorPos.Append(" Z=") - sCursorPos.Append(EgtToUiUnits(ptWorld.z).ToString("F4", CultureInfo.InvariantCulture)) - Case Else - sCursorPos.Append(" ") - End Select - ' visualizzazione stringa - RaiseEvent OnCursorPos(Me, sCursorPos.ToString) + ' se coordinate globali + If Not m_bGridCursorPos Then + ' ricavo direzione di vista + Dim nDir As Integer + EgtGetView(nDir) + ' costruisco stringa con dati + Dim sCursorPos As New System.Text.StringBuilder + Select Case nDir + Case VT.TOP, VT.BOTTOM + sCursorPos.Append("X=") + sCursorPos.Append(EgtToUiUnits(ptWorld.x).ToString("F4", CultureInfo.InvariantCulture)) + sCursorPos.Append(" Y=") + sCursorPos.Append(EgtToUiUnits(ptWorld.y).ToString("F4", CultureInfo.InvariantCulture)) + Case VT.FRONT, VT.BACK + sCursorPos.Append("X=") + sCursorPos.Append(EgtToUiUnits(ptWorld.x).ToString("F4", CultureInfo.InvariantCulture)) + sCursorPos.Append(" Z=") + sCursorPos.Append(EgtToUiUnits(ptWorld.z).ToString("F4", CultureInfo.InvariantCulture)) + Case VT.LEFT, VT.RIGHT + sCursorPos.Append("Y=") + sCursorPos.Append(EgtToUiUnits(ptWorld.y).ToString("F4", CultureInfo.InvariantCulture)) + sCursorPos.Append(" Z=") + sCursorPos.Append(EgtToUiUnits(ptWorld.z).ToString("F4", CultureInfo.InvariantCulture)) + Case Else + sCursorPos.Append(" ") + End Select + ' visualizzazione stringa + RaiseEvent OnCursorPos(Me, sCursorPos.ToString) + ' altrimenti coordinate griglia + Else + ' porto il punto nel riferimento griglia + Dim ptGrid As Point3d = ptWorld.Loc(GDB_ID.GRID) + ' ricavo vettore direzione di vista e lo porto nel riferimento griglia + Dim dAngVertDeg, dAngHorizDeg As Double + EgtGetGenericView(dAngVertDeg, dAngHorizDeg) + Dim vtView As Vector3d = Vector3d.FromSpherical(1, dAngVertDeg, dAngHorizDeg).Loc(GDB_ID.GRID) + ' costruisco stringa con dati + ' la direzione di vista sicuramente deve coincidere con uno dei tre assi della griglia + Dim sCursorPos As New System.Text.StringBuilder + If Math.Abs(vtView.x) < EPS_SMALL And Math.Abs(vtView.y) < EPS_SMALL Then + sCursorPos.Append("X=") + sCursorPos.Append(EgtToUiUnits(ptGrid.x).ToString("F4", CultureInfo.InvariantCulture)) + sCursorPos.Append(" Y=") + sCursorPos.Append(EgtToUiUnits(ptGrid.y).ToString("F4", CultureInfo.InvariantCulture)) + ElseIf Math.Abs(vtView.x) < EPS_SMALL And Math.Abs(vtView.z) < EPS_SMALL Then + sCursorPos.Append("X=") + sCursorPos.Append(EgtToUiUnits(ptGrid.x).ToString("F4", CultureInfo.InvariantCulture)) + sCursorPos.Append(" Z=") + sCursorPos.Append(EgtToUiUnits(ptGrid.z).ToString("F4", CultureInfo.InvariantCulture)) + ElseIf Math.Abs(vtView.y) < EPS_SMALL And Math.Abs(vtView.z) < EPS_SMALL Then + sCursorPos.Append("Y=") + sCursorPos.Append(EgtToUiUnits(ptGrid.y).ToString("F4", CultureInfo.InvariantCulture)) + sCursorPos.Append(" Z=") + sCursorPos.Append(EgtToUiUnits(ptGrid.z).ToString("F4", CultureInfo.InvariantCulture)) + Else + sCursorPos.Append(" ") + End If + ' visualizzazione stringa + RaiseEvent OnCursorPos(Me, sCursorPos.ToString) + End If End If End Sub