struct ImRect

Overview

#include <imgui_internal.h>

struct ImRect
{
    // fields

    ImVec2 Min;
    ImVec2 Max;

    // construction

    ImRect();

    ImRect(
        const ImVec2& min,
        const ImVec2& max
        );

    ImRect(const ImVec4& v);

    ImRect(
        float x1,
        float y1,
        float x2,
        float y2
        );

    // methods

    ImVec2 GetCenter() const;
    ImVec2 GetSize() const;
    float GetWidth() const;
    float GetHeight() const;
    float GetArea() const;
    ImVec2 GetTL() const;
    ImVec2 GetTR() const;
    ImVec2 GetBL() const;
    ImVec2 GetBR() const;
    bool Contains(const ImVec2& p) const;
    bool Contains(const ImRect& r) const;

    bool ContainsWithPad(
        const ImVec2& p,
        const ImVec2& pad
        ) const;

    bool Overlaps(const ImRect& r) const;
    void Add(const ImVec2& p);
    void Add(const ImRect& r);
    void Expand(const float amount);
    void Expand(const ImVec2& amount);
    void Translate(const ImVec2& d);
    void TranslateX(float dx);
    void TranslateY(float dy);
    void ClipWith(const ImRect& r);
    void ClipWithFull(const ImRect& r);
    bool IsInverted() const;
    ImVec4 ToVec4() const;
    const ImVec4& AsVec4() const;
};