2#include "Rendering/Common.h"
3#include "Rendering/IGraphicsDevice.h"
5#include "Renderer/IRenderer.h"
6#include "Resources/MeshStreamsLayout.h"
7#include "Systems/ComponentSystem.h"
8#include "Scene/GetBounds.h"
9#include "Scene/RayPick.h"
12#include "Image360Component.h"
16 struct Image360System;
24 void getBounds(
Context* context, Cogs::Geometry::BoundingBox& bounds)
override;
85 const glm::vec2& normPosition,
91 std::vector<RayPicking::RayPickHit>& hits)
override;
108 State state = State::Uninitialized;
111 uint32_t valueChannel = 0;
112 bool hasDepth =
false;
139 uint32_t instanceCounter = 1;
Container for components, providing composition of dynamic entities.
Context * context
Pointer to the Context instance the system lives in.
void update()
Updates the system state to that of the current frame.
Component system with parallel data per component stored in a pool similar to how the components them...
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Interface for modules implementing custom picking.
Defines an extension to the renderer, capable of doing custom rendering.
Represents a graphics device used to manage graphics resources and issue drawing commands.
Base allocator implementation.
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
PicksReturned
* Options for returning picking hits.
PickingFlags
Options for COGS picking.
ComponentIndex SizeType
Type used to track the size of pools.
Handle to a Component instance.
void initialize(Context *context) override
Initialize the system.
ComponentHandle createComponent() override
void destroyComponent(ComponentHandle component) override
void getBounds(Context *context, Cogs::Geometry::BoundingBox &bounds) override
Expand bounds including bounds of all entities in this system in world coordinates.
bool pickCamera(Context *context, const CameraComponent &camera, const glm::vec2 &normPosition, float, float, PickingFlags pickingFlags, PicksReturned returnFlag, const RayPicking::RayPickFilter &filter, std::vector< RayPicking::RayPickHit > &hits) override
Do a ray pick from a normalized screen space position in the camera direction and return all hits.
void handleEvent(uint32_t eventId, const DrawContext *renderingContext) override
Called when rendering events occur.
void initialize(Context *context, IGraphicsDevice *device) override
Initialize the extension using the given context and device.
static const Handle_t NoHandle
Represents a handle to nothing.