JunkBox_Lib++ (for Windows) 1.10.1
|
#include <MeshObjectData.h>
Public Member Functions | |
MeshObjectData (const char *name=NULL) | |
virtual | ~MeshObjectData (void) |
void | init (const char *name=NULL) |
void | free (void) |
void | free_value (void) |
void | clear (void) |
void | setName (const char *str) |
char * | getName (void) |
void | setAltName (const char *str) |
char * | getAltName (void) |
void | setAffineTrans (AffineTrans< double > a) |
void | delAffineTrans (void) |
bool | addData (ContourBaseData *facetdata, MaterialParam *param) |
bool | addNode (ContourBaseData *facetdata, const char *name, MaterialParam *param) |
bool | addData (Vector< double > *vct, Vector< double > *nrm, UVMap< double > *map, ArrayParam< int > *wgt, int vnum, MaterialParam *param, bool useBrep) |
bool | addData (TriPolygonData *tridata, int tnum, int fnum, MaterialParam *param, bool useBrep) |
処理するFACETを選択できる | |
bool | importTriData (Vector< double > *vct, Vector< double > *nrm, UVMap< double > *map, ArrayParam< int > *wgt, int vnum) |
bool | importTriData (TriPolygonData *tridata, int tnum, int fnum=-1) |
bool | addNode (const char *name, MaterialParam *param, bool useBrep) |
void | joinData (MeshObjectData *&data) |
data は削除される. | |
void | setMaterialParam (MaterialParam param, int num=-1) |
Public Attributes | |
Buffer | data_name |
データ名 | |
Buffer | alt_name |
別名 | |
int | ttl_index |
インデックスの総数(実質的データ数) | |
int | ttl_vertex |
頂点データの総数. | |
int | ttl_texcrd |
テクスチャ画像の座標総数.通常は ttl_vertexと同じ値. | |
int | num_node |
テクスチャー単位の面の数(Node の数) | |
int | num_vcount |
1ポリゴン あたりの頂点数.現在は 3のみサポート | |
MeshFacetNode * | facet |
FACETデータ(1面のポリゴンデータ)のリストへのポインタ | |
MeshFacetNode * | facet_end |
FACETデータのリストの最後のデータへのポインタ | |
AffineTrans< double > * | affineTrans |
アフィン変換.ここで使用するのは,shift, rotate, scale(size) のみ | |
Private Attributes | |
int | num_import |
入力データの数 | |
Vector< double > * | impvtx_value |
入力された頂点データ.3個で 1ポリゴンを表現.法線方向は右手順. | |
Vector< double > * | impnrm_value |
入力された頂点の法線ベクトル.impvtx_value と対応. | |
UVMap< double > * | impmap_value |
入力されたテクスチャ座標データ.impvtx_value と対応. | |
ArrayParam< int > * | impwgt_value |
入力された頂点の重み.Jointを持つデータに使用される. | |
class MeshObjectData
Definition at line 21 of file MeshObjectData.h.
|
inline |
Definition at line 47 of file MeshObjectData.h.
References MeshObjectData::init().
|
inlinevirtual |
Definition at line 48 of file MeshObjectData.h.
References MeshObjectData::free().
bool addData | ( | ContourBaseData * | contours, |
MaterialParam * | param ) |
bool MeshObjectData::addData(ContourBaseData* contours, MaterialParam* param)
インデックス化された ContourBaseDataを importTriData()を介さずに,直接 Nodeデータに書き込む.
CONTOUR(ポリゴン)を選択的に処理することはできない.予め CONTOURに分解しておくか,CONTOURが1つのみの場合に使用する. この後 MeshFacetNode::computeVertexDirect() を使用して頂点データの計算を行う.
contours | |
param |
true | 処理の成功.false: 処理の失敗. |
Definition at line 87 of file MeshObjectData.cpp.
References MeshObjectData::addNode(), DEBUG_MODE, MeshObjectData::facet_end, MaterialParam::getParamString(), PRINT_MESG, and MeshFacetNode::setMaterialParam().
bool addData | ( | TriPolygonData * | tridata, |
int | tnum, | ||
int | pnum, | ||
MaterialParam * | param, | ||
bool | useBrep ) |
TriPolygonData (三角ポリゴンデータ) を単位としてデータを追加し,MeshObjectのデータを作成する.
pnum を指定すると,指定されたポリゴンデータのみが追加される.これにより面ごとのデータ構造を形成することができる.
tridata | 追加対象の三角ポリゴンデータへのポインタ |
tnum | 三角ポリゴンデータの数 |
pnum | 追加するデータのポリゴン番号(選択的に追加する場合に指定する).-1以下なら全てのポリゴンデータを追加する. |
param | マテリアル用パラメータへのポインタ |
useBrep | BREPを使用して頂点を配置する. |
true | 処理の成功.false: 処理の失敗. |
Definition at line 146 of file MeshObjectData.cpp.
References MeshObjectData::addNode(), DEBUG_MODE, MeshObjectData::facet_end, MaterialParam::getParamString(), MeshObjectData::importTriData(), PRINT_MESG, MeshFacetNode::setFacetNo(), and MeshFacetNode::setMaterialParam().
bool addData | ( | Vector< double > * | vct, |
Vector< double > * | nrm, | ||
UVMap< double > * | map, | ||
ArrayParam< int > * | wgt, | ||
int | vnum, | ||
MaterialParam * | param, | ||
bool | useBrep ) |
指定した頂点ベクトルのデータを追加し,MeshObjectのデータ(通常はCONTOUR すなわちポリゴン単位)を作成する.
vct, nrm, map は3個づつ組になって三角ポリゴンを表す.従って vnumは必ず3の倍数になるはず.
その後 MeshFacetNode::computeVertexDirect() または MeshFacetNode::computeVertexByBREP() を使用して頂点データの計算を行う.
vct | 追加対象の頂点座標データへのポインタ |
nrm | 追加対象の頂点の法線ベクトルのデータへのポインタ |
map | 追加対象のテクスチャ座標のデータへのポインタ |
wgt | 頂点の重みデータへのポインタ(オプション) |
vnum | データ数 |
param | マテリアル用パラメータへのポインタ |
useBrep | BREPを使用して頂点を配置する. |
true | 処理の成功.false: 処理の失敗. |
Definition at line 117 of file MeshObjectData.cpp.
References MeshObjectData::addNode(), DEBUG_MODE, MeshObjectData::facet_end, MaterialParam::getParamString(), MeshObjectData::importTriData(), PRINT_MESG, and MeshFacetNode::setMaterialParam().
bool addNode | ( | const char * | name, |
MaterialParam * | param, | ||
bool | useBrep ) |
bool MeshObjectData::addNode(const char* name, MaterialParam* param, bool useBrep)
name | ノードの名前 |
useBrep | BREPを使用して頂点を配置する. |
Definition at line 400 of file MeshObjectData.cpp.
References jbxl::AddMeshFacetNode(), MeshFacetNode::computeVertexByBREP(), MeshFacetNode::computeVertexDirect(), DEBUG_MODE, MeshObjectData::facet, MeshObjectData::facet_end, jbxl::freeNull(), MeshObjectData::impmap_value, MeshObjectData::impnrm_value, MeshObjectData::impvtx_value, MeshObjectData::impwgt_value, MeshObjectData::num_import, MeshFacetNode::num_index, MeshObjectData::num_node, MeshFacetNode::num_texcrd, MeshObjectData::num_vcount, MeshFacetNode::num_vertex, PRINT_MESG, MeshFacetNode::setMaterialID(), MeshFacetNode::setMaterialParam(), MeshObjectData::ttl_index, MeshObjectData::ttl_texcrd, and MeshObjectData::ttl_vertex.
bool addNode | ( | ContourBaseData * | facetdata, |
const char * | name, | ||
MaterialParam * | param ) |
bool MeshObjectData::addNode(ContourBaseData* facetdata, const char* name, MaterialParam* param)
Definition at line 367 of file MeshObjectData.cpp.
References jbxl::AddMeshFacetNode(), MeshFacetNode::computeVertexDirect(), DEBUG_MODE, MeshObjectData::facet, MeshObjectData::facet_end, MeshFacetNode::num_index, MeshObjectData::num_node, MeshFacetNode::num_texcrd, MeshFacetNode::num_vertex, PRINT_MESG, MeshFacetNode::setMaterialID(), MeshFacetNode::setMaterialParam(), MeshObjectData::ttl_index, MeshObjectData::ttl_texcrd, and MeshObjectData::ttl_vertex.
Referenced by MeshObjectData::addData(), MeshObjectData::addData(), and MeshObjectData::addData().
void clear | ( | void | ) |
Definition at line 69 of file MeshObjectData.cpp.
References MeshObjectData::free(), and MeshObjectData::init().
|
inline |
Definition at line 62 of file MeshObjectData.h.
References MeshObjectData::affineTrans, and jbxl::freeAffineTrans().
Referenced by MeshObjectData::free(), and MeshObjectData::setAffineTrans().
void free | ( | void | ) |
Definition at line 42 of file MeshObjectData.cpp.
References MeshObjectData::alt_name, MeshObjectData::data_name, MeshObjectData::delAffineTrans(), MeshObjectData::facet, MeshObjectData::facet_end, free_Buffer(), MeshObjectData::free_value(), and jbxl::freeMeshFacetList().
Referenced by MeshObjectData::clear(), jbxl::freeMeshObjectData(), and MeshObjectData::~MeshObjectData().
void free_value | ( | void | ) |
Definition at line 55 of file MeshObjectData.cpp.
References jbxl::freeNull(), MeshObjectData::impmap_value, MeshObjectData::impnrm_value, MeshObjectData::impvtx_value, MeshObjectData::impwgt_value, and MeshObjectData::num_import.
Referenced by MeshObjectData::free(), MeshObjectData::importTriData(), and MeshObjectData::importTriData().
|
inline |
Definition at line 59 of file MeshObjectData.h.
References _tochar, MeshObjectData::alt_name, and Buffer::buf.
|
inline |
Definition at line 57 of file MeshObjectData.h.
References _tochar, Buffer::buf, and MeshObjectData::data_name.
bool importTriData | ( | TriPolygonData * | tridata, |
int | tnum, | ||
int | pnum = -1 ) |
TriPolygonData (三角ポリゴンデータ) を単位としてデータを取り込む.
pnum を指定すると,指定されたポリゴンデータのみが追加される.
tridata | 三角ポリゴンデータへのポインタ |
tnum | 三角ポリゴンデータの数 |
pnum | 追加するデータの三角ポリゴンの番号(選択的に追加する番号).-1以下なら全てのポリゴンデータを追加する. |
true | 処理の成功.false: 処理の失敗. |
Definition at line 256 of file MeshObjectData.cpp.
References DEBUG_MODE, ArrayParam< T >::dup(), MeshObjectData::free_value(), jbxl::freeNull(), MeshObjectData::impmap_value, MeshObjectData::impnrm_value, MeshObjectData::impvtx_value, MeshObjectData::impwgt_value, TriPolygonData::normal, MeshObjectData::num_import, MeshObjectData::num_vcount, PRINT_MESG, TriPolygonData::texcrd, and TriPolygonData::vertex.
bool importTriData | ( | Vector< double > * | vct, |
Vector< double > * | nrm, | ||
UVMap< double > * | map, | ||
ArrayParam< int > * | wgt, | ||
int | vnum ) |
指定した頂点ベクトルのデータを取り込む.
vct, nrm, map は3個づつ組になって三角ポリゴンを表す.従って vnumは必ず3の倍数になるはず.
vct | 頂点座標データへのポインタ |
nrm | 頂点の法線ベクトルのデータへのポインタ |
map | テクスチャ座標のデータへのポインタ |
wgt | 頂点の重みデータへのポインタ(オプション) |
vnum | データ数 |
true | 処理の成功.false: 処理の失敗. |
Definition at line 180 of file MeshObjectData.cpp.
References DEBUG_MODE, ArrayParam< T >::dup(), MeshObjectData::free_value(), jbxl::freeNull(), MeshObjectData::impmap_value, MeshObjectData::impnrm_value, MeshObjectData::impvtx_value, MeshObjectData::impwgt_value, MeshObjectData::num_import, MeshObjectData::num_vcount, and PRINT_MESG.
Referenced by MeshObjectData::addData(), and MeshObjectData::addData().
void init | ( | const char * | name = NULL | ) |
Definition at line 17 of file MeshObjectData.cpp.
References MeshObjectData::affineTrans, MeshObjectData::alt_name, canonical_filename_Buffer(), MeshObjectData::data_name, MeshObjectData::facet, MeshObjectData::facet_end, MeshObjectData::impmap_value, MeshObjectData::impnrm_value, MeshObjectData::impvtx_value, MeshObjectData::impwgt_value, make_Buffer_str, MeshObjectData::num_import, MeshObjectData::num_node, MeshObjectData::num_vcount, TRUE, MeshObjectData::ttl_index, MeshObjectData::ttl_texcrd, and MeshObjectData::ttl_vertex.
Referenced by MeshObjectData::clear(), and MeshObjectData::MeshObjectData().
void joinData | ( | MeshObjectData *& | data | ) |
現在の形状データに,dataを面の一部(Node)として結合させる.アフィン変換のパラメータの違うものは結合できない.
data | 結合するMeshObjectデータ.結合後データは削除される.データのアフィン変換は無視する. |
Definition at line 478 of file MeshObjectData.cpp.
References MeshObjectData::affineTrans, MeshObjectData::facet, MeshObjectData::facet_end, jbxl::freeMeshObjectData(), MeshFacetNode::next, MeshObjectData::num_node, MeshFacetNode::prev, MeshObjectData::setAffineTrans(), MeshObjectData::ttl_index, MeshObjectData::ttl_texcrd, and MeshObjectData::ttl_vertex.
|
inline |
Definition at line 61 of file MeshObjectData.h.
References MeshObjectData::affineTrans, MeshObjectData::delAffineTrans(), and AffineTrans< T >::dup().
Referenced by MeshObjectData::joinData().
|
inline |
Definition at line 58 of file MeshObjectData.h.
References MeshObjectData::alt_name, canonical_filename_Buffer(), free_Buffer(), make_Buffer_str, and TRUE.
void setMaterialParam | ( | MaterialParam | param, |
int | num = -1 ) |
void MeshObjectData::setMaterialParam(MaterialParam param, int num)
param | マテリアルパラメータ |
num | 0以上の場合は指定したノードに,-1の場合は先頭から順にノードにパラメータを設定する |
Definition at line 445 of file MeshObjectData.cpp.
References MaterialParam::enable, MeshObjectData::facet, MeshFacetNode::facet_no, MaterialParam::getParamString(), MeshFacetNode::material_param, MeshFacetNode::next, MeshFacetNode::setMaterialID(), and MeshFacetNode::setMaterialParam().
|
inline |
Definition at line 56 of file MeshObjectData.h.
References canonical_filename_Buffer(), MeshObjectData::data_name, free_Buffer(), make_Buffer_str, and TRUE.
AffineTrans<double>* affineTrans |
Definition at line 36 of file MeshObjectData.h.
Referenced by ColladaXML::addScene(), FBXData::addShell(), GLTFData::addShell(), OBJData::addShell(), BrepSolidList::addSolid(), ColladaXML::addTexcrdSource(), MeshObjectData::delAffineTrans(), MeshObjectData::init(), MeshObjectData::joinData(), and MeshObjectData::setAffineTrans().
Buffer alt_name |
Definition at line 25 of file MeshObjectData.h.
Referenced by ColladaXML::addController(), ColladaXML::addGeometry(), ColladaXML::addScene(), GLTFData::addShell(), MeshObjectData::free(), MeshObjectData::getAltName(), MeshObjectData::init(), and MeshObjectData::setAltName().
Buffer data_name |
Definition at line 24 of file MeshObjectData.h.
Referenced by GLTFData::addShell(), OBJData::addShell(), MeshObjectData::free(), MeshObjectData::getName(), MeshObjectData::init(), and MeshObjectData::setName().
MeshFacetNode* facet |
Definition at line 33 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::addNode(), ColladaXML::addNormalSource(), ColladaXML::addPolylists(), ColladaXML::addScene(), FBXData::addShell(), GLTFData::addShell(), OBJData::addShell(), BrepSolidList::addSolid(), ColladaXML::addTexcrdSource(), ColladaXML::addVertexSource(), ColladaXML::addWeightSource(), MeshObjectData::free(), MeshObjectData::init(), MeshObjectData::joinData(), and MeshObjectData::setMaterialParam().
MeshFacetNode* facet_end |
Definition at line 34 of file MeshObjectData.h.
Referenced by MeshObjectData::addData(), MeshObjectData::addData(), MeshObjectData::addData(), MeshObjectData::addNode(), MeshObjectData::addNode(), MeshObjectData::free(), MeshObjectData::init(), and MeshObjectData::joinData().
|
private |
Definition at line 43 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::free_value(), MeshObjectData::importTriData(), MeshObjectData::importTriData(), and MeshObjectData::init().
|
private |
Definition at line 42 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::free_value(), MeshObjectData::importTriData(), MeshObjectData::importTriData(), and MeshObjectData::init().
|
private |
Definition at line 41 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::free_value(), MeshObjectData::importTriData(), MeshObjectData::importTriData(), and MeshObjectData::init().
|
private |
Definition at line 44 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::free_value(), MeshObjectData::importTriData(), MeshObjectData::importTriData(), and MeshObjectData::init().
|
private |
Definition at line 39 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::free_value(), MeshObjectData::importTriData(), MeshObjectData::importTriData(), and MeshObjectData::init().
int num_node |
Definition at line 30 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::addNode(), MeshObjectData::init(), and MeshObjectData::joinData().
int num_vcount |
Definition at line 31 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), ColladaXML::addPolylists(), MeshObjectData::importTriData(), MeshObjectData::importTriData(), and MeshObjectData::init().
int ttl_index |
Definition at line 27 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::addNode(), MeshObjectData::init(), and MeshObjectData::joinData().
int ttl_texcrd |
Definition at line 29 of file MeshObjectData.h.
Referenced by MeshObjectData::addNode(), MeshObjectData::addNode(), ColladaXML::addTexcrdSource(), MeshObjectData::init(), and MeshObjectData::joinData().
int ttl_vertex |
Definition at line 28 of file MeshObjectData.h.
Referenced by ColladaXML::addController(), MeshObjectData::addNode(), MeshObjectData::addNode(), ColladaXML::addNormalSource(), ColladaXML::addTexcrdSource(), ColladaXML::addVertexSource(), ColladaXML::addWeightSource(), MeshObjectData::init(), and MeshObjectData::joinData().