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.描画速度の計測