WIL説明書(C++)  3.1.0
全メンバ一覧 | 公開型 | 公開メンバ関数 | 公開変数類 | 限定公開メンバ関数
FVCL::GDI::CFvGdiLineSegment クラス

GDI線分構造クラス [詳解]

詳解

GDI線分構造クラス

namespace FVCL::GDI

2点の座標を格納するデータ構造クラスです。
FVCL::Data::CFvLineSegment クラスをオーバレイ描画する為に使用します。

必要条件:
ヘッダー: FVCLbasic.h
解説:
画素の左上隅を通る線分を描画します。
CFvGdiLineSegment.png
図形の回転:
親クラス(CFvGdiFigure)が持つ回転角を指定すると、図形を回転して描画できます。 回転中心は、回転の機軸に指定された画素の左上隅になります。 回転角と回転の機軸については CFvGdiFigure::SetAngle 及び CFvGdiFigure::SetAxis をご参照ください。
CFvGdiLineSegment_rotate.png
図形の選択:
図形が選択された事を表す選択マークを描画できます。 この図形が選択中の時は、始点・終点及びそれらの中央に選択マークを表示します。 この処理は描画関数(Play)で自動的に行われます。 選択の有無は CFvGdiFigure::SetSelect で切り替えてください。 描画属性は、 SetFocusMarkParam で切り替えてください。 描画属性の既定値は、 SetDefaultFocusMarkParam で設定できます。 選択マークの表示については、 CFvGdiLineSegment::DrawFocusMark をご参照ください。
CFvGdiLineSegment_DrawFocusMark.png
初期値:
メンバ変数は、下記のように初期化されます。
メンバ変数 初期値 意味 メソッド
st 0,0 線分の始点 (フィールドを直接アクセスできます)
ed 0,0 線分の終点 (フィールドを直接アクセスできます)
参照
CFvGdiFigure::SetAngle
CFvGdiFigure::SetAxis
CFvGdiFigure::SetSelect
CFvGdiLineSegment::DrawFocusMark
+ FVCL::GDI::CFvGdiLineSegment の継承関係図

公開型

enum  { DataID = FVCL::Data::CFvLineSegment::DataID }
 

公開メンバ関数

 CFvGdiLineSegment ()
 コンストラクタ [詳解]
 
 CFvGdiLineSegment (const CFvGdiLineSegment &src)
 コピーコンストラクタ [詳解]
 
 CFvGdiLineSegment (const FVCL::Data::CFvLineSegment &src)
 コンストラクタ [詳解]
 
 CFvGdiLineSegment (const FVCL::Data::CFvPoint &st, const FVCL::Data::CFvPoint &ed)
 コンストラクタ [詳解]
 
 CFvGdiLineSegment (DOUBLE sx, DOUBLE sy, DOUBLE ex, DOUBLE ey)
 コンストラクタ [詳解]
 
virtual ~CFvGdiLineSegment ()
 デストラクタ [詳解]
 
virtual INT GetDataID () const
 データIDの取得 [詳解]
 
virtual INT Play (HDC dc, DOUBLE magnification) const
 描画処理 [詳解]
 
virtual bool GetDataObject (CFvDataObject *object) const
 データオブジェクトへの変換 [詳解]
 
virtual CFvGdiFigureClone () const
 クローンの生成 [詳解]
 
virtual FVCL::Data::CFvRectangle GetClipRect () const
 外接矩形の取得 [詳解]
 
virtual INT CheckFocusMarkPosition (const FVCL::Data::CFvPoint &mouse, DOUBLE margin=2.0) const
 マウス位置の確認 [詳解]
 
virtual bool SetPosition (const FVCL::Data::CFvPoint &position)
 描画座標の設定 [詳解]
 
virtual const FVCL::Data::CFvPointGetPosition () const
 描画座標の取得 [詳解]
 
DOUBLE GetWidth () const
 幅の取得 [詳解]
 
DOUBLE GetHeight () const
 高さの取得 [詳解]
 
virtual CFvGdiLineSegmentoperator= (const FVCL::Data::CFvLineSegment &ope)
 代入オペレータ (=) [詳解]
 
virtual CFvGdiLineSegmentoperator= (const CFvGdiLineSegment &ope)
 代入オペレータ (=) [詳解]
 
virtual bool operator== (const CFvGdiFigure &ope) const
 比較オペレータ (==) [詳解]
 
virtual bool operator!= (const CFvGdiFigure &ope) const
 比較オペレータ (!=) [詳解]
 
FVCL::Data::CFvLineSegment ToCFvLineSegment () const
 CFvLineSegment への変換 [詳解]
 
- 基底クラス FVCL::GDI::CFvGdiFigure に属する継承公開メンバ関数
 CFvGdiFigure ()
 コンストラクタ [詳解]
 
virtual ~CFvGdiFigure ()
 デストラクタ [詳解]
 
virtual CFvGdiFigureoperator= (const CFvGdiFigure &ope)
 代入オペレータ (=) [詳解]
 
bool SetAxis (const FVCL::Data::CFvPoint &position)
 回転の機軸座標の設定 [詳解]
 
const FVCL::Data::CFvPointGetAxis () const
 回転の機軸座標の取得 [詳解]
 
bool SetAngle (DOUBLE degree)
 傾きの設定 [詳解]
 
DOUBLE GetAngle () const
 傾きの取得 [詳解]
 
bool SetEnable (bool enable)
 可視属性の設定 [詳解]
 
bool GetEnable () const
 可視属性の取得 [詳解]
 
bool SetSelect (bool select)
 選択状態の設定 [詳解]
 
bool GetSelect () const
 選択状態の取得 [詳解]
 
bool SetPen (const CFvGdiPen &pen)
 ペンの設定 [詳解]
 
const CFvGdiPenGetPen () const
 ペンの取得 [詳解]
 
CFvGdiPenGetPen ()
 ペンの取得 [詳解]
 
bool SetPenEnable (bool enable)
 ペンの有効無効の切り替え [詳解]
 
bool GetPenEnable () const
 ペンの有効無効の取得 [詳解]
 
bool SetBrush (const CFvGdiBrush &brush)
 ブラシの設定 [詳解]
 
const CFvGdiBrushGetBrush () const
 ブラシの取得 [詳解]
 
CFvGdiBrushGetBrush ()
 ブラシの取得 [詳解]
 
bool SetBrushEnable (bool enable)
 ブラシの有効無効の切り替え [詳解]
 
bool GetBrushEnable () const
 ブラシの有効無効の取得 [詳解]
 
bool SetBkMode (INT mode)
 背景モードの設定 [詳解]
 
INT GetBkMode () const
 背景モードの取得 [詳解]
 
bool SetBkColor (COLORREF color)
 背景色の設定 [詳解]
 
COLORREF GetBkColor () const
 背景色の取得 [詳解]
 
bool SetFocusMarkParam (const CFvFocusMarkParam &param)
 選択マークの描画属性の設定 [詳解]
 
const CFvFocusMarkParamGetFocusMarkParam () const
 選択マークの描画属性の取得 [詳解]
 
CFvFocusMarkParamGetFocusMarkParam ()
 選択マークの描画属性の取得 [詳解]
 
bool SetAxisVisible (bool value)
 回転の機軸の可視属性の設定 [詳解]
 
bool GetAxisVisible () const
 回転の機軸の可視属性の取得 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承公開メンバ関数
 CFvObject ()
 標準のコンストラクタ [詳解]
 
virtual ~CFvObject ()
 デストラクタ [詳解]
 
INT SetErrorCode (INT err)
 エラーコードの設定 [詳解]
 
INT SetErrorCode (INT err) const
 エラーコードの設定 [詳解]
 
INT GetErrorCode () const
 エラーコードの取得 [詳解]
 
bool SetAllocateOption (INT value)
 画像領域確保時のオプションの設定 [詳解]
 
INT GetAllocateOption () const
 画像領域確保時のオプションの取得 [詳解]
 
void * operator new (size_t uiSize)
 new オペレータ [詳解]
 
void * operator new[] (size_t uiSize)
 new[] オペレータ [詳解]
 
void operator delete (void *pvObject)
 delete オペレータ [詳解]
 
void operator delete[] (void *pvObject)
 delete[] オペレータ [詳解]
 
void * operator new (size_t uiSize, LPCSTR szFileName, INT iLine)
 new オペレータ [詳解]
 
void * operator new[] (size_t uiSize, LPCSTR szFileName, INT iLine)
 new[] オペレータ [詳解]
 
void operator delete (void *pvObject, LPCSTR szFileName, INT iLine)
 delete オペレータ [詳解]
 
void operator delete[] (void *pvObject, LPCSTR szFileName, INT iLine)
 delete[] オペレータ [詳解]
 
virtual CFvObjectoperator= (const CFvObject &src)
 代入オペレータ [詳解]
 
virtual bool operator== (const CFvObject &src) const
 比較オペレータ (==) [詳解]
 
virtual bool operator!= (const CFvObject &src) const
 比較オペレータ (!=) [詳解]
 

公開変数類

FVCL::Data::CFvPoint st
 始点 [詳解]
 
FVCL::Data::CFvPoint ed
 終点 [詳解]
 

限定公開メンバ関数

virtual bool DrawFocusMark (HDC dc, POINT *vertex, UINT count, POINT axis) const
 選択マーク描画処理 [詳解]
 
- 基底クラス FVCL::GDI::CFvGdiFigure に属する継承限定公開メンバ関数
virtual bool DrawFocusMark (HDC dc, RECT clip, POINT axis) const
 選択マーク描画処理 [詳解]
 
INT CheckClipRectPosition (const FVCL::Data::CFvRectangle &clip, const FVCL::Data::CFvPoint &mouse, DOUBLE margin) const
 マウス位置の確認 [詳解]
 
bool Rotate (DOUBLE x, DOUBLE y, DOUBLE axis_x, DOUBLE axis_y, DOUBLE angle, DOUBLE *tx, DOUBLE *ty) const
 座標の回転 [詳解]
 
bool WorldTransformRotate (HDC dc, DOUBLE axis_x, DOUBLE axis_y, DOUBLE angle) const
 座標の回転設定 [詳解]
 
bool WorldTransformScale (HDC dc, DOUBLE origin_x, DOUBLE origin_y, DOUBLE magnification) const
 座標の回転設定 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承限定公開メンバ関数
INT fnCPUCheck ()
 CPU情報の取得 [詳解]
 

その他の継承メンバ

- 基底クラス FVCL::GDI::CFvGdiFigure に属する継承静的公開メンバ関数
static bool SetDefaultPen (const CFvGdiPen &pen)
 既定のペンの設定 [詳解]
 
static CFvGdiPenGetDefaultPen ()
 既定のペンの取得 [詳解]
 
static bool SetDefaultBrush (const CFvGdiBrush &brush)
 既定のブラシの設定 [詳解]
 
static CFvGdiBrushGetDefaultBrush ()
 既定のブラシの取得 [詳解]
 
static bool SetDefaultFocusMarkParam (const CFvFocusMarkParam &param)
 既定の選択マークの描画属性の設定 [詳解]
 
static CFvFocusMarkParamGetDefaultFocusMarkParam ()
 既定の選択マークの描画属性の取得 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承静的公開メンバ関数
static bool SetDefaultAllocateOption (INT value)
 既定の画像領域確保時のオプションの設定 [詳解]
 
static INT GetDefaultAllocateOption ()
 既定の画像領域確保時のオプションの取得 [詳解]
 
- 基底クラス FVCL::GDI::CFvGdiFigure に属する継承限定公開変数類
FVCL::Data::CFvPoint m_Axis
 回転の機軸 [詳解]
 
DOUBLE m_Angle
 傾き [詳解]
 
bool m_Enable
 可視属性 [詳解]
 
bool m_Select
 選択属性 [詳解]
 
CFvGdiPen m_Pen
 ペン [詳解]
 
bool m_PenEnable
 ペンの有効/無効 [詳解]
 
CFvGdiBrush m_Brush
 ブラシ [詳解]
 
bool m_BrushEnable
 ブラシの有効/無効 [詳解]
 
INT m_BkMode
 背景モード [詳解]
 
COLORREF m_BkColor
 背景色 [詳解]
 
CFvFocusMarkParam m_FocusMarkParam
 選択マーク描画属性 [詳解]
 
bool m_AxisVisible
 機軸の可視属性 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承限定公開変数類
INT m_ErrorCode
 エラーコード [詳解]
 
INT m_AllocateOption
 画像領域確保時のオプション [詳解]
 

列挙型メンバ詳解

anonymous enum
列挙値
DataID 

GDI線分構造クラスのデータID.

この定数は、線分構造クラスのIDを示します。
当クラスの GetDataID メソッドがこの値を返します。

参照
FVCL::GDI::CFvGdiLineSegment

構築子と解体子

FVCL::GDI::CFvGdiLineSegment::CFvGdiLineSegment ( )

コンストラクタ

標準のコンストラクタです。

FVCL::GDI::CFvGdiLineSegment::CFvGdiLineSegment ( const CFvGdiLineSegment src)

コピーコンストラクタ

同一クラスのオブジェクトから複製します。

引数
[in]src複製元
FVCL::GDI::CFvGdiLineSegment::CFvGdiLineSegment ( const FVCL::Data::CFvLineSegment src)

コンストラクタ

初期値を指定してオブジェクトを構築します。

引数
[in]src代入するオブジェクト
FVCL::GDI::CFvGdiLineSegment::CFvGdiLineSegment ( const FVCL::Data::CFvPoint st,
const FVCL::Data::CFvPoint ed 
)

コンストラクタ

初期値を指定してオブジェクトを構築します。

引数
[in]st線分の始点
[in]ed線分の終点
FVCL::GDI::CFvGdiLineSegment::CFvGdiLineSegment ( DOUBLE  sx,
DOUBLE  sy,
DOUBLE  ex,
DOUBLE  ey 
)

コンストラクタ

初期値を指定してオブジェクトを構築します。

引数
[in]sx線分の始点
[in]sy線分の始点
[in]ex線分の終点
[in]ey線分の終点
FVCL::GDI::CFvGdiLineSegment::~CFvGdiLineSegment ( )
virtual

デストラクタ

関数詳解

FVCL::GDI::CFvGdiLineSegment::GetDataID ( ) const
virtual

データIDの取得

戻り値
データIDを返します。
参照
CFvGdiLineSegment::DataID

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiLineSegment::Play ( HDC  dc,
DOUBLE  magnification 
) const
virtual

描画処理

指定されたデバイスコンテキストに図形を描画します。

引数
[in]dc描画先のデバイスコンテキスト
[in]magnification表示倍率 (0.0より大きい値)
戻り値
正常に描画された場合は 1 を返します。 正常に描画されなかった場合または 可視属性(CFvGdiFigure::m_enable)が非可視の場合は 0 を返します。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiLineSegment::GetDataObject ( CFvDataObject object) const
virtual

データオブジェクトへの変換

図形オブジェクトを互換性のあるデータオブジェクトに変換します。

引数
[in,out]object格納先のデータオブジェクトへのポインタ
戻り値
true正常
false異常
解説:
CFvLineSegement へ変換します。
その他のデータオブジェクトを指定した場合は、何もせず戻り値に false を返します。

FVCL::GDI::CFvGdiFigureを再実装しています。

FVCL::GDI::CFvGdiLineSegment::Clone ( ) const
virtual

クローンの生成

この線分構造クラスの複製を生成します。

戻り値
生成された線分構造クラスのオブジェクトへのポインタを返します。
メモリ不足によりオブジェクトを生成できなかった場合は NULL を返します。
解説:
線分構造クラスをヒープ領域に確保して、このオブジェクトの内容を代入して返します。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiLineSegment::GetClipRect ( ) const
virtual

外接矩形の取得

図形に外接する最小の矩形を取得します。

CFvGdiLineSegment_GetClipRect.png
戻り値
外接矩形を返します。
解説:
返される矩形には 回転角(angle) と 機軸(center) が設定されています。
回転角には、この図形の GetAngle から取得した値が設定されます。 回転の機軸は、この図形の GetAxis (GetPosition からの相対値)を 矩形の左上からの相対値に変換した値が設定されます。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiLineSegment::CheckFocusMarkPosition ( const FVCL::Data::CFvPoint mouse,
DOUBLE  margin = 2.0 
) const
virtual

マウス位置の確認

マウスポインタの座標が図形上のどの位置にあるか確認します。

引数
[in]mouseマウスポインタの座標
[in]marginマージン (pixel単位)
戻り値
0図形外
1線分の始点
2線分の終点
-1線分上
解説:
この関数は、指定されたマウス位置が図形上のどの位置にあるかを判定します。
引数 mouse に指定された座標が、始点の上にあると 1 を、 終点の上にあると 2 を返します。(下図の青色部分) それら2点間にあると -1 を返します。(下図の橙色部分)
引数 margin には、マウス位置を判定する際の誤差範囲を指定します。 margin に 1 を指定すると、±1 画素の範囲で判定します。
CFvGdiLineSegment_CheckFocusMarkPosition.png
バージョン
FVCLbasic 2.0.0.0: 従来は線分の中央でのみ -1 を返していましたが、線分上で判定するよう変更しました。
参照
CFvGdiLineSegment::DrawFocusMark

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiLineSegment::SetPosition ( const FVCL::Data::CFvPoint position)
virtual

描画座標の設定

描画位置を変更します。

引数
[in]position描画座標
戻り値
true正常
false異常
解説:
始点(st)を指定された座標に移動します。 始点(st)と終点(ed)の相対位置は保れます。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiLineSegment::GetPosition ( ) const
virtual

描画座標の取得

描画座標を取得します。

戻り値
描画座標を返します。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiLineSegment::GetWidth ( ) const

幅の取得

線分の始点と終点のX座標の差を取得します。

戻り値
終点(ed.x)から始点(st.x)を引いた値をそのまま返します。
FVCL::GDI::CFvGdiLineSegment::GetHeight ( ) const

高さの取得

線分の始点と終点のY座標の差を取得します。

戻り値
終点(ed.y)から始点(st.y)を引いた値をそのまま返します。
FVCL::GDI::CFvGdiLineSegment::operator= ( const FVCL::Data::CFvLineSegment ope)
virtual

代入オペレータ (=)

FVCL::Data::CFvLineSegment クラスのオブジェクトの内容を複製します。

引数
[in]ope代入するオブジェクト
戻り値
代入後の自身のオブジェクトを返します。
FVCL::GDI::CFvGdiLineSegment::operator= ( const CFvGdiLineSegment ope)
virtual

代入オペレータ (=)

同一クラスのオブジェクトの内容を複製します。

引数
[in]ope複製元
戻り値
代入後の自身のオブジェクトを返します。
FVCL::GDI::CFvGdiLineSegment::operator== ( const CFvGdiFigure ope) const
virtual

比較オペレータ (==)

引数
[in]ope比較対象
戻り値
true一致
false不一致
解説:
一般的には、比較オペレータの引数は自身と同一のクラスにしますが、 図形構造クラスでは、引数を基本クラス(CFvGdiFigure)にしています。 これは、基本クラス(CFvGdiFigure)の比較オペレータをオーバーライドする為です。
比較オペレータの引数の型を基本クラスと同一にする事により、 このオブジェクトが基本クラス(CFvGdiFigure)にキャストされていても 比較オペレータを安全に呼び出す事が可能になります。 ユーザ定義の図形構造クラスを作成される場合はこの点(引数の型)にご注意ください。

FVCL::GDI::CFvGdiFigureを再実装しています。

FVCL::GDI::CFvGdiLineSegment::operator!= ( const CFvGdiFigure ope) const
virtual

比較オペレータ (!=)

引数
[in]ope比較対象
戻り値
true不一致
false一致

FVCL::GDI::CFvGdiFigureを再実装しています。

FVCL::GDI::CFvGdiLineSegment::ToCFvLineSegment ( ) const

CFvLineSegment への変換

戻り値
FVCL::Data::CFvLineSegment に変換して返します。
FVCL::GDI::CFvGdiLineSegment::DrawFocusMark ( HDC  dc,
POINT vertex,
UINT  count,
POINT  axis 
) const
protectedvirtual

選択マーク描画処理

図形が選択されている事を示す矩形の枠を表示します。

引数
[in]dc描画先のデバイスコンテキスト
[in]vertex頂点が格納された配列
[in]count頂点の個数
[in]axis回転の機軸(絶対座標)
戻り値
true正常
false異常
解説:
この図形が選択中(※1)の時、描画関数(Play)がこの関数を呼び出します。
線分の始点と終点の2箇所に8x8の正方形と、それらの中央に真円を表示します。 また、回転の機軸(axis)に8x8の真円を表示します。 この選択枠は白と黒の点線で描画されます。
CFvGdiLineSegment_DrawFocusMark.png
※1) 選択状態の取得と設定
CFvGdiFigure::GetSelect
CFvGdiFigure::SetSelect
参照
CFvGdiLineSegment::Play
CFvGdiLineSegment::GetClipRect
CFvGdiFigure::SetSelect
CFvGdiFigure::SetFocusMarkParam
CFvGdiFigure::SetDefaultFocusMarkParam

メンバ詳解

FVCL::GDI::CFvGdiLineSegment::st

始点

線分の始点を保持します。

FVCL::GDI::CFvGdiLineSegment::ed

終点

線分の終点を保持します。


Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時01分34秒 for WIL説明書(C++) by doxygen 1.8.11