FineKernelToolKit: FK::fk_GraphNode クラス

FineKernelToolKit 4.3.0

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

グラフ構造のノードを制御するクラス [詳解]

`#include <FK/GraphNode.h>`

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

## 公開メンバ関数

unsigned int | getID (void)
| ID 取得関数
void | setPosition (fk_Vector pos)
| 位置ベクトル設定関数
fk_Vector & | getPosition (void)
| 位置ベクトル取得関数
unsigned int | getGeneration (void)
| 位置変更回数取得関数
bool | isConnect (fk_GraphNode *node)
| 接続ノード確認関数
bool | isConnect (bool mode, fk_GraphNode *node)
| 方向判定付き接続ノード確認関数
std::list< fk_GraphEdge * > | getAllEdge (void)
| 全接続辺取得関数1
void | getAllEdge (std::list< fk_GraphEdge * > *list)
| 全接続辺取得関数2
std::list< fk_GraphEdge * > | getStartEdge (void)
| 始点接続辺取得関数1
void | getStartEdge (std::list< fk_GraphEdge * > *list)
| 始点接続辺取得関数2
std::list< fk_GraphEdge * > | getEndEdge (void)
| 終点接続辺取得関数1
void | getEndEdge (std::list< fk_GraphEdge * > *list)
| 終点接続辺取得関数2
std::list< fk_GraphNode * > | getNextNode (void)
| 接続終点取得関数1
void | getNextNode (std::list< fk_GraphNode * > *list)
| 接続終点取得関数2
std::list< fk_GraphNode * > | getPrevNode (void)
| 接続始点取得関数1
void | getPrevNode (std::list< fk_GraphNode * > *list)
| 接続始点取得関数2
void | setIntCost (unsigned int ID, int cost, int prev=-1)
| 整数型コスト設定関数
void | setDoubleCost (unsigned int ID, double cost, int prev=-1)
| 実数型コスト設定関数
int | getIntCost (unsigned int ID)
| 整数型コスト取得関数
double | getDoubleCost (unsigned int ID)
| 実数型コスト取得関数
void | clearIntCost (unsigned int ID)
| 整数型コスト設定解除関数
void | clearDoubleCost (unsigned int ID)
| 実数型コスト設定解除関数
bool | isDoneIntCost (unsigned int ID)
| 整数型コスト設定状態参照関数
bool | isDoneDoubleCost (unsigned int ID)
| 実数型コスト設定状態参照関数
void | setColor (fk_Color col)
| 色指定関数1
void | setColor (fk_Color *col)
| 色指定関数2
基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
| fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
| コンストラクタ
fk_Type | getObjectType (void) const
| タイプ取得関数

## 詳解

グラフ構造のノードを制御するクラス

このクラスは、グラフ構造におけるノードを制御する機能を提供します。

グラフ構造の詳細および利用方法についての詳細は、 fk_Graph のマニュアルを参照して下さい。 ここでは、グラフの辺に関する情報に特化して解説します。

本クラスのインスタンスは fk_Graph 内で自動的に生成されるものであり、 FK 利用者が直接インスタンスを生成することはありません。

参照
  fk_Graph, fk_GraphNode

## 関数詳解

## ◆ getID()

unsigned int FK::fk_GraphNode::getID | ( | void |  | ) |

ID 取得関数

ノードの ID を取得します。

戻り値
  ID

## ◆ setPosition()

void FK::fk_GraphNode::setPosition | ( | fk_Vector | pos | ) |

位置ベクトル設定関数

ノードの位置ベクトルを設定します。

引数

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

## ◆ getPosition()

fk_Vector & FK::fk_GraphNode::getPosition | ( | void |  | ) |

位置ベクトル取得関数

ノードの位置ベクトルを取得します。

戻り値
  位置ベクトル

## ◆ getGeneration()

unsigned int FK::fk_GraphNode::getGeneration | ( | void |  | ) |

位置変更回数取得関数

これまでのノード位置変更回数を取得します。

戻り値
  変更回数

## ◆ isConnect() [1/2]

bool FK::fk_GraphNode::isConnect | ( | fk_GraphNode * | node | ) |

接続ノード確認関数

指定したノードとの間に辺が存在するかどうかを判定します。 辺の方向も考慮したい場合は isConnect(bool, fk_GraphNode *) を使用して下さい。

引数

  [in] | node | 接続を確認するノード

戻り値
  辺が存在する場合 true を、存在しない場合 false を返します。

## ◆ isConnect() [2/2]

bool FK::fk_GraphNode::isConnect | ( | bool | mode,
|  | fk_GraphNode * | node )

方向判定付き接続ノード確認関数

指定したノードとの間に、指定した方向の辺が存在するかどうかを判定します。 isConnect(fk_GraphNode *) の場合は何かしらの辺が存在すれば true を返しますが、 こちらの関数では辺の方向を指定することができます。 mode が true のときは、this インスタンスから node への経路が存在する場合のみに true を返します。そのため、辺が存在していたとしても、 node から this への一方通行辺だった場合は false を返します。 mode が false の場合は this インスタンスが終点側の場合に true を返します。 間の辺が双方向辺だった場合は、mode の値にかかわらず true を返します。

引数

  [in] | mode | 辺の向きを指定します。
  [in] | node | 接続を確認するノード。

戻り値
  指定した方向への辺が存在する場合 true を、存在しない場合 false を返します。

## ◆ getAllEdge() [1/2]

std::list< fk_GraphEdge * > FK::fk_GraphNode::getAllEdge | ( | void |  | ) |

全接続辺取得関数1

このノードに接続している全ての辺を取得します。

戻り値
  接続辺の list 集合。

## ◆ getAllEdge() [2/2]

void FK::fk_GraphNode::getAllEdge | ( | std::list< fk_GraphEdge * > * | list | ) |

全接続辺取得関数2

このノードに接続している全ての辺を取得します。

引数

  [out] | list | 接続辺の list 集合。

## ◆ getStartEdge() [1/2]

std::list< fk_GraphEdge * > FK::fk_GraphNode::getStartEdge | ( | void |  | ) |

始点接続辺取得関数1

このノードに接続している辺のうち、以下の条件に当てはまる辺を取得します。

- 双方向辺。
- 一方通行辺のうち、このノードが始点となっている辺。

戻り値
  接続辺の list 集合。

## ◆ getStartEdge() [2/2]

void FK::fk_GraphNode::getStartEdge | ( | std::list< fk_GraphEdge * > * | list | ) |

始点接続辺取得関数2

このノードに接続している辺のうち、以下の条件に当てはまる辺を取得します。

- 双方向辺。
- 一方通行辺のうち、このノードが始点となっている辺。

引数

  [out] | list | 接続辺の list 集合。

## ◆ getEndEdge() [1/2]

std::list< fk_GraphEdge * > FK::fk_GraphNode::getEndEdge | ( | void |  | ) |

終点接続辺取得関数1

このノードに接続している辺のうち、以下の条件に当てはまる辺を取得します。

- 双方向辺。
- 一方通行辺のうち、このノードが終点となっている辺。

戻り値
  接続辺の list 集合。

## ◆ getEndEdge() [2/2]

void FK::fk_GraphNode::getEndEdge | ( | std::list< fk_GraphEdge * > * | list | ) |

終点接続辺取得関数2

このノードに接続している辺のうち、以下の条件に当てはまる辺を取得します。

- 双方向辺。
- 一方通行辺のうち、このノードが終点となっている辺。

引数

  [out] | list | 接続辺の list 集合。

## ◆ getNextNode() [1/2]

std::list< fk_GraphNode * > FK::fk_GraphNode::getNextNode | ( | void |  | ) |

接続終点取得関数1

このノードと隣接するノードのうち、以下の条件に当てはまるノードを取得します。

- 双方向辺で接続しているノード。
- このノードが始点である一方通行辺に接続している終点ノード。

戻り値
  接続点の list 集合

参照
  getStartEdge(void), getNextNode(std::list<fk_GraphNode *> *), getPrevNode(void)

## ◆ getNextNode() [2/2]

void FK::fk_GraphNode::getNextNode | ( | std::list< fk_GraphNode * > * | list | ) |

接続終点取得関数2

このノードと隣接するノードのうち、以下の条件に当てはまるノードを取得します。

- 双方向辺で接続しているノード。
- このノードが始点である一方通行辺に接続している終点ノード。

引数

  [out] | list | 接続点の list 集合

参照
  getStartEdge(std::list<fk_GraphEdge *> *), getNextNode(void), getPrevNode(std::list<fk_GraphNode *> *)

## ◆ getPrevNode() [1/2]

std::list< fk_GraphNode * > FK::fk_GraphNode::getPrevNode | ( | void |  | ) |

接続始点取得関数1

このノードと隣接するノードのうち、以下の条件に当てはまるノードを取得します。

- 双方向辺で接続しているノード。
- このノードが終点である一方通行辺に接続している始点ノード。

戻り値
  接続点の list 集合

参照
  getEndEdge(void), getPrevNode(std::list<fk_GraphNode *> *), getNextNode(void)

## ◆ getPrevNode() [2/2]

void FK::fk_GraphNode::getPrevNode | ( | std::list< fk_GraphNode * > * | list | ) |

接続始点取得関数2

このノードと隣接するノードのうち、以下の条件に当てはまるノードを取得します。

- 双方向辺で接続しているノード。
- このノードが終点である一方通行辺に接続している始点ノード。

引数

  [out] | list | 接続点の list 集合

参照
  getEndEdge(std::list<fk_GraphEdge *> *), getPrevNode(void), getNextNode(std::list<fk_GraphNode *> *)

## ◆ setIntCost()

void FK::fk_GraphNode::setIntCost | ( | unsigned int | ID,
|  | int | cost,
|  | int | prev = -1 )

整数型コスト設定関数

整数型コストを設定します。

引数

  [in] | ID | コスト ID
  [in] | cost | コスト値
  [in] | prev | 前ノード ID (省略可)

参照
  setDoubleCost(), getIntCost(), clearIntCost(), isDoneIntCost()

## ◆ setDoubleCost()

void FK::fk_GraphNode::setDoubleCost | ( | unsigned int | ID,
|  | double | cost,
|  | int | prev = -1 )

実数型コスト設定関数

実数型コストを設定します。

引数

  [in] | ID | コスト ID
  [in] | cost | コスト値
  [in] | prev | 前ノード ID (省略可)

参照
  setIntCost(), getDoubleCost(), clearDoubleCost(), isDoneDoubleCost()

## ◆ getIntCost()

int FK::fk_GraphNode::getIntCost | ( | unsigned int | ID | ) |

整数型コスト取得関数

整数型コストを取得します。 なお、ID に対応するコスト値が未設定だった場合は 0 が返りますが、 取得後も未設定状態のままになります。

引数

  [in] | ID | コスト ID

戻り値
  コスト値

参照
  getDoubleCost(), setIntCost(), clearIntCost(), isDoneIntCost()

## ◆ getDoubleCost()

double FK::fk_GraphNode::getDoubleCost | ( | unsigned int | ID | ) |

実数型コスト取得関数

実数型コストを取得します。 なお、ID に対応するコスト値が未設定だった場合は 0.0 が返りますが、 取得後も未設定状態のままになります。

引数

  [in] | ID | コスト ID

戻り値
  コスト値

参照
  getIntCost(), setDoubleCost(), clearDoubleCost(), isDoneDoubleCost()

## ◆ clearIntCost()

void FK::fk_GraphNode::clearIntCost | ( | unsigned int | ID | ) |

整数型コスト設定解除関数

整数型コストの設定を解除し、未設定状態とします。

引数

  [in] | ID | コスト ID

参照
  clearDoubleCost(), setIntCost(), getIntCost(), isDoneIntCost()

## ◆ clearDoubleCost()

void FK::fk_GraphNode::clearDoubleCost | ( | unsigned int | ID | ) |

実数型コスト設定解除関数

実数型コストの設定を解除し、未設定状態とします。

引数

  [in] | ID | コスト ID

参照
  clearIntCost(), setDoubleCost(), getDoubleCost(), isDoneDoubleCost()

## ◆ isDoneIntCost()

bool FK::fk_GraphNode::isDoneIntCost | ( | unsigned int | ID | ) |

整数型コスト設定状態参照関数

整数型コストが設定済がどうかを参照します。

引数

  [in] | ID | コスト ID

戻り値
  対応する ID のコストが設定されている場合 true を、 未設定の場合 false を返します。

参照
  isDoneDoubleCost(), setIntCost(), getIntCost(), clearIntCost()

## ◆ isDoneDoubleCost()

bool FK::fk_GraphNode::isDoneDoubleCost | ( | unsigned int | ID | ) |

実数型コスト設定状態参照関数

実数型コストが設定済がどうかを参照します。

引数

  [in] | ID | コスト ID

戻り値
  対応する ID のコストが設定されている場合 true を、 未設定の場合 false を返します。

参照
  isDoneIntCost(), setDoubleCost(), getDoubleCost(), clearDoubleCost()

## ◆ setColor() [1/2]

void FK::fk_GraphNode::setColor | ( | fk_Color | col | ) |

色指定関数1

辺の色を指定します。

引数

  [in] | col | 色値

## ◆ setColor() [2/2]

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

色指定関数2

辺の色を指定します。

引数

  [in] | col | 色値