Vega擴展模塊的設計與研究_第1頁
Vega擴展模塊的設計與研究_第2頁
Vega擴展模塊的設計與研究_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論