メインページ | ネームスペース一覧 | クラス階層 | 構成 | Directories | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ | 関連ページ

クラス テンプレート Spr::CDQHPlanes< TVtx >

面のバッファ [詳細]

#include <CDQuickHull3D.h>

すべてのメンバ一覧

Public メソッド

Public 変数

Private メソッド

構成


説明

template<class TVtx>
class Spr::CDQHPlanes< TVtx >

面のバッファ

CDQuickHull3D.h の 45 行で定義されています。


関数

template<class TVtx>
unsigned Spr::CDQHPlanes< TVtx >::size (   ) 
 

使用済みバッファのサイズ

CDQuickHull3DImp.h の 77 行で定義されています。

参照先 Spr::CDQHPlanes< TVtx >::begin, と Spr::CDQHPlanes< TVtx >::end.

template<class TVtx>
void Spr::CDQHPlanes< TVtx >::CreateConvexHull (  TVtx **  b,
TVtx **  e
) 
 

bからeまでの頂点から凸包を作る.使用した頂点はbからvtxBegin, 使用しなかった頂点は,vtxBeginからeに移動する. beginからendは頂点を3つ含む面になる.それらの面うち凸包に使われた面 は CDQHPlane::deleted が false になっている.

CDQuickHull3DImp.h の 100 行で定義されています。

参照先 Spr::CDQHPlanes< TVtx >::begin, Spr::CDQHPlanes< TVtx >::buffer, Spr::CDQHPlanes< TVtx >::CreateFirstConvex(), Spr::CDQHPlane< TVtx >::deleted, Spr::CDQHPlane< TVtx >::dist, DSTR, Spr::CDQHPlanes< TVtx >::end, Spr::CDQHPlanes< TVtx >::len, Spr::CDQHPlane< TVtx >::normal, Spr::CDQHPlanes< TVtx >::TreatPlane(), Spr::CDQHPlane< TVtx >::vtx, Spr::CDQHPlanes< TVtx >::vtxBegin, Spr::CDQHPlanes< TVtx >::vtxBeginInput, Spr::CDQHPlanes< TVtx >::vtxEnd, と Spr::CDQHPlanes< TVtx >::vtxEndInput.

template<class TVtx>
void Spr::CDQHPlanes< TVtx >::CreateFirstConvex (   )  [private]
 

最初の凸多面体=2枚の三角形(表裏)を作る. できるだけ大きい3角形を作ると効率が良いので,x最大,x最小, 2点が作る直線から一番遠い頂点で3角形を作る. 使用した頂点は,vtxBeginの手前に移動して,頂点リストからはずす.

CDQuickHull3DImp.h の 134 行で定義されています。

参照先 Spr::CDQHPlanes< TVtx >::begin, Spr::CDQHPlane< TVtx >::CalcNormal(), Spr::CDQHPlane< TVtx >::Clear(), Spr::CDQHPlanes< TVtx >::end, Spr::CDQHPlane< TVtx >::neighbor, Spr::CDQHPlanes< TVtx >::nPlanes, Spr::CDQHPlane< TVtx >::Reverse(), PTM::VectorImp< SZ, STR, OD >::square(), PTM::VectorImp< SZ, STR, OD >::unitize(), Spr::CDQHPlane< TVtx >::vtx, Spr::CDQHPlanes< TVtx >::vtxBegin, と Spr::CDQHPlanes< TVtx >::vtxEnd.

参照元 Spr::CDQHPlanes< TVtx >::CreateConvexHull().

template<class TVtx>
void Spr::CDQHPlanes< TVtx >::FindHorizon (  TVtx *&  rv,
CDQHPlane *  cur,
TVtx *  vtx
)  [private]
 

horizon を作る. cur が穴をあける面,vtx が新しい頂点. rv にhorizonを辺に持つ3角形を1つ返す.

CDQuickHull3DImp.h の 201 行で定義されています。

参照先 Spr::CDQHPlane< TVtx >::deleted, Spr::CDQHPlane< TVtx >::neighbor, Spr::CDQHPlanes< TVtx >::nPlanes, Spr::CDQHPlane< TVtx >::Visible(), と Spr::CDQHPlane< TVtx >::vtx.

template<class TVtx>
void Spr::CDQHPlanes< TVtx >::CreateCone (  TVtx *  firstVtx,
TVtx *  top
)  [private]
 

頂点とhorizonの間にコーンを作る.

CDQuickHull3DImp.h の 236 行で定義されています。

参照先 Spr::CDQHPlanes< TVtx >::begin, Spr::CDQHPlane< TVtx >::CalcNormal(), Spr::CDQHPlane< TVtx >::Clear(), DSTR, Spr::CDQHPlanes< TVtx >::end, Spr::CDQHPlane< TVtx >::GetVtxID(), Spr::CDQHPlanes< TVtx >::len, Spr::CDQHPlane< TVtx >::neighbor, Spr::CDQHPlanes< TVtx >::nPlanes, Spr::CDQHPlane< TVtx >::vtx, Spr::CDQHPlanes< TVtx >::vtxBeginInput, と Spr::CDQHPlanes< TVtx >::vtxEndInput.

template<class TVtx>
bool Spr::CDQHPlanes< TVtx >::FindFarthest (  CDQHPlane *  plane  )  [private]
 

一番遠くの頂点を見つける.見つけたらそれを頂点リストからはずす

CDQuickHull3DImp.h の 322 行で定義されています。

参照先 Spr::CDQHPlane< TVtx >::CalcDist(), DSTR, Spr::CDQHPlane< TVtx >::vtx, Spr::CDQHPlanes< TVtx >::vtxBegin, と Spr::CDQHPlanes< TVtx >::vtxEnd.

参照元 Spr::CDQHPlanes< TVtx >::TreatPlane().

template<class TVtx>
void Spr::CDQHPlanes< TVtx >::TreatPlane (  CDQHPlane *  cur  )  [private]
 

一つの面に対する処理を行う.一番遠くの頂点を見つけ, 地平線を調べ,コーンを作り,内部の頂点をはずす.

CDQuickHull3DImp.h の 388 行で定義されています。

参照先 DSTR, Spr::CDQHPlanes< TVtx >::FindFarthest(), と Spr::CDQHPlanes< TVtx >::vtxBegin.

参照元 Spr::CDQHPlanes< TVtx >::CreateConvexHull().


変数

template<class TVtx>
TVtx** Spr::CDQHPlanes< TVtx >::vtxBeginInput
 

残っている頂点の先頭

CDQuickHull3D.h の 47 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateCone(), と Spr::CDQHPlanes< TVtx >::CreateConvexHull().

template<class TVtx>
TVtx** Spr::CDQHPlanes< TVtx >::vtxEndInput
 

残っている頂点の最後の次

CDQuickHull3D.h の 48 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateCone(), と Spr::CDQHPlanes< TVtx >::CreateConvexHull().

template<class TVtx>
CDQHPlane* Spr::CDQHPlanes< TVtx >::buffer
 

バッファへのポインタ new する.

CDQuickHull3D.h の 60 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateConvexHull().

template<class TVtx>
int Spr::CDQHPlanes< TVtx >::len
 

バッファの長さ

CDQuickHull3D.h の 61 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateCone(), と Spr::CDQHPlanes< TVtx >::CreateConvexHull().

template<class TVtx>
CDQHPlane* Spr::CDQHPlanes< TVtx >::begin
 

最初の面

CDQuickHull3D.h の 62 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateCone(), Spr::CDQHPlanes< TVtx >::CreateConvexHull(), Spr::CDQHPlanes< TVtx >::CreateFirstConvex(), と Spr::CDQHPlanes< TVtx >::size().

template<class TVtx>
CDQHPlane* Spr::CDQHPlanes< TVtx >::end
 

最後の面の次

CDQuickHull3D.h の 63 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateCone(), Spr::CDQHPlanes< TVtx >::CreateConvexHull(), Spr::CDQHPlanes< TVtx >::CreateFirstConvex(), と Spr::CDQHPlanes< TVtx >::size().

template<class TVtx>
TVtx** Spr::CDQHPlanes< TVtx >::vtxBegin
 

残っている頂点の先頭

CDQuickHull3D.h の 64 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateConvexHull(), Spr::CDQHPlanes< TVtx >::CreateFirstConvex(), Spr::CDQHPlanes< TVtx >::FindFarthest(), と Spr::CDQHPlanes< TVtx >::TreatPlane().

template<class TVtx>
TVtx** Spr::CDQHPlanes< TVtx >::vtxEnd
 

残っている頂点の最後の次

CDQuickHull3D.h の 65 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateConvexHull(), Spr::CDQHPlanes< TVtx >::CreateFirstConvex(), と Spr::CDQHPlanes< TVtx >::FindFarthest().

template<class TVtx>
int Spr::CDQHPlanes< TVtx >::nPlanes
 

面の数

CDQuickHull3D.h の 66 行で定義されています。

参照元 Spr::CDQHPlanes< TVtx >::CreateCone(), Spr::CDQHPlanes< TVtx >::CreateFirstConvex(), と Spr::CDQHPlanes< TVtx >::FindHorizon().


このクラスの説明は次のファイルから生成されました:
Springheadに対してSun Apr 16 01:59:45 2006に生成されました。  doxygen 1.4.1