JunkBox_Lib++ (for Windows) 1.10.1
Loading...
Searching...
No Matches
MeshObjectData.h
Go to the documentation of this file.
1#ifndef __JBXL_CPP_MESHOBJECTDATA_H_
2#define __JBXL_CPP_MESHOBJECTDATA_H_
3
4#include "MeshFacetNode.h"
5
6
7namespace jbxl {
8
9
11// MeshObject Data: for Object
12// 3Dオブジェクトの最終的なデータ形式
13// ContourTriData + ContourTriIndex -> MeshFacetNode -> MeshObjectData (for Prim or Sculpt Prim)
14// TriPolygonData + ContourTriIndex -> MeshFacetNode -> MeshObjectData
15// ContourBaseData -> MeshFacetNode -> MeshObjectData
16
22{
23public:
26
32
35
37
38private: // 入力データの作業用
40
45
46public:
47 MeshObjectData(const char* name=NULL) { init(name);}
48 virtual ~MeshObjectData(void) { free();}
49
50 void init(const char* name=NULL);
51 void free(void);
52 void free_value(void);
53 void clear(void);
54
55 //
57 char* getName(void) { return _tochar(data_name.buf);}
59 char* getAltName(void) { return _tochar(alt_name.buf);}
60
63
64public:
65 // addData(){addNode();}
66 bool addData(ContourBaseData* facetdata, MaterialParam* param);
67 bool addNode(ContourBaseData* facetdata, const char* name, MaterialParam* param);
68
69 // addData(){importTriData(); addNode();}
70 bool addData(Vector<double>* vct, Vector<double>* nrm, UVMap<double>* map, ArrayParam<int>* wgt, int vnum, MaterialParam* param, bool useBrep);
71 bool addData(TriPolygonData* tridata, int tnum, int fnum, MaterialParam* param, bool useBrep);
72 bool importTriData(Vector<double>* vct, Vector<double>* nrm, UVMap<double>* map, ArrayParam<int>* wgt, int vnum);
73 bool importTriData(TriPolygonData* tridata, int tnum, int fnum=-1);
74 bool addNode(const char* name, MaterialParam* param, bool useBrep);
75 //
76 void joinData(MeshObjectData*& data);
77 void setMaterialParam(MaterialParam param, int num=-1);
78};
79
80
81inline void freeMeshObjectData(MeshObjectData*& data) { if(data!=NULL) { data->free(); delete data; data=NULL;} }
82
83
84} // namespace
85
86#endif
87
void free_Buffer(Buffer *buf)
Buffer型変数のバッファ部を解放する
Definition buffer.cpp:128
#define make_Buffer_str(str)
set_Buffer()
Definition buffer.h:61
void dup(AffineTrans a)
MeshObject の Polygonデータ(1面)を格納するクラス.リスト構造を取る.
void setMaterialParam(MaterialParam param, int num=-1)
Buffer data_name
データ名
void setAffineTrans(AffineTrans< double > a)
int ttl_texcrd
テクスチャ画像の座標総数.通常は ttl_vertexと同じ値.
void setName(const char *str)
MeshFacetNode * facet_end
FACETデータのリストの最後のデータへのポインタ
AffineTrans< double > * affineTrans
アフィン変換.ここで使用するのは,shift, rotate, scale(size) のみ
bool addNode(ContourBaseData *facetdata, const char *name, MaterialParam *param)
int num_node
テクスチャー単位の面の数(Node の数)
char * getAltName(void)
int num_import
入力データの数
virtual ~MeshObjectData(void)
MeshObjectData(const char *name=NULL)
Vector< double > * impvtx_value
入力された頂点データ.3個で 1ポリゴンを表現.法線方向は右手順.
void init(const char *name=NULL)
int ttl_index
インデックスの総数(実質的データ数)
int num_vcount
1ポリゴン あたりの頂点数.現在は 3のみサポート
bool importTriData(Vector< double > *vct, Vector< double > *nrm, UVMap< double > *map, ArrayParam< int > *wgt, int vnum)
MeshFacetNode * facet
FACETデータ(1面のポリゴンデータ)のリストへのポインタ
Vector< double > * impnrm_value
入力された頂点の法線ベクトル.impvtx_value と対応.
void setAltName(const char *str)
int ttl_vertex
頂点データの総数.
ArrayParam< int > * impwgt_value
入力された頂点の重み.Jointを持つデータに使用される.
bool addData(ContourBaseData *facetdata, MaterialParam *param)
UVMap< double > * impmap_value
入力されたテクスチャ座標データ.impvtx_value と対応.
void joinData(MeshObjectData *&data)
data は削除される.
#define TRUE
Definition common.h:226
Definition Brep.h:29
void freeMeshObjectData(MeshObjectData *&data)
void freeAffineTrans(AffineTrans< T > *&affine)
unsigned char * buf
バッファの先頭へのポインタ.str[bufsz]は必ず 0x00となる.
Definition buffer.h:39
#define _tochar(a)
Definition tools.h:207
void canonical_filename_Buffer(Buffer *fname, int no_dir)
fname の問題になりそうな ASCII文字を '_' に変換する.
Definition xtools.cpp:2057