FacetBaseData Class Reference

#include <FacetBaseData.h>

Collaboration diagram for FacetBaseData:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 FacetBaseData (int idx=0, int num=0)
virtual ~FacetBaseData (void)
void init (int idx=0, int num=0)
void free (void)
bool getm (void)
void dup (FacetBaseData a)
void execScale (Vector< double > scale)
void execShift (Vector< double > shift)
void execRotate (Quaternion< double > quat)

Public Attributes

int num_index
 インデックスの数.(index の要素数)
int num_data
 データ数.(vertex, normal, texcrd の要素数)
int vcount
 ポリゴンの頂点数.通常は3
int * index
 インデックスデータ
Vector< double > * vertex
 頂点データ
Vector< double > * normal
 法線ベクトル
UVMap< double > * texcrd
 テクスチャマップ

Detailed Description

Definition at line 103 of file FacetBaseData.h.


Constructor & Destructor Documentation

FacetBaseData ( int  idx = 0,
int  num = 0 
) [inline]

Definition at line 116 of file FacetBaseData.h.

References FacetBaseData::init().

00116 { init(idx, num);}

Here is the call graph for this function:

virtual ~FacetBaseData ( void   )  [inline, virtual]

Definition at line 117 of file FacetBaseData.h.

00117 {} 


Member Function Documentation

void dup ( FacetBaseData  a  ) 

Definition at line 127 of file FacetBaseData.cpp.

References FacetBaseData::getm(), FacetBaseData::index, FacetBaseData::normal, FacetBaseData::num_data, FacetBaseData::num_index, FacetBaseData::texcrd, FacetBaseData::vcount, and FacetBaseData::vertex.

00128 {
00129     num_index = a.num_index;
00130     num_data  = a.num_data;
00131     vcount    = a.vcount;
00132 
00133     if (getm()) {
00134         for (int i=0; i<num_index; i++) index[i] = a.index[i];
00135         for (int i=0; i<num_data;  i++) {
00136             vertex[i] = a.vertex[i];
00137             normal[i] = a.normal[i];
00138             texcrd[i] = a.texcrd[i];
00139         }
00140     }
00141     return;
00142 }

Here is the call graph for this function:

void execRotate ( Quaternion< double >  quat  ) 

Definition at line 168 of file FacetBaseData.cpp.

References FacetBaseData::normal, FacetBaseData::num_data, jbxl::VectorRotation(), and FacetBaseData::vertex.

00169 {
00170     for (int i=0; i<num_data; i++) {
00171         vertex[i] = VectorRotation(vertex[i], quat);
00172         normal[i] = VectorRotation(normal[i], quat);
00173     }
00174 }

Here is the call graph for this function:

void execScale ( Vector< double >  scale  ) 

Definition at line 146 of file FacetBaseData.cpp.

References FacetBaseData::num_data, FacetBaseData::vertex, Vector< T >::x, Vector< T >::y, and Vector< T >::z.

00147 {
00148     for (int i=0; i<num_data;  i++) {
00149         vertex[i].x *= scale.x;
00150         vertex[i].y *= scale.y;
00151         vertex[i].z *= scale.z;
00152     }
00153 }

void execShift ( Vector< double >  shift  ) 

Definition at line 157 of file FacetBaseData.cpp.

References FacetBaseData::num_data, FacetBaseData::vertex, Vector< T >::x, Vector< T >::y, and Vector< T >::z.

00158 {
00159     for (int i=0; i<num_data; i++) {
00160         vertex[i].x += shift.x;
00161         vertex[i].y += shift.y;
00162         vertex[i].z += shift.z;
00163     }
00164 }

void free ( void   ) 

Definition at line 96 of file FacetBaseData.cpp.

References jbxl::freeNull(), FacetBaseData::index, FacetBaseData::init(), FacetBaseData::normal, FacetBaseData::texcrd, and FacetBaseData::vertex.

Referenced by jbxl::freeFacetBaseData(), and FacetBaseData::getm().

00097 {
00098     freeNull(index);
00099 
00100     freeNull(vertex);
00101     freeNull(normal);
00102     freeNull(texcrd);
00103 
00104     init();
00105 }

Here is the call graph for this function:

Here is the caller graph for this function:

bool getm ( void   ) 

Definition at line 109 of file FacetBaseData.cpp.

References FacetBaseData::free(), FacetBaseData::index, FacetBaseData::normal, FacetBaseData::num_data, FacetBaseData::num_index, FacetBaseData::texcrd, and FacetBaseData::vertex.

Referenced by FacetBaseData::dup().

00110 {
00111     index = (int*)malloc(sizeof(int)*num_index);
00112 
00113     vertex = (Vector<double>*)malloc(sizeof(Vector<double>)*num_data);
00114     normal = (Vector<double>*)malloc(sizeof(Vector<double>)*num_data);
00115     texcrd = (UVMap <double>*)malloc(sizeof(UVMap <double>)*num_data);
00116 
00117     if (index==NULL || vertex==NULL || normal==NULL || texcrd==NULL) {
00118         this->free();
00119         return false;
00120     }
00121 
00122     return true;
00123 }

Here is the call graph for this function:

Here is the caller graph for this function:

void init ( int  idx = 0,
int  num = 0 
)

Definition at line 82 of file FacetBaseData.cpp.

References FacetBaseData::index, FacetBaseData::normal, FacetBaseData::num_data, FacetBaseData::num_index, FacetBaseData::texcrd, FacetBaseData::vcount, and FacetBaseData::vertex.

Referenced by FacetBaseData::FacetBaseData(), and FacetBaseData::free().

00083 {
00084     num_index = idx;
00085     num_data  = num;
00086     vcount    = 3;
00087 
00088     index     = NULL;
00089     vertex    = NULL;
00090     normal    = NULL;
00091     texcrd    = NULL;
00092 }

Here is the caller graph for this function:


Member Data Documentation

int* index
Vector<double>* normal
int num_data
int num_index
UVMap<double>* texcrd
int vcount
Vector<double>* vertex

The documentation for this class was generated from the following files:

Generated on 15 Nov 2023 for JunkBox_Lib++ (for Windows) by  doxygen 1.6.1