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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user