1 #ifndef _XFIREWORKS_Piece_h_INCLUDED_
2 #define _XFIREWORKS_Piece_h_INCLUDED_
3 
4 typedef struct _PieceClass * PieceClass;
5 typedef struct _PieceNext * PieceNext;
6 typedef struct _Pieces * Pieces;
7 
8 #include "Obj.h"
9 #include "Stream.h"
10 #include "ColorGC.h"
11 #include "Calculator.h"
12 
13 /*===========================================================================*/
14 /* ���֥������ȤΥ��Фμ���                                                */
15 /*===========================================================================*/
16 
17 /*---------------------------------------------------------------------------*/
18 /* PieceClass ���饹                                                         */
19 /*---------------------------------------------------------------------------*/
20 
21 char * PieceClass_GetName(PieceClass piece_class);
22 int PieceClass_GetSize(PieceClass piece_class);
23 double PieceClass_GetProbability(PieceClass piece_class);
24 ObjList PieceClass_GetGCListList(PieceClass piece_class);
25 ObjList PieceClass_GetNextList(PieceClass piece_class);
26 
27 /*---------------------------------------------------------------------------*/
28 /* PieceNext ���饹                                                          */
29 /*---------------------------------------------------------------------------*/
30 
31 PieceClass PieceNext_GetPieceClass(PieceNext piece_next);
32 double PieceNext_GetPower(PieceNext piece_next);
33 int PieceNext_GetNumber(PieceNext piece_next);
34 
35 /*---------------------------------------------------------------------------*/
36 /* Pieces ���饹                                                             */
37 /*---------------------------------------------------------------------------*/
38 
39 PieceClass Pieces_GetPieceClass(Pieces pieces);
40 int Pieces_GetArraySize(Pieces pieces);
41 int Pieces_GetNumber(Pieces pieces);
42 XArc * Pieces_GetPositions(Pieces pieces);
43 double * Pieces_GetZ(Pieces pieces);
44 double * Pieces_GetVx(Pieces pieces);
45 double * Pieces_GetVy(Pieces pieces);
46 double * Pieces_GetVz(Pieces pieces);
47 int Pieces_GetSize(Pieces pieces);
48 ObjList Pieces_GetGCList(Pieces pieces);
49 
50 /*===========================================================================*/
51 /* PieceClass ���֥������Ȥκ����������                                     */
52 /*===========================================================================*/
53 
54 PieceClass PieceClass_Create(char * name,
55 			     int size,
56 			     double probability,
57 			     double air,
58 			     double gravity,
59 			     double transmission,
60 			     int after_image_length,
61 			     int fine,
62 			     ObjList gc_list_list,
63 			     ObjList next_list,
64 			     Disp disp);
65 PieceClass PieceClass_Destroy(PieceClass piece_class);
66 
67 /*===========================================================================*/
68 /* PieceNext ���֥������Ȥκ����������                                      */
69 /*===========================================================================*/
70 
71 PieceNext PieceNext_Create(PieceClass piece_class, double power, int n);
72 PieceNext PieceNext_Destroy(PieceNext next);
73 
74 /*===========================================================================*/
75 /* �ǡ������ɤ߹���                                                          */
76 /*===========================================================================*/
77 
78 ObjList PieceClassList_CreateFromStream(Disp disp,
79 					ColorGCDatabase database,
80 					Stream stream,
81 					int fine,
82 					int probability_mag,
83 					int size_mag,
84 					int air_mag,
85 					int gravity_mag,
86 					int transmission_mag,
87 					int after_image_mag,
88 					int color_length_mag,
89 					int next_power_mag,
90 					int next_number_mag);
91 
92 /*===========================================================================*/
93 /* Pieces ���֥������Ȥ����                                                 */
94 /*===========================================================================*/
95 
96 /*---------------------------------------------------------------------------*/
97 /* Pieces ���֥������Ȥν����                                               */
98 /*---------------------------------------------------------------------------*/
99 
100 int Pieces_Initialize(Pieces pieces,
101 		      PieceClass piece_class, double power,
102 		      int number, int n,
103 		      XArc * positions, double * z,
104 		      double * vx, double * vy, double * vz,
105 		      int x_min, int y_min, int x_max, int y_max,
106 		      Calculator calculator);
107 
108 /*---------------------------------------------------------------------------*/
109 /* Pieces ���֥������Ȥ�����                                                 */
110 /*---------------------------------------------------------------------------*/
111 
112 Pieces Pieces_Create(PieceClass piece_class, double power, int number, int n,
113 		     XArc * positions, double * z,
114 		     double * vx, double * vy, double * vz,
115 		     int x_min, int y_min, int x_max, int y_max,
116 		     Calculator calculator);
117 
118 /*---------------------------------------------------------------------------*/
119 /* Piece ���֥������Ȥκ��                                                  */
120 /*---------------------------------------------------------------------------*/
121 
122 Pieces Pieces_Destroy(Pieces pieces);
123 
124 /*---------------------------------------------------------------------------*/
125 /* Pieces ���֥������Ȥΰ�ư                                                 */
126 /*---------------------------------------------------------------------------*/
127 
128 int Pieces_Move(Pieces pieces,
129 		int x_min, int y_min, int x_max, int y_max, int size);
130 
131 #endif
132 
133 /*****************************************************************************/
134 /* End of Program                                                            */
135 /*****************************************************************************/
136