• vrmapblock and vrmappmobject


    VRMapBlock 对象

    楼快对象


    接口

    IVRMapNode

        IVRMapObject

            VRMapBlock

    IVRMapBlockDisp


    说明

    楼快对象是以地形上的二维多边形区域为底座,给以一定高度,拉起来的三维棱柱,用来描述标准形状的建筑物。

     使用AddPoint,AddPolygon方法创建面区域对象,须要注意的是在使用AddPolygon方法后,使用AddPoint方法才能增加Polygon的顶点。Point方法返回当前对象的所有的顶点,Polygon方法返回当前对象的区域个数,PolygonPoint方法配合使用可以取得相应的顶点。RemoveAll方法可以清除当前对象的所有的区域及顶点。。用户可以即时设置颜色(Color),可视范围(ViewRange),楼层数(FloorCount),纹理(TextureFileName),纹理参数(AlignAngle,TextureUDist,TextureVDist)

     VBA示例

    创建楼块对象,并加入到场景中

    Private Sub DrawBlock()

        Dim vrTerrain As VRMapTerrain

        Dim ivObject As IVRMapObject

        Dim ivNode As IVRMapNode

        Dim vrBlock As New VRMapBlock

        Dim sImageFile As String

        Dim fs

        Dim pt As S_Vec2

       

        If Application.Document.Scene.TypeNodeCount("Terrain") = 0 Then Exit Sub

        Set vrTerrain = Application.Document.Scene.TypeNode("Terrain", 0)

        Set ivObject = vrTerrain

       

        sImageFile = InputBox("请输入贴图文件的路径及文件名。比如:C:\Image\Texture.bmp")

        If IsNull(sImageFile) = True Or Len(sImageFile) = 0 Then Exit Sub

        Set fs = CreateObject("Scripting.FileSystemObject")

        If fs.FileExists(sImageFile) = False Then

            MsgBox "文件不存在", vbCritical

            Exit Sub

        End If

       

        vrBlock.AddPolygon

        pt.x = 10

        pt.y = 10

        vrBlock.AddPoint pt

        pt.x = 40

        pt.y = 10

        vrBlock.AddPoint pt

        pt.x = 40

        pt.y = 40

        vrBlock.AddPoint pt

        pt.x = 10

        pt.y = 40

        vrBlock.AddPoint pt

       

        vrBlock.TextureFileName = sImageFile

        vrBlock.TextureUDist = 1

        vrBlock.RoofTextureVDist = 1

        vrBlock.AlignAngle = 20

        vrBlock.CollideAccurate = False

        vrBlock.FloorCount = 20

        vrBlock.Color = #ffc480

        vrBlock.ViewRange = 10000

       

        Set ivNode = vrBlock

        ivNode.ObjectName = "New Block"

        ivObject.AddChild ivNode

           

    End Sub

     

     

     

     

    VRMapPMObject 对象

       
    渐进网格对象


    接口

    IVRMapNode

        IVRMapObject

            VRMapPMObject

    IVRMapPMObjectDisp


    说明

    渐进网格用于描述复杂的几何体。

    渐进网格允许对几何体做各种优化,静态优化和LOD处理。这些优化能大大的提高渲染效率。通过CreateProgressiveMesh可以创建网格的LOD信息,可以用LODThreshold调整LOD误差参数。而ChgTransformMatrixStatic则用于静态优化。

     

    渐进网格可以直接从3DS文件中调入(通过VRMapX2对象的CreatePMObjectFrom3DS)。

     

    通过AddTriangle,AddVertex,AddMaterial,AddMaterialBlock,UpdateContents方法可以构建网格。

     

    示例

    下面的范例从3DS文件中调入模型,并生成LOD信息。

    Dim pmObject as VRMapPMObject

    Set pmObject = vrmapX.CreatePMObjectFrom3DS "1.3ds"

    Dim i as New VNodeIterator

    i.IteratedObject = pmObject

    Dim p as VRMapPMObject

    Dim n as IVRMapNode

    Set n = i.FirstNode

    while not n is Nothing

        Set p = n

        if not p is Nothing then

            p.CreateProgressiveMesh 0.06,0.01

        endif

        Set n = i.NextNode

    wend

     

  • 相关阅读:
    Ubuntu 更换软件源
    Ubuntu 配置 SOCKS5
    Ubuntu 配置 Sha-dow-socks
    frp(内网穿透)
    solr 远程代码执行(CVE-2019-12409)
    多线程处理爬虫
    python实现文件自动排序
    python 实现根据文件名自动分类移动至不同的文件夹
    Centos7如何开启任意端口服务
    centos7默认安装没有连接网络
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1564284.html
Copyright © 2020-2023  润新知