Ver. 1.10
2009/03/20
グラフィックを使用する上で、矩形のエリアを保持するために作成したクラスです。マウスの左ボタンドラッグで描かれる矩形ラバーバンドの描画管理を、主な目的としています。
TRectと似ており、TRectと相互変換できますし、置き換えも簡単です。
またCanvas::Polygon()メソッドで使用する形式で四隅の座標を返すことも出来ます。
矩形エリアと任意の点の関係を示す列挙型です。
シンボル | 値 | 説明 |
---|---|---|
sarOuter | 0 | 矩形の外部。近傍を含まない。 |
sarInner | 0xF | 矩形の内部。近傍を含まない。 |
sarEdgeLeft | 0x1 | 左辺上、またはその近傍。 |
sarEdgeTop | 0x2 | 上辺上、またはその近傍。 |
sarEdgeRight | 0x4 | 右辺上、またはその近傍。 |
sarEdgeBottom | 0x8 | 下辺上、またはその近傍。 |
sarCornerTL | 0x3 | 左上角上、またはその近傍。 |
sarCornerTR | 0x6 | 右上角上、またはその近傍。 |
sarCornerBL | 0x9 | 左下角上、またはその近傍。 |
sarCornerBR | 0xc | 右下角上、またはその近傍。 |
矩形の向きを表す列挙型です。
シンボル | 値 | 説明 |
---|---|---|
saoPortrait | 0 | ポートレート(縦長)。 |
saoLandsape | 1 | ランドスケープ(横長)。 |
saoSquare | 2 | 正方形。 |
基底クラスですので、継承していません。
メンバ名 | 型 | 説明 |
---|---|---|
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型からの代入演算子の定義。 | 代入される矩形。 |