MGL::Rectangle#

概要#

矩形を表現するための構造体です。

宣言#

namespace MGL
{
    struct Rectangle;
}

メンバ情報#

種類

名前

内容

変数

公開メンバ変数

関数

コンストラクタ

関数

SetPosition

原点座標の設定

関数

GetPosition

原点座標の取得

関数

SetSize

サイズの設定

関数

GetSize

サイズの取得

関数

IsEnclosed

指定した座標が矩形の内側にあるかを取得


公開メンバ変数#

宣言#

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) ゼロ初期化

引数なし

(2) 各成分を指定して初期化
float x

矩形の原点のX座標

float y

矩形の原点のY座標

float width

矩形のX方向の幅

float height

矩形のY方向の高さ

(3) 座標とサイズをVector2で指定して初期化
const Vector2 &position

矩形の原点の座標

const Vector2 &size

矩形の大きさ

説明#

矩形を初期化するためのコンストラクタです。

(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)の大きさの矩形を生成

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));

GetPosition#

矩形の原点の座標を取得します。

宣言#

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)

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));

GetSize#

矩形のサイズを取得します。

宣言#

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)

IsEnclosed#

指定した座標が矩形の内側にあるかを取得します。

宣言#

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)))
{
    // 矩形の外側にあるためここには到達しない
}