Kodatuno Logo
Kodatuno User's Guide
Prev Index Next


描画ライブラリ

【Describe_BODY.h】

BODY描画用モジュールを提供します。

■シンボル

#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 DrawBody(BODY *Body)

<説明>
BODYを描画する。
<引数>
*Body: 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 Draw_NurbsCurves(BODY *Body)

<説明>
BODYに含まれるNURBS曲線を全て描画
<引数>
*Body:BODY構造体へのポインタ
<戻り値>
なし


public
void Draw_NurbsSurfaces(BODY *Body)

<説明>
BODYに含まれるNURBS曲面を全て描画
<引数>
*Body:BODY構造体へのポインタ
<戻り値>
なし


public
void Draw_TrimSurfes(BODY *Body)

<説明>
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曲面描画用コントロールポイントバッファ



BODY操作ライブラリ

【BODY_Handler.h】

BODYの各種操作モジュールを提供します。

■シンボル

なし


■インクルードライブラリ

"Describe_BODY.h" "NURBS_Func.h"



■型定義

なし



■クラス

BODY_Handler
<継承>
Describe_BODY



■関数(Class BODY_Handler)


 
 

public InitCurveColor(); InitSurfaceColor();

<説明> コンストラクタ ユーザが独自に作成した関数とUserボタンとの関連付け及び、Userステータスの初期化を行う。 <引数> なし <戻り値> なし

public void Change StatColor(float *Col, float r, float g, flaot b, float a);

<説明> エンティティの表示色を変更する <引数> Col:変更したいエンティティのColorステータス r:変更したいエンティティのColorステータスのR値 g:変更したいエンティティのColorステータスのG値 b:変更したいエンティティのColorステータスのB値 a:変更したいエンティティのColorステータスのa値 <戻り値> なし

public BODY *SearchBodyList(BODYList *BodyList, int Key);

<説明> セレクションされているBODYの実体を得る <引数> *BodyList:サーチしたいBODYのリストを指定 Key:サーチしたいBODY番号を指定 <戻り値> BODYへのポインタ

public void Init_body(BODY *Body);

<説明> BOYD構造体を初期化する。 Body->MaxCoord = 1.0; Body->TypeNum[i] = 0; <引数> *Body:初期化したいBODY構造体へのポインタ <戻り値> なし

public void BODY_Handler::RegistNurbsCtoBody(BODYList *BodyList,BODY *Body,NURBSC Nurb,char BodyName[]) void BODY_Handler::RegistNurbsCtoBodyN(BODYList *BodyList,BODY *Body,NURBSC Nurb[],char BodyName[],int N)

<説明> 1つ/N個のNURBS曲線を新たなBODYとして登録する <引数> *BodyList:サーチしたいBODYのリストを指定 *Body : 新たなBody構造体のポインタ Nurb : 登録するNURBS曲線 BodyName[] : Bodyリストウィンドウに登録するBody名 N : 登録するNURBS曲線の個数 <戻り値> なし

public void BODY_Handler::RegistNurbsStoBody(BODYList *BodyList,BODY *Body,NURBSS Nurb,char BodyName[]) void BODY_Handler::RegistNurbsStoBodyN(BODYList *BodyList,BODY *Body,NURBSS Nurb[],char BodyName[],int N)

<説明> 1つ/N個のNURBS曲面を新たなBODYとして登録する <引数> *BodyList:サーチしたいBODYのリストを指定 *Body : 新たなBody構造体のポインタ Nurb : 登録するNURBS曲面 BodyName[] : Bodyリストウィンドウに登録するBody名 N : 登録するNURBS曲面の個数 <戻り値> なし

public void BODY_Handler::RotBody(BODY *Body,Coord Axis,double deg)

<説明> 1つのBODYを指定した軸周りに指定した角度回転させる <引数> *Body:回転させるBODYへのポインタ Axis:回転軸 deg:回転角 <戻り値> なし

public void BODY_Handler::ShiftBody(BODY *Body,Coord d)

<説明> 1つのBODYを指定した量だけ平行移動量する <引数> *Body:平行移動量させるBODYへのポインタ d:平行移動量 <戻り値> なし

public void New_body(BODY *Body, int TypeNum[]); void Free_body(BODY *Body, int TypeNum[]);

<説明> BODY構造体内要素の各エンティティのメモリー確保/解放 <引数> Body:Body構造体のポインタ TypeNum[i]:メモリー確保したい各エンティティの数を格納した配列 iはenum型で定義されたエンティティのシンボル値と同じ。 ex)TypeNum[10] = TypeNum[_NURBSC]であり、NURBS曲線エンティティの数が格納されていること。 <戻り値> なし

Document Release 2.0 for Kodatuno R2.0, Nov. 2011


Prev Index Next

Copyright(C) Kodatuno Development Team, 2011 Last modified: Nov. 11, 2011