Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- entity iterator cpp
- #pragma once
- #include "EntityIterator.h"
- /*
- EntityIterator::EntityIterator(Scene* scene, size_t index, bool bIsEnd, bool bIncludePendingDestroy)
- : m_bIsEnd(bIsEnd), m_index(index), m_scene(scene), m_bIncludePendingDestroy(bIncludePendingDestroy)
- {
- if (index >= m_scene->GetEntityCount())
- this->m_bIsEnd = true;
- }
- bool EntityIterator::IsEnd() const
- {
- return m_bIsEnd || m_index >= m_scene->GetEntityCount();
- }
- Entity* EntityIterator::Get() const
- {
- if (IsEnd())
- return nullptr;
- return m_scene->GetEntityByIndex(m_index);
- }
- EntityIterator& EntityIterator::operator++()
- {
- ++m_index;
- while (m_index < m_scene->GetEntityCount() && (Get() == nullptr || (Get()->IsPendingDestroy() && !m_bIncludePendingDestroy)))
- {
- ++m_index;
- }
- if (m_index >= m_scene->GetEntityCount())
- m_bIsEnd = true;
- return *this;
- }
- bool operator==(const EntityIterator& other) const
- {
- if (m_scene != other.m_scene)
- return false;
- if (IsEnd())
- return other.IsEnd();
- return m_index == other.m_index;
- }
- bool operator!=(const EntityIterator& other) const
- {
- if (m_scene != other.m_scene)
- return true;
- if (IsEnd())
- return !other.IsEnd();
- return m_index != other.m_index;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement