FLTK+OpenGLのアプリケーション例

3Dモデルファイルの入出力のコードを利用して, 3Dモデルファイルを読み込んで表示するアプリケーションを作成した. メニューから3Dモデルファイルを読み込んで,OpenGLを使って描画する. 機能としては,

  • OBJ,DXF,VRL,3DS,STLファイルの読み込み
  • OBJ,DXF,STLファイルでの出力
  • Windowsネイティブのファイルダイアログ
  • マウスでの回転(左ドラッグ),平行移動(Shift+左ドラッグ),ズーム(Ctrl+左ドラッグ)
  • Fl_Rollerによる回転(v1.1)
  • 画面の画像保存(PNG,BMP)

FLTKでOpenGLを扱う方法については以下のページ参照

実行画面

fltk_opengl.jpg

ダウンロード

実行ファイル.動作確認はWindows 7 x64(アプリケーション自体は32bit)

Visual Studio 2010の環境で作成したコードは以下.

ビルドするのに必要なライブラリ

fltk, freeglut, boost, libpng, zlib, libjpeg

各ライブラリについてはライブラリのインストールを参照. また,3Dモデルファイルの入出力にあるrx_model.libが必要.

  • 簡単な説明&注意事項
    • rx_fltk_opengl.cppがエントリ関数が書かれたファイルである.
    • Fl_Gl_Windowの派生クラスrxFlGLWindowをウィジットとして,Fl_Double_Window上にセットしている.rxFlGLWindowクラスの宣言と実装はrx_fltk_glcanvas.hとrx_fltk_glcanvas.cpp,Fl_Double_Windowの派生クラスであり,ウィンドウ上の他のウィジット(メニューやボタン,ステータスバーなど)を記述するrxFlWindowクラスはrx_fltk_window.hとrx_fltk_window.cppに宣言,実装されている.rx_fltk_widgets.hには共通の関数やカスタムウィジットなどを記述している.
    • 終了時にウィンドウ位置・サイズや視点の状態を設定ファイル(rx_fltk_opengl.ini)に保存する.設定ファイルへの入出力はshared/inc/rx_atom_ini.hで行っている.
    • Windows環境ではFLTKデフォルトのファイルダイアログでなく,OSネイティブのファイルダイアログを使うようにしている(FLTK標準のファイルダイアログがどうも使いづらかったため.rx_fltk_widgets.hのShowFileDialog関数参照).
    • デフォルトではプロジェクトフォルダにある"bunny.wrl"を読み込んで描画する.
  • 更新履歴
    • v1.1 :
      • マウス座標がおかしかったのを修正
      • Fl_Rollerによる回転を追加
      • 回転に慣性を加えるチェックボックスを追加

添付ファイル: filefltk_opengl_v1.1.zip 1339件 [詳細] filefltk_opengl_bin_v1.1.zip 1258件 [詳細] filefltk_opengl_v1.zip 615件 [詳細] filefltk_opengl_bin_v1.zip 568件 [詳細] filefltk_opengl.jpg 1291件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-02-24 (金) 18:17:40 (3163d)