FineKernelToolKit: FK/ParticleSet.h ソースファイル

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
ParticleSet.h
[詳解]
1#if !defined(__FK_PARTICLESET_HEADER__)
2#define __FK_PARTICLESET_HEADER__
3
4#include <FK/Particle.h>
5#include <functional>
6
7namespace FK {
8 class fk_IDAdmin;
9 class fk_Shape;
10
12
32
33 class fk_ParticleSet: public fk_BaseObject {
34#if !defined(FK_DOXYGEN_USER_PROCESS)
35 class Member {
36 public:
37 std::vector<std::unique_ptr<fk_Particle>> pSet;
38 std::unique_ptr<fk_IDAdmin> pAdmin;
39 std::unique_ptr<fk_Point> point;
40 unsigned int count;
41 bool allMode, indivMode;
42 unsigned int maxNum;
43
44 Member(unsigned int);
45 };
46#endif
47 public:
49
54 fk_ParticleSet(unsigned int max = 0);
55
57 virtual ~fk_ParticleSet();
58
60
66 void handle(void);
67
69
81 fk_Shape * getShape(void) const;
82
84
93 fk_Particle * newParticle(void);
94
96
107 fk_Particle * newParticle(const fk_Vector &pos);
108
110
123 fk_Particle * newParticle(double x, double y, double z);
124
126
135 bool removeParticle(fk_Particle *p);
136
138
147 bool removeParticle(int ID);
148
150
157 unsigned int getCount(void) const;
158
160
167 fk_Particle * getParticle(int ID) const;
168
170
199 fk_Particle * getNextParticle(fk_Particle *p) const;
200
202
207 unsigned int getParticleNum(void) const;
208
210
218 void setMaxSize(unsigned int max);
219
221
229 unsigned int getMaxSize(void) const;
230
231
233
242 //virtual void genMethod(fk_Particle *p);
243 std::function<void(fk_Particle *)> genMethod;
244
246
253 //virtual void allMethod(void);
254 std::function<void(void)> allMethod;
255
257
267 //virtual void indivMethod(fk_Particle *p);
268 std::function<void(fk_Particle *)> indivMethod;
269
271
279 void setAllMode(bool mode);
280
282
289 bool getAllMode(void) const;
290
292
300 void setIndivMode(bool mode);
301
303
310 bool getIndivMode(void) const;
311
312#if !defined(FK_OLD_NONSUPPORT) && !defined(FK_DOXYGEN_USER_PROCESS)
313 void setColorPalette(int ID, const fk_Color &col);
314 void setColorPalette(int ID, float R, float G, float B);
315 void setColorPalette(int ID, double R, double G, double B);
316
317#endif
318 private:
319 std::unique_ptr<Member> _m;
320 };
321}
322
323#endif // !__FK_PARTICLESET_HEADER__
324
325/****************************************************************************
326 *
327 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
328 *
329 * Redistribution and use in source and binary forms,
330 * with or without modification, are permitted provided that the
331 * following conditions are met:
332 *
333 * - Redistributions of source code must retain the above
334 * copyright notice, this list of conditions and the
335 * following disclaimer.
336 *
337 * - Redistributions in binary form must reproduce the above
338 * copyright notice, this list of conditions and the
339 * following disclaimer in the documentation and/or
340 * other materials provided with the distribution.
341 *
342 * - Neither the name of the copyright holders nor the names
343 * of its contributors may be used to endorse or promote
344 * products derived from this software without specific
345 * prior written permission.
346 *
347 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
348 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
349 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
350 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
351 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
352 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
353 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
354 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
355 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
356 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
357 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
358 * POSSIBILITY OF SUCH DAMAGE.
359 *
360 ****************************************************************************/
361/****************************************************************************
362 *
363 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
364 *
365 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
366 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
367 *
368 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
369 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
370 *
371 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
372 * および下記免責条項を含めること。
373 *
374 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
375 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
376 * 含めること。
377 *
378 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
379 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
380 * コントリビューターの名前を使用してはならない。
381 *
382 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
383 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
384 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
385 * に限定されない、いかなる保証もないものとします。著作権者もコン
386 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
387 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
388 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
389 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
390 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
391 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
392 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
393 * ついて、一切責任を負わないものとします。
394 *
395 ****************************************************************************/
Particle.h
FK::fk_BaseObject::fk_BaseObject
fk_BaseObject(fk_Type type=fk_Type::BASEOBJECT)
コンストラクタ
FK::fk_Color
RGB色を管理するクラス
Definition Color.h:21
FK::fk_ParticleSet::getAllMode
bool getAllMode(void) const
全体動作モード参照関数
FK::fk_ParticleSet::indivMethod
std::function< void(fk_Particle *)> indivMethod
個別動作用仮想関数
Definition ParticleSet.h:268
FK::fk_ParticleSet::getParticleNum
unsigned int getParticleNum(void) const
パーティクル個数参照関数
FK::fk_ParticleSet::getMaxSize
unsigned int getMaxSize(void) const
パーティクル最大個数参照関数
FK::fk_ParticleSet::removeParticle
bool removeParticle(fk_Particle *p)
パーティクル削除関数1
FK::fk_ParticleSet::~fk_ParticleSet
virtual ~fk_ParticleSet()
デストラクタ
FK::fk_ParticleSet::getShape
fk_Shape * getShape(void) const
モデル設定用関数
FK::fk_ParticleSet::allMethod
std::function< void(void)> allMethod
全体動作用仮想関数
Definition ParticleSet.h:254
FK::fk_ParticleSet::setAllMode
void setAllMode(bool mode)
全体動作モード設定関数
FK::fk_ParticleSet::fk_ParticleSet
fk_ParticleSet(unsigned int max=0)
コンストラクタ
FK::fk_ParticleSet::getNextParticle
fk_Particle * getNextParticle(fk_Particle *p) const
パーティクルインスタンス順次取得取得
FK::fk_ParticleSet::newParticle
fk_Particle * newParticle(double x, double y, double z)
パーティクル生成関数3
FK::fk_ParticleSet::handle
void handle(void)
実行関数
FK::fk_ParticleSet::setIndivMode
void setIndivMode(bool mode)
個別動作モード設定関数
FK::fk_ParticleSet::genMethod
std::function< void(fk_Particle *)> genMethod
個別初期化用仮想関数
Definition ParticleSet.h:243
FK::fk_ParticleSet::getParticle
fk_Particle * getParticle(int ID) const
パーティクルインスタンス参照関数
FK::fk_ParticleSet::removeParticle
bool removeParticle(int ID)
パーティクル削除関数2
FK::fk_ParticleSet::setMaxSize
void setMaxSize(unsigned int max)
パーティクル最大個数設定関数
FK::fk_ParticleSet::newParticle
fk_Particle * newParticle(const fk_Vector &pos)
パーティクル生成関数2
FK::fk_ParticleSet::getIndivMode
bool getIndivMode(void) const
個別動作モード参照関数
FK::fk_ParticleSet::newParticle
fk_Particle * newParticle(void)
パーティクル生成関数1
FK::fk_ParticleSet::getCount
unsigned int getCount(void) const
年齢参照関数
FK::fk_Particle
パーティクル単体を制御するクラス
Definition Particle.h:52
FK::fk_Shape
形状用基底クラス
Definition Shape.h:44
FK::fk_Vector
3次元ベクトルを管理するクラス
Definition Vector.h:45
FK
Fine Kernel Toolkit 名前空間
Definition Angle.h:6