Rendering Engine 0.2.9
Modular Graphics Rendering Engine | v0.2.9
rectangle_2d.hpp
Go to the documentation of this file.
1// This file is part of the Rendering Engine project.
2// Author: Alexander Obzherin <alexanderobzherin@gmail.com>
3// Copyright (c) 2026 Alexander Obzherin
4// Distributed under the terms of the zlib License. See LICENSE.md for details.
5
6#pragma once
7
9#include "drawable_2d.hpp"
10
11namespace rendering_engine
12{
13class Scene;
14 /**
15 * @class Rectangle2D
16 * @brief 2D drawable component for rendering rectangle.
17 *
18 * @note Not copyable or assignable.
19 * @see Sprite2D, Quad2D, Drawable2D, DrawableComponent, SceneComponent2D, Camera2D
20 */
22{
23public:
25{
26 glm::vec2 size = {50.0f, 50.0f};
27 glm::vec4 color = {1.0f, 1.0f, 1.0f, 1.0f};
28};
29public:
30 /**
31 * @brief Constructs the Rectangle2D with a render context.
32 * @param renderContext Resource context.
33 *
34 */
35 Rectangle2D(RenderResourceContext renderContext, Scene& scene, Properties properties);
36
37 /**
38 * @copydoc DrawableComponent::Initialize
39 */
40 void Initialize() override;
41
42 /**
43 * @copydoc DrawableComponent::Update
44 */
45 void Update(float deltaTime) override;
46
47 /**
48 * @copydoc Drawable2D::Draw
49 */
50 void Draw(const Camera2D& camera) override;
51
52 /**
53 * @brief Sets color.
54 *
55 * @param color RGBA [0.0f - 1.0f].
56 */
57 void SetColor(glm::vec4 color);
58
59 Rectangle2D(const Rectangle2D& rhs) = delete;
60 Rectangle2D& operator=(const Rectangle2D& rhs) = delete;
61
62protected:
64
65};
66
67} // namespace rendering_engine
Represents a 2D camera with position, rotation, and zoom control.
Definition: camera_2d.hpp:36
2D drawable component for rendering objects in 2D space.
Definition: drawable_2d.hpp:27
2D drawable component for rendering rectangle.
Rectangle2D(const Rectangle2D &rhs)=delete
Rectangle2D & operator=(const Rectangle2D &rhs)=delete
Base class representing a renderable scene.
Definition: scene.hpp:44
#define RE_API
Configuration parameters for a text block.
Aggregates pointers to global rendering resource managers.