FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
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]arrayfk_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]modetrue であれば描画を有効に、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色値