测试模型类型选择TerrainModel和Feature两种,测试代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>选择TerrainModel对象</title>
<script type="text/javascript">
function StartF() {
try {
var sg = CreateSGObj();
sg.AttachEvent("OnLButtonDown", OnLButtonDown);
}
catch (e) {
alert(e);
}
} function EndF() {
var sg = CreateSGObj();
sg.DetachEvent("OnLButtonDown", OnLButtonDown);
} function OnLButtonDown(Flags, X, Y) {
try
{
var sg = CreateSGObj();
var iwp = sg.Window.PixelToWorld(X, Y, 1 + 8192);
if (iwp != null) {
alert(iwp.ObjectID);
var oModel = sg.Creator.GetObject(iwp.ObjectID);
var oBBox = null;
if (oModel.ObjectType == 17) // TerrainModel
{
oModel.Terrain.Tint.abgrColor = 0x66FF0000;
oBBox = oModel.Terrain.BBox;
}
else if (oModel.ObjectType == 33) // Feature
{
oModel.Tint.abgrColor = 0x66FF0000;
//alert(oModel.Geometry.Wks.ExportToWKT());
var statisticsgPolyObj = sg.Creator.CreatePolygon(oModel.Geometry, sg.Creator.CreateColor(255, 0, 0, 255), sg.Creator.CreateColor(0, 255, 0, 26), 0, "", "temp");
//oBBox = oModel.BBox; // ?
}
else { }
if (oBBox != null) {
var myGeometry = sg.Creator.GeometryCreator.CreateLinearRingGeometry([oBBox.MaxX, oBBox.MaxY, 0, oBBox.MaxX, oBBox.MinY, 0, oBBox.MinX, oBBox.MinY, 0, oBBox.MinX, oBBox.MaxY, 0])
var statisticsgPolyObj = sg.Creator.CreatePolygon(myGeometry, sg.Creator.CreateColor(255, 0, 0, 255), sg.Creator.CreateColor(0, 255, 0, 26), 0, "", "temp");
}
}
}
catch (e)
{
alert(e);
}
return false;
} //------------------------------------------------------------
// 创建sgworld对象 赵贺 2015.06.09. TEPro6.6
//------------------------------------------------------------
function CreateSGObj() {
var obj = $("sgworld");
if (obj == null) {
obj = document.createElement('object');
document.body.appendChild(obj);
obj.name = "sgworld";
obj.id = "sgworld";
obj.classid = "CLSID:3A4F9199-65a8-11d5-85c1-0001023952c1";
}
return obj;
}
function $(id) {
return window.document.getElementById(id);
}
</script>
</head>
<body>
<input id="Button1" type="button" value="开始" onclick="StartF()" />
<input id="Button2" type="button" value="结束" onclick="EndF()" />
<div id="res"></div>
<object id="TerraExplorer3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" style="width:500px;height:400px;"></object>
<object id="TerraExplorerInformationWindow" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1" style="width:300px;height:400px;"></object>
</body>
</html>

SkylineGlobe 如何二次开发获取三维模型的BBOX和设置Tint属性的更多相关文章

  1. NX二次开发-获取WCS坐标系的原点坐标和矩阵标识

    函数:UF_CSYS_ask_csys_info() 函数说明:获取工作坐标系对象的标识符. 用法: #include <uf.h> #include <uf_csys.h> ...

  2. NX二次开发-获取WCS标识

    函数:UF_CSYS_ask_wcs() 函数说明:获取工作坐标系对象的标识. 用法: 1 #include <uf.h> 2 #include <uf_csys.h> 3 e ...

  3. Saiku二次开发获取源代码在本地编译(五)

    关于Saiku的二次开发,在本地编译然后启动自己编译好的Saiku服务 Saiku是开源的,从github上能下载源代码,本例中的saiku源码也是从github上找的,然后自己改了一些pom.xml ...

  4. Qt+QGIS二次开发:自定义类实现查询矢量数据的属性字段值(图查属性)

    在GIS领域,有两种重要的查询操作,图查属性和属性查图. 本文主要介绍如何在QGIS中通过从QgsMapToolIdentify中派生自定义类实现查询矢量数据的属性字段值(图查属性). 重点参考资料: ...

  5. phpcms V9 二次开发------(获取点击数详解)

    关于phpcms V9的点击数的使用应该有不少数是直接调用网上搜索到的代码,但是对于一些想要深入研究开发的人来说,看到网上的代码后更是不解,本人这几天看了看,了解了一些东西,在这里写出来分享一下,首先 ...

  6. NX二次开发-获取WCS标识UF_CSYS_ask_wcs

    NX9+VS2012 #include <uf.h> #include <uf_csys.h> UF_initialize(); //获取WCS标识 tag_t WcsId = ...

  7. NX二次开发-获取坐标系信息UF_CSYS_ask_csys_info

    NX9+VS2012 #include <uf.h> #include <uf_csys.h> UF_initialize(); //获取WCS标识 tag_t WcsId = ...

  8. NX二次开发-获取矩阵值UF_CSYS_ask_matrix_values

    NX9+VS2012 #include <uf.h> #include <uf_csys.h> UF_initialize(); //获取WCS标识 tag_t WcsId = ...

  9. NX二次开发-获取工程图尺寸的值UF_DRF_ask_dim_info

    UF_initialize(); //遍历所有尺寸 ; tag_t DimTag = NULL_TAG; UF_OBJ_cycle_objs_in_part1(UF_PART_ask_display_ ...

随机推荐

  1. 安装Vue和创建一个Vue脚手架项目

    首先 安装node.js,安装成功可以在控制台输入[node --version ]查看node的版本,因为安装了node会自带npm所以我们可以用 [npm --version]查到npm版本  如 ...

  2. 转: Laravel 自定义公共函数的引入

    来源:Laravel 自定义公共函数的引入 背景习惯了 使用 ThinkPHP 框架,有一个公共方法类在代码编写上会快捷很多,所以有必要在此进行配置一番.测试框架:Laravel 5.5步骤指导1. ...

  3. .Net Core(完) 创建Docker镜像

    使用Docker可以在操作系统上分出多个独立的区域(容器/Container),各个容器之间基本隔离,且可以有自己单独的系统配置.软件等,各个容器之间的软件基本不会互相干扰.Docker上配置好的容器 ...

  4. JVM、Gc工作机制详解

    JVM主要包括四个部分: 类加载器(ClassLoad) 执行引擎 内存区: 本地方法接口:类似于jni调本地native方法 内存区包括四个部分: 1.方法区:包含了静态变量.常量池.构造函数等 2 ...

  5. Java并发编程--总结

    1.并发优势 2.并发安全性 3.并发优化 4.并发内存模型 https://pan.baidu.com/s/1J4S2tC7YDgdOwtAg1970sg

  6. Spark线性回归实现优化

    import org.apache.log4j.{Level, Logger} import org.apache.spark.ml.feature.VectorAssembler import or ...

  7. [20171124]bbed的使用问题2.txt

    [20171124]bbed的使用问题2.txt --//bbed 是探究oracle数据块的好工具,有时候不用转储,直接可以它看oracle内部块的内部结构.--//在使用中要注意一些问题,昨天又犯 ...

  8. C#基础(数据类型运算符)

    ---恢复内容开始--- 1.类 修饰符 class 类名 基类或接口 { } 2.命名规范 成员变量前加_ 首字符小写,后面单词首字母大写(Camel规则) 接口首字母为I 方法的命名使用动词 所有 ...

  9. 用Python实现数据结构之映射

    映射与字典 字典dict是Python中重要的数据结构,在字典中,每一个键都对应一个值,其中键与值的关系就叫做映射,也可以说是每一个键都映射到一个值上. 映射(map)是更具一般性的数据类型,具体到P ...

  10. 3.4Python数据处理篇之Numpy系列(四)---ndarray 数组的运算

    目录 目录 (一)数组与标量的运算 1.说明: 2.实例: (二)元素级的运算(一元函数) 1.说明: 2.实例: (三)数组级的运算(二元函数) 1.说明: 2.实例: 目录 1.数组与标量的运算 ...