06.モデルデータファイル読み込みを作る
05.で作成したモデルビューワは、表示するモデルデータをアプリケーション内で定義していました。
モデルデータファイル読み込み処理を作成し、05.で作成したモデルビューワを、ファイルからモデルデータを読み込んで描画するようにします。
解説
アスキー形式STLファイル読み込み処理を作成します。
プロジェクトを開く
05.で作成したモデルビューワプロジェクトを開きます。
モデルデータ読み込み関数のヘッダーファイルの作成
「メニュー/プロジェクト/新しい項目の追加」でファイル名「LoadStlFile.h」のファイルを作成します。
LoadStlFile.hの内容を以下のようにします。
ビルドし、エラー、警告がないことを確認します。
モデルデータ読み込み関数のソースファイルの作成
「メニュー/プロジェクト/新しい項目の追加」でファイル名「LoadStlFile.cpp」のファイルを作成します。
LoadStlFile.cppの内容を以下のようにします。
ビルドし、エラー、警告がないことを確認します。
メニュー「ファイル/開く」の追加
メニュー/表示 に以下のメニューアイテムを追加します。
メニュー名 | メニューID | |
---|---|---|
ファイル | - | - |
- | 開く | ID_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ファイルの読み込み
ダウンロード
ソースファイルダウンロード ( ModelViewerOpenGLWinAPI2015_06_loadmodel.zip )
関連ページ
前項目:05.モデルデータ構造を作る
次項目:07.描画速度の計測