亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? clslabelengine.cls

?? gis地圖 --- --- --文字1
?? CLS
?? 第 1 頁 / 共 2 頁
字號:
    
    Dim nFont As Double, nExtentScale As Double
    
    'x and y delta:
    'xD = pFeatureLayer.AreaOfInterest.xmax - pFeatureLayer.AreaOfInterest.xmin
    'yD = pFeatureLayer.AreaOfInterest.ymax - pFeatureLayer.AreaOfInterest.ymin
    'zD = pFeatureLayer.AreaOfInterest.zmax - pFeatureLayer.AreaOfInterest.zmin
    
    If Not m_pScene Is Nothing Then
        xD = m_pScene.SceneGraph.OwnerExtent(pFeatureLayer, False).Envelope.xmax - m_pScene.SceneGraph.OwnerExtent(pFeatureLayer, False).xmin
        yD = m_pScene.SceneGraph.OwnerExtent(pFeatureLayer, False).ymax - m_pScene.SceneGraph.OwnerExtent(pFeatureLayer, False).ymin
        zD = m_pScene.SceneGraph.OwnerExtent(pFeatureLayer, False).zmax - m_pScene.SceneGraph.OwnerExtent(pFeatureLayer, False).zmin
    End If
    
    If zD < 1 Then
        zD = 5000
    End If
    
    If (xD = 0 Or yD = 0) And Not m_pScene Is Nothing Then
        xD = m_pScene.Extent.xmax - m_pScene.Extent.xmin
        yD = m_pScene.Extent.ymax - m_pScene.Extent.ymin
        zD = m_pScene.Extent.zmax - m_pScene.Extent.zmin
    End If

       
    Me.UpdateExtentScale pLabelGroup, xD, yD, zD, False
    
    If nFontSize = 0 Then nFontSize = 20
    nFont = nFontSize

'   call the init on the label group with the parameters:
    pLabelGroup.InitFeatureLabels pFeatureCursor, pFeatureLayer, sLabelItem, False, _
    nFont, , , pFontcolor, sFontName, pLabelGroup.m_nXOffMin, pLabelGroup.m_nXOffMax, _
     pLabelGroup.m_nYOffMin, pLabelGroup.m_nYOffMax, , , nxRot, nyRot, nZRot, CDbl(nXScale), _
    CDbl(nYScale), CDbl(nZScale), bBillBoarding
    
    Exit Sub
    
InitFeatureLayerLabels_ERR:
    Debug.Assert 0
    Debug.Print "InitFeatureLayerLabels_ERR: " & Err.Description
    Resume Next

    
End Sub
'
'find the label group indexed, and return a reference:
'
Public Function LabelGroup(Index) As LabelGroup
Dim i As Integer
Dim pLabelGroup As LabelGroup

On Error GoTo GetLabelGroup_ERR

    If IsNumeric(Index) Then
        If Index + 1 <= g_colLabelGroup.Count Then
            Set pLabelGroup = g_colLabelGroup.Item(Index + 1)
        End If
    
    Else
        Dim p As LabelGroup
        For i = 0 To g_colLabelGroup.Count - 1
            Set p = g_colLabelGroup.Item(i + 1)
            If UCase(p.name) = UCase(Index) Then
                Set pLabelGroup = g_colLabelGroup.Item(i + 1)
                Exit For
            End If
        Next
    
    End If
    
    
    Set LabelGroup = pLabelGroup
        
    Exit Function
    
GetLabelGroup_ERR:
    Debug.Assert 0
    Debug.Print "GetLabelGroup_ERR: " & Err.Description
    
End Function

Public Function SelectLabelsFromPoint(ptLocation As IPoint, Optional sGroupNames As Collection) As Collection
  On Error GoTo SelectLabelsFromPoint_ERR
  
  Dim theLabels As Collection         '   the collection of labels found
  Dim pDDD As IDDDText                '   an object to search the labels
  Dim pCam As ICamera                 '   the camera
  Dim pVect1 As IVector3D             '   first vector
  Dim dx As Double, dy As Double      '   locationals
  Dim pRay1 As IRay                   '   first ray
  Dim pOrig1 As IPoint                '   first point
  Dim pVect2 As IVector3D             '   second vector
  Dim m1 As Double                    '   magnitude 1
  Dim m2 As Double                    '   magnitude 2
  Dim dDotP As Double                 '   dot product
  Dim aLowest As Double               '   lowest angle value
  Dim a As Double                     '   angle value

  If m_pScene Is Nothing Then
    Exit Function
  End If
  
  If m_pScene.SceneGraph.IsEmpty Then
    Exit Function
  End If

  
'   the collection of found labels:
  Set theLabels = New Collection
      
'   the camera:
  Set pCam = m_pScene.SceneGraph.ActiveViewer.Camera
  
'   our local coordinates:
  dx = ptLocation.X
  dy = ptLocation.Y

'   get the ray, origin, and vector from the point on the screen which we passed in:
  Set pRay1 = pCam.GetIdentifyRay(dx, dy)
  Set pVect1 = pRay1.Vector
  Set pOrig1 = pRay1.Origin

'   the magnitude of the first vector:
  m1 = pVect1.Magnitude
          
'   init the lowest angle as a high value
  aLowest = 360 '?

'   make sure this label has a tag including a group name in the collection
'   which was passed in:
  Dim iGroup As Integer
  Dim bUse As Boolean
  Dim i As Integer
  Dim pGroup As LabelGroup
  Dim bFilter As Boolean
  Dim sGroup As String
  
  If Not IsMissing(sGroupNames) Then bFilter = True
  If sGroupNames Is Nothing Then bFilter = False
  
  For iGroup = 0 To g_colLabelGroup.Count - 1
      bUse = False
      Set pGroup = g_colLabelGroup.Item(iGroup + 1)
      
      '   if we are using this one:

          If bFilter Then
              sGroup = pGroup.name
              
              For i = 0 To sGroupNames.Count - 1
                  If UCase(sGroup) = UCase(sGroupNames.Item(i + 1)) Then
                      bUse = True
                      Exit For
                  Else
                      bUse = False
                  End If
              Next
          Else
              bUse = True
          End If
      
          If bUse Then
              For Each pDDD In pGroup.Labels
              '   if the label is on and intersects our ray:
                  If pDDD.Enabled Then
                      If pRay1.Intersects(pDDD.BoundingBox()) Then
                          Debug.Assert 0
                      '   add it to the collection of 'found' labels:
                          theLabels.Add pDDD
                      Else
                       
                      End If
                  End If
       
              Next
      
          End If
          
  Next
  
'   return the collection we may have added IDDDTexts to:
  If Not theLabels Is Nothing Then
    If theLabels.Count > 0 Then
      Set SelectLabelsFromPoint = theLabels
    End If
  End If
         
  
  Exit Function
  
SelectLabelsFromPoint_ERR:
  Debug.Assert 0
  Debug.Print "SelectLabelsFromPoint_ERR: " & Err.Description
  MsgBox "debug: " & "SelectLabelsFromPoint_ERR: " & Err.Description
  
  Resume Next
    
    
End Function

Public Function LoadLabelsFromDoc(sLabelDoc As String, iFormat As eLabelDocType) As LabelGroup
'**FORMAT1 = <x,y,z,xrot,yrot,zrot,xScale,yScale,zScale,MinDisplayDistance,message,visible,fontsize,fontname,BillBoarding,fontrgbcolor>
'**FORMAT2 = <layername,item,visible,fontsize,fontrgbcolor>
Dim lFileID As Long
Dim sLine As String
Dim nFont As Double
Dim pColor As IRgbColor
Dim sFontName As String
Dim sMessage As String
Dim bVisible As Boolean
Dim X As Double, Y As Double, z As Double
Dim sLayerName As String
Dim sItem As String
Dim pWhere As IPoint
Dim bBillBoarding As Boolean
Dim nxRot As Double, nyRot As Double, nZRot As Double
Dim pGroup As LabelGroup
Dim i As Integer
Dim nMinDispDist As Double
Dim nXScale As Double
Dim nYScale As Double
Dim nZScale As Double
Dim nFormat As Integer

On Error GoTo LoadLabelsFromDoc_ERR

    lFileID = FreeFile
    Open sLabelDoc For Input As lFileID
        
    'header:
    Line Input #lFileID, sLine
    Line Input #lFileID, sLine
    
    nFormat = CInt(iFormat)
    Select Case nFormat
    Case 1
        Do While Not EOF(lFileID)
            Line Input #lFileID, sLine
            GetAttribsFromLine nFormat, sLine, sMessage, X, Y, z, nxRot, nyRot, nZRot, nXScale, nYScale, nZScale, nMinDispDist, bVisible, nFont, pColor, bBillBoarding, sFontName
            
            Set pWhere = New Point
            With pWhere
                .X = X
                .Y = Y
                .z = z
            End With
            
            sLayerName = stringsUtil.GetFileName(sLabelDoc, True)

sLayerName = "*" & sLayerName & "*"

            Me.AddLabelDirect pWhere, sMessage, sLayerName, , nFont, pColor, sFontName, bVisible, nxRot, nyRot, nZRot, nXScale, nYScale, nZScale, nMinDispDist, bBillBoarding
        
    
        Loop
        
        For i = 0 To g_colLabelGroup.Count - 1
            If UCase(g_colLabelGroup.Item(i + 1).name) = UCase(sLayerName) Then

        '   set some container properties from the first label, as a default:
            Set pGroup = g_colLabelGroup.Item(i + 1)
                If pGroup.Labels.Count > 0 Then
                    Dim pDDD As IDDDText
                    Set pDDD = pGroup.Labels(1)
                    pDDD.GetTextScale X, Y, z
                    pGroup.m_nXScale = X
                    pGroup.m_nYScale = Y
                    pGroup.m_nZScale = z
                    pGroup.FontSize = pDDD.FontSize
                    pGroup.NoUpdatesNeeded
                End If
                Set LoadLabelsFromDoc = pGroup
                Exit For
            End If
        Next
        
        
    Case 2
        Do While Not EOF(lFileID)
            Line Input #lFileID, sLine
            GetAttribsFromLine 2, sLine, sMessage, X, Y, z, nxRot, nyRot, nZRot, nXScale, nYScale, nZScale, nMinDispDist, bVisible, nFont, pColor, bBillBoarding, sFontName, sLayerName, sItem

            Set pWhere = New Point
            With pWhere
                .X = X
                .Y = Y
                .z = z
            End With
            
            Dim pFLayer As IFeatureLayer
            Set pFLayer = GetLayer(sLayerName)
            If Not pFLayer Is Nothing Then
                Me.InitFeatureLayerLabels pFLayer, Nothing, sItem, , nFont, pColor, sFontName
            End If
            
        Loop
        
    
    End Select
    Close lFileID
    
    Debug.Assert 0

    Exit Function
    
LoadLabelsFromDoc_ERR:
    Debug.Print "Unrecoverable Error reading: " & sLabelDoc & "." & vbCrLf & Err.Description
    
    Resume Next
    
End Function


'
'   accept a layername or index and return the corresponding ILayer
'
Public Function GetLayer(sLayer) As ILayer
Dim pSxDoc As ISxDocument
Dim pTOCs As ISxContentsView
Dim pTOC  As IContentsView
Dim i As Integer
Dim pLayers As IEnumLayer
Dim pLayer As ILayer

On Error GoTo GetLayer_Err

    If IsNumeric(sLayer) Then
        Set GetLayer = m_pScene.Layer(sLayer)
    Else
    '   iterate through document layers looking for a name match:
            Set pLayers = m_pScene.Layers

            Set pLayer = pLayers.Next
            Do While Not pLayer Is Nothing
                If UCase(sLayer) = UCase(pLayer.name) Then
                    Set GetLayer = pLayer
                    Exit Function
                End If
                Set pLayer = pLayers.Next
            Loop
            

    End If
    Exit Function
    
GetLayer_Err:
    
End Function



Public Sub PersistLabels(sLabelDocPath As String, Format As eLabelDocType)
'**FORMAT1 = <x,y,z,xrot,yrot,zrot,xScale,yScale,zScale,MinDisplayDistance,message,visible,fontsize,fontname,BillBoarding,fontrgbcolor>
'**FORMAT2 = <layername,item,visible,fontsize,fontrgbcolor>

On Error GoTo PersistLabels_ERR

Dim lFileID As Long

    lFileID = FreeFile
    Open sLabelDocPath For Output As lFileID
        
Dim pGroup As LabelGroup
Dim pDDD As IDDDText
Dim sLine As String
Dim nxRot As Double, nyRot As Double, nZRot As Double
Dim bBillBoarding As Boolean
Dim nXScale As Double, nYScale As Double, nZScale As Double, nMinDispDist As Double

'   header:
    Print #lFileID, "**FORMAT1 = <x,y,z,xrot,yrot,zrot,xScale,yScale,zScale,MinDisplayDistance,message,visible,fontsize,fontname,BillBoarding,fontrgbcolor>"
    Print #lFileID, ""

    For Each pGroup In g_colLabelGroup
        If Not pGroup.Labels Is Nothing Then
        If pGroup.Visible Then
        For Each pDDD In pGroup.Labels
            If pDDD.Enabled Then
            With pDDD
                
                .GetAxisRotation nxRot, nyRot, nZRot
                bBillBoarding = .AutoAdjust
                .GetTextScale nXScale, nYScale, nZScale
                nMinDispDist = .MinDisplayDist
                sLine = PutAttribsIntoLine(1, .Message, .Origin.X, .Origin.Y, .Origin.z, nxRot, nyRot, nZRot, nXScale, nYScale, nZScale, nMinDispDist, .Enabled, .FontSize, .Color, .FontName, bBillBoarding)
            End With
            Print #lFileID, sLine
            End If
        Next
        End If
        End If
    Next

    Close lFileID
        
    Exit Sub
    
PersistLabels_ERR:
    Debug.Assert 0
    Debug.Print "PersistLabels_ERR: " & Err.Description
    Resume Next
    
    
End Sub

'
'   take a labelgroup reference and extent info and derive ranges (for GUI)
'
Public Sub UpdateExtentScale(p As LabelGroup, xDelta As Double, yDelta As Double, zDelta As Double, bUpdateFontSize As Boolean)
On Error GoTo UpdateExtentScales_ERR



    If xDelta = -1 And yDelta = -1 And zDelta = -1 Then
        If Not m_pScene Is Nothing Then
            If Not m_pScene.SceneGraph.IsEmpty Then
                xDelta = m_pScene.Extent.xmax - m_pScene.Extent.xmin
                yDelta = m_pScene.Extent.ymax - m_pScene.Extent.ymin
                zDelta = m_pScene.Extent.zmax - m_pScene.Extent.zmin
                
                p.m_nXScale = xDelta / 20
                p.m_nYScale = yDelta / 20
                p.m_nZScale = p.m_nXScale * 0.2
                
            End If
        End If
    End If
    
    If xDelta <> 0 Then
        p.m_nXOffMax = xDelta
        p.m_nXOffMin = -(xDelta)
    End If
    
    If yDelta <> 0 Then
        p.m_nYOffMax = yDelta
        p.m_nYOffMin = -(yDelta)
    End If
    
    If zDelta <> 0 Then
        p.m_nZOffMax = zDelta
        p.m_nZOffMin = -(zDelta)
    End If

    If bUpdateFontSize Then
        p.FontSize = 20
    End If
    
    
    Exit Sub
    
UpdateExtentScales_ERR:
    Debug.Assert 0
    Debug.Print "UpdateExtentScales_ERR: " & Err.Description
    Resume Next
    
End Sub

Private Sub Class_Terminate()
On Error Resume Next

    
End Sub


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费在线播放| 欧美国产日韩在线观看| 亚洲综合在线五月| 91免费视频观看| 亚洲一区二区视频在线观看| 在线观看免费成人| 青草av.久久免费一区| 日韩精品一区二区三区三区免费| 九九**精品视频免费播放| 久久久不卡网国产精品一区| 成人听书哪个软件好| 成人欧美一区二区三区在线播放| 日本福利一区二区| 午夜精品成人在线视频| 精品国产髙清在线看国产毛片 | 久久精品国产77777蜜臀| 欧美成人国产一区二区| 成人一区二区视频| 亚洲第一激情av| 欧美videossexotv100| 丁香五精品蜜臀久久久久99网站| 17c精品麻豆一区二区免费| 欧美撒尿777hd撒尿| 精品一区二区三区香蕉蜜桃| 日韩一区在线免费观看| 欧美一二三四区在线| 成人黄色av电影| 丝瓜av网站精品一区二区| 久久久亚洲精华液精华液精华液| 99久久99久久精品免费观看 | 日本一区二区三区国色天香| 在线视频一区二区三区| 激情久久五月天| 亚洲激情五月婷婷| 精品粉嫩aⅴ一区二区三区四区| 高清shemale亚洲人妖| 午夜精品久久久久久不卡8050| 国产午夜精品一区二区| 欧美高清一级片在线| 国产91精品露脸国语对白| 午夜成人免费电影| 中文字幕一区二区三区av| 欧美一区二区成人| 色婷婷av一区二区| 国产高清精品在线| 日韩极品在线观看| 亚洲欧洲日韩在线| 精品国产成人在线影院| 欧美日韩亚州综合| 99精品视频中文字幕| 国内一区二区在线| 热久久免费视频| 一区二区三区不卡在线观看| 中文字幕免费不卡| 久久影院午夜片一区| 欧美一区二区在线看| 91久久人澡人人添人人爽欧美| 国产九色精品成人porny| 日韩精品免费专区| 午夜视频在线观看一区| 亚洲欧洲国产日本综合| 欧美精彩视频一区二区三区| 欧美mv日韩mv亚洲| 91精品国产综合久久香蕉麻豆| 在线精品视频免费播放| 99riav久久精品riav| 成人午夜电影小说| 福利一区二区在线观看| 国产九色sp调教91| 国产激情偷乱视频一区二区三区| 精品一区二区三区欧美| 青青草一区二区三区| 激情都市一区二区| 久久国产精品第一页| 美女www一区二区| 蜜臀va亚洲va欧美va天堂 | 成人午夜免费视频| 粉嫩一区二区三区性色av| 国产成人免费视频精品含羞草妖精| 韩国精品久久久| 国产激情视频一区二区在线观看| 国产大陆亚洲精品国产| 国产高清精品网站| bt7086福利一区国产| 色综合久久中文字幕| 在线视频亚洲一区| 欧美日韩一二三| 欧美一区二区三区白人| 日韩精品中文字幕在线一区| 精品电影一区二区| 日本一区二区三区免费乱视频 | 一区二区三区在线视频观看58| 亚洲免费在线看| 午夜一区二区三区在线观看| 天天影视色香欲综合网老头| 蜜臀久久99精品久久久久久9 | 首页亚洲欧美制服丝腿| 青青青伊人色综合久久| 国产一区二区网址| 成人精品鲁一区一区二区| 色婷婷综合久久久中文字幕| 欧洲亚洲精品在线| 日韩美女天天操| 国产日本欧美一区二区| 一区二区三区四区蜜桃| 爽好久久久欧美精品| 国产成人精品亚洲日本在线桃色| 成人ar影院免费观看视频| 91老司机福利 在线| 欧美肥妇bbw| 久久这里只有精品6| 亚洲免费在线视频一区 二区| 日韩综合在线视频| 国产成人免费视频网站| 精品视频在线免费看| 欧美精品一区二区三区蜜臀| 亚洲男人的天堂网| 久久99国产精品久久99果冻传媒| 不卡的av电影| 欧美一区二区在线播放| 中文字幕av在线一区二区三区| 亚洲在线观看免费| 国产精品性做久久久久久| 91国偷自产一区二区三区观看 | 欧美一区二区三区爱爱| 国产精品五月天| 日韩成人dvd| 9久草视频在线视频精品| 91精品国产综合久久福利软件 | 亚洲国产一区在线观看| 国产一区二区0| 欧美日韩和欧美的一区二区| 中文字幕二三区不卡| 日本女人一区二区三区| 一本一道波多野结衣一区二区| 久久综合五月天婷婷伊人| 亚洲一区二区三区中文字幕| 国产91精品一区二区麻豆网站| 日韩无一区二区| 亚洲成av人影院在线观看网| 不卡视频在线看| 26uuu成人网一区二区三区| 亚洲综合视频网| 色综合婷婷久久| 中文字幕va一区二区三区| 国产一区二区三区av电影| 在线成人小视频| 亚洲综合免费观看高清完整版在线 | 国产精品传媒在线| 国产一区亚洲一区| 日韩免费一区二区| 亚洲3atv精品一区二区三区| 在线一区二区三区四区| 亚洲三级免费电影| 成人精品国产一区二区4080| 欧美激情综合在线| 国产精品自在在线| 2023国产精品| 激情欧美一区二区| 久久综合九色欧美综合狠狠| 久久国产三级精品| 欧美大度的电影原声| 蜜桃久久久久久久| 91精品国产综合久久国产大片| 舔着乳尖日韩一区| 91麻豆精品国产自产在线 | 一区二区三区.www| 色久综合一二码| 亚洲一区二区在线视频| 欧美中文字幕久久| 亚洲一区二区三区四区的| 日本韩国精品在线| 亚洲丶国产丶欧美一区二区三区| 欧美亚洲高清一区二区三区不卡| 亚洲一区二区三区中文字幕 | 色妹子一区二区| 一区二区三区欧美亚洲| 在线观看视频91| 香蕉影视欧美成人| 欧美成人三级电影在线| 国产一区二区在线观看免费| 日本一二三不卡| 色就色 综合激情| 亚洲第四色夜色| 欧美成人综合网站| 国产成人99久久亚洲综合精品| 国产精品久久午夜夜伦鲁鲁| 91在线云播放| 日本怡春院一区二区| 精品少妇一区二区三区免费观看| 国产精品18久久久久久久久久久久| 久久精品夜色噜噜亚洲a∨| 成人av在线影院| 亚洲午夜一二三区视频| 91精品婷婷国产综合久久性色| 加勒比av一区二区| 国产精品久久福利| 欧美精品在欧美一区二区少妇| 久久精品二区亚洲w码| 中文字幕一区二区三区色视频|