日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

TWaver 3D 編輯器的使用(一)----設(shè)計3D場

系統(tǒng) 1897 0

TWaver提供了一套3D場景的開發(fā)包,用來幫助用戶快速搭建3D場景,實現(xiàn)3D的監(jiān)控系統(tǒng)。這個開發(fā)包目前商推的只有Flex框架下的版本,被稱為TWaver3D for Flex。開發(fā)包提供簡單的API,用戶向TWaver的數(shù)據(jù)對象(例如Node)中設(shè)定相關(guān)的3D style,就可以構(gòu)建出一套3D場景。(詳細(xì)的使用方式請參考產(chǎn)品包中的
為了簡化用戶使用代碼搭建3D場景的復(fù)雜度,TWaver還提供了一個可視化的編輯工具,用于幫助用戶編輯3D場景,然后將場景轉(zhuǎn)換為可讀的xml文件。需要再現(xiàn)場景的時候,用戶只需要將這份圖紙載入系統(tǒng),實現(xiàn)所見即所得的目的。用戶加載完圖紙后,就可以根據(jù)設(shè)計圖紙的時候設(shè)定的數(shù)據(jù)綁定關(guān)系,實現(xiàn)實時系統(tǒng)監(jiān)控信息的綁定。
TWaver 3D 編輯器的使用(一)----設(shè)計3D場景以及數(shù)據(jù)綁定
ps:Editor這個工具采用了Flex的module機制,允許用戶將預(yù)定義的3D模型資源打包成module,然后通過Editor進行動態(tài)加載到編輯環(huán)境中(擴展動態(tài)模塊的話題我們下章細(xì)聊)。
TWaver 3D 編輯器的使用(一)----設(shè)計3D場景以及數(shù)據(jù)綁定
預(yù)定義的模型加載進來之后,我們就可以著手設(shè)計我們的3D場景了。Editor目前采用的是2D方式編輯,3D場景展現(xiàn)的方式。例如我們現(xiàn)在建立一個小房間,房間內(nèi)設(shè)置一個機柜。
TWaver 3D 編輯器的使用(一)----設(shè)計3D場景以及數(shù)據(jù)綁定
我們將其另存成名為common.xml的圖紙。
圖紙片段如下

<datatype='twaver.Element'ref='7'id='EF576749-1DD2-39D0-7FFD-0B7B913ABCF8'>
<sn='physical.size.t3d'x='60'y='120'z='60'/>
<sn='mapping.common.path.t3d'>XZRack3D1</s>
<sn='mapping.type.t3d'>map6</s>
<sn='scene.location.t3d'x='-148.5'y='60'z='117.5'/>
<sn='both.sides.visible.t3d'> true </s>
<cn='itemid'>XZ1</c>
<cn='bid'>custom1</c>
</data>

有了這份圖紙我們就可以在監(jiān)控系統(tǒng)載入的時候,將圖紙載入系統(tǒng),直接呈現(xiàn)3D場景了。

[Embed(source="images/XZRack3D1.png")]
public static const XZRack3D1:Class;

      private function init():void{
      
twaver.threed.util.Util3D.registVector3D();
twaver.Utils.registerImageByClass("XZRack3D1",XZRack3D1);
var network:Network3D = new Network3D();
network.applyHoverCamera(-180,10,5,1000);
this.addElement(network);
var box:ElementBox = network.elementBox;
network.tiltAngleLowLimit = 0;
network.tiltAngleUpLimit = 15;
var xs:XMLSerializer3D=new XMLSerializer3D(box);
xs.deserialize(scene);
}

ps:由于我們的模型中,用來渲染機柜的圖片定義成了XZRack3D1,所以我們在上面的代碼里需要把資源注冊進來。
載入圖紙之后,我們就可以看到一個在Editor中設(shè)計完成的場景了。
TWaver 3D 編輯器的使用(一)----設(shè)計3D場景以及數(shù)據(jù)綁定
話題引申開,畢竟僅僅加載一個3D場景還不是我們的目的,我們還會希望能夠把我們的監(jiān)控信息追加到3D場景上,實現(xiàn)我們監(jiān)控系統(tǒng)的3D化。那么這個時候,我們前面提到的Business ID就起到作用了。

      //注冊數(shù)據(jù)類型,用來解讀bid屬性 
      
twaver.SerializationSettings.registerGlobalClient("bid","String");
......
var finder:QuickFinder = new QuickFinder(box,"bid","client");
var els:Array = finder.find("custom1");
var alarm:Alarm = new Alarm(null,els[0].id,AlarmSeverity.CRITICAL);
box.alarmBox.add(alarm);

那么我們就可以直接讀取映射在圖紙中的業(yè)務(wù)id屬性,用來滿足用戶動態(tài)綁定數(shù)據(jù)
TWaver 3D 編輯器的使用(一)----設(shè)計3D場景以及數(shù)據(jù)綁定
這樣我們就完成了應(yīng)用程序加載預(yù)設(shè)計的圖紙,并實現(xiàn)數(shù)據(jù)綁定的功能了。ok,動動手指就可以把你的2D變3D,趕緊來試一下吧。

后續(xù)文章
如何自定義模型module;
圖紙的二次編輯。



TWaver 3D 編輯器的使用(一)----設(shè)計3D場景以及數(shù)據(jù)綁定


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 西林县| 三台县| 邯郸市| 简阳市| 河池市| 梅州市| 延边| 宝应县| 来凤县| 雷州市| 潜江市| 尉犁县| 抚州市| 遵化市| 宽甸| 高青县| 太保市| 宜春市| 和田市| 平顶山市| 无极县| 神池县| 长垣县| 会泽县| 白山市| 天全县| 雷波县| 皋兰县| 太保市| 革吉县| 盘锦市| 五大连池市| 叶城县| 广平县| 潼关县| 巴中市| 卢湾区| 丹寨县| 竹溪县| 台南市| 凤冈县|