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型からの代入演算子の定義。 代入される矩形。

注意事項