123456789101112131415161718192021222324252627282930313233343536 |
- #pragma once
- // size_t
- #include <stddef.h>
- class Node {
- public:
- virtual ~Node() noexcept = default;
- virtual void init() noexcept = 0;
- virtual void update(unsigned long deltaMillis);
- };
- class NodeList {
- public:
- virtual ~NodeList() noexcept = default;
- virtual size_t size() const noexcept = 0;
-
- virtual Node* get(size_t index) noexcept {
- return nullptr;
- }
- virtual Node const* get(size_t index) const noexcept {
- return const_cast<NodeList*>(this)->get(index);
- }
- };
- class AbstractNode : public Node {
- public:
- void init() noexcept override;
- void update(unsigned long deltaMillis) noexcept override;
- protected:
- virtual NodeList& getChildren() noexcept = 0;
- };
|