# クラス fk_Loop

ソリッドモデルのループ位相を管理するクラス [詳細]

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

すべてのメンバ一覧

## Public メソッド
| fk_Loop (int)
| コンストラクタ
| ~fk_Loop ()
| デストラクタ
fk_Half * | getOneHalf (void) const
| 接続半稜線取得関数
fk_Vector * | getNormal (void)
| 法線ベクトル取得関数
void | setTesselateMode (bool mode)
| テセレーション設定関数
bool | getTesselateMode (void)
| テセレーション設定取得関数
bool | isTesselated (void)
| テセレーション状態参照関数
void | setSurfGeometry (fk_Surface *surface)
| 幾何曲面形状設定関数
fk_Surface * | getSurfGeometry (void)
| 幾何曲面形状取得関数

## 説明

ソリッドモデルのループ位相を管理するクラス

このクラスは、 fk_Solid によるソリッドモデルにおいて、 ループ位相に関する制御機能を提供します。 FK におけるソリッドモデルの構造については、 ユーザーズマニュアルの「形状に対する高度な操作」の章を参照して下さい。

派生クラスのうち、ID 管理については fk_Topology, 個別マテリアル設定については fk_TopologyMaterial, 属性設定については fk_Attribute を参照して下さい。

ループに対して、幾何形状として曲面データを設定することができます。 詳細は fk_Surface を参照して下さい。

参照:
  fk_Solid, fk_Vertex, fk_Half, fk_Edge, fk_Topology, fk_TopologyMaterial, fk_Attribute, fk_Surface

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

fk_Loop::fk_Loop | ( | int |  | ) |

コンストラクタ

fk_Loop::~fk_Loop | ( |  | ) |

デストラクタ

## 関数

fk_Half* fk_Loop::getOneHalf | ( | void |  | ) | const

接続半稜線取得関数

このループを構成する半稜線のうちの1つを取得します。 条件を満たす全ての半稜線を得たい場合は、 fk_ReferenceL2::getAllHOnL() 関数を用いて下さい。

戻り値:
  このループを構成する半稜線を表す fk_Half 型インスタンスのアドレス。

fk_Vector* fk_Loop::getNormal | ( | void |  | ) |

法線ベクトル取得関数

適切な法線ベクトルを取得します。 ループが曲面である場合は、面全体の平均法線ベクトルを返します。 返り値が実体ではなくポインタであることに注意して下さい。 特に、NULL を返すケースがありえることは重要です。

戻り値:
  法線ベクトルのアドレス。算出できなかった場合は NULL を返します。

void fk_Loop::setTesselateMode | ( | bool | mode | ) |

テセレーション設定関数

「テセレーション」とは、4角以上の多角形に対し、 内部を複数の3角形に分割する処理のことです。 一般的に、非凸多角形や非平面多角形である場合、 描画処理が適切に行えないことがあります。 そのようなループに対しては、 テセレーションを施すことによって正常に描画されることが期待できます。

形状中の全てのループに対して、テセレーションの有無効を設定するには、 fk_Operation::setTesselateMode() を利用して下さい。

引数:

  `[in]` | mode | true の場合、 4角以上のループに対してテセレーション処理を施すようになります。 false の場合はテセレーション処理を行いません。

参照:
  fk_Operation::setTesselateMode()

bool fk_Loop::getTesselateMode | ( | void |  | ) |

テセレーション設定取得関数

現在のテセレーション設定を取得します。 テセレーションに関する詳細は setTesselateMode() を参照して下さい。

戻り値:
  テセレーション設定。

参照:
  isTesselated(), fk_Operation::getTesselateMode()

bool fk_Loop::isTesselated | ( | void |  | ) |

テセレーション状態参照関数

テセレーションが有効になっていても、ループが 3 角形であった場合など、 内部ではテセレーション処理を行っていない可能性があります。 実際にテセレーション処理を行ったかどうかを知るには、 この関数を用いる必要があります。

戻り値:
  true であれば、ループに対しテセレーション処理が行われています。 false であれば行われていません。

参照:
  getTesselateMode()

void fk_Loop::setSurfGeometry | ( | fk_Surface * | surface | ) |

幾何曲面形状設定関数

任意の自由曲面を幾何曲面としてループに設定します。 fk_Surface の条件を満たせばユーザによる自作クラスも設定することができます。 条件については fk_Surface を参照して下さい。

引数:

  `[in]` | surface | 幾何曲面インスタンスのアドレス

fk_Surface* fk_Loop::getSurfGeometry | ( | void |  | ) |

幾何曲面形状取得関数

ループに設定されている自由曲面を取得します。

戻り値:
  自由曲面インスタンスのアドレス。 設定されていなかった場合は NULL を返します。