SkylineGlobe 如何二次开发获取三维模型的BBOX和设置Tint属性
测试模型类型选择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属性的更多相关文章
- NX二次开发-获取WCS坐标系的原点坐标和矩阵标识
函数:UF_CSYS_ask_csys_info() 函数说明:获取工作坐标系对象的标识符. 用法: #include <uf.h> #include <uf_csys.h> ...
- NX二次开发-获取WCS标识
函数:UF_CSYS_ask_wcs() 函数说明:获取工作坐标系对象的标识. 用法: 1 #include <uf.h> 2 #include <uf_csys.h> 3 e ...
- Saiku二次开发获取源代码在本地编译(五)
关于Saiku的二次开发,在本地编译然后启动自己编译好的Saiku服务 Saiku是开源的,从github上能下载源代码,本例中的saiku源码也是从github上找的,然后自己改了一些pom.xml ...
- Qt+QGIS二次开发:自定义类实现查询矢量数据的属性字段值(图查属性)
在GIS领域,有两种重要的查询操作,图查属性和属性查图. 本文主要介绍如何在QGIS中通过从QgsMapToolIdentify中派生自定义类实现查询矢量数据的属性字段值(图查属性). 重点参考资料: ...
- phpcms V9 二次开发------(获取点击数详解)
关于phpcms V9的点击数的使用应该有不少数是直接调用网上搜索到的代码,但是对于一些想要深入研究开发的人来说,看到网上的代码后更是不解,本人这几天看了看,了解了一些东西,在这里写出来分享一下,首先 ...
- NX二次开发-获取WCS标识UF_CSYS_ask_wcs
NX9+VS2012 #include <uf.h> #include <uf_csys.h> UF_initialize(); //获取WCS标识 tag_t WcsId = ...
- NX二次开发-获取坐标系信息UF_CSYS_ask_csys_info
NX9+VS2012 #include <uf.h> #include <uf_csys.h> UF_initialize(); //获取WCS标识 tag_t WcsId = ...
- NX二次开发-获取矩阵值UF_CSYS_ask_matrix_values
NX9+VS2012 #include <uf.h> #include <uf_csys.h> UF_initialize(); //获取WCS标识 tag_t WcsId = ...
- NX二次开发-获取工程图尺寸的值UF_DRF_ask_dim_info
UF_initialize(); //遍历所有尺寸 ; tag_t DimTag = NULL_TAG; UF_OBJ_cycle_objs_in_part1(UF_PART_ask_display_ ...
随机推荐
- The open source JavaScript graphing library that powers Plotly
https://plot.ly/javascript/time-series/ https://plot.ly/javascript/ https://github.com/plotly/plotly ...
- python之锁, 队列
进程的其他方法 进程id,进程名字,查看进程是否活着is_alive() terminate()发送结束进程的信号 import time import os from multiprocessin ...
- Clumsy 利用无线网卡结合Clumsy软件模拟弱网络测试
利用无线网卡结合Clumsy软件模拟弱网络测试 by:授客 QQ:1033553122 实践环境 Clumsy 0.2 下载地址:http://jagt.github.io/clumsy/downlo ...
- servlet及jsp之间的请求转发
1.servlet间的请求转发 <dependencies> <dependency> <groupId>javax.servlet</groupId> ...
- 利用trie树实现前缀输入提示及trie的python实现
代码来自https://github.com/wklken/suggestion/blob/master/easymap/suggest.py 还实现了缓存功能,搜索某个前缀超过一定次数时,进行缓存, ...
- dmesg七种用法
dmesg 命令的使用范例 ‘dmesg’命令设备故障的诊断是非常重要的.在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息.‘dmesg’命令在多数 ...
- Appium学习——安装Android SDK
.下载Android SDK 下载地址:http://tools.android-studio.org/index.php/sdk 百度搜索Android SDK也可以. 下载之后,Android S ...
- 如何创建和还原SQL Server 2005数据库?
在还原SQL Server 2005数据库文件之前,建议先把要还原的数据库文件复制粘贴到某个盘的根目录下,这样便于一会儿找到相关的文件,比如C盘. 先打开SQL Server 2005的Microso ...
- mybatis 初始
接下来带着大家建立一个mybatis的初级项目 首先我们利用idea利用maven建立一个空项目 然后输入名称什么的就会创建一个空的maven项目了 然后我们需要在项目总得pom.xml中进行配置信息 ...
- 安装slide后Powerpoint 不自动退出的解决方案
症状 打开PPT文件,powerpoint界面不启动. 原因 安装slide之后,powerpoint关闭后,powerpnt.exe进程不正常退出,需要手工终止. 解决方案 打开cmd,进入slid ...