FineKernelToolKit: FK::fk_Particle クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
FK::fk_Particle クラス

パーティクル単体を制御するクラス [詳解]

`#include <FK/Particle.h>`

FK::fk_Particle の継承関係図
[凡例]
FK::fk_Particle 連携図
[凡例]

## 公開メンバ関数

void | init (void)
| 初期化関数
int | getID (void) const
| ID参照関数
unsigned int | getCount (void) const
| 年齢参照関数
fk_Vector | getPosition (void) const
| 位置ベクトル参照設定
void | setPosition (const fk_Vector &pos)
| 位置ベクトル設定関数1
void | setPosition (double x, double y, double z)
| 位置ベクトル設定関数2
fk_Vector | getVelocity (void) const
| 速度ベクトル参照設定
void | setVelocity (const fk_Vector &vel)
| 速度ベクトル設定関数1
void | setVelocity (double x, double y, double z)
| 速度ベクトル設定関数2
fk_Vector | getAccel (void) const
| 加速度ベクトル参照設定
void | setAccel (const fk_Vector &acc)
| 加速度ベクトル設定関数1
void | setAccel (double x, double y, double z)
| 加速度ベクトル設定関数2
void | handle (void)
| 年齢更新関数
void | setColor (const fk_Color &col)
| 色設定関数1
void | setColor (fk_Color *col)
| 色設定関数2
fk_Color | getColor (void)
| 色取得関数
bool | getDrawMode (void) const
| 描画有無取得関数
void | setDrawMode (bool mode)
| 描画有無設定関数
基底クラス FK::fk_Attribute に属する継承公開メンバ関数
| fk_Attribute (void)
| コンストラクタ
virtual | ~fk_Attribute ()
| デストラクタ
bool | setAttrII (const int key, const int value)
| キーが int 型、値が int 型である属性設定関数
bool | setAttrID (const int key, const double value)
| キーが int 型、値が double 型である属性設定関数
bool | setAttrIS (const int key, const std::string value)
| キーが int 型、値が std::string 型である属性設定関数
bool | setAttrSI (const std::string key, const int value)
| キーが std::string 型、値が int 型である属性設定関数
bool | setAttrSD (const std::string key, const double value)
| キーが std::string 型、値が double 型である属性設定関数
bool | setAttrSS (const std::string key, const std::string value)
| キーが std::string 型、値が std::string 型である属性設定関数
int | getAttrII (const int key) const
| キーが int 型、値が int 型である属性参照関数
double | getAttrID (const int key) const
| キーが int 型、値が double 型である属性参照関数
std::string | getAttrIS (const int key) const
| キーが int 型、値が std::string 型である属性参照関数
int | getAttrSI (const std::string key) const
| キーが std::string 型、値が int 型である属性参照関数
double | getAttrSD (const std::string key) const
| キーが std::string 型、値が double 型である属性参照関数
std::string | getAttrSS (const std::string key) const
| キーが std::string 型、値が std::string 型である属性参照関数
bool | existAttrII (const int key) const
| キーが int 型、値が int 型である属性存在参照関数
bool | existAttrID (const int key) const
| キーが int 型、値が double 型である属性存在参照関数
bool | existAttrIS (const int key) const
| キーが int 型、値が std::string 型である属性存在参照関数
bool | existAttrSI (const std::string key) const
| キーが std::string 型、値が int 型である属性存在参照関数
bool | existAttrSD (const std::string key) const
| キーが std::string 型、値が double 型である属性存在参照関数
bool | existAttrSS (const std::string key) const
| キーが std::string 型、値が std::string 型である属性存在参照関数
bool | deleteAttrII (const int key)
| キーが int 型、値が int 型である属性消去関数
bool | deleteAttrID (const int key)
| キーが int 型、値が double 型である属性消去関数
bool | deleteAttrIS (const int key)
| キーが int 型、値が std::string 型である属性消去関数
bool | deleteAttrSI (const std::string key)
| キーが std::string 型、値が int 型である属性消去関数
bool | deleteAttrSD (const std::string key)
| キーが std::string 型、値が double 型である属性消去関数
bool | deleteAttrSS (const std::string key)
| キーが std::string 型、値が std::string 型である属性消去関数
基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
| fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
| コンストラクタ
fk_Type | getObjectType (void) const
| タイプ取得関数

## 詳解

パーティクル単体を制御するクラス

このクラスは、パーティクル集合中のパーティクル単体を制御する機能を提供します。

「パーティクル」とは粒子のことで、流体表現などに利用します。 本クラスは、インスタンスをユーザが直接生成するのではなく、 まずは fk_ParticleSet クラス(厳密にはその派生クラス)のインスタンスを用意し、 fk_ParticleSet::newParticle() を用いてインスタンスを生成します。

個々のパーティクルは、以下のような属性を持っています。

- ID番号
- 位置
- 速度
- 加速度
- 年齢
- 色インデックス
- 描画有無属性

パーティクルは、 handle() を呼び出すか、 または fk_ParticleSet::handle() を呼び出すことで時間経過を行い、 速度は加速度によって自動的に更新され、位置も速度によって自動的に更新されます。 ただし、上記の属性はあらゆるタイミングで変更が可能となっており、 速度や加速度を零ベクトルに設定した上で自前で位置を制御することも可能です。

本クラスでは、あくまで個別のパーティクル情報しか得られないため、 パーティクル同士の相互作用など、他のパーティクルの情報を得ることはできません。 そのような場合は、 fk_ParticleSet の機能を利用して下さい。 また、パーティクルの消去は fk_ParticleSet::removeParticle() を利用して下さい。

fk_Particle クラスは fk_Attribute クラスの派生クラスですので、 パーティクルに対し独自の属性や情報を個別に持たせたい場合は、 fk_Attribute の機能を利用することができます。

このクラスと同様に点群を扱うクラスとして、 fk_Point があります。 fk_Particle や fk_ParticleSet が法則を記述することが主であることに対し、 fk_Point では点の制御をより直接的に行います。

参照
  fk_ParticleSet, fk_Attribute, fk_Point

## 関数詳解

## ◆ init()

void FK::fk_Particle::init | ( | void |  | ) |

初期化関数

パーティクルを初期化します。

## ◆ getID()

int FK::fk_Particle::getID | ( | void |  | ) | const

ID参照関数

パーティクルの ID を参照します。

戻り値
  ID番号

## ◆ getCount()

unsigned int FK::fk_Particle::getCount | ( | void |  | ) | const

年齢参照関数

パーティクルの年齢を参照します。 年齢とは、パーティクルが生成されてから handle() および fk_ParticleSet::handle() が呼ばれた回数のことです。

戻り値
  年齢

## ◆ getPosition()

fk_Vector FK::fk_Particle::getPosition | ( | void |  | ) | const

位置ベクトル参照設定

パーティクルの位置ベクトルを参照します。

戻り値
  位置ベクトル

## ◆ setPosition() [1/2]

void FK::fk_Particle::setPosition | ( | const fk_Vector & | pos | ) |

位置ベクトル設定関数1

パーティクルの位置ベクトルを設定します。

引数

  [in] | pos | 位置ベクトル

## ◆ setPosition() [2/2]

void FK::fk_Particle::setPosition | ( | double | x,
|  | double | y,
|  | double | z )

位置ベクトル設定関数2

パーティクルの位置ベクトルを設定します。

引数

  [in] | x | 位置ベクトルのx成分
  [in] | y | 位置ベクトルのy成分
  [in] | z | 位置ベクトルのz成分

## ◆ getVelocity()

fk_Vector FK::fk_Particle::getVelocity | ( | void |  | ) | const

速度ベクトル参照設定

パーティクルの速度ベクトルを参照します。

戻り値
  速度ベクトル

## ◆ setVelocity() [1/2]

void FK::fk_Particle::setVelocity | ( | const fk_Vector & | vel | ) |

速度ベクトル設定関数1

パーティクルの速度ベクトルを設定します。

引数

  [in] | vel | 速度ベクトル

## ◆ setVelocity() [2/2]

void FK::fk_Particle::setVelocity | ( | double | x,
|  | double | y,
|  | double | z )

速度ベクトル設定関数2

パーティクルの速度ベクトルを設定します。

引数

  [in] | x | 速度ベクトルのx成分
  [in] | y | 速度ベクトルのy成分
  [in] | z | 速度ベクトルのz成分

## ◆ getAccel()

fk_Vector FK::fk_Particle::getAccel | ( | void |  | ) | const

加速度ベクトル参照設定

パーティクルの加速度ベクトルを参照します。

戻り値
  加速度ベクトル

## ◆ setAccel() [1/2]

void FK::fk_Particle::setAccel | ( | const fk_Vector & | acc | ) |

加速度ベクトル設定関数1

パーティクルの加速度ベクトルを設定します。

引数

  [in] | acc | 加速度ベクトル

## ◆ setAccel() [2/2]

void FK::fk_Particle::setAccel | ( | double | x,
|  | double | y,
|  | double | z )

加速度ベクトル設定関数2

パーティクルの加速度ベクトルを設定します。

引数

  [in] | x | 加速度ベクトルのx成分
  [in] | y | 加速度ベクトルのy成分
  [in] | z | 加速度ベクトルのz成分

## ◆ handle()

void FK::fk_Particle::handle | ( | void |  | ) |

年齢更新関数

パーティクルの年齢を更新します。 これにより、速度ベクトルには加速度ベクトルが追加され、 位置ベクトルには速度ベクトルが追加されます。 同じパーティクル集合に属する別のパーティクルには影響しません。

参照
  fk_ParticleSet::handle()

## ◆ setColor() [1/2]

void FK::fk_Particle::setColor | ( | const fk_Color & | col | ) |

色設定関数1

パーティクルの色を設定します。 この色設定によって表示するには、形状を登録するモデル側で、 fk_Model::setElementMode() 関数を用いて fk_ElementMode::ELEMENT を設定しておく必要があります。

引数

  [in] | col | 色値

## ◆ setColor() [2/2]

void FK::fk_Particle::setColor | ( | fk_Color * | col | ) |

色設定関数2

パーティクルの色を設定します。 この色設定によって表示するには、形状を登録するモデル側で、 fk_Model::setElementMode() 関数を用いて fk_ElementMode::ELEMENT を設定しておく必要があります。

引数

  [in] | col | 色値

## ◆ getColor()

fk_Color FK::fk_Particle::getColor | ( | void |  | ) |

色取得関数

パーティクルの色を取得します。

戻り値
  色値

## ◆ getDrawMode()

bool FK::fk_Particle::getDrawMode | ( | void |  | ) | const

描画有無取得関数

現在このパーティクルが描画する状態にあるかどうかを取得します。

戻り値
  描画されている場合 true を、されていない場合 false を返します。

## ◆ setDrawMode()

void FK::fk_Particle::setDrawMode | ( | bool | mode | ) |

描画有無設定関数

このパーティクルの描画状態を設定します。 ここで false を設定してもパーティクル自体が消去されるわけではないことに注意して下さい。 パーティクル自体を消去するには fk_ParticleSet::removeParticle() を用いる必要があります。

引数

  [in] | mode | 描画する場合 true を、しない場合 false を入力します。