描画ライブラリ
【Describe_BODY.h】
NURBS描画用モジュールを提供します。
■シンボル
#define COMMAND_DRAW_BODY 1 BODY描画用ディスプレイリストの登録番号
#define COMMAND_DRAW_USER 2 Userメイン関数によってコールされたOpenGL描画関数用ディスプレイリストの登録番号
#define COMMAND_DRAW_USER_COMMAND 100 User CommandによってコールされたOpenGL描画関数用ディスプレイリストの登録番号
■インクルードライブラリ
"BODY.h" "NURBS_Func.h"
■型定義
なし
■クラス
Descirbe_BODY
<継承>
なし
■関数(Class Describe_BODY)
public
Describe_BODY()
~Describe_BODY()
- <説明>
- コンストラクタ/デストラクタ
- <引数>
- なし
- <戻り値>
- なし
public
void DrawCompositeCurve(COMPC *)
- <説明>
- 複合曲線を描画する。
- <引数>
- COMPC CompC: 複合曲線へのポインタ
- <戻り値>
- なし
public
void DrawLine(LINE_)
- <説明>
- 線分を描画する。
- <引数>
- LINE_ Line: 描画する線分構造体
- <戻り値>
- なし
public
void DrawNurbsCurve(NURBSC)
- <説明>
- NURBS曲線を描画する。
- <引数>
- NURBSC *NurbsC: 描画するNURBS曲線構造体
- <戻り値>
- なし
public
void DrawTrimdNurbsSurfe(NURBSS *)
- <説明>
- トリム面を持つNURBS曲面を描画する。
- <引数>
- NURBSS *NurbsS: 描画するNURBS曲面のポインタ
- <戻り値>
- なし
public
void DrawNurbsSurfe(NURBSS)
- <説明>
- トリム面を持たないNURBS曲面を描画する。
- <引数>
- NURBSS NurbsS: 描画するNURBS曲面構造体
- <戻り値>
- なし
public
void DrawCurveOnParamSurfe(CONPS *)
- <説明>
- 面上線を描画する。
- <引数>
- CONPS *ConpS: 描画する面上線のポインタ
- <戻り値>
- なし
public
void DrawTrimdSurf(TRMS)
- <説明>
- トリム面を描画する。上述のDrawTrimdNurbsSurfe()はこの関数からのみ唯一呼び出される。
また、上述のDrawCurveOnParamSurfe()もこの関数からのみ唯一呼び出される。
- <引数>
- TRMS TrmS: 描画するトリム面構造体
- <戻り値>
- なし
public
void DrawNurbsCurve_Param(NURBSC *)
- <説明>
- トリムを構成する2DパラメトリックNURBS曲線要素を描画する。上述のDrawCompositeCurve()はこの関数からのみ唯一呼び出される。
- <引数>
- NURBSC *NurbsC: 描画する2DパラメトリックNURBS曲線のポインタ
- <戻り値>
- なし
public
void CheckDegenracy(BODY *)
- <説明>
- トリムを構成する2DパラメトリックNURBS曲線要素の縮退(2Dパラメトリック曲線の始点と終点が一致していない)をチェックし、
縮退であった場合は、NURBSで表現された線分を用いて始点と終点を一致させる。
- <引数>
- Body *body: 縮退をチェックするBODYへのポインタ
- <戻り値>
- なし
public
void SetNurbsStat()
- <説明>
- 本クラスのコンストラクタにて唯一呼び出される。NURBS描画エラーコールバック関数の定義を行う。
- <引数>
- なし
- <戻り値>
- なし
public
void SetNurbsSTolerance(GLfloat)
- <説明>
- NURBS曲面を描画する際のトレランスを指定する。
- <引数>
- GLfloat t: トレランス値。gluNurbsProperty()関数のPropertyにGLU_SAMPLING_TOLERANCEを指定した場合のvalue値を示す。
値が小さいほど滑らかな描画となる。デフォルトでは20が指定されている。
- <戻り値>
- なし
public
static void NURBS_Err(GLenum)
- <説明>
- NURBS描画エラーコールバック関数。
- <引数>
- GLenum error_code: OpenGLが提供するNURBS描画関数内で発生したエラーコード
- <戻り値>
- なし
public
static void SetNurbsSProperty(GLenum,GLfloat)
- <説明>
- NURBS曲面の描画形式を変更する。
- <引数>
- GLenum prop: gluNurbsProperty()関数のProperty値を指定。
GLfloat val: gluNurbsProperty()関数のValue値を指定。
- <戻り値>
- なし
■変数(Class Describe_BODY)
protected
GLUnurbsObj *NurbsSurf NURBS曲面用オブジェクト
GLUnurbsObj *NurbsCurve NURBS曲線用オブジェクト
GLfloat uKnot[KNOTNUMMAX] NURBS描画用U方向ノットベクトルバッファ
GLfloat vKnot[KNOTNUMMAX] NURBS描画用V方向ノットベクトルバッファ
GLfloat CCtlp[CTLPNUMMAX][4] NURBS曲線描画用コントロールポイントバッファ
GLfloat SCtlp[CTLPNUMMAX][CTLPNUMMAX][4] NURBS曲面描画用コントロールポイントバッファ