/*
 *	clipeffa.h
 *
 *	EFFect ANiMator
 *
 *	* Tue Jul 25 22:09:40 JST 2017 Naoyuki Sawa
 *	- 1st リリース。
 *	* Wed Aug 02 23:35:30 JST 2017 Naoyuki Sawa
 *	- EffAnm_RadBo1()を追加しました。
 *	* Thu Aug 03 22:28:50 JST 2017 Naoyuki Sawa
 *	- EffAnm_RadBo2()を追加しました。
 *	* Sat Aug 05 23:33:42 JST 2017 Naoyuki Sawa
 *	- EffAnm_RadSma()を追加しました。
 */
#ifndef __CLIP_EFFA_H__
#define __CLIP_EFFA_H__
#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus
/****************************************************************************
 *	グローバル関数
 ****************************************************************************/
void EffAnm_RadSma(int   x,			//┬中心座標
                   int   y,			//┘
                   int   t,			//現在時刻	0〜duration	┬時間の単位は任意です(フレーム単位でなくても構いません)。(t/duration)でアニメーション全体に対する進行度合いを判断するからです。
                   int   duration,		//全体尺			┘
                   int   screenSize,		//画面サイズ			生成するエフェクトの大きさの目安として使用する。縦サイズでも横サイズでも構わない。一般的には、大きい方を指定するのが良いだろう。
                   int   seed,			//乱数シード			エフェクトの個々のインスタンス毎に毎回同じ値を指定して下さい。特に気にしないならば常に0を指定して構わない。
                   void (*fnRenderCircle)(int x, int y, int r, void* arg),	//アプリケーション定義の塗りつぶした円描画関数
                   void* arg);							//アプリケーション定義の塗りつぶした円描画関数へ引き渡す任意のデータ
void EffAnm_RadMed(int   x,			//┬中心座標
                   int   y,			//┘
                   int   t,			//現在時刻	0〜duration	┬時間の単位は任意です(フレーム単位でなくても構いません)。(t/duration)でアニメーション全体に対する進行度合いを判断するからです。
                   int   duration,		//全体尺			┘
                   int   screenSize,		//画面サイズ			生成するエフェクトの大きさの目安として使用する。縦サイズでも横サイズでも構わない。一般的には、大きい方を指定するのが良いだろう。
                   int   seed,			//乱数シード			エフェクトの個々のインスタンス毎に毎回同じ値を指定して下さい。特に気にしないならば常に0を指定して構わない。
                   void (*fnRenderPolygon)(const int xy[/*n*/][2/*x,y*/], int n/*3or4*/, void* arg),	//アプリケーション定義のポリゴン描画関数
                   void* arg);										//アプリケーション定義のポリゴン描画関数へ引き渡す任意のデータ
void EffAnm_RadLar(int   x,			//┬中心座標
                   int   y,			//┘
                   int   t,			//現在時刻	0〜duration	┬時間の単位は任意です(フレーム単位でなくても構いません)。(t/duration)でアニメーション全体に対する進行度合いを判断するからです。
                   int   duration,		//全体尺			┘
                   int   screenSize,		//画面サイズ			生成するエフェクトの大きさの目安として使用する。縦サイズでも横サイズでも構わない。一般的には、大きい方を指定するのが良いだろう。
                   int   seed,			//乱数シード			エフェクトの個々のインスタンス毎に毎回同じ値を指定して下さい。特に気にしないならば常に0を指定して構わない。
                   void (*fnRenderPolygon)(const int xy[/*n*/][2/*x,y*/], int n/*3or4*/, void* arg),	//アプリケーション定義のポリゴン描画関数
                   void* arg);										//アプリケーション定義のポリゴン描画関数へ引き渡す任意のデータ
void EffAnm_RadBo1(int   x,			//┬中心座標
                   int   y,			//┘
                   int   t,			//現在時刻	0〜duration	┬時間の単位は任意です(フレーム単位でなくても構いません)。(t/duration)でアニメーション全体に対する進行度合いを判断するからです。
                   int   duration,		//全体尺			┘
                   int   screenSize,		//画面サイズ			生成するエフェクトの大きさの目安として使用する。縦サイズでも横サイズでも構わない。一般的には、大きい方を指定するのが良いだろう。
                   int   seed,			//乱数シード			エフェクトの個々のインスタンス毎に毎回同じ値を指定して下さい。特に気にしないならば常に0を指定して構わない。
                   void (*fnRenderPolygon)(const int xy[/*n*/][2/*x,y*/], int n/*3or4*/, void* arg),	//アプリケーション定義のポリゴン描画関数
                   void* arg);										//アプリケーション定義のポリゴン描画関数へ引き渡す任意のデータ
void EffAnm_RadBo2(int   x,			//┬中心座標
                   int   y,			//┘
                   int   t,			//現在時刻	0〜duration	┬時間の単位は任意です(フレーム単位でなくても構いません)。(t/duration)でアニメーション全体に対する進行度合いを判断するからです。
                   int   duration,		//全体尺			┘
                   int   screenSize,		//画面サイズ			生成するエフェクトの大きさの目安として使用する。縦サイズでも横サイズでも構わない。一般的には、大きい方を指定するのが良いだろう。
                   int   seed,			//乱数シード			エフェクトの個々のインスタンス毎に毎回同じ値を指定して下さい。特に気にしないならば常に0を指定して構わない。
                   void (*fnRenderPolygon)(const int xy[/*n*/][2/*x,y*/], int n/*3or4*/, void* arg),	//アプリケーション定義のポリゴン描画関数
                   void* arg);										//アプリケーション定義のポリゴン描画関数へ引き渡す任意のデータ
#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus
#endif//__CLIP_EFFA_H__
