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

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

?? basdddmodelpreviewer.bas

?? ArcEngine二次開發例子!三維場景顯示!
?? BAS
字號:
Attribute VB_Name = "basDDDModelPreviewer"

' Copyright 1995-2005 ESRI

' All rights reserved under the copyright laws of the United States.

' You may freely redistribute and use this sample code, with or without modification.

' Disclaimer: THE SAMPLE CODE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 
' WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
' FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ESRI OR 
' CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
' OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
' SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
' INTERRUPTION) SUSTAINED BY YOU OR A THIRD PARTY, HOWEVER CAUSED AND ON ANY 
' THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ARISING IN ANY 
' WAY OUT OF THE USE OF THIS SAMPLE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF 
' SUCH DAMAGE.

' For additional information contact: Environmental Systems Research Institute, Inc.

' Attn: Contracts Dept.

' 380 New York Street

' Redlands, California, U.S.A. 92373 

' Email: contracts@esri.com


Option Explicit

Public pSymbols As Collection
Public pFileNames As Collection
Public bLargeViewerSize As Boolean
Public m_bNonEvent As Boolean

Public Sub Main()

  On Error GoTo eh
  Dim sFile As String
  sFile = Command
  If Right(sFile, 1) = Chr(34) And Left(sFile, 1) = Chr(34) Then
    sFile = Mid(sFile, 2, Len(sFile) - 2)
  End If
  
  Load frmPreviewModels
  frmPreviewModels.MousePointer = vbHourglass
  frmPreviewModels.Show
  
  If UCase(Right(sFile, 4)) = ".3DS" Or _
      UCase(Right(sFile, 4)) = ".FLT" Or _
      UCase(Right(sFile, 4)) = ".WRL" Then
    LoadModel sFile
  Else

    sFile = App.Path
    If Right(sFile, 1) <> "\" Then sFile = sFile & "\"
    sFile = sFile & "3D Model Viewer.mru"
    
    If Len(Dir(sFile)) > 0 Then
      If MsgBox("Load Most Recently Used list?", vbYesNoCancel, "3D Model Preview") = vbYes Then
        Dim i As Integer
        Dim lFileID As Long
        lFileID = FreeFile
        Open sFile For Input As lFileID
        m_bNonEvent = True
        Do While Not EOF(lFileID)
          Input #lFileID, sFile
          LoadModel sFile
        Loop
        Close lFileID
        frmPreviewModels.lstModels.ListIndex = frmPreviewModels.lstModels.ListCount - 1
        m_bNonEvent = False
        DisplaySymbol frmPreviewModels.lstModels.ListCount - 1
      End If
    End If
  End If
  frmPreviewModels.MousePointer = vbDefault
  
  Exit Sub
eh:
  frmPreviewModels.MousePointer = vbDefault
  frmPreviewModels.Show
End Sub

'
' from a file name, create and store an IMarker3DSymbol
'
Public Sub LoadModel(sFile As String)

  On Error GoTo LoadModel_ERR

  If Len(Dir(sFile)) < 1 Then Exit Sub
  
  frmPreviewModels.MousePointer = vbHourglass
  
  ' create new translator object:
  'Dim p3DFile As IMarker3DFile: Set p3DFile = New Marker3DFile
  Dim p3DFile As IImport3DFile: Set p3DFile = New Import3DFile
  p3DFile.CreateFromFile sFile  ' open the file
  
  ' create a new 3D marker symbol and set the geometry
  ' from what we found in the file:
  Dim pGeometry As IGeometry: Set pGeometry = p3DFile.Geometry
  Dim pMarker3DSymbol As IMarker3DSymbol: Set pMarker3DSymbol = New Marker3DSymbol
  Set pMarker3DSymbol.Shape = pGeometry
  
  ' create a new point at 0,0,0:
  Dim pLocation As IPoint: Set pLocation = New Point
  Dim pZAware As IZAware: Set pZAware = pLocation: pZAware.ZAware = True
  pLocation.X = 0: pLocation.Y = 0: pLocation.Z = 0
  
  ' create a new marker element:
  Dim pElement As IElement: Set pElement = New MarkerElement
  Dim pME As IMarkerElement: Set pME = pElement
  
  ' set the marker element symbol to the currently selected one:
  pME.Symbol = pMarker3DSymbol
  
  ' set the location (geometry) of the symbol:
  pElement.Geometry = pLocation
  
  ' add the symbol to the scene viewer:
  Dim pGLayer As IGraphicsLayer
  Dim pG As IGraphicsContainer3D
  
  ' when opening from MRU, set the boolean value so we don't
  ' have to waste time drawing each symbol until the last one:
  If Not m_bNonEvent = True Then
    Set pGLayer = frmPreviewModels.SV1.SceneGraph.Scene.BasicGraphicsLayer
    frmPreviewModels.SV1.SceneGraph.SetOwnerFaceCulling pGLayer, esriFaceCullingNone
    
    Set pG = pGLayer
    pG.DeleteAllElements
    
    pG.AddElement pElement
    frmPreviewModels.SV1.SceneGraph.RefreshViewers
  End If
  
  ' store both the symbol and the original file name (for dialog caption)
  ' in collections:
  If pSymbols Is Nothing Then Set pSymbols = New Collection
  
  If pFileNames Is Nothing Then Set pFileNames = New Collection
  
  pSymbols.Add pMarker3DSymbol
  pFileNames.Add sFile
  
  Dim sName As String: sName = GetFileName(sFile)
  
  Static bEventsWereOff As Boolean: bEventsWereOff = m_bNonEvent
  
  ' add the symbol name to the listbox, turning off events
  ' so as not to trigger a redraw of the symbol:
  m_bNonEvent = True
  frmPreviewModels.lstModels.AddItem sName
  frmPreviewModels.lstModels.ListIndex = frmPreviewModels.lstModels.ListCount - 1
  m_bNonEvent = bEventsWereOff
  frmPreviewModels.Caption = "3D Model Preview - " & sFile
  DoEvents
  frmPreviewModels.MousePointer = vbDefault
  
  Exit Sub
  
LoadModel_ERR:
  If Not m_bNonEvent Then MsgBox "Error loading model: " & sFile & vbCrLf & Err.Description
  frmPreviewModels.MousePointer = vbDefault
End Sub

Public Function GetFileName(ByVal sFilePath As String, Optional bNoExtension As Boolean) As String

  Dim i As Integer, iBeg As Integer
  Dim s As String, sName As String
  
  On Error GoTo GetFileName_ERR

  For i = Len(sFilePath) To 1 Step -1
    s = Mid(sFilePath, i, 1)
    ' stop when when you get first backslash (s="\"):
    If s = "\" Then Exit For
  Next i
  
  iBeg = i + 1
  
  sName = IIf((iBeg - 1 = Len(sFilePath)), Left(sFilePath, 1), Mid(sFilePath, iBeg))
  
  If bNoExtension Then
    If Len(sName) > 3 Then
      ' If there is an extension:
      If Mid(sName, Len(sName) - 3, 1) = "." Then
        If Len(sName) > 4 Then
          GetFileName = Mid(sName, 1, Len(sName) - 4)
        Else
          GetFileName = ""
        End If
      Else
          GetFileName = sName
      End If
    Else
    ' no extension- filename is only 3 characters:
      GetFileName = sName
    End If
  Else
    GetFileName = sName
  End If
  
Exit Function
    
GetFileName_ERR:
  Debug.Assert 0
  Debug.Print "GetFileName_ERR: " & Err.Description

End Function

'
' draw the symbol at the designated index from the collection
'
Public Sub DisplaySymbol(iIndex As Long)
  On Error GoTo DisplaySymbol_ERR

  If pSymbols Is Nothing Then Exit Sub
  
  ' if the index is invalid, clear the viewers and exit:
  If iIndex < 1 Or iIndex > pSymbols.Count Then
    frmPreviewModels.Caption = "3D Model Preview"
    frmPreviewModels.SV1.SceneGraph.RefreshViewers
    Exit Sub
  End If
  frmPreviewModels.MousePointer = vbHourglass
  
  Dim pMarker3DSymbol As IMarker3DSymbol
  Set pMarker3DSymbol = pSymbols.Item(iIndex)
  
  Dim pLocation As IPoint: Set pLocation = New Point
  Dim pZAware As IZAware: Set pZAware = pLocation: pZAware.ZAware = True
  pLocation.X = 0: pLocation.Y = 0: pLocation.Z = 0
  
  ' create a new marker element:
  Dim pElement As IElement: Set pElement = New MarkerElement
  Dim pME As IMarkerElement: Set pME = pElement
  
  ' set the marker element symbol to the currently selected one:
  pME.Symbol = pMarker3DSymbol
  
  ' set the location (geometry) of the symbol:
  pElement.Geometry = pLocation
  
  Dim pGLayer As IGraphicsLayer
  Set pGLayer = frmPreviewModels.SV1.SceneGraph.Scene.BasicGraphicsLayer
  frmPreviewModels.SV1.SceneGraph.SetOwnerFaceCulling pGLayer, esriFaceCullingNone
  
  Dim pG As IGraphicsContainer3D: Set pG = pGLayer
  pG.DeleteAllElements
  
  pG.AddElement pElement
  
  frmPreviewModels.SV1.SceneGraph.RefreshViewers
  frmPreviewModels.Caption = "3D Model Preview - " & pFileNames.Item(iIndex)
  frmPreviewModels.MousePointer = vbDefault
  
Exit Sub
  
DisplaySymbol_ERR:
  MsgBox "Error displaying symbol " & iIndex & vbCrLf & Err.Description
  frmPreviewModels.MousePointer = vbDefault
End Sub

'
' present a dialog to open supported model types, and load from that filename
'
Public Sub BrowseForSymbol()
  On Error GoTo BrowseForSymbol_ERR
  
  Dim sFile As String
  With frmPreviewModels.CD1
    .MaxFileSize = 32000
    .CancelError = True
    .Flags = cdlOFNAllowMultiselect
    .Filter = "3DS Files (*.3DS)|*.3ds|Open Flight Files (*.flt)|*.flt|VRML Files (*.wrl)|*.wrl"
    .ShowOpen
    sFile = .FileName

    Dim sDir As String
    Dim iBlank As Integer
    iBlank = InStr(1, sFile, " ", vbTextCompare)
    If iBlank < 1 Then
      LoadModel sFile
    Else
      m_bNonEvent = True
      sDir = Trim(Mid(sFile, 1, iBlank))
      If Right(sDir, 1) <> "\" Then sDir = sDir & "\"
      sFile = sFile & " "
      Dim iNextBlank As Integer
      Dim sName As String
      Dim bContinue As Boolean
      bContinue = True
      
      Do While bContinue
        iNextBlank = InStr(iBlank + 1, sFile, " ", vbTextCompare)
        If iNextBlank < 1 Then iNextBlank = Len(sFile)
        sName = Trim(Mid(sFile, iBlank + 1, iNextBlank - iBlank))
        LoadModel sDir & sName
        iBlank = iNextBlank
        iNextBlank = InStr(iBlank + 1, sFile, " ", vbTextCompare)
        If iNextBlank < 1 Then bContinue = False
      Loop
      m_bNonEvent = False
      DisplaySymbol frmPreviewModels.lstModels.ListCount - 1
    End If
  End With
  
  Exit Sub
  
BrowseForSymbol_ERR:
  If Err.Number = 32755 Then Exit Sub ' cancelled dialog
  MsgBox "Error browsing for symbol: " & vbCrLf & Err.Description
  
End Sub

Public Sub PopulateViewers(iModelIndex As Integer, pSVC As SceneViewerCtrl)
  If pSymbols Is Nothing Then Exit Sub
  
  Dim pMarker3DSymbol As IMarker3DSymbol
  Set pMarker3DSymbol = pSymbols.Item(iModelIndex)
  
  Dim pLocation As IPoint: Set pLocation = New Point
  Dim pZAware As IZAware: Set pZAware = pLocation: pZAware.ZAware = True
  pLocation.X = 0: pLocation.Y = 0: pLocation.Z = 0
  
  ' create a new marker element:
  Dim pElement As IElement: Set pElement = New MarkerElement
  Dim pME As IMarkerElement: Set pME = pElement
  
  ' set the marker element symbol to the currently selected one:
  pME.Symbol = pMarker3DSymbol
  
  ' set the location (geometry) of the symbol:
  pElement.Geometry = pLocation
  
  Dim pGLayer As IGraphicsLayer
  Set pGLayer = pSVC.SceneGraph.Scene.BasicGraphicsLayer
  pSVC.SceneGraph.SetOwnerFaceCulling pGLayer, esriFaceCullingNone
  
  Dim pG As IGraphicsContainer3D: Set pG = pGLayer
  pG.DeleteAllElements
  
  pG.AddElement pElement
  pSVC.SceneGraph.RefreshViewers
End Sub

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91极品美女在线| 久久蜜桃av一区精品变态类天堂| 欧美丰满美乳xxx高潮www| 日韩欧美亚洲一区二区| 亚洲免费观看高清完整 | 色综合天天视频在线观看| 欧美少妇一区二区| 国产女同互慰高潮91漫画| 亚洲成人免费视频| 99这里都是精品| 精品久久久久久亚洲综合网 | 日韩亚洲电影在线| 亚洲精品高清在线观看| 国产精品亚洲专一区二区三区| 欧美日韩一级二级三级| 国产精品污网站| 乱一区二区av| 欧美人xxxx| 亚洲男人的天堂一区二区 | 日韩一区二区不卡| 夜夜嗨av一区二区三区| 成人精品鲁一区一区二区| 欧美一区二区私人影院日本| 亚洲色图视频免费播放| 成人h动漫精品| 久久日一线二线三线suv| 日本欧美久久久久免费播放网| 91免费版在线| 日韩一区有码在线| av男人天堂一区| 国产欧美一区视频| 国产精一区二区三区| 精品国产亚洲在线| 久国产精品韩国三级视频| 欧美一区二区三区影视| 午夜久久福利影院| 欧美伦理视频网站| 午夜精品一区二区三区免费视频| 91美女片黄在线观看91美女| 综合激情成人伊人| 色婷婷综合久色| 亚洲精品菠萝久久久久久久| 色又黄又爽网站www久久| 亚洲黄网站在线观看| 色网站国产精品| 亚洲国产综合色| 欧美美女视频在线观看| 日韩国产高清在线| 欧美刺激脚交jootjob| 国产在线精品视频| 亚洲国产高清在线观看视频| k8久久久一区二区三区| 一区二区在线观看不卡| 欧美日本韩国一区二区三区视频 | 色综合激情五月| 亚洲精品伦理在线| 欧美高清视频一二三区| 免费观看日韩av| 久久久精品国产99久久精品芒果| 成人精品电影在线观看| 亚洲三级在线看| 欧美精品在欧美一区二区少妇| 日本不卡免费在线视频| 久久精品日韩一区二区三区| 99re66热这里只有精品3直播 | 久久亚洲一区二区三区四区| 国产电影精品久久禁18| 亚洲男人的天堂av| 日韩一级在线观看| 777a∨成人精品桃花网| 毛片一区二区三区| 国产精品嫩草影院com| 欧美三级乱人伦电影| 蜜臀av性久久久久蜜臀aⅴ| 久久蜜桃一区二区| 欧美色图12p| 久久 天天综合| 亚洲欧洲av一区二区三区久久| 精品视频一区三区九区| 国产美女一区二区| 亚洲va欧美va人人爽午夜| 精品99一区二区| 91精品福利在线| 国产精品自在在线| 亚洲国产精品久久久久秋霞影院| 26uuu色噜噜精品一区| 欧美三级资源在线| 成人久久18免费网站麻豆 | 日本韩国一区二区| 国产电影一区二区三区| 青青草国产精品亚洲专区无| 国产精品传媒入口麻豆| 欧美va日韩va| 欧美三区在线视频| 99国产麻豆精品| 国产一区美女在线| 偷拍一区二区三区| 伊人开心综合网| 亚洲国产精品99久久久久久久久| 91精品国产高清一区二区三区 | 国产一区二区剧情av在线| 一区二区在线观看av| 国产精品久久久99| 精品久久久网站| 69成人精品免费视频| 色综合 综合色| bt欧美亚洲午夜电影天堂| 国产精品一区三区| 精品一区二区影视| 蜜桃精品视频在线| 日韩精品成人一区二区在线| 一区二区三区在线视频观看| 国产精品欧美久久久久无广告 | 捆绑变态av一区二区三区| 亚洲国产欧美日韩另类综合 | 色婷婷久久综合| www.欧美日韩国产在线| 成人免费视频网站在线观看| 国产麻豆精品95视频| 国产精品99久久久| 国产一区二区免费在线| 国产精品1区2区| 国产高清久久久久| 国产91丝袜在线播放| 成人美女视频在线观看| 成人黄色综合网站| 92国产精品观看| 色婷婷综合久久久久中文 | 精品国产乱码久久久久久闺蜜| 制服丝袜日韩国产| 91精品国产综合久久小美女| 欧美一级专区免费大片| 精品国产区一区| 中文字幕第一区第二区| 国产精品久久久久7777按摩| 亚洲精品久久久蜜桃| 性欧美疯狂xxxxbbbb| 蜜臂av日日欢夜夜爽一区| 精品影视av免费| 波多野结衣中文字幕一区 | 日韩精品一级中文字幕精品视频免费观看 | 国产91在线观看| 99精品视频中文字幕| 在线观看国产日韩| 日韩一区二区三区视频在线| 精品乱人伦一区二区三区| 欧美激情中文字幕一区二区| 亚洲免费资源在线播放| 亚洲成人激情自拍| 国产一区久久久| 色呦呦国产精品| 日韩三级视频中文字幕| 国产欧美一区二区三区鸳鸯浴 | 国产真实乱子伦精品视频| 国产高清一区日本| 一本在线高清不卡dvd| 91精品国产综合久久小美女| 久久色.com| 亚洲bdsm女犯bdsm网站| 国产一区二区看久久| 欧美自拍偷拍一区| 26uuu色噜噜精品一区二区| 亚洲另类一区二区| 狠狠色综合播放一区二区| 99综合电影在线视频| 日韩欧美aaaaaa| 中文字幕亚洲综合久久菠萝蜜| 亚洲成人精品一区二区| 成人激情免费电影网址| 欧美大尺度电影在线| 亚洲丝袜制服诱惑| 精品亚洲国内自在自线福利| 色狠狠av一区二区三区| 久久免费美女视频| 日韩中文欧美在线| 91亚洲男人天堂| 久久久影视传媒| 亚洲成av人片观看| 91在线精品一区二区三区| 日韩免费性生活视频播放| 夜夜嗨av一区二区三区四季av| 国产精品99久久不卡二区| 91精品一区二区三区久久久久久| 亚洲色图制服诱惑| 国产精品一级二级三级| 日韩欧美自拍偷拍| 亚洲国产精品尤物yw在线观看| 成人黄页毛片网站| 欧美精品一区二区三区蜜桃视频 | 一个色妞综合视频在线观看| 成人免费视频免费观看| 欧美精品一区男女天堂| 秋霞av亚洲一区二区三| 欧美片在线播放| 亚洲一区视频在线观看视频| 91免费国产在线观看| 中文字幕一区二区日韩精品绯色| 国产91精品久久久久久久网曝门| 精品免费视频.| 韩国女主播成人在线观看|