EgtUILib :

- aggiunto prototipo per creazione FlatRegion
- aggiunto comando di creazione di FlatRegion.
This commit is contained in:
Dario Sassi
2015-09-22 12:56:04 +00:00
parent 9508bdacbe
commit 3dfd9ed3b0
2 changed files with 59 additions and 4 deletions
+42 -1
View File
@@ -91,6 +91,7 @@ Public Class Controller
POLYGONSIDE
TEXT
TEXTPLUS
REGION
PLANE
EXTRUDE
REVOLVE
@@ -1057,6 +1058,9 @@ Public Class Controller
' Text Plus
Case CMD.TEXTPLUS
Return ProcessTextPlus()
' Region
Case CMD.REGION
Return ProcessRegion()
' Plane
Case CMD.PLANE
Return ProcessPlane()
@@ -3456,6 +3460,43 @@ Public Class Controller
End If
End Sub
Private Function ProcessRegion() As Boolean
If m_nStep <> 0 Then
Return False
End If
' posso partire solo se esiste un gruppo corrente
If GetCurrLayer() = GDB_ID.NULL Then
Return False
End If
' creo la regione piana (a partire da uno o più contorni selezionati)
EnableCommandLog()
If EgtGetSelectedObjCount() = 1 Then
EgtCreateSurfTmByFlatContour(GetCurrLayer(), EgtGetLastSelectedObj(), EPS_STM)
Else
' creo vettore di entità selezionate
Dim nCrvNum As Integer = 0
Dim nCrvIds(EgtGetSelectedObjCount() - 1) As Integer
Dim nId As Integer = EgtGetFirstSelectedObj()
While nId <> GDB_ID.NULL
Select Case EgtGetType(nId)
Case GDB_TY.CRV_LINE, GDB_TY.CRV_ARC, GDB_TY.CRV_BEZ, GDB_TY.CRV_COMPO
nCrvIds(nCrvNum) = nId
nCrvNum = nCrvNum + 1
End Select
nId = EgtGetNextSelectedObj()
End While
' creo la superficie
EgtCreateSurfFlatRegion(GetCurrLayer(), nCrvIds)
End If
DisableCommandLog()
' reset stato scena
m_Scene.ResetStatus()
' reset stato
m_nStep = 0
RaiseEvent UpdateUI(Me, True)
Return True
End Function
Private Function ProcessPlane() As Boolean
If m_nStep <> 0 Then
Return False
@@ -3482,7 +3523,7 @@ Public Class Controller
nId = EgtGetNextSelectedObj()
End While
' creo la superficie
EgtCreateSurfTmByRegion(GetCurrLayer(), nCrvNum, nCrvIds, EPS_STM)
EgtCreateSurfTmByRegion(GetCurrLayer(), nCrvIds, EPS_STM)
End If
DisableCommandLog()
' reset stato scena
+17 -3
View File
@@ -2132,6 +2132,20 @@ Public Function EgtCreatePolygonFromSide(ByVal nParentId As Integer, ByVal nNumS
End If
End Function
<DllImport(EgtIntDll32, CharSet:=CharSet.Unicode, EntryPoint:="EgtCreateSurfFlatRegion")>
Private Function EgtCreateSurfFlatRegion_32(ByVal nParentId As Integer, ByVal nNumCrv As Integer, ByVal nCrvId() As Integer) As Integer
End Function
<DllImport(EgtIntDll64, CharSet:=CharSet.Unicode, EntryPoint:="EgtCreateSurfFlatRegion")>
Private Function EgtCreateSurfFlatRegion_64(ByVal nParentId As Integer, ByVal nNumCrv As Integer, ByVal nCrvId() As Integer) As Integer
End Function
Public Function EgtCreateSurfFlatRegion(ByVal nParentId As Integer, ByVal nCrvId() As Integer) As Integer
If IntPtr.Size = 4 Then
Return EgtCreateSurfFlatRegion_32(nParentId, nCrvId.Length(), nCrvId)
Else
Return EgtCreateSurfFlatRegion_64(nParentId, nCrvId.Length(), nCrvId)
End If
End Function
<DllImport(EgtIntDll32, CharSet:=CharSet.Unicode, EntryPoint:="EgtCreateSurfTmByFlatContour")>
Private Function EgtCreateSurfTmByFlatContour_32(ByVal nParentId As Integer, ByVal nCrvId As Integer, ByVal dLinTol As Double) As Integer
End Function
@@ -2152,11 +2166,11 @@ End Function
<DllImport(EgtIntDll64, CharSet:=CharSet.Unicode, EntryPoint:="EgtCreateSurfTmByRegion")>
Private Function EgtCreateSurfTmByRegion_64(ByVal nParentId As Integer, ByVal nNumCrv As Integer, ByVal nCrvId() As Integer, ByVal dLinTol As Double) As Integer
End Function
Public Function EgtCreateSurfTmByRegion(ByVal nParentId As Integer, ByVal nNumCrv As Integer, ByVal nCrvId() As Integer, ByVal dLinTol As Double) As Integer
Public Function EgtCreateSurfTmByRegion(ByVal nParentId As Integer, ByVal nCrvId() As Integer, ByVal dLinTol As Double) As Integer
If IntPtr.Size = 4 Then
Return EgtCreateSurfTmByRegion_32(nParentId, nNumCrv, nCrvId, dLinTol)
Return EgtCreateSurfTmByRegion_32(nParentId, nCrvId.Length(), nCrvId, dLinTol)
Else
Return EgtCreateSurfTmByRegion_64(nParentId, nNumCrv, nCrvId, dLinTol)
Return EgtCreateSurfTmByRegion_64(nParentId, nCrvId.Length(), nCrvId, dLinTol)
End If
End Function