FineKernelToolKit  3.1.0
ParticleSet_CLI.h
[詳解]
1 // Particle_CLI.h
2 
3 #pragma once
4 
5 #include <FK/Particle.h>
6 #include "Particle_CLI.h"
7 #include "Material_CLI.h"
8 #include "Shape_CLI.h"
9 
10 namespace FK_CLI
11 {
12 
14 
40  public ref class fk_ParticleSet : fk_BaseObject {
41  internal:
42  ::fk_ParticleSet * GetP(void);
43 
44  public:
45 #ifndef FK_DOXYGEN_USER_PROCESS
46  fk_ParticleSet(bool argNewFlg);
47 #endif
50 
53 
55  !fk_ParticleSet();
56 
58 
68  property fk_Shape^ Shape {
69  fk_Shape^ get();
70  }
71 
73 
81  property unsigned int Count {
82  unsigned int get();
83  }
84 
86 
89  property unsigned int ParticleNum {
90  unsigned int get();
91  }
92 
94 
100  property unsigned int MaxSize {
101  unsigned int get();
102  void set(unsigned int);
103  }
104 
106 
112  property bool AllMode {
113  bool get();
114  void set(bool);
115  }
116 
118 
124  property bool IndivMode {
125  bool get();
126  void set(bool);
127  }
128 
130 
136  void Handle(void);
137 
139 
148  fk_Particle^ NewParticle(void);
149 
151 
163 
165 
178  fk_Particle^ NewParticle(double x, double y, double z);
179 
181 
190  bool RemoveParticle(fk_Particle ^p);
191 
193 
202  bool RemoveParticle(int ID);
203 
205 
212  fk_Particle^ GetParticle(int ID);
213 
215 
245 
247 
260  void SetColorPalette(int ID, fk_Color^ col);
261 
263 
279  void SetColorPalette(int ID, float R, float G, float B);
280 
282 
298  void SetColorPalette(int ID, double R, double G, double B);
299 
301 
310  virtual void GenMethod(fk_Particle^ p);
311 
313 
321  virtual void AllMethod(void);
322 
324 
335  virtual void IndivMethod(fk_Particle^ p);
336  };
337 }
338 
339 /****************************************************************************
340  *
341  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
342  *
343  * Redistribution and use in source and binary forms,
344  * with or without modification, are permitted provided that the
345  * following conditions are met:
346  *
347  * - Redistributions of source code must retain the above
348  * copyright notice, this list of conditions and the
349  * following disclaimer.
350  *
351  * - Redistributions in binary form must reproduce the above
352  * copyright notice, this list of conditions and the
353  * following disclaimer in the documentation and/or
354  * other materials provided with the distribution.
355  *
356  * - Neither the name of the copyright holders nor the names
357  * of its contributors may be used to endorse or promote
358  * products derived from this software without specific
359  * prior written permission.
360  *
361  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
362  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
363  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
364  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
365  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
366  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
367  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
368  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
369  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
370  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
371  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
372  * POSSIBILITY OF SUCH DAMAGE.
373  *
374  ****************************************************************************/
375 /****************************************************************************
376  *
377  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
378  *
379  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
380  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
381  *
382  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
383  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
384  *
385  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
386  * および下記免責条項を含めること。
387  *
388  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
389  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
390  * 含めること。
391  *
392  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
393  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
394  * コントリビューターの名前を使用してはならない。
395  *
396  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
397  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
398  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
399  * に限定されない、いかなる保証もないものとします。著作権者もコン
400  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
401  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
402  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
403  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
404  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
405  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
406  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
407  * ついて、一切責任を負わないものとします。
408  *
409  ****************************************************************************/
fk_Particle^ NewParticle(void)
パーティクル生成メソッド1
virtual void GenMethod(fk_Particle^ p)
個別初期化用抽象メソッド
fk_Particle^ GetParticle(int ID)
パーティクルインスタンス参照メソッド
unsigned int ParticleNum
パーティクル個数プロパティ
Definition: ParticleSet_CLI.h:89
unsigned int Count
年齢プロパティ
Definition: ParticleSet_CLI.h:81
void Handle(void)
実行メソッド
fk_ParticleSet()
コンストラクタ
FK の各クラスの基盤となる基本クラス
Definition: Base_CLI.h:105
bool AllMode
全体動作モードプロパティ
Definition: ParticleSet_CLI.h:112
unsigned int MaxSize
パーティクル最大個数プロパティ
Definition: ParticleSet_CLI.h:100
virtual void IndivMethod(fk_Particle^ p)
個別動作用抽象メソッド
bool IndivMode
個別動作モードプロパティ
Definition: ParticleSet_CLI.h:124
void SetColorPalette(int ID, fk_Color^ col)
カラーパレット設定1
virtual void AllMethod(void)
全体動作用抽象メソッド
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
RGB色を管理するクラス
Definition: Material_CLI.h:24
パーティクル集合を制御するクラス
Definition: ParticleSet_CLI.h:40
fk_Particle^ GetNextParticle(fk_Particle^ p)
パーティクルインスタンス順次取得取得
形状用基底クラス
Definition: Shape_CLI.h:28
パーティクル単体を制御するクラス
Definition: Particle_CLI.h:51
fk_Shape^ Shape
モデル設定用プロパティ
Definition: ParticleSet_CLI.h:68
bool RemoveParticle(fk_Particle^ p)
パーティクル削除メソッド1
~fk_ParticleSet()
デストラクタ
Definition: AppWindow_CLI.h:11