• 基于Skyline的TerraExplorer6.1实现选中对象的高亮显示


    如何在三维场景中实现对选中对象的高亮显示,在很久以前大家可能觉得实现起来比较麻烦,但现在在Skyline在TEPro6.1中,ITerrainObject61类增加了Tint属性,所有继承自ITerrainObject61的对象都可以通过这个属性,来实现选中状态的高亮。

    具体实现过程,请参考下面代码:

      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2 
      3 <html xmlns="http://www.w3.org/1999/xhtml">
      4 <head>
      5     <title></title>
      6      <script type = "text/javascript" language = "javascript">
      7          function Test1() {
      8              var SGWorld = CreateSGObj();
      9              var location = SGWorld.Creator.CreateLocationHere();
     10              var purl = toAbspath("data/747.xpc");
     11              var pos = location.Position;
     12              pos.Yaw = 0;
     13              pos.Pitch = 0;
     14              pos.Roll = 0;
     15              var gid = 0;
     16              var pModel = SGWorld.Creator.CreateModel(pos, purl,0,1);
     17              pModel.ScaleX = 100;
     18              pModel.ScaleY = 100;
     19              pModel.ScaleZ = 100;
     20              pModel.TreeItem.Name = "模型";
     21              SGWorld.Creator.DeleteObject(location.ID);
     22          }
     23 
     24          function Test2() {
     25              var SGWorld = CreateSGObj();
     26              var ItemID = SGWorld.ProjectTree.FindItem("模型");
     27              if (ItemID > 0) {
     28                  var obj = SGWorld.ProjectTree.GetObject(ItemID);
     29                  obj.Terrain.Tint.abgrColor = 0x0000ff;
     30                  obj.Terrain.Tint.SetAlpha(0.8);                
     31              }
     32          }
     33          function Test3() {
     34              var SGWorld = CreateSGObj();
     35              var ItemID = SGWorld.ProjectTree.FindItem("模型");
     36              if (ItemID > 0) {
     37                  var obj = SGWorld.ProjectTree.GetObject(ItemID);
     38                  obj.Terrain.Tint.abgrColor = 0x0000ff;
     39                  obj.Terrain.Tint.SetAlpha(0);
     40              }
     41          }
     42 
     43          /*  
     44          功能:   创建sgworld对象
     45          备注:   赵贺 2011.04.01.
     46          */
     47 
     48          function CreateSGObj() {
     49              var obj = $("sgworld");
     50              if (obj == null) {
     51                  obj = document.createElement('object');
     52                  document.body.appendChild(obj);
     53                  obj.name = "sgworld";
     54                  obj.id = "sgworld";
     55                  obj.classid = "CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1";
     56              }
     57              return obj;
     58          }
     59          function $(id) {
     60              return window.document.getElementById(id);
     61          }
     62 
     63          function toAbspath(src) {
     64              var abspath = function () {
     65                  var abspath = "";
     66                  try {
     67                      abspath = unescape(window.location.href);
     68                  }
     69                  catch (e) {
     70                      abspath = unescape(this.__location);
     71                  }
     72                  // Remove query String 
     73                  var index = abspath.indexOf("?");
     74                  if (index > 0) abspath = abspath.substr(0, index - 1);
     75 
     76                  index = abspath.lastIndexOf("/");
     77                  var index2 = abspath.lastIndexOf("\\");
     78 
     79                  index = (index > index2) ? index : index2;
     80                  if (index <= 0return abspath;
     81 
     82                  abspath = abspath.substring(0, index);
     83 
     84                  if (abspath.substring(01== "/") abspath = abspath.slice(1);
     85 
     86                  var re = /file:\/\/\//gi;
     87                  if (abspath.match(re) != null) abspath = abspath.replace(re, ""); // if this is indeed a local file, we strip the "file://" prefix from it.    
     88 
     89                  return (abspath);
     90 
     91              }
     92 
     93              var re = /^http:\/\/|^ftp:\/\/|^file:\/\/|^https:\/\//gi;
     94              if (src.match(re) == null) {
     95                  if (src.indexOf("[TE Application Data]"!= 0)
     96                      return abspath() + '/' + src;
     97              }
     98              else {
     99                  // if this is indeed a local file, we strip the "file://" prefix from it.    
    100                  re = /file:\/\/\//gi;
    101                  if (src.match(re) != null)
    102                      src = src.replace(re, "");
    103                  else {
    104                      re = /file:\/\//gi;
    105                      if (src.match(re) != null) src = src.replace(re, "");
    106                  }
    107              }
    108 
    109              return src;
    110 
    111          }
    112         </script>
    113 </head>
    114 <body>
    115 <table style="margin: 0px; border: 0px;">
    116         <tr>
    117             <td colspan = "4">
    118                 <input id="Button1" type="button" value="创建模型" onclick="Test1()" />
    119                 <input id="Button2" type="button" value="选择模型" onclick="Test2()" />
    120                 <input id="Button3" type="button" value="选择模型" onclick="Test3()" />
    121             </td>
    122         </tr>
    123         <tr>
    124             <td colspan = "4">
    125              <!-- <object id="TerraExplorerInformationWindow" style="height: 550px; 280px;" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1">
    126                 </object>-->
    127             </td>
    128         </tr>
    129     </table>
    130 </body>
    131 </html>
  • 相关阅读:
    dubbo服务配置
    架构基本概念和架构本质
    最大子数组和问题
    struts2简单登陆页面
    四则运算随机出题
    省赛训练赛赛题(简单题)
    Ubuntu虚拟机安装,vritualbox虚拟机软件的使用
    Rational Rose 2007破解版
    netbeans出现的错误
    快速幂
  • 原文地址:https://www.cnblogs.com/yitianhe/p/2675405.html
Copyright © 2020-2023  润新知