Codebase list xfireworks / 819f6ebc-21c3-4570-af87-0806e8960c8b/main Piece.h
819f6ebc-21c3-4570-af87-0806e8960c8b/main

Tree @819f6ebc-21c3-4570-af87-0806e8960c8b/main (Download .tar.gz)

Piece.h @819f6ebc-21c3-4570-af87-0806e8960c8b/mainraw · history · blame

#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);
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);
double * Pieces_GetX(Pieces pieces);
double * Pieces_GetY(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,
		      double * x, double * y, 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,
		     double * x, double * y, 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                                                            */
/*****************************************************************************/