#ifndef _XFIREWORKS_Piece_h_INCLUDED_ #define _XFIREWORKS_Piece_h_INCLUDED_ typedef struct _PieceClass * PieceClass; typedef struct _PieceNext * PieceNext; typedef struct _Pieces * Pieces; #include "Obj.h" #include "Stream.h" #include "ColorGC.h" #include "Calculator.h" /*===========================================================================*/ /* オブジェクトのメンバの取得 */ /*===========================================================================*/ /*---------------------------------------------------------------------------*/ /* PieceClass クラス */ /*---------------------------------------------------------------------------*/ char * PieceClass_GetName(PieceClass piece_class); int PieceClass_GetSize(PieceClass piece_class); double PieceClass_GetProbability(PieceClass piece_class); ObjList PieceClass_GetGCListList(PieceClass piece_class); ObjList PieceClass_GetNextList(PieceClass piece_class); /*---------------------------------------------------------------------------*/ /* PieceNext クラス */ /*---------------------------------------------------------------------------*/ PieceClass PieceNext_GetPieceClass(PieceNext piece_next); double PieceNext_GetPower(PieceNext piece_next); int PieceNext_GetNumber(PieceNext piece_next); /*---------------------------------------------------------------------------*/ /* Pieces クラス */ /*---------------------------------------------------------------------------*/ PieceClass Pieces_GetPieceClass(Pieces pieces); int Pieces_GetArraySize(Pieces pieces); int Pieces_GetNumber(Pieces pieces); XArc * Pieces_GetPositions(Pieces pieces); double * Pieces_GetZ(Pieces pieces); double * Pieces_GetVx(Pieces pieces); double * Pieces_GetVy(Pieces pieces); double * Pieces_GetVz(Pieces pieces); int Pieces_GetSize(Pieces pieces); ObjList Pieces_GetGCList(Pieces pieces); /*===========================================================================*/ /* PieceClass オブジェクトの作成・削除用 */ /*===========================================================================*/ PieceClass PieceClass_Create(char * name, int size, double probability, double air, double gravity, double transmission, int after_image_length, int fine, ObjList gc_list_list, ObjList next_list, Disp disp); PieceClass PieceClass_Destroy(PieceClass piece_class); /*===========================================================================*/ /* PieceNext オブジェクトの作成・削除用 */ /*===========================================================================*/ PieceNext PieceNext_Create(PieceClass piece_class, double power, int n); PieceNext PieceNext_Destroy(PieceNext next); /*===========================================================================*/ /* データの読み込み */ /*===========================================================================*/ ObjList PieceClassList_CreateFromStream(Disp disp, ColorGCDatabase database, Stream stream, int fine, int probability_mag, int size_mag, int air_mag, int gravity_mag, int transmission_mag, int after_image_mag, int color_length_mag, int next_power_mag, int next_number_mag); /*===========================================================================*/ /* Pieces オブジェクトの操作 */ /*===========================================================================*/ /*---------------------------------------------------------------------------*/ /* Pieces オブジェクトの初期化 */ /*---------------------------------------------------------------------------*/ int Pieces_Initialize(Pieces pieces, PieceClass piece_class, double power, int number, int n, XArc * positions, double * z, double * vx, double * vy, double * vz, int x_min, int y_min, int x_max, int y_max, Calculator calculator); /*---------------------------------------------------------------------------*/ /* Pieces オブジェクトの生成 */ /*---------------------------------------------------------------------------*/ Pieces Pieces_Create(PieceClass piece_class, double power, int number, int n, XArc * positions, double * z, double * vx, double * vy, double * vz, int x_min, int y_min, int x_max, int y_max, Calculator calculator); /*---------------------------------------------------------------------------*/ /* Piece オブジェクトの削除 */ /*---------------------------------------------------------------------------*/ Pieces Pieces_Destroy(Pieces pieces); /*---------------------------------------------------------------------------*/ /* Pieces オブジェクトの移動 */ /*---------------------------------------------------------------------------*/ int Pieces_Move(Pieces pieces, int x_min, int y_min, int x_max, int y_max, int size); #endif /*****************************************************************************/ /* End of Program */ /*****************************************************************************/