MESH.h | |
Constants | |
General Defines | |
HEvert | 頂点クラス |
Functions | |
HEvert | コンストラクタ |
GetCoord | この頂点の座標値を返す |
GetHE | この頂点から伸びるハーフエッジの1つを返す |
GetIndex | この頂点のインデックスを返す |
GetFlag | フラグを返す |
NewQEM | QEM法用係数行列qemQのメモリ確保(4x4) |
DelQEM | QEM法用係数行列qemQのメモリ解放 |
InitQEM | QEM法用係数行列qemQの初期化 |
SetQEM | QEM法用係数行列qemQのqemパラメータをセットする |
AddQEM | QEM法用係数行列qemQのqemパラメータを加える |
GetQEM | QEM法用係数行列qemQのqemパラメータを得る |
SetEdge | この頂点から伸びるハーフエッジをセット |
SetCod | この頂点の座標値をセット |
SetIndex | この頂点のインデックスをセット |
SetFlag | フラグをセット |
Variables | |
cod | この頂点の三次元座標 |
*edge | この頂点から伸びるハーフエッジへのポインタ(注:頂点から伸びるHEは1本とは限らない。どのHEと繋がっているか分からない) |
index | インデックス |
*mom | 自分が属する親(Dataクラス)のアドレス |
**qemQ | QEM法用係数行列 |
flag | 汎用フラグ |
HEedge | ハーフエッジクラス |
Functions | |
GetStartVert | このハーフエッジの始点を返す |
GetStartVcoord | このハーフエッジの始点座標を返す |
GetPairHE | このハーフエッジの対となるハーフエッジを返す |
GetFace | このハーフエッジが属する面を返す |
GetNextHE | このハーフエッジの次のハーフエッジを返す |
GetNextHE | このハーフエッジの(共有する面における)1つ前のハーフエッジを返す |
GetIndex | このハーフエッジのインデックスを返す |
GetStartVindex | このハーフエッジの始点のインデックスを返す |
GetStartVindex | フラグを返す |
InitQEMP | QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPの初期化 |
InitQEMD | QEM法用パラメータ(Edge Collapse適用のコスト)qemDの初期化 |
SetQEMP | QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPをセット |
SetQEMD | QEM法用パラメータ(Edge Collapse適用のコスト)qemDをセット |
GetQEMP | QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPを返す |
GetQEMD | QEM法用パラメータ(Edge Collapse適用のコスト)qemDを返す |
SetVert | このハーフエッジの始点をセット |
SetPair | このハーフエッジの対となるハーフエッジをセット |
SetFace | このハーフエッジが属する面をセット |
SetNextHE | このハーフエッジの次のハーフエッジをセット |
SetIndex | このハーフエッジのインデックスをセット |
SetFlag | このハーフエッジのフラグをセット |
Variables | |
*vert | このハーフエッジの始点へのポインタ |
*pair | 対となる逆方向ハーフエッジへのポインタ |
*face | このハーフエッジに接している面へのポインタ |
*ne | 面周りの次のハーフエッジへのポインタ |
index | インデックス |
*mom | 自分が属する親のアドレス |
qemP | QEM法用三次元座標値(Edge Collapse適用後の頂点位置) |
qemD | QEM法用パラメータ(Edge Collapse適用のコスト) |
flag | 汎用フラグ |
HEface | 面クラス |
Functions | |
HEface | コンストラクタ |
GetStartHE | この面が持つハーフエッジの1つを返す |
GetNormVec | この面の法線ベクトルを返す |
GetArea | この面の面積を返す |
GetIndex | この面のインデックスを返す |
GetVetexNum | この面の持つ頂点数を返す |
GetDispStat | この面の表示属性を返す |
SetNormVec | この面の法線ベクトルをセット |
SetFaceArea | この面の面積をセット |
SetEdge | この面が持つハーフエッジの1つをセット |
SetVertNum | この面の持つ頂点数をセット |
SetIndex | この面のインデックスをセット |
Variables | |
*edge | この面に接しているハーフエッジの最初 |
norm | 法線ベクトル |
area | 面積 |
vertnum | 頂点数 |
index | インデックス |
Dstat | 表示属性(色r,g,b) |
*mom | 自分が属する親のアドレス |
MESH | メッシュクラスの定義 |
Functions | |
MESH | コンストラクタ |
clear | メッシュ全消去 |
DelVert | 指定した頂点を消去 |
DelEdge | 指定したハーフエッジを消去 |
getIndexedVert | 指定したインデックスと同じインデックスを持つ頂点を探し出す |
getIndexedEdge | 指定したインデックスと同じインデックスを持つハーフエッジを探し出す |
setSentinelOnIndexedEdge | 指定したインデックスのエッジデータに旗を立てる |
getIndexedEdgeFromSentinel | 旗からn番目後or前のエッジデータを得る |
CalcFaceNorm | 指定した面fの法線ベクトルを求め、f->normにセットする |
CalcFaceArea | 指定した面fの面積を求め、f->areaにセットする |
EdgeSortbyQEMD | EdgeをQEMコスト(Edge.qemD)で昇順ソートする |
InsertQEMD | 昇順ソートされたEdgeリストに、変更されたQEMコストを持つHEedgeを挿入 |
MergeSortForQEMD | (private)EdgeをQEMコスト(Edge.qemD)で昇順ソートするSub1 |
MergeListForQEMD | (private)EdgeをQEMコスト(Edge.qemD)で昇順ソートするSub2 |
Variables | |
Edge | ハーフエッジリストのルート |
Vert | 頂点リストのルート |
VertNum | 面の総数 |
EdgeNum | ハーフエッジの総数 |
FaceNum | 頂点の総数 |
class HEvert
頂点クラス
Functions | |
HEvert | コンストラクタ |
GetCoord | この頂点の座標値を返す |
GetHE | この頂点から伸びるハーフエッジの1つを返す |
GetIndex | この頂点のインデックスを返す |
GetFlag | フラグを返す |
NewQEM | QEM法用係数行列qemQのメモリ確保(4x4) |
DelQEM | QEM法用係数行列qemQのメモリ解放 |
InitQEM | QEM法用係数行列qemQの初期化 |
SetQEM | QEM法用係数行列qemQのqemパラメータをセットする |
AddQEM | QEM法用係数行列qemQのqemパラメータを加える |
GetQEM | QEM法用係数行列qemQのqemパラメータを得る |
SetEdge | この頂点から伸びるハーフエッジをセット |
SetCod | この頂点の座標値をセット |
SetIndex | この頂点のインデックスをセット |
SetFlag | フラグをセット |
Variables | |
cod | この頂点の三次元座標 |
*edge | この頂点から伸びるハーフエッジへのポインタ(注:頂点から伸びるHEは1本とは限らない。どのHEと繋がっているか分からない) |
index | インデックス |
*mom | 自分が属する親(Dataクラス)のアドレス |
**qemQ | QEM法用係数行列 |
flag | 汎用フラグ |
class HEedge
ハーフエッジクラス
Functions | |
GetStartVert | このハーフエッジの始点を返す |
GetStartVcoord | このハーフエッジの始点座標を返す |
GetPairHE | このハーフエッジの対となるハーフエッジを返す |
GetFace | このハーフエッジが属する面を返す |
GetNextHE | このハーフエッジの次のハーフエッジを返す |
GetNextHE | このハーフエッジの(共有する面における)1つ前のハーフエッジを返す |
GetIndex | このハーフエッジのインデックスを返す |
GetStartVindex | このハーフエッジの始点のインデックスを返す |
GetStartVindex | フラグを返す |
InitQEMP | QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPの初期化 |
InitQEMD | QEM法用パラメータ(Edge Collapse適用のコスト)qemDの初期化 |
SetQEMP | QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPをセット |
SetQEMD | QEM法用パラメータ(Edge Collapse適用のコスト)qemDをセット |
GetQEMP | QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPを返す |
GetQEMD | QEM法用パラメータ(Edge Collapse適用のコスト)qemDを返す |
SetVert | このハーフエッジの始点をセット |
SetPair | このハーフエッジの対となるハーフエッジをセット |
SetFace | このハーフエッジが属する面をセット |
SetNextHE | このハーフエッジの次のハーフエッジをセット |
SetIndex | このハーフエッジのインデックスをセット |
SetFlag | このハーフエッジのフラグをセット |
Variables | |
*vert | このハーフエッジの始点へのポインタ |
*pair | 対となる逆方向ハーフエッジへのポインタ |
*face | このハーフエッジに接している面へのポインタ |
*ne | 面周りの次のハーフエッジへのポインタ |
index | インデックス |
*mom | 自分が属する親のアドレス |
qemP | QEM法用三次元座標値(Edge Collapse適用後の頂点位置) |
qemD | QEM法用パラメータ(Edge Collapse適用のコスト) |
flag | 汎用フラグ |
class HEface
面クラス
Functions | |
HEface | コンストラクタ |
GetStartHE | この面が持つハーフエッジの1つを返す |
GetNormVec | この面の法線ベクトルを返す |
GetArea | この面の面積を返す |
GetIndex | この面のインデックスを返す |
GetVetexNum | この面の持つ頂点数を返す |
GetDispStat | この面の表示属性を返す |
SetNormVec | この面の法線ベクトルをセット |
SetFaceArea | この面の面積をセット |
SetEdge | この面が持つハーフエッジの1つをセット |
SetVertNum | この面の持つ頂点数をセット |
SetIndex | この面のインデックスをセット |
Variables | |
*edge | この面に接しているハーフエッジの最初 |
norm | 法線ベクトル |
area | 面積 |
vertnum | 頂点数 |
index | インデックス |
Dstat | 表示属性(色r,g,b) |
*mom | 自分が属する親のアドレス |
class MESH
メッシュクラスの定義
Functions | |
MESH | コンストラクタ |
clear | メッシュ全消去 |
DelVert | 指定した頂点を消去 |
DelEdge | 指定したハーフエッジを消去 |
getIndexedVert | 指定したインデックスと同じインデックスを持つ頂点を探し出す |
getIndexedEdge | 指定したインデックスと同じインデックスを持つハーフエッジを探し出す |
setSentinelOnIndexedEdge | 指定したインデックスのエッジデータに旗を立てる |
getIndexedEdgeFromSentinel | 旗からn番目後or前のエッジデータを得る |
CalcFaceNorm | 指定した面fの法線ベクトルを求め、f->normにセットする |
CalcFaceArea | 指定した面fの面積を求め、f->areaにセットする |
EdgeSortbyQEMD | EdgeをQEMコスト(Edge.qemD)で昇順ソートする |
InsertQEMD | 昇順ソートされたEdgeリストに、変更されたQEMコストを持つHEedgeを挿入 |
MergeSortForQEMD | (private)EdgeをQEMコスト(Edge.qemD)で昇順ソートするSub1 |
MergeListForQEMD | (private)EdgeをQEMコスト(Edge.qemD)で昇順ソートするSub2 |
Variables | |
Edge | ハーフエッジリストのルート |
Vert | 頂点リストのルート |
VertNum | 面の総数 |
EdgeNum | ハーフエッジの総数 |
FaceNum | 頂点の総数 |
頂点クラス
class HEvert
コンストラクタ
HEvert()
この頂点の座標値を返す
Coord GetCoord()
この頂点から伸びるハーフエッジの1つを返す
HEedge *GetHE()
この頂点のインデックスを返す
int GetIndex()
フラグを返す
int GetFlag()
QEM法用係数行列qemQのメモリ確保(4x4)
void NewQEM()
QEM法用係数行列qemQのメモリ解放
void DelQEM()
QEM法用係数行列qemQの初期化
void InitQEM()
QEM法用係数行列qemQのqemパラメータをセットする
int SetQEM( Matrix )
QEM法用係数行列qemQのqemパラメータを加える
int AddQEM( Matrix )
QEM法用係数行列qemQのqemパラメータを得る
double **GetQEM()
この頂点から伸びるハーフエッジをセット
void SetEdge( HEedge * e )
この頂点の座標値をセット
void SetCod( Coord c )
この頂点のインデックスをセット
void SetIndex( int n )
フラグをセット
void SetFlag( int f )
この頂点の三次元座標
Coord cod
この頂点から伸びるハーフエッジへのポインタ(注:頂点から伸びるHEは1本とは限らない。どのHEと繋がっているか分からない)
HEedge *edge
インデックス
int index
自分が属する親(Dataクラス)のアドレス
Data *mom
QEM法用係数行列
double **qemQ
汎用フラグ
int flag
ハーフエッジクラス
class HEedge
このハーフエッジの始点を返す
HEvert *GetStartVert()
このハーフエッジの始点座標を返す
Coord GetStartVcoord()
このハーフエッジの対となるハーフエッジを返す
HEedge *GetPairHE()
このハーフエッジが属する面を返す
HEface *GetFace()
このハーフエッジの次のハーフエッジを返す
HEedge *GetNextHE()
このハーフエッジのインデックスを返す
int GetIndex()
このハーフエッジの始点のインデックスを返す
int GetStartVindex()
QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPの初期化
void InitQEMP()
QEM法用パラメータ(Edge Collapse適用のコスト)qemDの初期化
void InitQEMD()
QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPをセット
void SetQEMP( Coord p )
QEM法用パラメータ(Edge Collapse適用のコスト)qemDをセット
void SetQEMD( double d )
QEM法用三次元座標値(Edge Collapse適用後の頂点位置)qemPを返す
Coord GetQEMP()
QEM法用パラメータ(Edge Collapse適用のコスト)qemDを返す
double GetQEMD()
このハーフエッジの始点をセット
void SetVert( HEvert * v )
このハーフエッジの対となるハーフエッジをセット
void SetPair( HEedge * e )
このハーフエッジが属する面をセット
void SetFace( HEface * f )
このハーフエッジの次のハーフエッジをセット
void SetNextHE( HEedge * e )
このハーフエッジのインデックスをセット
void SetIndex( int n )
このハーフエッジのフラグをセット
void SetFlag( int f )
このハーフエッジの始点へのポインタ
HEvert *vert
対となる逆方向ハーフエッジへのポインタ
HEedge *pair
このハーフエッジに接している面へのポインタ
HEface *face
面周りの次のハーフエッジへのポインタ
HEedge *ne
インデックス
int index
自分が属する親のアドレス
Data *mom
QEM法用三次元座標値(Edge Collapse適用後の頂点位置)
Coord qemP
QEM法用パラメータ(Edge Collapse適用のコスト)
double qemD
汎用フラグ
int flag
面クラス
class HEface
コンストラクタ
HEface()
この面が持つハーフエッジの1つを返す
HEedge *GetStartHE()
この面の法線ベクトルを返す
Coord GetNormVec()
この面の面積を返す
double GetArea()
この面のインデックスを返す
int GetIndex()
この面の持つ頂点数を返す
int GetVetexNum()
この面の表示属性を返す
DispStat GetDispStat()
この面の法線ベクトルをセット
void SetNormVec( Coord n )
この面の面積をセット
void SetFaceArea( double a )
この面が持つハーフエッジの1つをセット
void SetEdge( HEedge * e )
この面の持つ頂点数をセット
void SetVertNum( int n )
この面のインデックスをセット
void SetIndex( int n )
この面に接しているハーフエッジの最初
HEedge *edge
法線ベクトル
Coord norm
面積
double area
頂点数
int vertnum
インデックス
int index
表示属性(色r,g,b)
DispStat Dstat
自分が属する親のアドレス
Data *mom
メッシュクラスの定義
class MESH
コンストラクタ
MESH()
メッシュ全消去
int clear()
指定した頂点を消去
void DelVert( HEvert * )
指定したハーフエッジを消去
void DelEdge( HEedge * )
指定したインデックスと同じインデックスを持つ頂点を探し出す
HEvert *getIndexedVert( int )
指定したインデックスと同じインデックスを持つハーフエッジを探し出す
HEedge *getIndexedEdge( int )
指定したインデックスのエッジデータに旗を立てる
HEedge *setSentinelOnIndexedEdge( int )
旗からn番目後or前のエッジデータを得る
HEedge *getIndexedEdgeFromSentinel( int )
指定した面fの法線ベクトルを求め、f->normにセットする
int CalcFaceNorm( HEface * )
指定した面fの面積を求め、f->areaにセットする
int CalcFaceArea( HEface * )
EdgeをQEMコスト(Edge.qemD)で昇順ソートする
void EdgeSortbyQEMD()
昇順ソートされたEdgeリストに、変更されたQEMコストを持つHEedgeを挿入
void InsertQEMD( HEedge * )
(private)EdgeをQEMコスト(Edge.qemD)で昇順ソートするSub1
Data *MergeSortForQEMD( Data * )
(private)EdgeをQEMコスト(Edge.qemD)で昇順ソートするSub2
Data *MergeListForQEMD( Data * , Data * )
ハーフエッジリストのルート
KODlistData Edge
頂点リストのルート
KODlistData Vert
面の総数
int VertNum
ハーフエッジの総数
int EdgeNum
頂点の総数
int FaceNum