SquareAreaのマニュアル

Ver. 1.10
2009/03/20

概要

グラフィックを使用する上で、矩形のエリアを保持するために作成したクラスです。マウスの左ボタンドラッグで描かれる矩形ラバーバンドの描画管理を、主な目的としています。
TRectと似ており、TRectと相互変換できますし、置き換えも簡単です。
またCanvas::Polygon()メソッドで使用する形式で四隅の座標を返すことも出来ます。


TSqaRelation

矩形エリアと任意の点の関係を示す列挙型です。

シンボル 値 説明
sarOuter 0 矩形の外部。近傍を含まない。
sarInner 0xF 矩形の内部。近傍を含まない。
sarEdgeLeft 0x1 左辺上、またはその近傍。
sarEdgeTop 0x2 上辺上、またはその近傍。
sarEdgeRight 0x4 右辺上、またはその近傍。
sarEdgeBottom 0x8 下辺上、またはその近傍。
sarCornerTL 0x3 左上角上、またはその近傍。
sarCornerTR 0x6 右上角上、またはその近傍。
sarCornerBL 0x9 左下角上、またはその近傍。
sarCornerBR 0xc 右下角上、またはその近傍。

TSqaOrientation

矩形の向きを表す列挙型です。

シンボル 値 説明
saoPortrait 0 ポートレート(縦長)。
saoLandsape 1 ランドスケープ(横長)。
saoSquare 2 正方形。

TSquareArea

継承

基底クラスですので、継承していません。

プロパティ、メンバ

メンバ名 型 説明
Start TPoint 始点座標。左上とは限りません。
End TPoint 終点座標。右下とは限りません。
Left int 矩形エリアの左端のx座標。つまり始点または終点のx座標の小さい方。
Top int 矩形エリアの上端のy座標。つまり始点または終点のy座標の小さい方。
Right int 矩形エリアの右端のx座標。つまり始点または終点のx座標の大きい方+1。
この座標は矩形エリアに含まれません。
Bottom int 矩形エリアの下端のy座標。つまり始点または終点のy座標の大きい方+1。
この座標は矩形エリアに含まれません。
NeighborWidth int 辺・頂点の近隣と判断する範囲。内側・外側ともこの値ずつの範囲を近隣と判断します。
Orientation TSqaOrientation 矩形の向きを表す。読み出し専用。
DragMode TSqaRelation 変更されている辺・頂点を表す。

メソッド

宣言 説明 戻り値
TSquareArea(); デフォルトコンストラクタ。 生成されたインスタンスへのポインタ。
TSquareArea(const TSquareArea &source); コピーコンストラクタ。 生成されたインスタンスへのポインタ。
TSquareArea(const TPoint &start, const TPoint &end); 始点と終点からのコンストラクタ。 生成されたインスタンスへのポインタ。
TSquareArea(int left, int top, int right, int bottom); 四辺の座標からのコンストラクタ。 生成されたインスタンスへのポインタ。
TSquareArea(const TRect &source); TRectからのコンストラクタ。 生成されたインスタンスへのポインタ。
void Assign(const TSquareArea *source); 他のTSquareAreaの内容をコピー。 なし。
void Assign(const TRect *source); TRectの内容をコピー。 なし。
TRect GetRect(void); TRectで四辺の座標を返す。 四辺の座標。
void GetCornerPoints(TPoints cornerPoints[4]); TPoint型で四隅の座標を返す。Canvas::Polygon()メソッドの頂点座標として使用できる。 なし。
int Width(void); 矩形の幅を返す。 矩形の幅。
int Height(void); 矩形の高さを返す。 矩形の高さ。
void Move(int dX, int dY); 矩形を平行移動する。 なし。
void Move(const TPoint delta); なし。
void MoveTo(int x, int y); 幅・高さは変化させず、始点Startを座標(x, y)に移動。 なし。
void MoveTo(const TPoint start); 幅・高さは変化させず、始点Startを座標startに移動。 なし。
bool IsValid(void); 矩形が有効か否かを返す。すべての座標値が負でない場合に有効と判断する。 有効の場合true。
無効の場合false。
bool IsInner(int x, int y); 引数x, yで指定された座標が矩形の内部であるか否か判断する。 内部の場合true。
外部の場合false。
bool IsInner(const TPoint &position); 引数positionで指定された座標が矩形の内部であるか否か判断する。 内部の場合true。
外部の場合false。
bool IsOnEdgeLeft(int x, int y); 引数x, yで指定された座標が左辺上であるか否か判断する。 左辺上の場合true。
左辺上の場合false。
bool IsOnEdgeLeft(const TPoint &position); 引数positionで指定された座標が左辺上であるか否か判断する。 左辺上の場合true。
左辺上の場合false。
bool IsOnEdgeTop(int x, int y); 引数x, yで指定された座標が上辺上であるか否か判断する。 上辺上の場合true。
上辺上の場合false。
bool IsOnEdgeTop(const TPoint &position); 引数positionで指定された座標が上辺上であるか否か判断する。 上辺上の場合true。
上辺上の場合false。
bool IsOnEdgeRight(int x, int y); 引数x, yで指定された座標が右辺上であるか否か判断する。 右辺上の場合true。
右辺上の場合false。
bool IsOnEdgeRight(const TPoint &position); 引数positionで指定された座標が右辺上であるか否か判断する。 右辺上の場合true。
右辺上の場合false。
bool IsOnEdgeBottom(int x, int y); 引数x, yで指定された座標が下辺上であるか否か判断する。 下辺上の場合true。
下辺上の場合false。
bool IsOnEdgeBottom(const TPoint &position); 引数positionで指定された座標が下辺上であるか否か判断する。 下辺上の場合true。
下辺上の場合false。
bool IsOnEdge(int x, int y); 引数x, yで指定された座標がいずれかの辺上であるか否か判断する。 辺上の場合true。
辺上の場合false。
bool IsOnEdge(const TPoint &position); 引数positionで指定された座標がいずれかの辺上であるか否か判断する。 辺上の場合true。
辺上の場合false。
bool IsNearEdgeLeft(int x, int y); 引数x, yで指定された座標が左辺の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearEdgeLeft(const TPoint &position); 引数positionで指定された座標が左辺の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearEdgeTop(int x, int y); 引数x, yで指定された座標が上辺の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearEdgeTop(const TPoint &position); 引数positionで指定された座標が上辺の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearEdgeRight(int x, int y); 引数x, yで指定された座標が右辺の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearEdgeRight(const TPoint &position); 引数positionで指定された座標が右辺の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearEdgeBottom(int x, int y); 引数x, yで指定された座標が下辺の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearEdgeBottom(const TPoint &position); 引数positionで指定された座標が下辺の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearCornerTL(int x, int y); 引数x, yで指定された座標が左上角の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearCornerTL(const TPoint &position); 引数positionで指定された座標が左上角の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearCornerTR(int x, int y); 引数x, yで指定された座標が右上角の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearCornerTR(const TPoint &position); 引数positionで指定された座標が右上角の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearCornerBL(int x, int y); 引数x, yで指定された座標が左下角の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearCornerBL(const TPoint &position); 引数positionで指定された座標が左下角の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearCornerBR(int x, int y); 引数x, yで指定された座標が右下角の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
bool IsNearCornerBR(const TPoint &position); 引数positionで指定された座標が右下角の近傍であるか否か判断する。 近傍の場合はtrue。
そうでないならfalse。
TSqaRelation Where(int x, int y); 引数x, yで指定された座標と矩形の関係を返す。 指定座標と矩形の関係。
TSqaRelation Where(const TPoint &position); 引数positionで指定された座標と矩形の関係を返す。 指定座標と矩形の関係。
bool operator ==(const TSquareArea &rc); 引数rcと同一の座標か否かを返す。 同一の場合true。
異なるならfalse。
bool operator !=(const TSquareArea &rc); 引数rcと異なる座標か否かを返す。 異なる場合true。
同一ならfalse。
bool operator ==(const TRect &rc); 引数rcと同一の座標か否かを返す。 同一の場合true。
異なるならfalse。
bool operator !=(const TRect &rc); 引数rcと異なる座標か否かを返す。 異なる場合true。
同一ならfalse。
TSquareArea & operator =(const TSquareArea &rc); TSquareArea型からの代入演算子の定義。 代入される矩形。
TSquareArea & operator =(const TRect &rc); TRect型からの代入演算子の定義。 代入される矩形。

注意事項