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_ ...
随机推荐
- css引入页面的三种方法
1.内联式:直接在标签上写样式 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- Python 类的特殊成员介绍
类的成员有两种形式 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法,私有成员命名时,前两个字符是下划线. class Foo: def __init__(self, name, age ...
- 2018-01-04 浅尝The Little Prover一书, 重逢Chez Scheme
书开篇之前说, 本书的目标的一个例子: 证明(reverse (reverse x))对于任何列表x, 结果总是x. (安装Chez Scheme的200字请看最后) 书刚开始, 就用到一个schem ...
- 《Inside C#》笔记(五) 方法
方法用来体现类的行为. 一 相关概念 a) ref和out 通常一个方法只能返回一个值,但如果确实需要返回多个值时,可以使用ref或out.如果方法的参数被标注为ref或out,在调用该方法时,会传递 ...
- Android FileUtils 文件操作类
系统路径 Context.getPackageName(); // 用于获取APP的所在包目录 Context.getPackageCodePath(); //来获得当前应用程序对应的apk文件的路径 ...
- 故障小记录:yum 安装报错File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
发生原因: 由于yum是基于python的,之前安装我python3,当我修改了python命令的指向到python3之后就会发生这样的问题. 解决办法: 由于我当初想到可能以后还需要python2, ...
- maven(三):maven项目结构及其运行机制
在上一篇中讲了如何创建maven项目,现在回到那个项目 项目结构 src/main/java:java代码目录 src/main/resources:资源目录,比如spring.xml文件,prope ...
- [20171107]dbms_shared_pool.pin补充.txt
[20171107]dbms_shared_pool.pin补充.txt --//上午的测试,做一些补充,主要还是一些理解问题. 1.环境:SCOTT@book> @ &r/ver1 P ...
- 【第三篇】SAP ABAP7.5x新语法之程序结构&SubScreen
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之程序结构& ...
- 关于string指针
string str("hello world"); string *pstr = &str; cout << pstr[0] << endl; c ...