FineKernelToolKit 4.2.13
|
有向線分を生成、管理するクラス [詳解]
#include <FK/Line.h>
公開メンバ関数 | |
fk_Line (std::vector< fk_Vector > *array=nullptr) | |
コンストラクタ | |
virtual | ~fk_Line () |
デストラクタ | |
void | allClear (void) |
全消去関数 | |
bool | setVertex (int vertexID, fk_Vector pos) |
単独線分端点位置設定関数 | |
bool | setVertex (int lineID, int vertexID, fk_Vector pos) |
任意線分端点位置設定関数 | |
void | setVertex (fk_Vector *array) |
単独線分生成関数 | |
void | setVertex (std::vector< fk_Vector > *array) |
複数線分生成関数 | |
void | pushLine (fk_Vector *array) |
単独線分追加関数1 | |
void | pushLine (fk_Vector startPos, fk_Vector endPos) |
単独線分追加関数2 | |
bool | changeLine (int lineID, fk_Vector startPos, fk_Vector endPos) |
線分端点位置変更関数 | |
int | getSize (void) |
線分本数取得関数 | |
void | setDrawMode (int ID, bool mode) |
線分描画制御関数 | |
bool | getDrawMode (int ID) |
個別線分描画状態参照関数 | |
void | setColor (int eID, fk_Color col) |
個別色設定関数1 | |
void | setColor (int eID, fk_Color *col) |
個別色設定関数2 | |
有向線分を生成、管理するクラス
このクラスは、形状として有向線分を制御する機能を提供します。 1つのインスタンスで、複数の有向線分の制御が可能です。 特に断りがない場合、「線分」は有向線分のことを指すものとします。
本クラスの実質的な意義は、 fk_Solid が持つ汎用的な形状操作機能のうち、 線分を生成、管理することに特化していることです。 基底クラスの機能を利用することは可能ですが、 位相操作を伴う変形をした場合、 本クラスのメンバ関数が正しく動作しない可能性があります。
FK::fk_Line::fk_Line | ( | std::vector< fk_Vector > * | array = nullptr | ) |
コンストラクタ
引数として vector による fk_Vector 型の配列を与えることによって、 最初から線分を生成することができます。
[in] | array | 端点位置ベクトルの配列。 線分 ID が i となる線分の端点が、 array[2*i] と array[2*i+1] となるように配置してください。 線分の端点配列。nullptr が代入された場合、線分を生成しません。 |
|
virtual |
デストラクタ
void FK::fk_Line::allClear | ( | void | ) |
全消去関数
すべてのデータを消去します。
bool FK::fk_Line::setVertex | ( | int | vertexID, |
fk_Vector | pos | ||
) |
単独線分端点位置設定関数
この関数は、現在の線分本数によって挙動が異なります。
[in] | vertexID | 端点ID。(線分が1本のときのみ有効) |
[in] | pos | 端点の位置ベクトル |
bool FK::fk_Line::setVertex | ( | int | lineID, |
int | vertexID, | ||
fk_Vector | pos | ||
) |
任意線分端点位置設定関数
生成されている任意の線分の端点位置を変更します。
[in] | lineID | 制御する線分ID。線分IDは、最初に生成したものが0で、 以降生成順に 1 ずつ増加したものになります。 存在しない線分 ID を指定した場合は何も起こりません。 |
[in] | vertexID | 始点の場合 0、終点の場合 1 を入力します。 その他の値を指定した場合は何も起こりません。 |
[in] | pos | 端点の位置ベクトル |
void FK::fk_Line::setVertex | ( | fk_Vector * | array | ) |
void FK::fk_Line::setVertex | ( | std::vector< fk_Vector > * | array | ) |
複数線分生成関数
複数の線分を生成します。 この関数を呼んだ場合、既にあった線分はすべて破棄されます。
[in] | array | 端点位置ベクトルの配列。 線分 ID が i となる線分の端点が、 array[2*i] と array[2*i+1] となるように配置してください。 |
void FK::fk_Line::pushLine | ( | fk_Vector * | array | ) |
単独線分追加関数1
線分を追加します。
[in] | array | 端点位置ベクトルの配列。 array[0] に始点、array[1] に終点となるように配置してください。 |
単独線分追加関数2
線分を追加します。
[in] | startPos | 始点位置ベクトル |
[in] | endPos | 終点位置ベクトル |
線分端点位置変更関数
線分の端点位置を変更します。
[in] | lineID | 制御する線分ID。線分IDは、最初に生成したものが0で、 以降生成順に 1 ずつ増加したものになります。 存在しない線分 ID を指定した場合は何も起こりません。 |
[in] | startPos | 始点位置ベクトル |
[in] | endPos | 終点位置ベクトル |
int FK::fk_Line::getSize | ( | void | ) |
線分本数取得関数
現在登録されている線分の本数を取得します。
void FK::fk_Line::setDrawMode | ( | int | ID, |
bool | mode | ||
) |
線分描画制御関数
個別の線分に対し、描画の有無を設定します。
[in] | ID | 線分ID |
[in] | mode | true であれば描画を有効に、false であれば無効にします。 |
bool FK::fk_Line::getDrawMode | ( | int | ID | ) |
個別線分描画状態参照関数
個別の線分に対し、描画状況を取得します。
[in] | ID | 線分ID |
void FK::fk_Line::setColor | ( | int | eID, |
fk_Color | col | ||
) |
個別色設定関数1
線分の色を個別に設定します。 この色設定によって表示するには、 fk_Model::setElementMode() で fk_ElementMode::ELEMENT を設定しておく必要があります。
[in] | eID | 要素ID |
[in] | col | 色値 |
void FK::fk_Line::setColor | ( | int | eID, |
fk_Color * | col | ||
) |
個別色設定関数2
登録されている線分の色を設定します。 この色設定によって表示するには、形状を登録するモデル側で、 fk_Model::setElementMode() 関数を用いて fk_ElementMode::ELEMENT を設定しておく必要があります。
[in] | eID | 要素ID |
[in] | col | 色値 |