FineKernelToolKit: FK::fk_Line クラス

FineKernelToolKit 4.3.0

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

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

`#include <FK/Line.h>`

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

## 公開メンバ関数

| 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_Model, fk_Shape

## 構築子と解体子

## ◆ fk_Line()

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 が代入された場合、線分を生成しません。

## ◆ ~fk_Line()

virtual FK::fk_Line::~fk_Line | ( |  | ) |

virtual

デストラクタ

## 関数詳解

## ◆ allClear()

void FK::fk_Line::allClear | ( | void |  | ) |

全消去関数

すべてのデータを消去します。

## ◆ setVertex() [1/4]

bool FK::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 を返します。

## ◆ setVertex() [2/4]

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 | 端点の位置ベクトル

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

## ◆ setVertex() [3/4]

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

単独線分生成関数

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

引数

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

## ◆ setVertex() [4/4]

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

複数線分生成関数

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

引数

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

## ◆ pushLine() [1/2]

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

単独線分追加関数1

線分を追加します。

引数

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

## ◆ pushLine() [2/2]

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

単独線分追加関数2

線分を追加します。

引数

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

## ◆ changeLine()

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

線分端点位置変更関数

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

引数

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

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

## ◆ getSize()

int FK::fk_Line::getSize | ( | void |  | ) |

線分本数取得関数

現在登録されている線分の本数を取得します。

戻り値
  線分の本数

## ◆ setDrawMode()

void FK::fk_Line::setDrawMode | ( | int | ID,
|  | bool | mode )

線分描画制御関数

個別の線分に対し、描画の有無を設定します。

引数

  [in] | ID | 線分ID
  [in] | mode | true であれば描画を有効に、false であれば無効にします。

## ◆ getDrawMode()

bool FK::fk_Line::getDrawMode | ( | int | ID | ) |

個別線分描画状態参照関数

個別の線分に対し、描画状況を取得します。

引数

  [in] | ID | 線分ID

戻り値
  描画が有効であれば true を、無効であれば false を返します。 指定した ID を持つ線分が存在しなかった場合も false を返します。

## ◆ setColor() [1/2]

void FK::fk_Line::setColor | ( | int | eID,
|  | fk_Color | col )

個別色設定関数1

線分の色を個別に設定します。 この色設定によって表示するには、 fk_Model::setElementMode() で fk_ElementMode::ELEMENT を設定しておく必要があります。

引数

  [in] | eID | 要素ID
  [in] | col | 色値

## ◆ setColor() [2/2]

void FK::fk_Line::setColor | ( | int | eID,
|  | fk_Color * | col )

個別色設定関数2

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

引数

  [in] | eID | 要素ID
  [in] | col | 色値