06.モデルデータファイル読み込みを作る
05.で作成したモデルビューワは、表示するモデルデータをアプリケーション内で定義していました。
モデルデータファイル読み込み処理を作成し、05.で作成したモデルビューワを、ファイルからモデルデータを読み込んで描画するようにします。
解説
アスキー形式STLファイル読み込み処理を作成します。
プロジェクトを開く
05.で作成したモデルビューワプロジェクトを開きます。
モデルデータ読み込み関数のヘッダーファイルの作成
「メニュー/プロジェクト/新しい項目の追加」でファイル名「LoadStlFile.h」のファイルを作成します。
LoadStlFile.h の内容を以下のようにします。
ビルドし、エラー、警告がないことを確認します。
モデルデータ読み込み関数のソースファイルの作成
「メニュー/プロジェクト/新しい項目の追加」でファイル名「LoadStlFile.cpp」のファイルを作成します。
LoadStlFile.cpp の内容を以下のようにします。
ビルドし、エラー、警告がないことを確認します。
メニュー「ファイル/開く」の応答関数の追加、編集
メニュー「ファイル/開く」の応答関数を追加します。
クラス:CModelViewerView
メニューコマンドID:ID_FILE_OPEN
メッセージ:COMMAND
を選択し、
関数名:OnFileOpen
の関数を追加します。
(COMMANDメッセージ応答関数の追加は、「クラスビュー」と「プロパティビュー」を使用します。
まず、「クラスビュー」で、メッセージハンドラを追加するクラスを選択します。
次に、「プロパティビュー」のツールバーの「イベント」を選択します。追加するメニューコマンドID「ID_XXX_XXX」の左側の「+」をクリックし、ツリーを展開します。「COMMAND」「UPDATE_COMMAND_UI」が現れます。右側のドロップダウンリストを用いて応答関数を追加します)
OnFileOpen関数の内容を以下のようにします。
ModelViewerView.cpp のファイルヘッダー部に
#include "LoadStlFile.h"
を追加します。
ビルドし、エラー、警告がないことを確認します。
モデルデータ構築処理の削除
5.で作成した、モデルビューワのビュークラスのコンストラクタのモデルデータ構築処理は不要なので削除します。
ModelViewerView.cpp のモデルビューワのビュークラスのコンストラクタでのモデルデータ構築処理を削除すると、コンストラクタの内容は以下のようになります。
実行
実行し、アスキー形式STLファイルからモデルデータを読み込んで描画できるようになっていることを確認します。
起動直後
model01.stlファイルの読み込み
model02.stlファイルの読み込み
ダウンロード
ソースファイルダウンロード (ModelViewerOpenGLMFC2015_06_loadmodel.zip)
関連ページ
前項目:05.モデルデータ構造を作る
次項目:07.描画速度の計測