BODY.h | |
Constants and Types | |
General Defines | |
KODlistData | |
Symbol of Entity Type | |
Enumerations | |
Enum Symbol of Entity Type | |
CIRA | 円・円弧を表わす構造体 |
CONA | 円錐曲線を表わす構造体 |
LINE_ | 線分を表わす構造体 |
TMAT | 変換マトリックスを表わす構造体 |
NURBSC | 有理Bスプライン(NURBS)曲線を表わす構造体 |
NURBSS | 有理Bスプライン(NURBS)曲面を表わす構造体 |
COMPELEM | 複合曲線を構成できる曲線群を共用体で宣言 |
COMPC | 複合曲線 |
CURVE | 面上線を構成できる曲線群を共用体で宣言 |
CONPS | 面上線 |
Functions | |
GetOuterEdgeNum | トリム面を構成する外側エッジの数を取得する |
GetInnerTrmNum | トリム面を構成する内側トリムの数を取得する |
GetInnerEdgeNum | トリム面を構成する内側トリムを構成するエッジの数を取得する |
GetOuterCompC | トリム面を構成する外側トリム曲線(複合曲線)へのポインタを取得する |
GetInnerCompC | トリム面を構成する内側トリム曲線(複合曲線)へのポインタを取得する |
Variables | |
*pts | トリムされるSurface EntityのDE部へのポインタ |
n1 | 0:外周がDの境界と一致、1:それ以外 |
n2 | Trimmed Surfaceの内周にあたる単純閉曲線の数 |
*pTO | Trimmed Surfaceの外周にあたる単純閉曲線構造体へのポインタ |
**pTI | Trimmed Surfaceの内周にあたる単純閉曲線構造体へのポインタ |
pD | ディレクトリ部への逆ポインタ |
Types | |
TRMS | |
OBJECT | ピックされたオブジェクトを示す構造体 |
BODY | 全てのエンティティを統括するBODYクラス |
Functions | |
BODY | BODYクラスのコンストラクタ.各種初期化 |
NewBodyElem | BODYを構成する全要素のメモリー確保 |
DelBodyElem | BODYを構成する全要素のメモリー解放 |
DelBodyElem | 指定したTypeNum[]分のメモリーを解放 |
NewCirA | CIRAを指定した数だけメモリー確保し,初期化する |
NewCompC | COMPCを指定した数だけメモリー確保し,初期化する |
NewConA | CONAを指定した数だけメモリー確保し,初期化する |
NewLine | LINE_を指定した数だけメモリー確保し,初期化する |
NewTMat | TMATを指定した数だけメモリー確保し,初期化する |
NewNurbsC | NURBSCを指定した数だけメモリー確保し,初期化する |
NewNurbsS | NURBSSを指定した数だけメモリー確保し,初期化する |
NewConpS | CONPSを指定した数だけメモリー確保し,初期化する |
NewTrmS | TRMSを指定した数だけメモリー確保し,初期化する |
RotBody | BODYの回転 |
ShiftBody | BODYのシフト |
ExpandBody | BODYの拡大縮小 |
RegistBody | 自分を新たなBODYとして登録する |
DeleteBody | 自分自身を消去する |
RegistNurbsCtoBody | 1つのNURBS曲線を新たなBODYとして登録する |
RegistNurbsCtoBodyN | N個のNURBS曲線を新たなBODYとして登録する |
RegistNurbsStoBody | 1つのNURBS曲面を新たなBODYとして登録する |
RegistNurbsStoBodyN | N個のNURBS曲面を新たなBODYとして登録する |
ChangeStatColor | エンティティのステータスで定義されている色を変更 |
InitCurveColor | 線の色の初期値を与える |
InitSurfaceColor | 面の色の初期値を与える |
GetNurbsCFromLine | 直線エンティティをNURBS曲線エンティティへと変換する |
GetNurbsCFromCirA | 円・円弧エンティティをNURBS曲線エンティティへと変換する |
CirAToNurbsC_seg1 | (private)円・円弧エンティティが1セグメントの場合 |
CirAToNurbsC_seg2 | (private)円・円弧エンティティが2セグメントの場合 |
CirAToNurbsC_seg3 | (private)円・円弧エンティティが3セグメントの場合 |
CirAToNurbsC_seg4 | (private)円・円弧エンティティが4セグメントの場合 |
Variables | |
*CirA | 円・円弧 |
*CompC | 複合曲線 |
*ConA | 円錐曲線 |
*Line | 線分 |
*TMat | 変換行列 |
*NurbsC | NURBS曲線 |
*NurbsS | NURBS曲面 |
*ConpS | 面上線 |
*TrmS | トリム面 |
TypeNum[ALL_ENTITY_TYPE_NUM] | BODYを構成する各エンティティの数を格納した配列 |
*Mesh | Half-Edge構造メッシュ(リスト構造、リストの先頭アドレスを示す) |
MaxCoord | 立体の寸法の最大値(この値で初期表示倍率を決定) |
Name[FNAMEMAX] | BODY名 |
*Mom | 自分が属する親(BodyList)のアドレス |
有理Bスプライン(NURBS)曲線を表わす構造体
int K | コントロールポイントの数 |
int M | 階数(=次数+1) |
int N | ノットベクトルの数 |
int prop[4] | 各プロパティ prop[0]==0:非平面内曲線, 1:平面内曲線 prop[1]==0:閉曲線でない,1:閉曲線 prop[2]==0:有理式,1:多項式 prop[3]==0:非周期的曲線, 1:周期的曲線 |
double *T | ノットシーケンスの値 K+M個 |
double *W | Weightの値 K個 |
Coord *cp | コントロールポイント K個 |
double V[2] | パラメータの範囲 |
Coord norm | 法線ベクトル |
int EntUseFlag | ディレクトリ部 Entity Use Flag の値(0:幾何要素 5:2Dパラメトリック要素) |
int pD | ディレクトリ部への逆ポインタ |
int OriginEnt | 元のエンティティタイプ |
void *pOriginEnt | 元のエンティティへのポインタ |
DispStat Dstat | 表示属性(色r,g,b) |
有理Bスプライン(NURBS)曲面を表わす構造体
int K[2] | コントロールポイントの数(u方向,v方向) |
int M[2] | 階数(=次数+1) |
int N[2] | ノットベクトルの数(K+M) |
int prop[5] | パラメータ prop[0]==0:u方向で閉じている, 1:閉じていない prop[1]==0:v方向で閉じている,1:閉じていない prop[2]==0:有理式,1:多項式 prop[3]==0:u方向で非周期的, 1:周期的 prop[4]==0:v方向で非周期的, 1:周期的 |
double *S | u方向ノットベクトルの値 A+1個 |
double *T | v方向ノットベクトルの値 B+1個 |
double **W | Weightの値 |
Coord **cp | コントロールポイント C個 |
double U[2] | u方向パラメータの範囲 |
double V[2] | v方向パラメータの範囲 |
int pD | ディレクトリ部への逆ポインタ |
int TrmdSurfFlag | このNURBS曲面がトリム面として呼ばれているのか、独立して存在するのかを示すフラグ(トリム面:KOD_TRUE 独立面:KOD_FALSE) |
DispStat Dstat | 表示属性(色r,g,b,) |
面上線
int crtn | 面上線がどのように作られたかを示す |
int SType | Surface Sのエンティティタイプ |
int BType | Curve Bのエンティティタイプ |
int CType | Curve Cのエンティティタイプ |
NURBSS *pS | Curveが乗るSurface構造体へのポインタ |
CURVE *pB | Surface Sのパラメータ空間におけるCurve B構造体へのポインタ |
CURVE *pC | Curve C構造体へのポインタ |
int pref | 送り側システムで採られていた表現を示すフラグ |
int pD | ディレクトリ部への逆ポインタ |
Functions | |
GetOuterEdgeNum | トリム面を構成する外側エッジの数を取得する |
GetInnerTrmNum | トリム面を構成する内側トリムの数を取得する |
GetInnerEdgeNum | トリム面を構成する内側トリムを構成するエッジの数を取得する |
GetOuterCompC | トリム面を構成する外側トリム曲線(複合曲線)へのポインタを取得する |
GetInnerCompC | トリム面を構成する内側トリム曲線(複合曲線)へのポインタを取得する |
Variables | |
*pts | トリムされるSurface EntityのDE部へのポインタ |
n1 | 0:外周がDの境界と一致、1:それ以外 |
n2 | Trimmed Surfaceの内周にあたる単純閉曲線の数 |
*pTO | Trimmed Surfaceの外周にあたる単純閉曲線構造体へのポインタ |
**pTI | Trimmed Surfaceの内周にあたる単純閉曲線構造体へのポインタ |
pD | ディレクトリ部への逆ポインタ |
Types | |
TRMS |
class BODY
全てのエンティティを統括するBODYクラス
Functions | |
BODY | BODYクラスのコンストラクタ.各種初期化 |
NewBodyElem | BODYを構成する全要素のメモリー確保 |
DelBodyElem | BODYを構成する全要素のメモリー解放 |
DelBodyElem | 指定したTypeNum[]分のメモリーを解放 |
NewCirA | CIRAを指定した数だけメモリー確保し,初期化する |
NewCompC | COMPCを指定した数だけメモリー確保し,初期化する |
NewConA | CONAを指定した数だけメモリー確保し,初期化する |
NewLine | LINE_を指定した数だけメモリー確保し,初期化する |
NewTMat | TMATを指定した数だけメモリー確保し,初期化する |
NewNurbsC | NURBSCを指定した数だけメモリー確保し,初期化する |
NewNurbsS | NURBSSを指定した数だけメモリー確保し,初期化する |
NewConpS | CONPSを指定した数だけメモリー確保し,初期化する |
NewTrmS | TRMSを指定した数だけメモリー確保し,初期化する |
RotBody | BODYの回転 |
ShiftBody | BODYのシフト |
ExpandBody | BODYの拡大縮小 |
RegistBody | 自分を新たなBODYとして登録する |
DeleteBody | 自分自身を消去する |
RegistNurbsCtoBody | 1つのNURBS曲線を新たなBODYとして登録する |
RegistNurbsCtoBodyN | N個のNURBS曲線を新たなBODYとして登録する |
RegistNurbsStoBody | 1つのNURBS曲面を新たなBODYとして登録する |
RegistNurbsStoBodyN | N個のNURBS曲面を新たなBODYとして登録する |
ChangeStatColor | エンティティのステータスで定義されている色を変更 |
InitCurveColor | 線の色の初期値を与える |
InitSurfaceColor | 面の色の初期値を与える |
GetNurbsCFromLine | 直線エンティティをNURBS曲線エンティティへと変換する |
GetNurbsCFromCirA | 円・円弧エンティティをNURBS曲線エンティティへと変換する |
CirAToNurbsC_seg1 | (private)円・円弧エンティティが1セグメントの場合 |
CirAToNurbsC_seg2 | (private)円・円弧エンティティが2セグメントの場合 |
CirAToNurbsC_seg3 | (private)円・円弧エンティティが3セグメントの場合 |
CirAToNurbsC_seg4 | (private)円・円弧エンティティが4セグメントの場合 |
Variables | |
*CirA | 円・円弧 |
*CompC | 複合曲線 |
*ConA | 円錐曲線 |
*Line | 線分 |
*TMat | 変換行列 |
*NurbsC | NURBS曲線 |
*NurbsS | NURBS曲面 |
*ConpS | 面上線 |
*TrmS | トリム面 |
TypeNum[ALL_ENTITY_TYPE_NUM] | BODYを構成する各エンティティの数を格納した配列 |
*Mesh | Half-Edge構造メッシュ(リスト構造、リストの先頭アドレスを示す) |
MaxCoord | 立体の寸法の最大値(この値で初期表示倍率を決定) |
Name[FNAMEMAX] | BODY名 |
*Mom | 自分が属する親(BodyList)のアドレス |
トリム面を構成する外側エッジの数を取得する
int GetOuterEdgeNum()
トリム面を構成する内側トリムの数を取得する
int GetInnerTrmNum()
トリム面を構成する内側トリムを構成するエッジの数を取得する
int GetInnerEdgeNum( int )
トリム面を構成する外側トリム曲線(複合曲線)へのポインタを取得する
COMPC *GetOuterCompC()
トリム面を構成する内側トリム曲線(複合曲線)へのポインタを取得する
COMPC *GetInnerCompC( int )
トリムされるSurface EntityのDE部へのポインタ
NURBSS *pts
0:外周がDの境界と一致、1:それ以外
int n1
Trimmed Surfaceの内周にあたる単純閉曲線の数
int n2
Trimmed Surfaceの外周にあたる単純閉曲線構造体へのポインタ
CONPS *pTO
Trimmed Surfaceの内周にあたる単純閉曲線構造体へのポインタ
CONPS **pTI
ディレクトリ部への逆ポインタ
int pD
全てのエンティティを統括するBODYクラス
class BODY
BODYクラスのコンストラクタ.各種初期化
BODY()
BODYを構成する全要素のメモリー確保
void NewBodyElem()
BODYを構成する全要素のメモリー解放
void DelBodyElem()
CIRAを指定した数だけメモリー確保し,初期化する
CIRA *NewCirA( int )
COMPCを指定した数だけメモリー確保し,初期化する
COMPC *NewCompC( int )
CONAを指定した数だけメモリー確保し,初期化する
CONA *NewConA( int )
LINE_を指定した数だけメモリー確保し,初期化する
LINE_ *NewLine( int )
TMATを指定した数だけメモリー確保し,初期化する
TMAT *NewTMat( int )
NURBSCを指定した数だけメモリー確保し,初期化する
NURBSC *NewNurbsC( int )
NURBSSを指定した数だけメモリー確保し,初期化する
NURBSS *NewNurbsS( int )
CONPSを指定した数だけメモリー確保し,初期化する
CONPS *NewConpS( int )
TRMSを指定した数だけメモリー確保し,初期化する
TRMS *NewTrmS( int )
BODYの回転
void RotBody( Coord, double )
BODYのシフト
void ShiftBody( Coord )
BODYの拡大縮小
void ExpandBody( Coord )
自分を新たなBODYとして登録する
void RegistBody( BODYList * , const char [] )
自分自身を消去する
void DeleteBody( BODYList * )
1つのNURBS曲線を新たなBODYとして登録する
void RegistNurbsCtoBody( BODYList * , NURBSC, const char [] )
N個のNURBS曲線を新たなBODYとして登録する
void RegistNurbsCtoBodyN( BODYList * , NURBSC [], const char [], int )
1つのNURBS曲面を新たなBODYとして登録する
void RegistNurbsStoBody( BODYList * , NURBSS, const char [] )
N個のNURBS曲面を新たなBODYとして登録する
void RegistNurbsStoBodyN( BODYList * , NURBSS [], const char [], int )
エンティティのステータスで定義されている色を変更
void ChangeStatColor( float * , float, float, float, float )
線の色の初期値を与える
void InitCurveColor( float * )
面の色の初期値を与える
void InitSurfaceColor( float * )
直線エンティティをNURBS曲線エンティティへと変換する
int GetNurbsCFromLine( int, int )
円・円弧エンティティをNURBS曲線エンティティへと変換する
int GetNurbsCFromCirA( int, int )
(private)円・円弧エンティティが1セグメントの場合
int CirAToNurbsC_seg1( int, int, Coord [], double )
(private)円・円弧エンティティが2セグメントの場合
int CirAToNurbsC_seg2( int, int, Coord [], double )
(private)円・円弧エンティティが3セグメントの場合
int CirAToNurbsC_seg3( int, int, Coord [], double )
(private)円・円弧エンティティが4セグメントの場合
int CirAToNurbsC_seg4( int, int, Coord [], double )
円・円弧
CIRA *CirA
複合曲線
COMPC *CompC
円錐曲線
CONA *ConA
線分
LINE_ *Line
変換行列
TMAT *TMat
NURBS曲線
NURBSC *NurbsC
NURBS曲面
NURBSS *NurbsS
面上線
CONPS *ConpS
トリム面
TRMS *TrmS
BODYを構成する各エンティティの数を格納した配列
int TypeNum[ALL_ENTITY_TYPE_NUM]
Half-Edge構造メッシュ(リスト構造、リストの先頭アドレスを示す)
MESH *Mesh
立体の寸法の最大値(この値で初期表示倍率を決定)
double MaxCoord
BODY名
char Name[FNAMEMAX]
自分が属する親(BodyList)のアドレス
Data *Mom