Fireworks Engine  v2.0
Lightweight Sandbox Game Engine using OpenGL for additional Customisation and Quick Prototyping
fireworks::graphics::Group Class Reference

Creates groups of renderables in a hierarchical relative fashion. More...

#include <group.h>

Inheritance diagram for fireworks::graphics::Group:
Collaboration diagram for fireworks::graphics::Group:

Public Member Functions

 Group (const glm::mat4 &transform)
 Creates a group to position renderables relatively. More...
 
 ~Group ()
 
void add (Renderable2D *renderable)
 Adds renderables to this group. More...
 
void submit (Renderer2D *renderer) const override
 Submits the group to the Renderer Queue. More...
 
- Public Member Functions inherited from fireworks::graphics::Renderable2D
 Renderable2D (glm::vec3 position, glm::vec2 size, glm::vec4 color, Primitive2D primitive2d)
 Creates the renderable. More...
 
 Renderable2D (glm::vec3 position, glm::vec2 size, glm::vec4 color, Primitive2D primitive2d, Shader *shader)
 Creates the renderable. More...
 
virtual ~Renderable2D ()
 
template<typename T >
void AddComponent (components::Component *component)
 Template methods of various ways of adding components to the renderable. More...
 
template<>
void AddComponent (components::Component *component)
 The Rigidbody2D overload template. More...
 
const glm::vec3 & getPosition () const
 Gets the position of the Renderable. More...
 
const float & getRotation () const
 Gets the rotation of the Renderable. More...
 
const glm::vec2 & getSize () const
 Gets the size of the renderable. More...
 
const glm::vec4 & getColor () const
 Gets the color of the renderable. More...
 
const Primitive2D getPrimitive () const
 Gets the primitive shape that is used to draw the renderable. More...
 
const std::vector< glm::vec2 > & getUV () const
 Gets the UV coordinates of the 2D Renderable. More...
 
const TexturegetTexture () const
 Gets the texture that is used to draw the renderable. More...
 
const GLuint getTID () const
 Gets the ID of the renderables texture. More...
 
void flipX ()
 Flip the Renderable along the X-axis. More...
 
void unflipX ()
 Unflip the Renderable along the X-axis. More...
 
void flipY ()
 Flip the Renderable along the Y-axis. More...
 
void unflipY ()
 Unflip the Renderable along the X-axis. More...
 

Additional Inherited Members

- Public Attributes inherited from fireworks::graphics::Renderable2D
std::uint32_t objectID
 The unique ID of the renderable object. More...
 
Shadershader
 The Shader used to draw the particular renderable. More...
 
bool flippedX
 tells whether or not the renderable is flipped on the X-axis or not More...
 
bool flippedY
 tells whether or not the renderable is flipped on the Y-axis or not More...
 
std::vector< components::Component * > components
 The collection of Components that is attached to the renderable. More...
 
- Protected Member Functions inherited from fireworks::graphics::Renderable2D
 Renderable2D ()
 Create an empty renderable. More...
 
virtual void addedRigidBody2D ()
 Component callback functions. More...
 
- Protected Attributes inherited from fireworks::graphics::Renderable2D
glm::vec2 m_Size
 The size of the renderable. More...
 
glm::vec3 m_Position
 The position of the renderable. More...
 
glm::vec4 m_Color
 The color of the renderable. More...
 
float m_Rotation
 The rotation of the renderable along the Z-Axis. More...
 
Primitive2D m_Primitive2D
 The primitive that is used to draw the renderable. More...
 
std::vector< glm::vec2 > m_UV
 The UV coordinates of the renderable. More...
 
Texturem_Texture
 The texture (if any) used by the renderable. More...
 

Detailed Description

Creates groups of renderables in a hierarchical relative fashion.

Adds groups of layers and enables child system to position relatively to each other

Constructor & Destructor Documentation

◆ Group()

fireworks::graphics::Group::Group ( const glm::mat4 &  transform)

Creates a group to position renderables relatively.

Parameters
transformThe relative position of the group relative to the parent group/layer
Note
Using this transform matrix we can add renderables relative to one another

◆ ~Group()

fireworks::graphics::Group::~Group ( )

Member Function Documentation

◆ add()

void fireworks::graphics::Group::add ( Renderable2D renderable)

Adds renderables to this group.

Note
Any renderables will be positioned relative to this group and not as per the world position

◆ submit()

void fireworks::graphics::Group::submit ( Renderer2D renderer) const
overridevirtual

Submits the group to the Renderer Queue.

Reimplemented from fireworks::graphics::Renderable2D.


The documentation for this class was generated from the following files: