# クラス fk_Particle

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

fk_Particleに対する継承グラフ
[凡例]
fk_Particleのコラボレーション図
[凡例]

すべてのメンバ一覧

## Public メソッド
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
int | getColorID (void) const
| 色 ID 参照関数
void | setColorID (int ID)
| 色 ID 設定関数
bool | getDrawMode (void) const
| 描画有無効参照関数
void | setDrawMode (bool mode)
| 描画有無効設定関数
void | handle (void)
| 年齢更新関数

## 説明

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

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

「パーティクル」とは粒子のことで、流体表現などに利用します。 本クラスは、インスタンスをユーザが直接生成するのではなく、 まずは 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

## 関数

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

初期化関数

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

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

ID参照関数.

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

戻り値:
  ID番号

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

年齢参照関数

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

戻り値:
  年齢

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

位置ベクトル参照設定

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

戻り値:
  位置ベクトル

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

位置ベクトル設定関数1

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

引数:

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

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

位置ベクトル設定関数2

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

引数:

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

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

速度ベクトル参照設定

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

戻り値:
  速度ベクトル

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

速度ベクトル設定関数1

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

引数:

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

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

速度ベクトル設定関数2

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

引数:

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

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

加速度ベクトル参照設定

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

戻り値:
  加速度ベクトル

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

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

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

引数:

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

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

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

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

引数:

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

int fk_Particle::getColorID | ( | void |  | ) | const

色 ID 参照関数

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

戻り値:
  色 ID

参照:
  fk_ParticleSet::setColorPalette()

void fk_Particle::setColorID | ( | int | ID | ) |

色 ID 設定関数

パーティクルの色 ID を設定します。

引数:

  `[in]` | ID | 色 ID

参照:
  fk_ParticleSet::setColorPalette()

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

描画有無効参照関数

現在の描画状態の有無を参照します。

戻り値:
  描画が有効である場合 true を、 無効となっている場合 false を返します。

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

描画有無効設定関数

現在の描画状態の有無を設定します。

引数:

  `[in]` | mode | true の場合、描画を有効とします。false の場合無効とします。

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

年齢更新関数

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

参照:
  fk_ParticleSet::handle()