06.モデルデータファイル読み込みを作る
05.で作成したモデルビューワは、表示するモデルデータをアプリケーション内で定義していました。
モデルデータファイル読み込み処理を作成し、05.で作成したモデルビューワを、ファイルからモデルデータを読み込んで描画するようにします。(アスキー形式STLファイル読み込み処理を作成します。)
プロジェクトを開く
05.で作成したモデルビューワプロジェクトを開きます。
モデルデータ読み込み関数のヘッダーファイルの作成
「メニュー/プロジェクト/新しい項目の追加」でファイル名「LoadStlFile.h」のファイルを作成します。
LoadStlFile.hの内容を以下のようにします。
ビルドし、エラー、警告がないことを確認します。
モデルデータ読み込み関数のソースファイルの作成
「メニュー/プロジェクト/新しい項目の追加」でファイル名「LoadStlFile.cpp」のファイルを作成します。
LoadStlFile.cppの内容を以下のようにします。
ビルドし、エラー、警告がないことを確認します。
メニュー「ファイル/開く」の追加
メニュー/表示 に以下のメニューアイテムを追加します。
メニュー名 | メニューID | |
---|---|---|
ファイル | - | - |
- | 開く | ID_FILE_OPEN |
ModelViewer.rc を編集しメニューアイテムを追加します。
Resource.h にメニューID(IDC_FILE_OPEN)の定義を追加します。
ビルドし、エラー、警告がないことを確認します。
メニュー「ファイル/開く」の応答関数の追加、編集
ModelViewer.cpp の WndProc関数に、以下のメニュー操作ウィンドウメッセージ処理を追加します。
メニューコマンドID |
---|
ID_FILE_OPEN |
メニュー操作ウィンドウズメッセージ処理を追加します。
ModelViewer.cppのファイルヘッダー部に
#include <commdlg.h>
#include "LoadStlFile.h"
を追加します。
OpenGLRendererPick.h のピックOpenGLレンダラクラスのメンバ変数
m_auiName_pick
をpublic変数とします。
ModelViewerRenderer.h のモデルビューワレンダラクラスのメンバ変数
m_model
をpublic変数とします。
ビルドし、エラー、警告がないことを確認します。
モデルデータ構築処理の削除
5.で作成した、モデルビューワのレンダラクラスのコンストラクタのモデルデータ構築処理は不要なので削除します。
ModelViewerRenderer.h のモデルビューワレンダラクラスのコンストラクタのモデルデータ構築処理を削除します。
実行
実行し、アスキー形式STLファイルからモデルデータを読み込んで描画できるようになっていることを確認します。
起動直後
modeldata01.stlファイルの読み込み
modeldata02.stlファイルの読み込み
ダウンロード
実行形式ファイルダウンロード (ModelViewerOpenGLWinAPI2008_06_exe.lzh)
ソースファイルダウンロード (ModelViewerOpenGLWinAPI2008_06_src.lzh)