|
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().