Cogs.Core
Public Member Functions | Public Attributes | Private Types | Private Attributes | List of all members
Cogs::Core::SeaCurrentsSystem Class Reference

The sea currents system manages and displays sea currents per the S-111 specification. More...

#include <SeaCurrentsSystem.h>

Inheritance diagram for Cogs::Core::SeaCurrentsSystem:
Cogs::Core::ComponentSystemWithDataPool< SeaCurrentsComponent, SeaCurrentsData > Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes > Cogs::Core::ComponentSystem< ComponentType > Cogs::Core::ComponentSystemBase

Public Member Functions

 SeaCurrentsSystem (Memory::Allocator *allocator, SizeType capacity)
 
virtual void initialize (Context *context) override
 Initialize the system.
 
virtual void update (Context *) override
 Provided for custom update logic in derived systems.
 
virtual void cleanup (Context *context) override
 Provided for custom cleanup logic in derived systems.
 
virtual ComponentHandle createComponent () override
 
virtual void destroyComponent (ComponentHandle component) override
 
const MeshHandlegetArrowMesh () const
 
const VertexFormatgetVertexFormat () const
 
const VertexFormatHandlegetVertexFormatHandle () const
 
const MaterialInstanceHandlegetMaterialHandle () const
 
const MeshStreamsLayoutgetArrowInstancesStreamsLayout () const
 
Cogs::Geometry::BoundingBox getWorldBounds (const SeaCurrentsComponent &seaCurrentsComponent, bool ignoreVisibility) const
 Used by SeaCurrentsBounds::getBounds.
 
- Public Member Functions inherited from Cogs::Core::ComponentSystemWithDataPool< SeaCurrentsComponent, SeaCurrentsData >
 ComponentSystemWithDataPool (Memory::Allocator *allocator, SizeType size=1024)
 
SeaCurrentsDatagetData (const SeaCurrentsComponent *component)
 
const SeaCurrentsDatagetData (const SeaCurrentsComponent *component) const
 
- Public Member Functions inherited from Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes >
 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.
 
- 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.
 

Public Attributes

float minScale = 0.2f
 
float maxScale = 1.0f
 
float lowestSpeed = 0.01f
 
float highestSpeed = 13.0f
 
- 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.
 
Contextcontext = nullptr
 Pointer to the Context instance the system lives in.
 

Private Types

using base_type = Cogs::Core::ComponentSystemWithDataPool< SeaCurrentsComponent, SeaCurrentsData >
 

Private Attributes

MeshStreamsLayout arrowInstancesStreamsLayout
 
MeshHandle mArrowMesh
 
VertexFormat mVertexFormat = {}
 
VertexFormatHandle mVertexFormatHandle
 
MaterialInstanceHandle mMaterial
 
SeaCurrentsRenderermRenderer = nullptr
 
std::unique_ptr< SeaCurrentsBoundsbounds
 

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.
 

Detailed Description

The sea currents system manages and displays sea currents per the S-111 specification.

Definition at line 49 of file SeaCurrentsSystem.h.

Member Typedef Documentation

◆ base_type

Definition at line 50 of file SeaCurrentsSystem.h.

Constructor & Destructor Documentation

◆ SeaCurrentsSystem()

Cogs::Core::SeaCurrentsSystem::SeaCurrentsSystem ( Memory::Allocator allocator,
SizeType  capacity 
)
inline

Definition at line 52 of file SeaCurrentsSystem.h.

Member Function Documentation

◆ cleanup()

void Cogs::Core::SeaCurrentsSystem::cleanup ( Context )
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 207 of file SeaCurrentsSystem.cpp.

References Cogs::Core::Context::renderer, and Cogs::Core::IRenderer::unregisterExtension().

◆ createComponent()

ComponentHandle Cogs::Core::SeaCurrentsSystem::createComponent ( )
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 215 of file SeaCurrentsSystem.cpp.

◆ destroyComponent()

void Cogs::Core::SeaCurrentsSystem::destroyComponent ( ComponentHandle  component)
overridevirtual

Overridden to update data pool contents in lockstep with the component pool. Any subclass overriding this method should also call base class.

Reimplemented from Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes >.

Definition at line 232 of file SeaCurrentsSystem.cpp.

◆ getArrowInstancesStreamsLayout()

const MeshStreamsLayout & Cogs::Core::SeaCurrentsSystem::getArrowInstancesStreamsLayout ( ) const
inline

Definition at line 70 of file SeaCurrentsSystem.h.

◆ getArrowMesh()

const MeshHandle & Cogs::Core::SeaCurrentsSystem::getArrowMesh ( ) const
inline

Definition at line 66 of file SeaCurrentsSystem.h.

◆ getMaterialHandle()

const MaterialInstanceHandle & Cogs::Core::SeaCurrentsSystem::getMaterialHandle ( ) const
inline

Definition at line 69 of file SeaCurrentsSystem.h.

◆ getVertexFormat()

const VertexFormat & Cogs::Core::SeaCurrentsSystem::getVertexFormat ( ) const
inline

Definition at line 67 of file SeaCurrentsSystem.h.

◆ getVertexFormatHandle()

const VertexFormatHandle & Cogs::Core::SeaCurrentsSystem::getVertexFormatHandle ( ) const
inline

Definition at line 68 of file SeaCurrentsSystem.h.

◆ getWorldBounds()

Cogs::Geometry::BoundingBox Cogs::Core::SeaCurrentsSystem::getWorldBounds ( const SeaCurrentsComponent seaCurrentsComponent,
bool  ignoreVisibility 
) const

◆ initialize()

void Cogs::Core::SeaCurrentsSystem::initialize ( Context context)
overridevirtual

◆ update()

void Cogs::Core::SeaCurrentsSystem::update ( Context )
overridevirtual

Provided for custom update logic in derived systems.

Reimplemented from Cogs::Core::ComponentSystemBase.

Definition at line 125 of file SeaCurrentsSystem.cpp.

References Cogs::Core::Normal, and Cogs::Core::PerBand.

Member Data Documentation

◆ arrowInstancesStreamsLayout

MeshStreamsLayout Cogs::Core::SeaCurrentsSystem::arrowInstancesStreamsLayout
private

Definition at line 76 of file SeaCurrentsSystem.h.

◆ bounds

std::unique_ptr<SeaCurrentsBounds> Cogs::Core::SeaCurrentsSystem::bounds
private

Definition at line 82 of file SeaCurrentsSystem.h.

◆ highestSpeed

float Cogs::Core::SeaCurrentsSystem::highestSpeed = 13.0f

Definition at line 57 of file SeaCurrentsSystem.h.

◆ lowestSpeed

float Cogs::Core::SeaCurrentsSystem::lowestSpeed = 0.01f

Definition at line 56 of file SeaCurrentsSystem.h.

◆ mArrowMesh

MeshHandle Cogs::Core::SeaCurrentsSystem::mArrowMesh
private

Definition at line 77 of file SeaCurrentsSystem.h.

◆ maxScale

float Cogs::Core::SeaCurrentsSystem::maxScale = 1.0f

Definition at line 55 of file SeaCurrentsSystem.h.

◆ minScale

float Cogs::Core::SeaCurrentsSystem::minScale = 0.2f

Definition at line 54 of file SeaCurrentsSystem.h.

◆ mMaterial

MaterialInstanceHandle Cogs::Core::SeaCurrentsSystem::mMaterial
private

Definition at line 80 of file SeaCurrentsSystem.h.

◆ mRenderer

SeaCurrentsRenderer* Cogs::Core::SeaCurrentsSystem::mRenderer = nullptr
private

Definition at line 81 of file SeaCurrentsSystem.h.

◆ mVertexFormat

VertexFormat Cogs::Core::SeaCurrentsSystem::mVertexFormat = {}
private

Definition at line 78 of file SeaCurrentsSystem.h.

◆ mVertexFormatHandle

VertexFormatHandle Cogs::Core::SeaCurrentsSystem::mVertexFormatHandle
private

Definition at line 79 of file SeaCurrentsSystem.h.


The documentation for this class was generated from the following files: