Skip to content

MyLib.Shape.Circle ​

形状関連 / 円

所属:mylibのAPI解説 · 全モジュール索引

読み方 ​

このページは実ファイルから生成したソース照合用資料です。公開関数の引数・戻り値の型、オーバーロード、列挙値を確認できます。public/protected/privateを区別し、privateメンバーを呼び出し例に使わないでください。コメントは原文であり、古い説明や誤記を含む場合があります。利用条件・訂正は上記のAPI解説と既知の制約を優先してください。

元ファイル:ProjectName/include/MyLib/Shape/Circle.ixx。確認基準:08f9fa53。

インターフェースとインライン実装 ​

cpp
export module MyLib.Shape.Circle;
import MyLib.Math.Vector2;

using namespace math;

/// <summary>
/// 形状関連
/// </summary>
export namespace shape
{
    /// <summary>
    /// 円
    /// </summary>
    export struct Circle
    {
        Vector2f center; // 中心座標
        float radius; // 半径

        /// <summary>
        /// コンストラクタ
        /// </summary>
        Circle() :center({ 0,0 }), radius(0.0f) {};

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="center">中心座標</param>
        /// <param name="radius">半径</param>
        Circle(const Vector2f& center, const float& radius) : center(center), radius(radius) {};

        /// <summary>
        /// 点が円の内部にあるか判定
        /// </summary>
        /// <param name="point">判定する点</param>
        /// <returns>円の内部にあるかどうか</returns>
        bool IsInside(const Vector2f& point) const
        {
            Vector2f diff = point - center;
            return diff.LengthSq() <= radius * radius;
        }

        /// <summary>
        /// 円同士の重なり判定
        /// </summary>
        /// <param name="other">判定する円</param>
        /// <returns>重なっているかどうか</returns>
        bool IsInside(const Circle& other) const
        {
            Vector2f diff = other.center - center;
            float rSum = radius + other.radius;
            return diff.LengthSq() <= rSum * rSum;
        }
    };
}

コード確認基準:08f9fa53 · C++実機検証は別途実施