![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
SFXRectangle には比較、判定、各種演算のためのメンバ関数が存在します。
SFXRectangle rectangle1(10, 20, 30, 40); SFXRectangle rectangle2(20, 10, 30, 40); SFXRectangle rectangle3; // 比較 if (rectangle1 == rectangle2) { // rectangle1 と rectangle2 が長方形として等しい(重なる)なら } // 長方形が有効かどうか if (rectangle1.IsEmpty()) { // 幅が 0 以下、または高さが 0 以下なら } // 長方形の包含関係 if (rectangle1.IsInsideOf(rectangle2)) { // rectangle1 が rectangle2 に含まれるなら } // 2つの長方形の重なった部分を取得 rectangle3 = rectangle1.Intersection(rectangle2); // 長方形の重なり判定 if (rectangle1.IntersectsWith(rectangle2)) { // 2つの長方形の重なった部分が存在するなら } // 2つの長方形を含む長方形を取得 rectangle3 = rectangle1.Union(rectangle2); // 2つの長方形を含む長方形が存在するか判定 if (rectangle1.UnifiesWith(rectangle2)) { // 2つの長方形を含む長方形が存在するなら } // 幅と高さが負の場合は正にする rectangle1.Normalize();
図形クラスの定数オブジェクト生成時にはコンストラクタが呼び出され、わずかながらオーバーヘッドが生じます。
例
SFXRectangleConst rectangle(10, 20, 30, 40); // rectangle は定数。コンストラクタが呼び出される。 SFXLineConst line(50, 60, 70, 80); // line は定数。コンストラクタが呼び出される。 graphics->DrawRectangle(rectangle); graphics->DrawLine(line);
AtomRec 構造体を用いて定数オブジェクトを生成すると、このオーバーヘッドがなくなります。
// rectangle は定数。コンストラクタは呼び出されない。 static SFXRectangle::AtomRecConst rectangle = { 10, 20, 30, 40 }; // line は定数。コンストラクタは呼び出されない。 static SFXLine::AtomRecConst line = { 50, 60, 70, 80 }; graphics->DrawRectangle(rectangle); graphics->DrawLine(line);
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|