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)