FineKernelToolKit 4.2.13
|
ソリッドモデルのループ位相を管理するクラス [詳解]
#include <FK/Loop.h>
公開メンバ関数 | |
fk_Loop (int=FK_UNDEFINED) | |
コンストラクタ | |
virtual | ~fk_Loop () |
デストラクタ | |
fk_Half * | getOneHalf (void) const |
接続半稜線取得関数 | |
fk_Vector * | getNormal (void) |
法線ベクトル取得関数 | |
int | getVNum (void) const |
頂点数取得関数 | |
void | setTesselateMode (bool mode) |
テセレーション設定関数 | |
bool | getTesselateMode (void) |
テセレーション設定取得関数 | |
bool | isTesselated (void) |
テセレーション状態参照関数 | |
void | setSurfGeometry (fk_Surface *surface) |
幾何曲面形状設定関数 | |
fk_Surface * | getSurfGeometry (void) |
幾何曲面形状取得関数 | |
![]() | |
fk_Topology (void) | |
コンストラクタ | |
virtual | ~fk_Topology () |
デストラクタ | |
int | getID (void) const |
ID取得関数 | |
fk_TopologyType | getType (void) const |
位相タイプ取得関数 | |
![]() | |
fk_Attribute (void) | |
コンストラクタ | |
virtual | ~fk_Attribute () |
デストラクタ | |
bool | setAttrII (const int key, const int value) |
キーが int 型、値が int 型である属性設定関数 | |
bool | setAttrID (const int key, const double value) |
キーが int 型、値が double 型である属性設定関数 | |
bool | setAttrIS (const int key, const std::string value) |
キーが int 型、値が std::string 型である属性設定関数 | |
bool | setAttrSI (const std::string key, const int value) |
キーが std::string 型、値が int 型である属性設定関数 | |
bool | setAttrSD (const std::string key, const double value) |
キーが std::string 型、値が double 型である属性設定関数 | |
bool | setAttrSS (const std::string key, const std::string value) |
キーが std::string 型、値が std::string 型である属性設定関数 | |
int | getAttrII (const int key) const |
キーが int 型、値が int 型である属性参照関数 | |
double | getAttrID (const int key) const |
キーが int 型、値が double 型である属性参照関数 | |
std::string | getAttrIS (const int key) const |
キーが int 型、値が std::string 型である属性参照関数 | |
int | getAttrSI (const std::string key) const |
キーが std::string 型、値が int 型である属性参照関数 | |
double | getAttrSD (const std::string key) const |
キーが std::string 型、値が double 型である属性参照関数 | |
std::string | getAttrSS (const std::string key) const |
キーが std::string 型、値が std::string 型である属性参照関数 | |
bool | existAttrII (const int key) const |
キーが int 型、値が int 型である属性存在参照関数 | |
bool | existAttrID (const int key) const |
キーが int 型、値が double 型である属性存在参照関数 | |
bool | existAttrIS (const int key) const |
キーが int 型、値が std::string 型である属性存在参照関数 | |
bool | existAttrSI (const std::string key) const |
キーが std::string 型、値が int 型である属性存在参照関数 | |
bool | existAttrSD (const std::string key) const |
キーが std::string 型、値が double 型である属性存在参照関数 | |
bool | existAttrSS (const std::string key) const |
キーが std::string 型、値が std::string 型である属性存在参照関数 | |
bool | deleteAttrII (const int key) |
キーが int 型、値が int 型である属性消去関数 | |
bool | deleteAttrID (const int key) |
キーが int 型、値が double 型である属性消去関数 | |
bool | deleteAttrIS (const int key) |
キーが int 型、値が std::string 型である属性消去関数 | |
bool | deleteAttrSI (const std::string key) |
キーが std::string 型、値が int 型である属性消去関数 | |
bool | deleteAttrSD (const std::string key) |
キーが std::string 型、値が double 型である属性消去関数 | |
bool | deleteAttrSS (const std::string key) |
キーが std::string 型、値が std::string 型である属性消去関数 | |
![]() | |
fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT) | |
コンストラクタ | |
fk_Type | getObjectType (void) const |
タイプ取得関数 | |
ソリッドモデルのループ位相を管理するクラス
このクラスは、 fk_Solid によるソリッドモデルにおいて、 ループ位相に関する制御機能を提供します。 FK におけるソリッドモデルの構造については、 ユーザーズマニュアルの「形状に対する高度な操作」の章を参照して下さい。
派生クラスのうち、ID 管理については fk_Topology, 属性設定については fk_Attribute を参照して下さい。
ループに対して、幾何形状として曲面データを設定することができます。 詳細は fk_Surface を参照して下さい。
FK::fk_Loop::fk_Loop | ( | int | = FK_UNDEFINED | ) |
コンストラクタ
|
virtual |
デストラクタ
fk_Half * FK::fk_Loop::getOneHalf | ( | void | ) | const |
接続半稜線取得関数
このループを構成する半稜線のうちの1つを取得します。 条件を満たす全ての半稜線を得たい場合は、 fk_ReferenceL2::getAllHOnL() 関数を用いて下さい。
fk_Vector * FK::fk_Loop::getNormal | ( | void | ) |
法線ベクトル取得関数
適切な法線ベクトルを取得します。 ループが曲面である場合は、面全体の平均法線ベクトルを返します。 返り値が実体ではなくポインタであることに注意して下さい。 特に、nullptr を返すケースがありえることは重要です。
int FK::fk_Loop::getVNum | ( | void | ) | const |
void FK::fk_Loop::setTesselateMode | ( | bool | mode | ) |
テセレーション設定関数
「テセレーション」とは、4角以上の多角形に対し、 内部を複数の3角形に分割する処理のことです。 一般的に、非凸多角形や非平面多角形である場合、 描画処理が適切に行えないことがあります。 そのようなループに対しては、 テセレーションを施すことによって正常に描画されることが期待できます。
形状中の全てのループに対して、テセレーションの有無効を設定するには、 fk_Operation::setTesselateMode() を利用して下さい。
[in] | mode | true の場合、4角以上のループに対してテセレーション処理を施すようになります。 false の場合はテセレーション処理を行いません。 |
bool FK::fk_Loop::getTesselateMode | ( | void | ) |
bool FK::fk_Loop::isTesselated | ( | void | ) |
テセレーション状態参照関数
テセレーションが有効になっていても、ループが 3 角形であった場合など、 内部ではテセレーション処理を行っていない可能性があります。 実際にテセレーション処理を行ったかどうかを知るには、 この関数を用いる必要があります。
void FK::fk_Loop::setSurfGeometry | ( | fk_Surface * | surface | ) |
幾何曲面形状設定関数
任意の自由曲面を幾何曲面としてループに設定します。 fk_Surface の条件を満たせばユーザによる自作クラスも設定することができます。 条件については fk_Surface を参照して下さい。
[in] | surface | 幾何曲面インスタンスのアドレス |
fk_Surface * FK::fk_Loop::getSurfGeometry | ( | void | ) |
幾何曲面形状取得関数
ループに設定されている自由曲面を取得します。