Just™ Game Engine
layer_stack.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2020-2022 Konstanty Misiak
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
7#pragma once
8
9namespace jng {
10
11 class Layer;
12
14 {
15 public:
16 using ContainerType = std::vector<Layer*>;
17 using Interator = ContainerType::iterator;
18 using ConstInterator = ContainerType::const_iterator;
19 using ReverseInterator = ContainerType::reverse_iterator;
20 using ConstReverseInterator = ContainerType::const_reverse_iterator;
21
22 LayerStack() = default;
24
25 void pushLayer(Layer* layer);
26 Layer* popLayer();
27
28 Interator begin() { return m_layers.begin(); }
29 Interator end() { return m_layers.end(); }
30 ConstInterator begin() const { return m_layers.begin(); }
31 ConstInterator end() const { return m_layers.end(); }
32 ReverseInterator rbegin() { return m_layers.rbegin(); }
33 ReverseInterator rend() { return m_layers.rend(); }
34 ConstReverseInterator rbegin() const { return m_layers.rbegin(); }
35 ConstReverseInterator rend() const { return m_layers.rend(); }
36 private:
37
38 LayerStack(const LayerStack&) = delete;
39 LayerStack& operator=(const LayerStack&) = delete;
40
41 ContainerType m_layers;
42 };
43
44} // namespace jng
Definition: layer.hpp:16
Definition: layer_stack.hpp:14
LayerStack()=default
~LayerStack()
Definition: layer_stack.cpp:14
ConstReverseInterator rend() const
Definition: layer_stack.hpp:35
ContainerType::iterator Interator
Definition: layer_stack.hpp:17
ReverseInterator rend()
Definition: layer_stack.hpp:33
void pushLayer(Layer *layer)
Definition: layer_stack.cpp:25
Layer * popLayer()
Definition: layer_stack.cpp:33
Interator end()
Definition: layer_stack.hpp:29
ConstReverseInterator rbegin() const
Definition: layer_stack.hpp:34
ConstInterator end() const
Definition: layer_stack.hpp:31
ContainerType::const_iterator ConstInterator
Definition: layer_stack.hpp:18
std::vector< Layer * > ContainerType
Definition: layer_stack.hpp:16
ContainerType::reverse_iterator ReverseInterator
Definition: layer_stack.hpp:19
ConstInterator begin() const
Definition: layer_stack.hpp:30
ContainerType::const_reverse_iterator ConstReverseInterator
Definition: layer_stack.hpp:20
Interator begin()
Definition: layer_stack.hpp:28
ReverseInterator rbegin()
Definition: layer_stack.hpp:32
Definition: base.hpp:11