Cogs.Core
|
Public Member Functions | |
OctSystem (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. | |
ComponentModel::ComponentHandle | createComponent () override |
void | buildTree (Context *context, OctComponent &octComp, OctData &octData) |
void | adaptiveSubset (Context *context, OctComponent &octComp, OctData &octData, const TransformComponent &transComp, const CameraComponent &camComp, const CameraData &camData) |
![]() | |
ComponentSystemWithDataPool (Memory::Allocator *allocator, SizeType size=1024) | |
OctData & | getData (const OctComponent *component) |
const OctData & | getData (const OctComponent *component) const |
![]() | |
ComponentSystemWithDataPools (Memory::Allocator *allocator, SizeType size=1024, MemBlockType componentMemType=MemBlockType::Component, MemBlockType dataMemType=MemBlockType::ComponentData) | |
ComponentHandle | createComponent () override |
void | destroyComponent (ComponentHandle component) override |
template<typename T > | |
T & | getData (const ComponentType *component) |
Get the data stored for the given component from the data pool storing objects of the specified template type. | |
template<typename T > | |
const T & | getData (const ComponentType *component) const |
Get the const data stored for the given component from the data pool storing objects of the specified template type. | |
![]() | |
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. | |
![]() | |
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. | |
Static Public Member Functions | |
static glm::mat4 | LocalFromIndexSpaceTransform (const OctComponent &octComp, const OctData &octData) |
static glm::mat4 | IndexSpaceFromLocalTransform (const OctComponent &octComp, const OctData &octData) |
![]() | |
static Reflection::TypeId | getTypeId () |
Get the type id of the component type used by the system. | |
Public Attributes | |
struct OctBounds * | bounds = nullptr |
struct OctRenderer * | renderer = nullptr |
MaterialHandle | material |
VariableKey | transferTexKey |
VariableKey | volumeTexKey |
Cogs::EffectHandle | effectHandle |
Cogs::InputLayoutHandle | inputLayoutHandle |
![]() | |
ComponentPool< ComponentType > | pool |
Pool of components managed by the system. | |
![]() | |
Reflection::TypeId | componentType |
The type of components managed by this instance. | |
Context * | context = nullptr |
Pointer to the Context instance the system lives in. | |
Static Public Attributes | |
static const unsigned | maxResponses = 5 |
static const unsigned | skirtSize = 1 |
Additional Inherited Members | |
![]() | |
typedef ComponentType | component_type |
Definition at line 114 of file OctSystem.h.
|
inline |
Definition at line 120 of file OctSystem.h.
void Cogs::Core::Volumetric::OctSystem::adaptiveSubset | ( | Context * | context, |
OctComponent & | octComp, | ||
OctData & | octData, | ||
const TransformComponent & | transComp, | ||
const CameraComponent & | camComp, | ||
const CameraData & | camData | ||
) |
Definition at line 397 of file OctSystem.cpp.
void Cogs::Core::Volumetric::OctSystem::buildTree | ( | Context * | context, |
OctComponent & | octComp, | ||
OctData & | octData | ||
) |
Definition at line 293 of file OctSystem.cpp.
|
overridevirtual |
Overridden to update data pool contents in lockstep with the component pool. Any subclass overriding this method should call base class first.
Reimplemented from Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes >.
Definition at line 204 of file OctSystem.cpp.
References Cogs::Core::ComponentSystemBase::createComponent().
|
static |
Definition at line 386 of file OctSystem.cpp.
|
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 162 of file OctSystem.cpp.
References Cogs::Core::Context::bounds, Cogs::File, Cogs::EffectFlags::GLSL, Cogs::Core::ComponentSystemBase::initialize(), Cogs::OpenGLES30, Cogs::Position, Cogs::Core::IRenderer::registerExtension(), Cogs::Core::Context::renderer, and Cogs::VertexData.
|
static |
Definition at line 378 of file OctSystem.cpp.
|
overridevirtual |
Provided for custom update logic in derived systems.
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 219 of file OctSystem.cpp.
References Cogs::Core::Volumetric::OctData::alignMinToZeroShift, Cogs::Core::Volumetric::OctComponent::blockShift, Cogs::Core::Volumetric::OctComponent::clearAllRegions, Cogs::Core::Volumetric::OctComponent::forceWipe, Cogs::ComponentModel::Component::getComponent(), Cogs::hashSequence(), Cogs::Core::Volumetric::OctRegionData::max, Cogs::Core::Volumetric::OctRegionData::min, Cogs::Core::Volumetric::OctComponent::regionsToAdd, and Cogs::Core::Volumetric::OctComponent::tileRequests.
struct OctBounds* Cogs::Core::Volumetric::OctSystem::bounds = nullptr |
Definition at line 130 of file OctSystem.h.
Cogs::EffectHandle Cogs::Core::Volumetric::OctSystem::effectHandle |
Definition at line 137 of file OctSystem.h.
Cogs::InputLayoutHandle Cogs::Core::Volumetric::OctSystem::inputLayoutHandle |
Definition at line 138 of file OctSystem.h.
MaterialHandle Cogs::Core::Volumetric::OctSystem::material |
Definition at line 133 of file OctSystem.h.
|
static |
Definition at line 117 of file OctSystem.h.
struct OctRenderer* Cogs::Core::Volumetric::OctSystem::renderer = nullptr |
Definition at line 131 of file OctSystem.h.
|
static |
Definition at line 118 of file OctSystem.h.
VariableKey Cogs::Core::Volumetric::OctSystem::transferTexKey |
Definition at line 134 of file OctSystem.h.
VariableKey Cogs::Core::Volumetric::OctSystem::volumeTexKey |
Definition at line 135 of file OctSystem.h.