TestEIn 1.6i7 :

- controllo esistenza direttorio e file nel dialogo dei componenti
- corretta visualizzazione coordinate mouse con grid perp. alla vista.
This commit is contained in:
Dario Sassi
2015-09-16 07:37:28 +00:00
parent 246d9a1cec
commit 68d889e080
3 changed files with 70 additions and 28 deletions
+8
View File
@@ -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
+2 -2
View File
@@ -46,5 +46,5 @@ Imports System.Runtime.InteropServices
' utilizzando l'asterisco (*) come descritto di seguito:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.6.9.6")>
<Assembly: AssemblyFileVersion("1.6.9.6")>
<Assembly: AssemblyVersion("1.6.9.7")>
<Assembly: AssemblyFileVersion("1.6.9.7")>
+60 -26
View File
@@ -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