15c69a9925
- gestione selezione punto e drag.
1181 lines
49 KiB
VB.net
1181 lines
49 KiB
VB.net
Imports System.Runtime.InteropServices
|
|
|
|
Public Class EgtInterface
|
|
|
|
Structure Vector3d
|
|
' Membri
|
|
Dim x, y, z As Double
|
|
' Costruttori
|
|
Sub New(ByVal dX As Double, ByVal dY As Double, ByVal dZ As Double)
|
|
x = dX
|
|
y = dY
|
|
z = dZ
|
|
End Sub
|
|
Sub New(ByRef VtV As Vector3d)
|
|
x = VtV.x
|
|
y = VtV.y
|
|
z = VtV.z
|
|
End Sub
|
|
' Vettore opposto
|
|
Shared Operator -(ByVal VtV1 As Vector3d) As Vector3d
|
|
Dim vtV As New Vector3d(-VtV1.x, -VtV1.y, -VtV1.z)
|
|
Return vtV
|
|
End Operator
|
|
' Somma
|
|
Shared Operator +(ByVal VtV1 As Vector3d, ByVal VtV2 As Vector3d) As Vector3d
|
|
Dim vtV As New Vector3d(VtV1.x + VtV2.x, VtV1.y + VtV2.y, VtV1.z + VtV2.z)
|
|
Return vtV
|
|
End Operator
|
|
' Sottrazione
|
|
Shared Operator -(ByVal VtV1 As Vector3d, ByVal VtV2 As Vector3d) As Vector3d
|
|
Dim vtV As New Vector3d(VtV1.x - VtV2.x, VtV1.y - VtV2.y, VtV1.z - VtV2.z)
|
|
Return vtV
|
|
End Operator
|
|
' Prodotto con un numero
|
|
Shared Operator *(ByVal dNum As Double, ByVal VtV2 As Vector3d) As Vector3d
|
|
Dim vtV As New Vector3d(dNum * VtV2.x, dNum * VtV2.y, dNum * VtV2.z)
|
|
Return vtV
|
|
End Operator
|
|
Shared Operator *(ByVal VtV1 As Vector3d, ByVal dNum As Double) As Vector3d
|
|
Dim vtV As New Vector3d(dNum * VtV1.x, dNum * VtV1.y, dNum * VtV1.z)
|
|
Return vtV
|
|
End Operator
|
|
' Divisione per un numero
|
|
Shared Operator /(ByVal VtV1 As Vector3d, ByVal dDiv As Double) As Vector3d
|
|
Dim dMul As Double = 1 / dDiv
|
|
Dim vtV As New Vector3d(dMul * VtV1.x, dMul * VtV1.y, dMul * VtV1.z)
|
|
Return vtV
|
|
End Operator
|
|
' Prodotto scalare
|
|
Shared Operator *(ByVal VtV1 As Vector3d, ByVal VtV2 As Vector3d) As Double
|
|
Return (VtV1.x * VtV2.x + VtV1.y * VtV2.y + VtV1.z * VtV2.z)
|
|
End Operator
|
|
' Prodotto scalare nel piano XY
|
|
Shared Function ScalarXY(ByVal VtV1 As Vector3d, ByVal VtV2 As Vector3d) As Double
|
|
Return (VtV1.x * VtV2.x + VtV1.y * VtV2.y)
|
|
End Function
|
|
' Prodotto vettoriale
|
|
Shared Operator ^(ByVal VtV1 As Vector3d, ByVal VtV2 As Vector3d) As Vector3d
|
|
Dim vtV As New Vector3d(VtV1.y * VtV2.z - VtV1.z * VtV2.y,
|
|
VtV1.z * VtV2.x - VtV1.x * VtV2.z,
|
|
VtV1.x * VtV2.y - VtV1.y * VtV2.x)
|
|
Return vtV
|
|
End Operator
|
|
' Prodotto vettoriale nel piano XY
|
|
Shared Function CrossXY(ByVal VtV1 As Vector3d, ByVal VtV2 As Vector3d) As Double
|
|
Return (VtV1.x * VtV2.y - VtV1.y * VtV2.x)
|
|
End Function
|
|
' Quadrato della lunghezza
|
|
Function SqLen() As Double
|
|
Return (x * x + y * y + z * z)
|
|
End Function
|
|
' Lunghezza
|
|
Function Len() As Double
|
|
Return Math.Sqrt(x * x + y * y + z * z)
|
|
End Function
|
|
' Normalizzazione
|
|
Function Normalize(Optional ByVal dEps As Double = EPS_SMALL) As Boolean
|
|
Return EgtVectorNormalize(x, y, z, dEps)
|
|
End Function
|
|
'Rotazione
|
|
Function Rotate(ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
Return EgtVectorRotate(x, y, z, VtAx, dAngRotDeg)
|
|
End Function
|
|
' Scalatura
|
|
Function Scale(ByRef frRef As Frame3d, ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
Return EgtVectorScale(x, y, z, frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ(),
|
|
dCoeffX, dCoeffY, dCoeffZ)
|
|
End Function
|
|
' Mirror
|
|
Function Mirror(ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean
|
|
Return EgtVectorMirror(x, y, z, VtNorm)
|
|
End Function
|
|
' Shear
|
|
Function Shear(ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
|
|
Return EgtVectorShear(x, y, z, VtNorm, VtDir, dCoeff)
|
|
End Function
|
|
' Cambio di riferimento : dal riferimento al globale
|
|
Function ToGlob(ByRef frRef As Frame3d) As Boolean
|
|
If frRef.IsValid Then
|
|
Return EgtVectorToGlob(x, y, z, frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Cambio di riferimento : dal globale al riferimento
|
|
Function ToLoc(ByRef frRef As Frame3d) As Boolean
|
|
If frRef.IsValid Then
|
|
Return EgtVectorToLoc(x, y, z, frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Cambio di riferimento : dal primo riferimento al secondo
|
|
Function LocToLoc(ByRef frSou As Frame3d, ByRef frDest As Frame3d) As Boolean
|
|
If frSou.IsValid And frDest.IsValid Then
|
|
Return EgtVectorLocToLoc(x, y, z,
|
|
frSou.Orig(), frSou.VersX(), frSou.VersY(), frSou.VersZ(),
|
|
frDest.Orig(), frDest.VersX(), frDest.VersY(), frDest.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Versore Asse X
|
|
Shared Function X_AX() As Vector3d
|
|
Dim vtZ As New Vector3d(1, 0, 0)
|
|
Return vtZ
|
|
End Function
|
|
' Versore Asse Y
|
|
Shared Function Y_AX() As Vector3d
|
|
Dim vtZ As New Vector3d(0, 1, 0)
|
|
Return vtZ
|
|
End Function
|
|
' Versore Asse Z
|
|
Shared Function Z_AX() As Vector3d
|
|
Dim vtZ As New Vector3d(0, 0, 1)
|
|
Return vtZ
|
|
End Function
|
|
End Structure
|
|
|
|
Structure Point3d
|
|
' Membri
|
|
Dim x, y, z As Double
|
|
' Costruttori
|
|
Sub New(ByVal dX As Double, ByVal dY As Double, ByVal dZ As Double)
|
|
x = dX
|
|
y = dY
|
|
z = dZ
|
|
End Sub
|
|
Sub New(ByRef PtP As Point3d)
|
|
x = PtP.x
|
|
y = PtP.y
|
|
z = PtP.z
|
|
End Sub
|
|
' Somma di un punto e un vettore
|
|
Shared Operator +(ByVal PtP1 As Point3d, ByVal VtV2 As Vector3d) As Point3d
|
|
Dim ptP As New Point3d(PtP1.x + VtV2.x, PtP1.y + VtV2.y, PtP1.z + VtV2.z)
|
|
Return ptP
|
|
End Operator
|
|
Shared Operator +(ByVal VtV1 As Vector3d, ByVal PtP2 As Point3d) As Point3d
|
|
Dim ptP As New Point3d(VtV1.x + PtP2.x, VtV1.y + PtP2.y, VtV1.z + PtP2.z)
|
|
Return ptP
|
|
End Operator
|
|
' Differenza di due punti (produce un vettore)
|
|
Shared Operator -(ByVal PtP1 As Point3d, ByVal PtP2 As Point3d) As Vector3d
|
|
Dim vtV As New Vector3d(PtP1.x - PtP2.x, PtP1.y - PtP2.y, PtP1.z - PtP2.z)
|
|
Return vtV
|
|
End Operator
|
|
' Media pesata di due punti (con 0 è il primo, con 1 il secondo, con 0.5 il medio, ...)
|
|
Shared Function Media(ByRef ptP1 As Point3d, ByRef ptP2 As Point3d, Optional ByVal dCoeff As Double = 0.5) As Point3d
|
|
Dim ptMedia As New Point3d((1 - dCoeff) * ptP1.x + dCoeff * ptP2.x,
|
|
(1 - dCoeff) * ptP1.y + dCoeff * ptP2.y,
|
|
(1 - dCoeff) * ptP1.z + dCoeff * ptP2.z)
|
|
Return ptMedia
|
|
End Function
|
|
' Traslazione
|
|
Function Move(ByRef VtMove As Vector3d) As Boolean
|
|
Return EgtPointTranslate(x, y, z, VtMove)
|
|
End Function
|
|
' Rotazione
|
|
Function Rotate(ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
Return EgtPointRotate(x, y, z, PtAx, VtAx, dAngRotDeg)
|
|
End Function
|
|
' Scalatura
|
|
Function Scale(ByRef frRef As Frame3d, ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
Return EgtPointScale(x, y, z, frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ(),
|
|
dCoeffX, dCoeffY, dCoeffZ)
|
|
End Function
|
|
' Mirror
|
|
Function Mirror(ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean
|
|
Return EgtPointMirror(x, y, z, PtOn, VtNorm)
|
|
End Function
|
|
' Shear
|
|
Function Shear(ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
|
|
Return EgtPointShear(x, y, z, PtOn, VtNorm, VtDir, dCoeff)
|
|
End Function
|
|
' Cambio di riferimento : dal riferimento al globale
|
|
Function ToGlob(ByRef frRef As Frame3d) As Boolean
|
|
If frRef.IsValid Then
|
|
Return EgtPointToGlob(x, y, z, frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Cambio di riferimento : dal globale al riferimento
|
|
Function ToLoc(ByRef frRef As Frame3d) As Boolean
|
|
If frRef.IsValid Then
|
|
Return EgtPointToLoc(x, y, z, frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Cambio di riferimento : dal primo riferimento al secondo
|
|
Function LocToLoc(ByRef frSou As Frame3d, ByRef frDest As Frame3d) As Boolean
|
|
If frSou.IsValid And frDest.IsValid Then
|
|
Return EgtPointLocToLoc(x, y, z,
|
|
frSou.Orig(), frSou.VersX(), frSou.VersY(), frSou.VersZ(),
|
|
frDest.Orig(), frDest.VersX(), frDest.VersY(), frDest.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Punto Origine
|
|
Shared Function ORIG() As Point3d
|
|
Dim ptP As New Point3d(0, 0, 0)
|
|
Return ptP
|
|
End Function
|
|
End Structure
|
|
|
|
Class Frame3d
|
|
' Membri
|
|
Private PtOrig As Point3d
|
|
Private VtDirX, VtDirY, VtDirZ As Vector3d
|
|
Private bOk As Boolean
|
|
' Costruttori
|
|
Sub New()
|
|
PtOrig = Point3d.ORIG
|
|
VtDirX = Vector3d.X_AX
|
|
VtDirY = Vector3d.Y_AX
|
|
VtDirZ = Vector3d.Z_AX
|
|
bOk = True
|
|
End Sub
|
|
Sub New(ByRef PtOri As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d)
|
|
PtOrig = PtOri
|
|
VtDirX = VtX
|
|
VtDirY = VtY
|
|
VtDirZ = VtZ
|
|
bOk = VtDirX.Normalize() And VtDirY.Normalize() And VtDirZ.Normalize() And Verify()
|
|
End Sub
|
|
Sub New(ByRef PtOri As Point3d)
|
|
PtOrig = PtOri
|
|
VtDirX = Vector3d.X_AX
|
|
VtDirY = Vector3d.Y_AX
|
|
VtDirZ = Vector3d.Z_AX
|
|
bOk = True
|
|
End Sub
|
|
' Inizializzatori
|
|
Public Function Setup(ByRef PtOri As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
|
|
PtOrig = PtOri
|
|
VtDirX = VtX
|
|
VtDirY = VtY
|
|
VtDirZ = VtZ
|
|
bOk = VtDirX.Normalize() And VtDirY.Normalize() And VtDirZ.Normalize() And Verify()
|
|
Return bOk
|
|
End Function
|
|
Public Function Setup(ByRef PtOri As Point3d) As Boolean
|
|
PtOrig = PtOri
|
|
VtDirX = Vector3d.X_AX
|
|
VtDirY = Vector3d.Y_AX
|
|
VtDirZ = Vector3d.Z_AX
|
|
bOk = True
|
|
Return bOk
|
|
End Function
|
|
' Verifica
|
|
Private Function Verify() As Boolean
|
|
' verifica della ortogonalità dei versori e del senso destrorso
|
|
Dim dOrtXY As Double = VtDirX * VtDirY
|
|
Dim dOrtYZ As Double = VtDirY * VtDirZ
|
|
Dim dOrtZX As Double = VtDirZ * VtDirX
|
|
Dim vtTmp As Vector3d = VtDirX ^ VtDirY
|
|
Dim dRight As Double = vtTmp * VtDirZ
|
|
If Math.Abs(dOrtXY) > EPS_ZERO Or
|
|
Math.Abs(dOrtYZ) > EPS_ZERO Or
|
|
Math.Abs(dOrtZX) > EPS_ZERO Or
|
|
dRight < EPS_ZERO Then
|
|
Return False
|
|
Else
|
|
Return True
|
|
End If
|
|
End Function
|
|
Public Function IsValid() As Boolean
|
|
Return bOk
|
|
End Function
|
|
' Restituzione componenti
|
|
Function Orig() As Point3d
|
|
Return PtOrig
|
|
End Function
|
|
Function VersX() As Vector3d
|
|
Return VtDirX
|
|
End Function
|
|
Function VersY() As Vector3d
|
|
Return VtDirY
|
|
End Function
|
|
Function VersZ() As Vector3d
|
|
Return VtDirZ
|
|
End Function
|
|
' Traslazione
|
|
Function Move(ByRef VtMove As Vector3d) As Boolean
|
|
If bOk Then
|
|
Return EgtFrameTranslate(PtOrig, VtDirX, VtDirY, VtDirZ, VtMove)
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Rotazione
|
|
Function Rotate(ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
If bOk Then
|
|
Return EgtFrameRotate(PtOrig, VtDirX, VtDirY, VtDirZ, PtAx, VtAx, dAngRotDeg)
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Cambio di riferimento : dal riferimento al globale
|
|
Function ToGlob(ByRef frRef As Frame3d) As Boolean
|
|
If bOk And frRef.IsValid Then
|
|
Return EgtFrameToGlob(PtOrig, VtDirX, VtDirY, VtDirZ,
|
|
frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Cambio di riferimento : dal globale al riferimento
|
|
Function ToLoc(ByRef frRef As Frame3d) As Boolean
|
|
If bOk And frRef.IsValid Then
|
|
Return EgtFrameToLoc(PtOrig, VtDirX, VtDirY, VtDirZ,
|
|
frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
' Cambio di riferimento : dal primo riferimento al secondo
|
|
Function LocToLoc(ByRef frSou As Frame3d, ByRef frDest As Frame3d) As Boolean
|
|
If frSou.IsValid And frDest.IsValid Then
|
|
Return EgtFrameLocToLoc(PtOrig, VtDirX, VtDirY, VtDirZ,
|
|
frSou.Orig(), frSou.VersX(), frSou.VersY(), frSou.VersZ(),
|
|
frDest.Orig(), frDest.VersX(), frDest.VersY(), frDest.VersZ())
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
End Class
|
|
|
|
Structure Color
|
|
Dim R, G, B, A As Integer
|
|
Sub New(ByVal nRed As Integer, ByVal nGreen As Integer, ByVal nBlue As Integer, Optional ByVal nAlpha As Integer = 100)
|
|
R = nRed
|
|
G = nGreen
|
|
B = nBlue
|
|
A = nAlpha
|
|
End Sub
|
|
Sub Setup(ByVal nRed As Integer, ByVal nGreen As Integer, ByVal nBlue As Integer, Optional ByVal nAlpha As Integer = 100)
|
|
R = nRed
|
|
G = nGreen
|
|
B = nBlue
|
|
A = nAlpha
|
|
End Sub
|
|
End Structure
|
|
|
|
#If PLATFORM = "x64" Then
|
|
#If DEBUG Then
|
|
Const EgtIntDll As String = "EgtInterfaceD64.dll"
|
|
#Else
|
|
Const EgtIntDll As String = "EgtInterfaceR64.dll"
|
|
#End If
|
|
#Else
|
|
#If DEBUG Then
|
|
Const EgtIntDll As String = "EgtInterfaceD32.dll"
|
|
#Else
|
|
Const EgtIntDll As String = "EgtInterfaceR32.dll"
|
|
#End If
|
|
#End If
|
|
|
|
|
|
'---------- General ------------------------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtInit(ByVal nDebug As Integer, ByVal sLogFile As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtExit() As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetKey(ByVal sKey As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetFont(ByVal sNfeFontDir As String, ByVal sDefaultFont As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtFreeMemory(ByVal sB As IntPtr) As Boolean
|
|
End Function
|
|
|
|
|
|
'---------- Geo Base -----------------------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtVectorNormalize(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
Optional ByVal dEps As Double = EPS_SMALL) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtVectorRotate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtVectorScale(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtVectorMirror(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef VtNorm As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtVectorShear(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtVectorToGlob(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtVectorToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtVectorLocToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
|
|
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPointTranslate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef VtMove As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPointRotate(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPointScale(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPointMirror(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPointShear(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPointToGlob(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPointToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPointLocToLoc(ByRef X As Double, ByRef Y As Double, ByRef Z As Double,
|
|
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
|
|
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtFrameTranslate(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByRef VtMove As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtFrameRotate(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtFrameToGlob(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtFrameToLoc(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtFrameLocToLoc(ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByRef PtO1 As Point3d, ByRef VtX1 As Vector3d, ByRef VtY1 As Vector3d, ByRef VtZ1 As Vector3d,
|
|
ByRef PtO2 As Point3d, ByRef VtX2 As Vector3d, ByRef VtY2 As Vector3d, ByRef VtZ2 As Vector3d) As Boolean
|
|
End Function
|
|
|
|
|
|
'---------- GeomDb -------------------------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtInitGeomDB() As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetCurrentContext(ByVal nCtx As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtResetCurrentContext() As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetCurrentContext() As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetDefaultMaterial(ByVal nRed As Integer, ByVal nGreen As Integer, ByVal nBlue As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtNewFile() As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtOpenFile(ByVal sFilePath As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSaveFile(ByVal sFilePath As String, ByVal nFlag As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetFileType(ByVal sFilePath As String) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtImportDxf(ByVal sFilePath As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtImportStl(ByVal sFilePath As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtImportCnc(ByVal sFilePath As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtExportDxf(ByVal nId As Integer, ByVal sFilePath As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtExportStl(ByVal nId As Integer, ByVal sFilePath As String) As Boolean
|
|
End Function
|
|
|
|
|
|
'---------- GeomDb Objects Create ----------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtCreateGroup(ByVal nParentId As Integer,
|
|
ByRef PtOrig As Point3d, ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Integer
|
|
End Function
|
|
Public Shared Function EgtCreateGroup(ByVal nParentId As Integer, ByRef frRef As Frame3d) As Integer
|
|
Return EgtCreateGroup(nParentId, frRef.Orig(), frRef.VersX(), frRef.VersY(), frRef.VersZ())
|
|
End Function
|
|
Public Shared Function EgtCreateGroup(ByVal nParentId As Integer) As Integer
|
|
Return EgtCreateGroup(nParentId, Point3d.ORIG(), Vector3d.X_AX(), Vector3d.Y_AX(), Vector3d.Z_AX())
|
|
End Function
|
|
|
|
|
|
'---------- GeomDb Objects Modify ----------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtFlipText(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtMirrorText(ByVal nId As Integer, ByVal bOnL As Boolean) As Boolean
|
|
End Function
|
|
|
|
|
|
'---------- GeomDb Objects -----------------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtExistsObj(ByVal nGroupId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetGroupObjs(ByVal nGroupId As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetFirstInGroup(ByVal nGroupId As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetNext(ByVal nId As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetLastInGroup(ByVal nGroupId As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetPrev(ByVal nId As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetBBox(ByVal nId As Integer, ByVal nFlag As Integer,
|
|
ByRef PtMin As Point3d, ByRef PtMax As Point3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetBBoxGlob(ByVal nId As Integer, ByVal nFlag As Integer,
|
|
ByRef PtMin As Point3d, ByRef PtMax As Point3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtCopy(ByVal nId As Integer, ByVal nRefId As Integer, ByVal nSonBeforeAfter As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtCopyGlob(ByVal nId As Integer, ByVal nRefId As Integer, ByVal nSonBeforeAfter As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRelocate(ByVal nId As Integer, ByVal nRefId As Integer, ByVal nSonBeforeAfter As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRelocateGlob(ByVal nId As Integer, ByVal nRefId As Integer, ByVal nSonBeforeAfter As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtErase(ByVal nId As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetType(ByVal nId As Integer) As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtGetTitle(ByVal nId As Integer, ByRef psTitle As IntPtr) As Boolean
|
|
End Function
|
|
Public Shared Function EgtGetTitle(ByVal nId As Integer, ByRef sTitle As String) As Boolean
|
|
Dim psTitle As IntPtr
|
|
Dim bOk As Boolean = EgtGetTitle(nId, psTitle)
|
|
sTitle = Marshal.PtrToStringUni(psTitle)
|
|
EgtFreeMemory(psTitle)
|
|
Return bOk
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtGroupDump(ByVal nId As Integer, ByRef psDump As IntPtr) As Boolean
|
|
End Function
|
|
Public Shared Function EgtGroupDump(ByVal nId As Integer, ByRef sDump As String) As Boolean
|
|
Dim psDump As IntPtr
|
|
Dim bOk As Boolean = EgtGroupDump(nId, psDump)
|
|
sDump = Marshal.PtrToStringUni(psDump)
|
|
EgtFreeMemory(psDump)
|
|
Return bOk
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtGeoObjDump(ByVal nId As Integer, ByRef psDump As IntPtr) As Boolean
|
|
End Function
|
|
Public Shared Function EgtGeoObjDump(ByVal nId As Integer, ByRef sDump As String) As Boolean
|
|
Dim psDump As IntPtr
|
|
Dim bOk As Boolean = EgtGeoObjDump(nId, psDump)
|
|
sDump = Marshal.PtrToStringUni(psDump)
|
|
EgtFreeMemory(psDump)
|
|
Return bOk
|
|
End Function
|
|
|
|
|
|
'---------- GeomDb Obj Attributes ----------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetLevel(ByVal nId As Integer, ByVal nLevel As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRevertLevel(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetLevel(ByVal nId As Integer, ByRef nLevel As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetCalcLevel(ByVal nId As Integer, ByRef nLevel As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetMode(ByVal nId As Integer, ByVal nMode As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRevertMode(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetMode(ByVal nId As Integer, ByRef nMode As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetCalcMode(ByVal nId As Integer, ByRef nMode As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetStatus(ByVal nId As Integer, ByVal nStat As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRevertStatus(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetStatus(ByVal nId As Integer, ByRef nStat As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetCalcStatus(ByVal nId As Integer, ByRef nStat As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetMark(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtResetMark(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetMark(ByVal nId As Integer, ByRef bMark As Boolean) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetCalcMark(ByVal nId As Integer, ByRef bMark As Boolean) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetName(ByVal nId As Integer, ByVal sName As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtGetName(ByVal nId As Integer, ByRef psName As IntPtr) As Boolean
|
|
End Function
|
|
Public Shared Function EgtGetName(ByVal nId As Integer, ByRef sName As String) As Boolean
|
|
Dim psName As IntPtr
|
|
Dim bOk As Boolean = EgtGetName(nId, psName)
|
|
sName = Marshal.PtrToStringUni(psName)
|
|
EgtFreeMemory(psName)
|
|
Return bOk
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtExistsName(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRemoveName(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetInfo(ByVal nId As Integer, ByVal sKey As String, ByVal sInfo As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtGetInfo(ByVal nId As Integer, ByVal sKey As String, ByRef psInfo As IntPtr) As Boolean
|
|
End Function
|
|
Public Shared Function EgtGetInfo(ByVal nId As Integer, ByVal sKey As String, ByRef sInfo As String) As Boolean
|
|
Dim psInfo As IntPtr
|
|
Dim bOk As Boolean = EgtGetInfo(nId, sKey, psInfo)
|
|
sInfo = Marshal.PtrToStringUni(psInfo)
|
|
EgtFreeMemory(psInfo)
|
|
Return bOk
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtExistsInfo(ByVal nId As Integer, ByVal sKey As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRemoveInfo(ByVal nId As Integer, ByVal sKey As String) As Boolean
|
|
End Function
|
|
|
|
|
|
'---------- GeomDb Obj Selection -----------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSelectObj(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtDeselectObj(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtDeselectAll() As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtIsSelectedObj(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetFirstSelectedObj() As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetNextSelectedObj() As Integer
|
|
End Function
|
|
|
|
|
|
'---------- GeomDb Obj Transform -----------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtMove(ByVal nId As Integer, ByRef VtMove As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtMoveGlob(ByVal nId As Integer, ByRef VtMove As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtMoveGroup(ByVal nId As Integer, ByRef VtMove As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRotate(ByVal nId As Integer, ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRotateGlob(ByVal nId As Integer, ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtRotateGroup(ByVal nId As Integer, ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtScale(ByVal nId As Integer, ByRef PtOrig As Point3d,
|
|
ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
End Function
|
|
Public Shared Function EgtScale(ByVal nId As Integer, ByRef Frame As Frame3d,
|
|
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
Return EgtScale(nId, Frame.Orig(), Frame.VersX(), Frame.VersY(), Frame.VersZ(), dCoeffX, dCoeffY, dCoeffZ)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtScaleGlob(ByVal nId As Integer, ByRef PtOrig As Point3d,
|
|
ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
End Function
|
|
Public Shared Function EgtScaleGlob(ByVal nId As Integer, ByRef Frame As Frame3d,
|
|
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
Return EgtScaleGlob(nId, Frame.Orig(), Frame.VersX(), Frame.VersY(), Frame.VersZ(), dCoeffX, dCoeffY, dCoeffZ)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtScaleGroup(ByVal nId As Integer, ByRef PtOrig As Point3d,
|
|
ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d,
|
|
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
End Function
|
|
Public Shared Function EgtScaleGroup(ByVal nId As Integer, ByRef Frame As Frame3d,
|
|
ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean
|
|
Return EgtScaleGroup(nId, Frame.Orig(), Frame.VersX(), Frame.VersY(), Frame.VersZ(), dCoeffX, dCoeffY, dCoeffZ)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtMirror(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtMirrorGlob(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtMirrorGroup(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtShear(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d,
|
|
ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtShearGlob(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d,
|
|
ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtShearGroup(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d,
|
|
ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean
|
|
End Function
|
|
|
|
|
|
'---------- Scene --------------------------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtInitScene(ByVal hWnd As IntPtr, ByVal nDriver As Integer,
|
|
ByVal b2Buff As Boolean, ByVal nColorBits As Integer, ByVal nDepthBits As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetBackground(ByVal nTopRed As Integer, ByVal nTopGreen As Integer, ByVal nTopBlue As Integer,
|
|
ByVal nBottomRed As Integer, ByVal nBottomGreen As Integer, ByVal nBottomBlue As Integer,
|
|
Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetMarkAttribs(ByVal nRed As Integer, ByVal nGreen As Integer, ByVal nBlue As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetGeoLineAttribs(ByVal nRed As Integer, ByVal nGreen As Integer, ByVal nBlue As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetWinRectAttribs(ByVal bOutline As Boolean, ByVal nRed As Integer, ByVal nGreen As Integer, ByVal nBlue As Integer, ByVal nAlpha As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtResize(ByVal nW As Integer, ByVal nH As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtDraw() As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtSelect(ByVal nWinX As Integer, ByVal nWinY As Integer,
|
|
ByVal nSelW As Integer, ByVal nSelH As Integer, ByRef nSel As Integer) As Boolean
|
|
End Function
|
|
Public Shared Function EgtSelect(ByVal Curr As Point, ByVal nSelW As Integer, ByVal nSelH As Integer,
|
|
ByRef nSel As Integer) As Boolean
|
|
Return EgtSelect(Curr.X, Curr.Y, nSelW, nSelH, nSel)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetFirstObjInSelWin() As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetNextObjInSelWin() As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtUnselectableAdd(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtUnselectableRemove(ByVal nId As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtUnselectableClearAll() As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetSelectedSnapPoint(ByVal nSnap As Integer,
|
|
ByVal nWinX As Integer, ByVal nWinY As Integer, ByVal nSelW As Integer, ByVal nSelH As Integer,
|
|
ByRef ptP As Point3d) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetShowMode(ByVal nShowMode As Integer, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetShowMode() As Integer
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetShowCurveDirection(ByVal bShow As Boolean, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetShowCurveDirection() As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtZoom(ByVal nZoom As Integer, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtZoomOnPoint(ByVal nWinX As Integer, ByVal nWinY As Integer, ByVal dCoeff As Double, ByVal bRedraw As Boolean) As Boolean
|
|
End Function
|
|
Public Shared Function EgtZoomOnPoint(ByVal Curr As Point, ByVal dCoeff As Double, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
Return EgtZoomOnPoint(Curr.X, Curr.Y, dCoeff, bRedraw)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetGeoLine(ByRef ptP1 As Point3d, ByRef ptP2 As Point3d, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtResetGeoLine(Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtSetWinRect(ByVal nPrevX As Integer, ByVal nPrevY As Integer, ByVal nCurrX As Integer, ByVal nCurrY As Integer, ByVal bRedraw As Boolean) As Boolean
|
|
End Function
|
|
Public Shared Function EgtSetWinRect(ByVal Prev As Point, ByVal Curr As Point, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
Return EgtSetWinRect(Prev.X, Prev.Y, Curr.X, Curr.Y, bRedraw)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtResetWinRect(Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtZoomWin(ByVal nPrevX As Integer, ByVal nPrevY As Integer, ByVal nCurrX As Integer, ByVal nCurrY As Integer, ByVal bRedraw As Boolean) As Boolean
|
|
End Function
|
|
Public Shared Function EgtZoomWin(ByVal Prev As Point, ByVal Curr As Point, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
Return EgtZoomWin(Prev.X, Prev.Y, Curr.X, Curr.Y, bRedraw)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtSetView(ByVal nView As Integer, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtPanCamera(ByVal nPrevX As Integer, ByVal nPrevY As Integer, ByVal nCurrX As Integer, ByVal nCurrY As Integer, ByVal bRedraw As Boolean) As Boolean
|
|
End Function
|
|
Public Shared Function EgtPanCamera(ByVal Prev As Point, ByVal Curr As Point, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
Return EgtPanCamera(Prev.X, Prev.Y, Curr.X, Curr.Y, bRedraw)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtRotateCamera(ByVal nPrevX As Integer, ByVal nPrevY As Integer, ByVal nCurrX As Integer, ByVal nCurrY As Integer, ByVal bRedraw As Boolean) As Boolean
|
|
End Function
|
|
Public Shared Function EgtRotateCamera(ByVal Prev As Point, ByVal Curr As Point, Optional ByVal bRedraw As Boolean = True) As Boolean
|
|
Return EgtRotateCamera(Prev.X, Prev.Y, Curr.X, Curr.Y, bRedraw)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtGetCameraDir(ByRef nDir As Integer) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtUnProjectPoint(ByVal nWinX As Integer, ByVal nWinY As Integer, ByRef ptP As Point3d) As Boolean
|
|
End Function
|
|
Public Shared Function EgtUnProjectPoint(ByVal Curr As Point, ByRef ptP As Point3d) As Boolean
|
|
Return EgtUnProjectPoint(Curr.X, Curr.Y, ptP)
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtProjectPoint(ByRef ptP As Point3d, ByRef ptWin As Point3d) As Boolean
|
|
End Function
|
|
|
|
|
|
'---------- Tsc Executor -------------------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtInitTscExec() As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtTscExecFile(ByVal sFilePath As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtTscExecLine(ByVal sLine As String) As Boolean
|
|
End Function
|
|
|
|
|
|
'---------- LUA Executor -------------------------------------------------------
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtLuaExecFile(ByVal sFilePath As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Public Shared Function EgtLuaExecLine(ByVal sLine As String) As Boolean
|
|
End Function
|
|
|
|
<DllImport(EgtIntDll, CharSet:=CharSet.Unicode)>
|
|
Private Shared Function EgtLuaGetLastError(ByRef psError As IntPtr) As Boolean
|
|
End Function
|
|
Public Shared Function EgtLuaGetLastError(ByRef sError As String) As Boolean
|
|
Dim psError As IntPtr
|
|
Dim bOk As Boolean = EgtLuaGetLastError(psError)
|
|
sError = Marshal.PtrToStringUni(psError)
|
|
EgtFreeMemory(psError)
|
|
Return bOk
|
|
End Function
|
|
|
|
'Costanti : GEOMETRIA
|
|
Public Const EPS_SMALL As Double = 0.001
|
|
Public Const EPS_ZERO As Double = 0.0000001
|
|
'Costanti : TIPO DI FILE
|
|
Public Const FT_NULL As Integer = 0
|
|
Public Const FT_NGE As Integer = 1
|
|
Public Const FT_NFE As Integer = 2
|
|
Public Const FT_DXF As Integer = 11
|
|
Public Const FT_STL As Integer = 12
|
|
Public Const FT_CNC As Integer = 13
|
|
Public Const FT_TSC As Integer = 101
|
|
Public Const FT_LUA As Integer = 102
|
|
'Costanti : FORMATO FILE NGE
|
|
Public Const NGE_TEXT As Integer = 0
|
|
Public Const NGE_BIN As Integer = 1
|
|
Public Const NGE_CMPTEXT As Integer = 2
|
|
'Costanti : ID GEOMDB
|
|
Public Const GDB_ID_ROOT As Integer = 0
|
|
Public Const GDB_ID_NULL As Integer = -1
|
|
Public Const GDB_ID_SEL As Integer = -2
|
|
'Costanti : TIPO OGGETTI
|
|
Public Const TY_NONE As Integer = 0
|
|
Public Const TY_GROUP As Integer = 2
|
|
Public Const TY_GEO_VECTOR As Integer = 128
|
|
Public Const TY_GEO_POINT As Integer = 129
|
|
Public Const TY_GEO_FRAME As Integer = 130
|
|
Public Const TY_CRV_LINE As Integer = 256
|
|
Public Const TY_CRV_ARC As Integer = 257
|
|
Public Const TY_CRV_BEZ As Integer = 258
|
|
Public Const TY_CRV_COMPO As Integer = 259
|
|
Public Const TY_SRF_MESH As Integer = 512
|
|
Public Const TY_EXT_TEXT As Integer = 1024
|
|
'Costanti : POSIZIONE DI COPIA DI UN OGGETTO
|
|
Public Const GDB_BEFORE As Integer = -1
|
|
Public Const GDB_SON As Integer = 0
|
|
Public Const GDB_AFTER As Integer = 1
|
|
'Costanti : LIVELLO DI UN OGGETTO
|
|
Public Const GDB_LV_USER As Integer = 1
|
|
Public Const GDB_LV_SYSTEM As Integer = 2
|
|
Public Const GDB_LV_TEMP As Integer = 3
|
|
'Costanti : MODO DI UN OGGETTO
|
|
Public Const GDB_MD_STD As Integer = 1
|
|
Public Const GDB_MD_LOCKED As Integer = 2
|
|
Public Const GDB_MD_HIDDEN As Integer = 3
|
|
'Costanti : STATO DI UN OGGETTO
|
|
Public Const GDB_ST_OFF As Integer = 0
|
|
Public Const GDB_ST_ON As Integer = 1
|
|
Public Const GDB_ST_SEL As Integer = 2
|
|
'Costanti : TIPO VISUALIZZAZIONE
|
|
Public Const SM_WIREFRAME As Integer = 0
|
|
Public Const SM_HIDDENLINE As Integer = 1
|
|
Public Const SM_SHADING As Integer = 2
|
|
'Costanti : TIPO ZOOM
|
|
Public Const ZM_ALL As Integer = 1
|
|
Public Const ZM_IN As Integer = 2
|
|
Public Const ZM_OUT As Integer = 3
|
|
'Costanti : TIPO VISTA
|
|
Public Const CT_NONE As Integer = 0
|
|
Public Const CT_TOP As Integer = 1
|
|
Public Const CT_FRONT As Integer = 2
|
|
Public Const CT_RIGHT As Integer = 3
|
|
Public Const CT_BACK As Integer = 4
|
|
Public Const CT_LEFT As Integer = 5
|
|
Public Const CT_BOTTOM As Integer = 6
|
|
Public Const CT_ISO_SW As Integer = 7
|
|
Public Const CT_ISO_SE As Integer = 8
|
|
Public Const CT_ISO_NE As Integer = 9
|
|
Public Const CT_ISO_NW As Integer = 10
|
|
'Costanti : TIPO SNAP POINT
|
|
Public Const SP_END As Integer = 0
|
|
Public Const SP_MID As Integer = 1
|
|
Public Const SP_CENTER As Integer = 2
|
|
Public Const SP_NEAR As Integer = 3
|
|
'Costanti : flag per BBOX
|
|
Public Const BBF_STANDARD As Integer = 0
|
|
Public Const BBF_ONLY_VISIBLE As Integer = 1
|
|
Public Const BBF_IGNORE_TEXT As Integer = 2
|
|
Public Const BBF_IGNORE_DIM As Integer = 3
|
|
Public Const BBF_EXACT As Integer = 4
|
|
|
|
End Class
|