diff --git a/EgtInterface.vb b/EgtInterface.vb index b81f660..19eef5e 100644 --- a/EgtInterface.vb +++ b/EgtInterface.vb @@ -2131,6 +2131,23 @@ Public Function EgtCreatePolygonFromSide(ByVal nParentId As Integer, ByVal nNumS End If End Function + +Private Function EgtCreateSurfFrRectangle_32(ByVal nParentId As Integer, ByRef ptMin As Point3d, ByRef ptMax As Point3d, + Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Integer +End Function + +Private Function EgtCreateSurfFrRectangle_64(ByVal nParentId As Integer, ByRef ptMin As Point3d, ByRef ptMax As Point3d, + Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Integer +End Function +Public Function EgtCreateSurfFrRectangle(ByVal nParentId As Integer, ByRef ptMin As Point3d, ByRef ptMax As Point3d, + Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Integer + If IntPtr.Size = 4 Then + Return EgtCreateSurfFrRectangle_32(nParentId, ptMin, ptMax, nRefType) + Else + Return EgtCreateSurfFrRectangle_64(nParentId, ptMin, ptMax, nRefType) + End If +End Function + Private Function EgtCreateSurfFlatRegion_32(ByVal nParentId As Integer, ByVal nNumCrv As Integer, ByVal nCrvId() As Integer) As Integer End Function @@ -2162,7 +2179,6 @@ Public Function EgtCreateSurfTmBBox(ByVal nParentId As Integer, ByRef ptMin As P End If End Function - Private Function EgtCreateSurfTmByFlatContour_32(ByVal nParentId As Integer, ByVal nCrvId As Integer, ByVal dLinTol As Double) As Integer End Function @@ -3850,6 +3866,22 @@ Public Function EgtSetInfo(ByVal nId As Integer, ByVal sKey As String, ByVal sIn End If End Function + +Private Function EgtSetInfoFrame_32(ByVal nId As Integer, ByVal sKey As String, ByRef PtOrig As Point3d, + ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean +End Function + +Private Function EgtSetInfoFrame_64(ByVal nId As Integer, ByVal sKey As String, ByRef PtOrig As Point3d, + ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean +End Function +Public Function EgtSetInfo(ByVal nId As Integer, ByVal sKey As String, ByVal Frame As Frame3d) As Boolean + If IntPtr.Size = 4 Then + Return EgtSetInfoFrame_32(nId, sKey, Frame.Orig(), Frame.VersX(), Frame.VersY(), Frame.VersZ()) + Else + Return EgtSetInfoFrame_64(nId, sKey, Frame.Orig(), Frame.VersX(), Frame.VersY(), Frame.VersZ()) + End If +End Function + Private Function EgtGetInfo_32(ByVal nId As Integer, ByVal sKey As String, ByRef psInfo As IntPtr) As Boolean End Function @@ -3901,6 +3933,31 @@ Public Function EgtGetInfo(ByVal nId As Integer, ByVal sKey As String, ByRef dIn End If End Function + +Private Function EgtGetInfoFrame_32(ByVal nId As Integer, ByVal sKey As String, ByRef PtOrig As Point3d, + ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean +End Function + +Private Function EgtGetInfoFrame_64(ByVal nId As Integer, ByVal sKey As String, ByRef PtOrig As Point3d, + ByRef VtX As Vector3d, ByRef VtY As Vector3d, ByRef VtZ As Vector3d) As Boolean +End Function +Public Function EgtGetInfo(ByVal nId As Integer, ByVal sKey As String, ByRef Frame As Frame3d) As Boolean + Dim ptOri As Point3d + Dim vtX As Vector3d + Dim vtY As Vector3d + Dim vtZ As Vector3d + If IntPtr.Size = 4 Then + If Not EgtGetInfoFrame_32(nId, sKey, ptOri, vtX, vtY, vtZ) Then + Return False + End If + Else + If Not EgtGetInfoFrame_64(nId, sKey, ptOri, vtX, vtY, vtZ) Then + Return False + End If + End If + Return Frame.Setup(ptOri, vtX, vtY, vtZ) +End Function + Private Function EgtExistsInfo_32(ByVal nId As Integer, ByVal sKey As String) As Boolean End Function @@ -4139,7 +4196,7 @@ Private Function EgtScale_64(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, ByVal nRefType As GDB_RT) As Boolean End Function -Public Function EgtScale(ByVal nId As Integer, ByRef Frame As Frame3d, +Public Function EgtScale(ByVal nId As Integer, ByVal Frame As Frame3d, ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double, Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Boolean If IntPtr.Size = 4 Then Return EgtScale_32(nId, Frame.Orig(), Frame.VersX(), Frame.VersY(), Frame.VersZ(), dCoeffX, dCoeffY, dCoeffZ, nRefType) @@ -4154,7 +4211,7 @@ End Function Private Function EgtMirror_64(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Boolean End Function -Public Function EgtMirror(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Boolean +Public Function EgtMirror(ByVal nId As Integer, ByVal PtOn As Point3d, ByVal VtNorm As Vector3d, Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Boolean If IntPtr.Size = 4 Then Return EgtMirror_32(nId, PtOn, VtNorm, nRefType) Else @@ -4170,8 +4227,8 @@ End Function Private Function EgtShear_64(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double, Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Boolean End Function -Public Function EgtShear(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, - ByRef VtDir As Vector3d, ByVal dCoeff As Double, Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Boolean +Public Function EgtShear(ByVal nId As Integer, ByVal PtOn As Point3d, ByVal VtNorm As Vector3d, + ByVal VtDir As Vector3d, ByVal dCoeff As Double, Optional ByVal nRefType As GDB_RT = GDB_RT.LOC) As Boolean If IntPtr.Size = 4 Then Return EgtShear_32(nId, PtOn, VtNorm, VtDir, dCoeff, nRefType) Else @@ -4185,7 +4242,7 @@ End Function Private Function EgtMoveGroup_64(ByVal nId As Integer, ByRef VtMove As Vector3d) As Boolean End Function -Public Function EgtMoveGroup(ByVal nId As Integer, ByRef VtMove As Vector3d) As Boolean +Public Function EgtMoveGroup(ByVal nId As Integer, ByVal VtMove As Vector3d) As Boolean If IntPtr.Size = 4 Then Return EgtMoveGroup_32(nId, VtMove) Else @@ -4199,7 +4256,7 @@ End Function Private Function EgtRotateGroup_64(ByVal nId As Integer, ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean End Function -Public Function EgtRotateGroup(ByVal nId As Integer, ByRef PtAx As Point3d, ByRef VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean +Public Function EgtRotateGroup(ByVal nId As Integer, ByVal PtAx As Point3d, ByVal VtAx As Vector3d, ByVal dAngRotDeg As Double) As Boolean If IntPtr.Size = 4 Then Return EgtRotateGroup_32(nId, PtAx, VtAx, dAngRotDeg) Else @@ -4217,7 +4274,7 @@ Private Function EgtScaleGroup_64(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 Function EgtScaleGroup(ByVal nId As Integer, ByRef Frame As Frame3d, +Public Function EgtScaleGroup(ByVal nId As Integer, ByVal Frame As Frame3d, ByVal dCoeffX As Double, ByVal dCoeffY As Double, ByVal dCoeffZ As Double) As Boolean If IntPtr.Size = 4 Then Return EgtScaleGroup_32(nId, Frame.Orig(), Frame.VersX(), Frame.VersY(), Frame.VersZ(), dCoeffX, dCoeffY, dCoeffZ) @@ -4232,7 +4289,7 @@ End Function Private Function EgtMirrorGroup_64(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean End Function -Public Function EgtMirrorGroup(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d) As Boolean +Public Function EgtMirrorGroup(ByVal nId As Integer, ByVal PtOn As Point3d, ByVal VtNorm As Vector3d) As Boolean If IntPtr.Size = 4 Then Return EgtMirrorGroup_32(nId, PtOn, VtNorm) Else @@ -4248,8 +4305,8 @@ End Function Private Function EgtShearGroup_64(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean End Function -Public Function EgtShearGroup(ByVal nId As Integer, ByRef PtOn As Point3d, ByRef VtNorm As Vector3d, - ByRef VtDir As Vector3d, ByVal dCoeff As Double) As Boolean +Public Function EgtShearGroup(ByVal nId As Integer, ByVal PtOn As Point3d, ByVal VtNorm As Vector3d, + ByVal VtDir As Vector3d, ByVal dCoeff As Double) As Boolean If IntPtr.Size = 4 Then Return EgtShearGroup_32(nId, PtOn, VtNorm, VtDir, dCoeff) Else @@ -4921,6 +4978,48 @@ Public Function EgtInitMachMgr(ByVal sMachinesDir As String) As Boolean End If End Function + +Private Function EgtGetFirstMachGroup_32() As Integer +End Function + +Private Function EgtGetFirstMachGroup_64() As Integer +End Function +Public Function EgtGetFirstMachGroup() As Integer + If IntPtr.Size = 4 Then + Return EgtGetFirstMachGroup_32() + Else + Return EgtGetFirstMachGroup_64() + End If +End Function + + +Private Function EgtGetNextMachGroup_32(ByVal nMGroupId As Integer) As Integer +End Function + +Private Function EgtGetNextMachGroup_64(ByVal nMGroupId As Integer) As Integer +End Function +Public Function EgtGetNextMachGroup(ByVal nMGroupId As Integer) As Integer + If IntPtr.Size = 4 Then + Return EgtGetNextMachGroup_32(nMGroupId) + Else + Return EgtGetNextMachGroup_64(nMGroupId) + End If +End Function + + +Private Function EgtSetCurrMachGroup_32(ByVal nMGroupId As Integer) As Boolean +End Function + +Private Function EgtSetCurrMachGroup_64(ByVal nMGroupId As Integer) As Boolean +End Function +Public Function EgtSetCurrMachGroup(ByVal nMGroupId As Integer) As Boolean + If IntPtr.Size = 4 Then + Return EgtSetCurrMachGroup_32(nMGroupId) + Else + Return EgtSetCurrMachGroup_64(nMGroupId) + End If +End Function + Private Function EgtAddMachGroup_32(ByVal sName As String, ByVal sMachineName As String) As Integer End Function @@ -5036,6 +5135,20 @@ Public Function EgtMoveToCornerRawPart(ByVal nRawId As Integer, ByRef ptCorner A End If End Function + +Private Function EgtMoveRawPart_32(ByVal nRawId As Integer, ByRef vtMove As Vector3d) As Boolean +End Function + +Private Function EgtMoveRawPart_64(ByVal nRawId As Integer, ByRef vtMove As Vector3d) As Boolean +End Function +Public Function EgtMoveRawPart(ByVal nRawId As Integer, ByRef vtMove As Vector3d) As Boolean + If IntPtr.Size = 4 Then + Return EgtMoveRawPart_32(nRawId, vtMove) + Else + Return EgtMoveRawPart_64(nRawId, vtMove) + End If +End Function + Private Function EgtAddPartToRawPart_32(ByVal nPartId As Integer, ByRef ptPos As Point3d, ByVal nRawId As Integer) As Boolean End Function @@ -5092,6 +5205,20 @@ Public Function EgtGetTableRef1(ByRef ptPos As Point3d) As Boolean End If End Function + +Private Function EgtGetTableArea1_32(ByRef nAreaId As Integer) As Boolean +End Function + +Private Function EgtGetTableArea1_64(ByRef nAreaId As Integer) As Boolean +End Function +Public Function EgtGetTableArea1(ByRef nAreaId As Integer) As Boolean + If IntPtr.Size = 4 Then + Return EgtGetTableArea1_32(nAreaId) + Else + Return EgtGetTableArea1_64(nAreaId) + End If +End Function + Private Function EgtShowOnlyTable_32(ByVal bVal As Boolean) As Boolean End Function @@ -5814,18 +5941,74 @@ End Function Private Function EgtLoadTexture_32(ByVal sName As String, ByVal sFile As String, - ByVal dDimX As Double, ByVal dDimY As Double, ByVal bRepeat As Boolean) As Boolean + ByVal dMMxPix As Double, ByVal dDimX As Double, ByVal dDimY As Double, ByVal bRepeat As Boolean) As Boolean End Function Private Function EgtLoadTexture_64(ByVal sName As String, ByVal sFile As String, - ByVal dDimX As Double, ByVal dDimY As Double, ByVal bRepeat As Boolean) As Boolean + ByVal dMMxPix As Double, ByVal dDimX As Double, ByVal dDimY As Double, ByVal bRepeat As Boolean) As Boolean End Function Public Function EgtLoadTexture(ByVal sName As String, ByVal sFile As String, - ByVal dDimX As Double, ByVal dDimY As Double, ByVal bRepeat As Boolean) As Boolean + ByVal dMMxPix As Double, ByVal dDimX As Double, ByVal dDimY As Double, ByVal bRepeat As Boolean) As Boolean If IntPtr.Size = 4 Then - Return EgtLoadTexture_32(sName, sFile, dDimX, dDimY, bRepeat) + Return EgtLoadTexture_32(sName, sFile, dMMxPix, dDimX, dDimY, bRepeat) Else - Return EgtLoadTexture_64(sName, sFile, dDimX, dDimY, bRepeat) + Return EgtLoadTexture_64(sName, sFile, dMMxPix, dDimX, dDimY, bRepeat) + End If +End Function + + +Private Function EgtUnloadTexture_32(ByVal sName As String) As Boolean +End Function + +Private Function EgtUnloadTexture_64(ByVal sName As String) As Boolean +End Function +Public Function EgtUnloadTexture(ByVal sName As String) As Boolean + If IntPtr.Size = 4 Then + Return EgtUnloadTexture_32(sName) + Else + Return EgtUnloadTexture_64(sName) + End If +End Function + + +Private Function EgtGetTexturePixels_32(ByVal sName As String, ByRef nWidth As Integer, ByRef nHeight As Integer) As Boolean +End Function + +Private Function EgtGetTexturePixels_64(ByVal sName As String, ByRef nWidth As Integer, ByRef nHeight As Integer) As Boolean +End Function +Public Function EgtGetTexturePixels(ByVal sName As String, ByRef nWidth As Integer, ByRef nHeight As Integer) As Boolean + If IntPtr.Size = 4 Then + Return EgtGetTexturePixels_32(sName, nWidth, nHeight) + Else + Return EgtGetTexturePixels_64(sName, nWidth, nHeight) + End If +End Function + + +Private Function EgtGetTextureDimensions_32(ByVal sName As String, ByRef dDimX As Double, ByRef dDimY As Double) As Boolean +End Function + +Private Function EgtGetTextureDimensions_64(ByVal sName As String, ByRef dDimX As Double, ByRef dDimY As Double) As Boolean +End Function +Public Function EgtGetTextureDimensions(ByVal sName As String, ByRef dDimX As Double, ByRef dDimY As Double) As Boolean + If IntPtr.Size = 4 Then + Return EgtGetTextureDimensions_32(sName, dDimX, dDimY) + Else + Return EgtGetTextureDimensions_64(sName, dDimX, dDimY) + End If +End Function + + +Private Function EgtChangeTextureDimensions_32(ByVal sName As String, ByVal dDimX As Double, ByVal dDimY As Double) As Boolean +End Function + +Private Function EgtChangeTextureDimensions_64(ByVal sName As String, ByVal dDimX As Double, ByVal dDimY As Double) As Boolean +End Function +Public Function EgtChangeTextureDimensions(ByVal sName As String, ByVal dDimX As Double, ByVal dDimY As Double) As Boolean + If IntPtr.Size = 4 Then + Return EgtChangeTextureDimensions_32(sName, dDimX, dDimY) + Else + Return EgtChangeTextureDimensions_64(sName, dDimX, dDimY) End If End Function @@ -6343,11 +6526,11 @@ End Function '---------- Costanti ----------------------------------------------------------- 'Costanti : GEOMETRIA Public Const ONEMM As Double = 1.0 -Public Const ONEINCH As Double = 25.4 +Public Const ONEINCH As Double = 25.399999999999999 Public Const EPS_SMALL As Double = 0.001 -Public Const EPS_ZERO As Double = 0.0000001 +Public Const EPS_ZERO As Double = 0.000000099999999999999995 Public Const INFINITO As Double = 10000000000.0 -Public Const EPS_STM As Double = 0.05 +Public Const EPS_STM As Double = 0.050000000000000003 Public Const EPS_STM_DRAG As Double = 0.5 'Costanti : TIPO DI FILE Public Enum FT As Integer diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 2dba191..38b61c1 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 0c25706..7071aa5 100644 --- a/Scene.vb +++ b/Scene.vb @@ -522,42 +522,48 @@ Public Class Scene End If ' Visualizzo le coordinate del mouse ShowCursorPos(e.Location) + ' Imposto il cursore in base allo stato + If m_nStatus = ST.WINSEL Then + Cursor = New Cursor(Me.GetType(), "WinSelect.cur") + ElseIf m_nStatus = ST.ZOOMWIN Then + Cursor = New Cursor(Me.GetType(), "ZoomWin.cur") + ElseIf m_nStatus = ST.ROT Then + Cursor = New Cursor(Me.GetType(), "Rotate.cur") + ElseIf m_nStatus = ST.PAN Then + Cursor = New Cursor(Me.GetType(), "Pan.cur") + ElseIf m_nStatus = ST.WINSEL Then + Cursor = New Cursor(Me.GetType(), "WinSelect.cur") + ElseIf m_nStatus = ST.ANALYZE Then + Cursor = New Cursor(Me.GetType(), "Analyze.cur") + ElseIf m_nStatus = ST.GETDIST Or m_nStatus = ST.GETDIST2 Then + Cursor = New Cursor(Me.GetType(), "GetDist.cur") + ElseIf m_nStatus = ST.SELPOINT Or m_nStatus = ST.SELPOINTZ Then + Cursor = New Cursor(Me.GetType(), "SelPoint.cur") + End If ' --- Premuto tasto sinistro o centrale (rotella) --- If e.Button = Windows.Forms.MouseButtons.Left Or e.Button = Windows.Forms.MouseButtons.Middle Then If m_nStatus = ST.WINSEL Then - Cursor = New Cursor(Me.GetType(), "WinSelect.cur") EgtSetWinRect(m_PrevPoint, e.Location, True) ElseIf m_nStatus = ST.ZOOMWIN Then - Cursor = New Cursor(Me.GetType(), "ZoomWin.cur") EgtSetWinRect(m_PrevPoint, e.Location, True) 'Il punto di riferimento deve rimanere quello originale ElseIf m_nStatus = ST.ROT Then - Cursor = New Cursor(Me.GetType(), "Rotate.cur") EgtRotateView(m_PrevPoint, e.Location, True) m_PrevPoint = e.Location ElseIf m_nStatus = ST.PAN Then - Cursor = New Cursor(Me.GetType(), "Pan.cur") EgtPanView(m_PrevPoint, e.Location, True) m_PrevPoint = e.Location ElseIf m_nStatus <> ST.NULL And e.Button = Windows.Forms.MouseButtons.Middle Then m_nStatus = ST.SEL End If - ' --- Altri casi dipendenti dallo stato --- - ElseIf m_nStatus = ST.WINSEL Then - Cursor = New Cursor(Me.GetType(), "WinSelect.cur") - ElseIf m_nStatus = ST.ANALYZE Then - Cursor = New Cursor(Me.GetType(), "Analyze.cur") - ElseIf m_nStatus = ST.GETDIST Then - Cursor = New Cursor(Me.GetType(), "GetDist.cur") + ' --- Senza pressione tasti --- ElseIf m_nStatus = ST.GETDIST2 Then - Cursor = New Cursor(Me.GetType(), "GetDist.cur") Dim ptP As Point3d EgtUnProjectPoint(e.Location, ptP) EgtSetGeoLine(m_ptPrev, ptP) ElseIf m_nStatus = ST.SELPOINT Then - Cursor = New Cursor(Me.GetType(), "SelPoint.cur") Dim ptP As Point3d If EgtGetGraphicSnapPoint(If(m_nSnapType = SP.PT_GRID, SP.PT_GRID, SP.PT_SKETCH), e.Location, DIM_SEL, DIM_SEL, ptP) Then @@ -566,7 +572,6 @@ Public Class Scene End If End If ElseIf m_nStatus = ST.SELPOINTZ Then - Cursor = New Cursor(Me.GetType(), "SelPoint.cur") Dim ptP As Point3d If EgtGetGridSnapPointZ((m_nSnapType = SP.PT_SKETCH), e.Location, m_ptGrid, ptP) Then EgtSetGeoLine(m_ptGrid, ptP) @@ -577,6 +582,7 @@ Public Class Scene Else MyBase.OnMouseMove(e) End If + ' Eventuale aggiornamento cursore per cambio di stato appena avvenuto If m_nStatus = ST.NULL Then Cursor = Cursors.Default ElseIf m_nStatus = ST.SEL Then