3Dモデルファイルの入出力
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*3Dモデルファイルの入出力 [#s7ad3df6]
ポリゴンで構成された3Dモデルファイルの入出力を行うライブ...
-OBJファイルの入出力
-DXFファイルの入出力(3DFACEエンティティのみ)
-VRMLファイルの入力(IndexedFaceSetのみ)
-3DSファイルの入力(EDITチャンクのみ,KEYFRAMEチャンクには...
-STLファイルの入出力(ASCII,バイナリ両方に対応)
-OFFファイルの入力
***ダウンロード [#qab715e1]
ソースコードは以下.
#ref(rx_model_v0.52.zip)
***使用例 [#s0039619]
#code(C){{
#include "rx_model.h"
/*!
* OBJファイル読み込み
* @param[in] filename objファイルのパス
* @param[inout] poly 3Dオブジェクト
* @param[in] cen,ext 入力した3D形状の正規化パラメータ
*/
void ReadOBJ(const string filename, rxPolygons &polys, Ve...
{
if(!polys.vertices.empty()){
polys.vertices.clear();
polys.normals.clear();
polys.faces.clear();
polys.materials.clear();
polys.open = 0;
}
rxOBJ obj;
if(obj.Read(filename, polys.vertices, polys.normals, pol...
cout << filename << " have been read." << endl;
if(polys.normals.empty()){
CalVertexNormals(polys);
}
cout << " the number of vertex : " << polys.vertices....
cout << " the number of normal : " << polys.normals.s...
cout << " the number of polygon : " << polys.faces.siz...
cout << " the number of material : " << polys.materials...
FitVertices(cen, ext, polys.vertices);
// テクスチャ読み込み
if(!polys.materials.empty()){
rxMTL::iterator iter = polys.materials.begin();
for(; iter != polys.materials.end(); ++iter){
if(iter->second.tex_file.empty()) continue;
cout << iter->first << " : " << iter->second.tex_file;
LoadGLTexture(iter->second.tex_file, iter->second.tex...
cout << " : " << iter->second.tex_name << endl;
}
}
polys.open = 1;
}
}
/*!
* OBJファイル書き込み
* @param[in] filename objファイルのパス
* @param[inout] poly 3Dオブジェクト
*/
void SaveOBJ(const string filename, rxPolygons &polys)
{
rxOBJ obj;
if(obj.Save(filename, polys.vertices, polys.normals, pol...
cout << filename << " have been saved." << endl;
}
}
}}
終了行:
*3Dモデルファイルの入出力 [#s7ad3df6]
ポリゴンで構成された3Dモデルファイルの入出力を行うライブ...
-OBJファイルの入出力
-DXFファイルの入出力(3DFACEエンティティのみ)
-VRMLファイルの入力(IndexedFaceSetのみ)
-3DSファイルの入力(EDITチャンクのみ,KEYFRAMEチャンクには...
-STLファイルの入出力(ASCII,バイナリ両方に対応)
-OFFファイルの入力
***ダウンロード [#qab715e1]
ソースコードは以下.
#ref(rx_model_v0.52.zip)
***使用例 [#s0039619]
#code(C){{
#include "rx_model.h"
/*!
* OBJファイル読み込み
* @param[in] filename objファイルのパス
* @param[inout] poly 3Dオブジェクト
* @param[in] cen,ext 入力した3D形状の正規化パラメータ
*/
void ReadOBJ(const string filename, rxPolygons &polys, Ve...
{
if(!polys.vertices.empty()){
polys.vertices.clear();
polys.normals.clear();
polys.faces.clear();
polys.materials.clear();
polys.open = 0;
}
rxOBJ obj;
if(obj.Read(filename, polys.vertices, polys.normals, pol...
cout << filename << " have been read." << endl;
if(polys.normals.empty()){
CalVertexNormals(polys);
}
cout << " the number of vertex : " << polys.vertices....
cout << " the number of normal : " << polys.normals.s...
cout << " the number of polygon : " << polys.faces.siz...
cout << " the number of material : " << polys.materials...
FitVertices(cen, ext, polys.vertices);
// テクスチャ読み込み
if(!polys.materials.empty()){
rxMTL::iterator iter = polys.materials.begin();
for(; iter != polys.materials.end(); ++iter){
if(iter->second.tex_file.empty()) continue;
cout << iter->first << " : " << iter->second.tex_file;
LoadGLTexture(iter->second.tex_file, iter->second.tex...
cout << " : " << iter->second.tex_name << endl;
}
}
polys.open = 1;
}
}
/*!
* OBJファイル書き込み
* @param[in] filename objファイルのパス
* @param[inout] poly 3Dオブジェクト
*/
void SaveOBJ(const string filename, rxPolygons &polys)
{
rxOBJ obj;
if(obj.Save(filename, polys.vertices, polys.normals, pol...
cout << filename << " have been saved." << endl;
}
}
}}
ページ名: