


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Vega擴展模塊的設計與研究 08-05-02 11:52:00 作者:毛學剛 李明澤 編輯:studa0714摘 要 本文基于對Vega 和Vega擴展模塊體系結構的深入研究,采用了C+、OpenGL三維圖形庫Vega API開發了一個波浪仿真的Vega擴展模塊,該擴展模塊與Vega中的其它模塊完全兼容,從而擴展Vega的功能,并利用該模塊實現了波浪的交互式仿真效果。實踐證明該開發Vega擴
2、展模塊的方法對于其它領域的用戶開發Vega擴展模塊也是完全適用的。 關鍵詞 Vega;擴展模塊;交互式仿真 1 引言 Vega 是在 SGI Performer 基礎上發展起來的仿真軟件平臺1,主要用于虛擬現實技術中的實時場景生成、聲音仿真及科學計算可視化等領域。由于Vega大幅度地減少了源代碼,從而大大地提高了工作效率,可以迅速創建各種實時交互的三維環境,以滿足各種用戶的需要2。Vega 軟件環境是目前實時視景仿真領域主流的高層開發平臺,其結構和功能是模塊化的,用戶可針對自己的仿真需求
3、選用特定的模塊組合3。但是Vega不可能包羅萬象,對于某些特殊場景的仿真,如波浪仿真等,Vega沒有對應的模塊,使得相應的設計開發工作十分困難。因此,有必要對Vega進行擴展研究,研制出能夠滿足各種開發需求的專用仿真模塊。2 擴展模塊結構分析 Vega擴展模塊由5部分構成,分別為:模塊關鍵字配置文件,LynX界面配置文件,LynX 圖標菜單項插件 DLL,編程接口DLL 和LIB3。模塊關鍵字配置文件是擴展名為 KEY 的ASCII文本文件,包含抽象出的自定義類的特征關鍵字及其參數、參數類型和參數缺省值等。LynX界面配置文件是根據模塊關鍵字配置
4、文件包含的關鍵詞定義的,界面配置文件也是擴展名為GUI的ASCII文本文件,表示 LynX中的自定義類參數的圖形調整接口,每個窗口元素對應自定義類的一種屬性參數。LynX 圖標菜單項插件把代表自定義類的大圖標和工具欄小圖標以及新增菜單項讀入到LynX 界面。三者共同完成LynX界面的擴展。擴展模塊的核心 DLL,提供自定義類的編程接口,自定義類同其他 Vega 類一樣,是一個完整的控制結構,提供給外界管理自身和完成特定功能的 API。因此在定義類的同時安裝各種回調函數,包括公共Vega API的回調、仿真循環前配置系統的回調和讀取自定義 ADF 文件的回調。自定義類具備讀取 ADF 文件的功能
5、后,就同LynX圖形界面聯系起來。自定義類最終提供給用戶的是 C 編程接口,這是在動態鏈接庫中用 EXTERN 語句導出的。靜態庫是上述動態鏈接庫的副產品,在將自定義類用于仿真程序時要在程序中連接靜態庫。3 波浪擴展模塊的具體實現 由擴展模塊結構分析可知,波浪模塊的實現主要有兩部分工作,LynX界面的擴展和開發自定義波浪類。LynX界面的擴展主要包括開發出擴展模塊的關鍵字配置文件、GUI 配置文件以及 LynX插件動態鏈接庫。最后將這些文件放到系統默認的路徑下,當 LynX啟動時,系統會自動調用這些文件,顯示出擴展模塊的 LynX圖形界面。自定義
6、波浪類開發主要分為:初始化波浪類、安裝公共Vega API的回調、創建C編程接口等,其流程如圖1所示。3.1 擴展LynX界面3.1.1 創建LynX關鍵字文件 在波浪類的關鍵字配置文件中定義了3個關鍵字:波形(wavefrom),尺寸(dimensions)和觀察者(observer)。以其中一個關鍵字波形(wavefrom)為例,定義語句和格式如下所示: keyword "waveform" param amplitude &
7、#160; type FLOAT; default 1; min 0; max
8、60; 10; param period type FLOAT; default 5; min
9、; 0.01; max 30; 3.1.2 創建LynXGUI配置文件 在波浪模塊的LynXGUI配置文件定義了一個圖框部件和三個窗口部件,其中三個窗口部件分別用來設置波形,尺寸和觀察者三個關鍵字,而圖框部件用來設置波浪類。以其中一個設置
10、波形(wavefrom)關鍵字部件為例,定義語句和格式如下所示: frame w_waveform topWidget CLASSNAMES;labelstr "Waveform";scale w_amp labelstr "Amplitude&quo
11、t;; param c_wave.amplitude; decimalpts 2;scale labelstr
12、0; "Period"; topWidget w_amp; param c_wave.period; decimalpts&
13、#160; 1; 創建關鍵字配置文件、GUI 配置文件要放到Vega 的安裝目錄VegaDadaLynxDataConfig里面。Lynx自動地在該文件夾中讀取所有的GUI和KEY文件。圖1波浪擴展模塊實現的流程圖3.1.3 創建LynX插件 此時運行LynX將會看到標識波浪仿真模塊的圖標還是一個問號,要想改變圖標就要創建圖標插件 DLL,該動態鏈接庫是用MFC的Appwizard DLL實現的。創建完的波浪模塊圖標插件 DLL名為LynxPIMyWave.dll,最后要把該動態鏈接庫放到VegaBinLynxPlugins文件夾中,以便啟動LynX時,讀取該文件。這樣界面擴展的工作完成了,其效果見圖2所示。圖2 Lynx擴展界面3.2 自定義波浪類的開發3.2.1 初始化類 Vega的所有模塊必須有一個初始化函數和一個配置函數,自定義擴展的波浪類也不例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一致行動人協議書范本
- 建房補償合同協議書范本
- 2025年商品化色漿項目建議書
- 2025年航天器結構系統合作協議書
- 直播流量分成與藝人經紀服務合作協議
- 社區圖書館社區文化活動策劃與管理委托協議
- Web前端開發技術項目教程(HTML5 CSS3 JavaScript)(微課版) 課件 6.3任務引入 制作與美化水平導航欄
- 智能建筑環境監測系統施工、驗收與能耗優化服務協議
- 極限運動旅游線路開發與風險管理合同
- 國際水準儀租賃及海外工程項目預算控制合同
- 最新-臨時救助申請審核審批表模板
- 《有效溝通》PPT課件-(2)
- 藍色大氣商務商業計劃書PPT模板
- 青春紅綠燈教學設計中小學心理健康心理游戲腳本
- 蘇教版二年級(下冊)科學全冊單元測試卷含期中期末(有答案)
- 《城鎮土地使用稅納稅申報表》
- 三年級數學下冊口算脫式豎式練習題
- 17025實驗室體系
- 大榆樹溝防洪治理工程初步設計報告
- 8D報告培訓教材(共30頁).ppt
- 屋面及防水工程工程量計算PPT課件
評論
0/150
提交評論