|
Cogs.Core
|
The submesh render system handles SubMeshRenderComponents. More...
#include <SubMeshRenderSystem.h>
Public Member Functions | |
| SubMeshRenderSystem (Memory::Allocator *allocator, SizeType capacity) | |
| void | initialize (Context *context) override |
| Initialize the system. | |
| void | update (Context *context) override |
| Provided for custom update logic in derived systems. | |
| void | postUpdate (Context *context) override |
| void | cleanup (Context *context) override |
| Provided for custom cleanup logic in derived systems. | |
| ComponentHandle | createComponent () override |
| Create a new component instance. | |
| void | destroyComponent (ComponentHandle component) override |
| Destroy the component held by the given handle. | |
| TaskId | getTaskGroup () const |
| Geometry::BoundingBox & | getLocalBounds (const SubMeshRenderComponent *component) |
| Geometry::BoundingBox & | getWorldBounds (const SubMeshRenderComponent *component) |
| void | setBounds (const SubMeshRenderComponent *component, Geometry::BoundingBox &box, const glm::mat4 &worldTransform) |
| void | initializeCulling (struct CullingSource *cullData) |
Public Member Functions inherited from Cogs::Core::ComponentSystemWithDataPools< SubMeshRenderComponent, SubMeshRenderData, SubMeshLocalBounds, SubMeshWorldBounds > | |
| ComponentSystemWithDataPools (Memory::Allocator *allocator, SizeType size=1024, MemBlockType componentMemType=MemBlockType::Component, MemBlockType dataMemType=MemBlockType::ComponentData) | |
| ComponentHandle | createComponent () override |
| void | destroyComponent (ComponentHandle component) override |
| T & | getData (const SubMeshRenderComponent *component) |
| Get the data stored for the given component from the data pool storing objects of the specified template type. | |
| const T & | getData (const SubMeshRenderComponent *component) const |
| Get the const data stored for the given component from the data pool storing objects of the specified template type. | |
Public Member Functions inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| ComponentSystem (Memory::Allocator *allocator, SizeType size=16384, MemBlockType componentMemType=MemBlockType::Component) | |
| void | instrumentedPreUpdate () override |
| Provided for tagged engine instrumentation. | |
| void | instrumentedUpdate () override |
| Provided for tagged engine instrumentation. | |
| void | instrumentedPostUpdate () override |
| Provided for tagged engine instrumentation. | |
| ComponentHandle | createComponent () override |
| Create a new component instance. | |
| void | destroyComponent (ComponentHandle component) override |
| Destroy the component held by the given handle. | |
| SizeType | getComponentIndex (const Component *component) const |
| Get the index of the given component in the component pool. | |
| size_t | size () |
| Returns the number of active components. | |
| void | clearCarryFlags () |
| Clear carry flags of all active components. | |
| void | resetFlags () |
| Reset the flags of all active components. | |
| void | prepareUpdate (Context *) override |
| void | postUpdate (Context *) override |
| ComponentHandle | getHandle (const ComponentType *component) |
| Get a handle to the given Component instance. | |
| virtual void | addEntitiesWithComponent (std::vector< EntityId > &entities, Reflection::TypeId componentTypeId) override |
| Return all entities with a given. | |
Public Member Functions inherited from Cogs::Core::ComponentSystemBase | |
| virtual | ~ComponentSystemBase () |
| Provided for destruction via pointer to base. | |
| ComponentSystemBase (Reflection::TypeId componentType) | |
| Constructs a ComponentSystemBase to manage components of the given componentType. | |
| virtual void | initialize (Context *context) |
| Initialize the system. | |
| void | preUpdate () |
| Run the pre-update method of the system. | |
| void | update () |
| Updates the system state to that of the current frame. | |
| void | postUpdate () |
| Perform post update logic in the system. | |
| virtual void | preUpdate (Context *) |
| Provided for custom pre update logic in derived systems. | |
| virtual void | prepareUpdate (Context *) |
| Provided for custom update preparation logic in derived systems. | |
| virtual void | update (Context *) |
| Provided for custom update logic in derived systems. | |
| virtual void | postUpdate (Context *) |
| Provided for custom post update logic in derived systems. | |
| virtual void | instrumentedPreUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | instrumentedUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | instrumentedPostUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | addEntitiesWithComponent (std::vector< EntityId > &, Reflection::TypeId) |
| Return all entities with a given. | |
| virtual void | cleanup (Context *) |
| Provided for custom cleanup logic in derived systems. | |
| virtual ComponentHandle | createComponent () |
| Create a new component instance. | |
| virtual void | destroyComponent (ComponentHandle) |
| Destroy the component held by the given handle. | |
| Reflection::TypeId | getComponentType () const |
| Get the reflected type of the components managed by this system. | |
Private Types | |
| using | base_type = Cogs::Core::ComponentSystemWithDataPools< SubMeshRenderComponent, SubMeshRenderData, SubMeshLocalBounds, SubMeshWorldBounds > |
Private Attributes | |
| bool | needsPost = true |
| TaskId | geometryGroup = NoTask |
| std::unique_ptr< SubMeshPicker > | picker |
Additional Inherited Members | |
Public Types inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| typedef ComponentType | component_type |
Static Public Member Functions inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| static Reflection::TypeId | getTypeId () |
| Get the type id of the component type used by the system. | |
Public Attributes inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| ComponentPool< ComponentType > | pool |
| Pool of components managed by the system. | |
Public Attributes inherited from Cogs::Core::ComponentSystemBase | |
| Reflection::TypeId | componentType |
| The type of components managed by this instance. | |
| Context * | context = nullptr |
| Pointer to the Context instance the system lives in. | |
The submesh render system handles SubMeshRenderComponents.
Definition at line 61 of file SubMeshRenderSystem.h.
|
private |
Definition at line 63 of file SubMeshRenderSystem.h.
|
inline |
Definition at line 65 of file SubMeshRenderSystem.h.
|
overridevirtual |
Provided for custom cleanup logic in derived systems.
Cleanup is performed during shutdown of the system, and all entities and related data should have been deleted.
All system services are available during the execution of cleanup().
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 117 of file SubMeshRenderSystem.cpp.
References Cogs::Core::Context::taskManager.
|
overridevirtual |
Create a new component instance.
Reimplemented from Cogs::Core::ComponentSystem< ComponentType >.
Definition at line 124 of file SubMeshRenderSystem.cpp.
|
overridevirtual |
Destroy the component held by the given handle.
Reimplemented from Cogs::Core::ComponentSystem< ComponentType >.
Definition at line 137 of file SubMeshRenderSystem.cpp.
|
inline |
Definition at line 77 of file SubMeshRenderSystem.h.
|
inline |
Definition at line 75 of file SubMeshRenderSystem.h.
|
inline |
Definition at line 82 of file SubMeshRenderSystem.h.
|
overridevirtual |
Initialize the system.
Initialization is performed after all systems are created and a renderer initialized, but before the first time anything is rendered.
| context | Pointer to the context the system lives in. |
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 28 of file SubMeshRenderSystem.cpp.
References Cogs::Core::ComponentSystemBase::context, Cogs::Core::ComponentSystemBase::initialize(), and Cogs::Core::Context::taskManager.
| void Cogs::Core::SubMeshRenderSystem::initializeCulling | ( | struct CullingSource * | cullData | ) |
Definition at line 147 of file SubMeshRenderSystem.cpp.
|
overridevirtual |
Overridden to propagate carry flags. Any subclass overriding this method should also call base class.
Reimplemented from Cogs::Core::ComponentSystem< ComponentType >.
Definition at line 110 of file SubMeshRenderSystem.cpp.
References Cogs::Core::ComponentSystemBase::postUpdate().
|
inline |
Definition at line 87 of file SubMeshRenderSystem.h.
|
overridevirtual |
Provided for custom update logic in derived systems.
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 35 of file SubMeshRenderSystem.cpp.
References Cogs::Core::calculateBounds(), Cogs::Core::Context::engine, Cogs::ComponentModel::Component::getComponentHandle(), Cogs::ComponentModel::Component::hasChanged(), Cogs::Core::MeshComponent::meshHandle, Cogs::Core::ResourceHandle_t< ResourceType >::resolve(), and Cogs::Core::Context::taskManager.
|
private |
Definition at line 99 of file SubMeshRenderSystem.h.
|
private |
Definition at line 98 of file SubMeshRenderSystem.h.
|
private |
Definition at line 101 of file SubMeshRenderSystem.h.