# クラス fk_Line

有向線分を生成、管理するクラス [詳細]

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

すべてのメンバ一覧

## Public メソッド
| fk_Line (std::vector< fk_Vector > *array=NULL)
| コンストラクタ
| ~fk_Line ()
| デストラクタ
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)
| 線分端点位置変更関数

## 説明

有向線分を生成、管理するクラス

このクラスは、形状として有向線分を制御する機能を提供します。 1つのインスタンスで、複数の有向線分の制御が可能です。 特に断りがない場合、「線分」は有向線分のことを指すものとします。

本クラスの実質的な意義は、 fk_Solid が持つ汎用的な形状操作機能のうち、 線分を生成、管理することに特化していることです。 基底クラスの機能を利用することは可能ですが、 位相操作を伴う変形をした場合、 本クラスのメンバ関数が正しく動作しない可能性があります。

参照:
  fk_Solid, fk_Model, fk_Shape

## コンストラクタとデストラクタ

fk_Line::fk_Line | ( | std::vector< fk_Vector > * | array = `NULL` | ) |

コンストラクタ

引数として vector による fk_Vector 型の配列を与えることによって、 最初から線分を生成することができます。

引数:

  `[in]` | array | 端点位置ベクトルの配列。 線分 ID が i となる線分の端点が、 array[2*i] と array[2*i+1] となるように配置してください。 線分の端点配列。NULL が代入された場合、線分を生成しません。

fk_Line::~fk_Line | ( |  | ) |

デストラクタ

## 関数

bool fk_Line::setVertex | ( | int | vertexID,
|  | fk_Vector | pos |
| ) |  |  |

単独線分端点位置設定関数

この関数は、現在の線分本数によって挙動が異なります。

- 線分が生成されていない場合、vertexID の値は無視され、 pos を両端点とする縮退した線分が生成されます。
- 線分が1本のみの場合は、その線分の端点位置を pos に変更します。 vertexID が 0 の場合始点、1 の場合終点を変更します。 vertexID がその他の値だった場合は、何も起こりません。
- 線分が2本以上あった場合は、何も起こりません。

引数:

  `[in]` | vertexID | 端点ID。(線分が1本のときのみ有効)
  `[in]` | pos | 端点の位置ベクトル

戻り値:
  なんらかの形で端点位置の設定がなされれば true、 そうでない場合は false を返します。

bool fk_Line::setVertex | ( | int | lineID,
|  | int | vertexID,
|  | fk_Vector | pos |
| ) |  |  |

任意線分端点位置設定関数

生成されている任意の線分の端点位置を変更します。

引数:

  `[in]` | lineID | 制御する線分ID。線分IDは、最初に生成したものが0で、 以降生成順に 1 ずつ増加したものになります。 存在しない線分 ID を指定した場合は何も起こりません。
  `[in]` | vertexID | 始点の場合 0、終点の場合 1 を入力します。 その他の値を指定した場合は何も起こりません。
  `[in]` | pos | 端点の位置ベクトル

戻り値:
  端点位置の設定がなされれば true、 そうでない場合は false を返します。

void fk_Line::setVertex | ( | fk_Vector * | array | ) |

単独線分生成関数

1本の線分を生成します。 入力する fk_Vector 型の配列は、長さが 2 以上でなければなりません。 この関数を呼んだ場合、既にあった線分はすべて破棄されます。

引数:

  `[in]` | array | fk_Vector 型の配列。array[0] が始点、array[1] が終点となります。

void fk_Line::setVertex | ( | std::vector< fk_Vector > * | array | ) |

複数線分生成関数

複数の線分を生成します。 この関数を呼んだ場合、既にあった線分はすべて破棄されます。

引数:

  `[in]` | array | 端点位置ベクトルの配列。 線分 ID が i となる線分の端点が、 array[2*i] と array[2*i+1] となるように配置してください。

void fk_Line::pushLine | ( | fk_Vector * | array | ) |

単独線分追加関数1

線分を追加します。

引数:

  `[in]` | array | 端点位置ベクトルの配列。 array[0] に始点、array[1] に終点となるように配置してください。

void fk_Line::pushLine | ( | fk_Vector | startPos,
|  | fk_Vector | endPos |
| ) |  |  |

単独線分追加関数2

線分を追加します。

引数:

  `[in]` | startPos | 始点位置ベクトル
  `[in]` | endPos | 終点位置ベクトル

bool fk_Line::changeLine | ( | int | lineID,
|  | fk_Vector | startPos,
|  | fk_Vector | endPos |
| ) |  |  |

線分端点位置変更関数

線分の端点位置を変更します。

引数:

  `[in]` | lineID | 制御する線分ID。線分IDは、最初に生成したものが0で、 以降生成順に 1 ずつ増加したものになります。 存在しない線分 ID を指定した場合は何も起こりません。
  `[in]` | startPos | 始点位置ベクトル
  `[in]` | endPos | 終点位置ベクトル

戻り値:
  端点位置の設定がなされれば true、 そうでない場合は false を返します。

fk_Modifyを再定義しています。