MGL::Rectangle
Contents
MGL::Rectangle#
概要#
矩形を表現するための構造体です。
宣言#
namespace MGL
{
struct Rectangle;
}
メンバ情報#
種類 |
名前 |
内容 |
バージョン |
---|---|---|---|
変数 |
1.0.0+ |
||
関数 |
1.0.0+ |
||
関数 |
原点座標の設定 |
1.0.0+ |
|
関数 |
原点座標の取得 |
1.0.0+ |
|
関数 |
サイズの設定 |
1.0.0+ |
|
関数 |
サイズの取得 |
1.0.0+ |
|
関数 |
指定した座標が矩形の内側にあるかを取得 |
1.0.0+ |
公開メンバ変数#
宣言#
struct Rectangle
{
float x; //!< X座標
float y; //!< Y座標
float width; //!< 幅
float height; //!< 高さ
};
説明#
- float x
矩形の原点のX座標
- float y
矩形の原点のY座標
- float width
矩形のX方向の幅
- float height
矩形のY方向の高さ
コンストラクタ#
宣言#
// (1) ゼロ初期化
constexpr Rectangle() noexcept
// (2) 各成分を指定して初期化
constexpr Rectangle(float inX, float inY, float inWidth, float inHeight) noexcept
// (3) 座標とサイズをVector2で指定して初期化
constexpr Rectangle(const Vector2 &position, const Vector2 &size) noexcept
引数#
説明#
矩形を初期化するためのコンストラクタです。
(1)は全ての成分を0.0fで初期化します。
(2)は引数で指定した値を各成分に設定して初期化します。
(3)は座標とサイズをVector2で指定して初期化します。
利用例#
// (1) ゼロ初期化
MGL::Rectangle rectangle1;
// (2) 各成分を指定して初期化
MGL::Rectangle rectangle2(10.0f, 10.0f, 100.0f, 100.0f);
// (3) 座標とサイズをVector2で指定して初期化
MGL::Rectangle rectangle3(MGL::Vector2(10.0f, 10.0f), MGL::Vector2(100.0f, 100.0f));
// ※(2),(3)は(10.0f, 10.0f)の位置に(100.0f, 100.0f)の大きさの矩形を生成
バージョン情報#
- MGL 1.0.0
初回リリース
SetPosition#
矩形の原点の座標を設定します。
宣言#
// (1) X座標とY座標で設定
constexpr void SetPosition(float inX, float inY) noexcept
// (2) Vector2で設定
constexpr void SetPosition(const Vector2 &position) noexcept
引数#
- (1) X座標とY座標で設定
- float inX
設定するX座標
- float inY
設定するY座標
- (2) Vector2で設定
- const Vector2 &position
設定する座標
説明#
矩形のxとyの値を引数で指定した値で書き換えます。
利用例#
MGL::Rectangle rectangle(0.0f, 0.0f, 100.0f, 100.0f);
// (1) X座標とY座標で設定
rectangle.SetPosition(10.0f, 10.0f);
// (2) Vector2で設定
rectangle.SetPosition(MGL::Vector2(10.0f, 10.0f));
バージョン情報#
- MGL 1.0.0
初回リリース
GetPosition#
矩形の原点の座標を取得します。
宣言#
[[nodiscard]] constexpr Vector2 GetPosition() const noexcept
戻り値#
- const Vector2
原点の座標
説明#
矩形のxとyの値をVector2で取得します。
利用例#
MGL::Rectangle rectangle(10.0f, 10.0f, 100.0f, 100.0f);
// 原点座標を取得
auto position = rectangle.GetPosition(); // position = (10.0f, 10.0f)
バージョン情報#
- MGL 1.0.0
初回リリース
SetSize#
矩形のサイズを設定します。
宣言#
// (1) X座標とY座標で設定
constexpr void SetSize(float inX, float inY) noexcept
// (2) Vector2で設定
constexpr void SetSize(const Vector2 &size) noexcept
引数#
- (1) X座標とY座標で設定
- float inX
設定する幅
- float inY
設定する高さ
- (2) Vector2で設定
- const Vector2 &size
設定するサイズ
説明#
矩形のwidthとheightの値を引数で指定した値で書き換えます。
Vector2で指定する場合、xがwidthに、yがheightにそれぞれ対応します。
利用例#
MGL::Rectangle rectangle(0.0f, 0.0f, 100.0f, 100.0f);
// (1) 幅と高さで設定
rectangle.SetSize(200.0f, 200.0f);
// (2) Vector2で設定
rectangle.SetSize(MGL::Vector2(200.0f, 200.0f));
バージョン情報#
- MGL 1.0.0
初回リリース
GetSize#
矩形のサイズを取得します。
宣言#
[[nodiscard]] constexpr Vector2 GetSize() const noexcept
戻り値#
- const Vector2
矩形のサイズ
説明#
矩形のwidthとheightの値をVector2で取得します。戻り値のxがwidthに、yがheightにそれぞれ対応します。
利用例#
MGL::Rectangle rectangle(10.0f, 10.0f, 50.0f, 80.0f);
// サイズを取得
auto size = rectangle.GetSize(); // size = (50.0f, 80.0f)
バージョン情報#
- MGL 1.0.0
初回リリース
IsEnclosed#
指定した座標が矩形の内側にあるかを取得します。
宣言#
[[nodiscard]] constexpr bool IsEnclosed(const Vector2 &point) const noexcept
引数#
- const Vector2 &point
チェックする座標
戻り値#
- bool
引数で指定した座標が矩形の内側にある場合はtrue、そうでない場合はfalse。
説明#
引数で指定した座標が矩形の内側にあるかをチェックして返します。主に点と矩形との衝突判定などに利用します。
この関数は矩形の原点が左上に位置するスクリーン座標系で判定を行います。異なる座標系で矩形を扱う際にはご注意ください。
利用例#
// (10.0f, 10.0f)の位置にサイズ(50.0f, 50.0f)の矩形を準備
MGL::Rectangle rectangle(10.0f, 10.0f, 50.0f, 50.0f);
// (30.0f, 30.0f)の位置をチェック
if (rectangle.IsEnclosed(MGL::Vector2(30.0f, 30.0f)))
{
// 矩形の内側にあるためここに到達する
}
// (5.0f, 5.0f)の位置をチェック
if (rectangle.IsEnclosed(MGL::Vector2(5.0f, 5.0f)))
{
// 矩形の外側にあるためここには到達しない
}
バージョン情報#
- MGL 1.0.0
初回リリース