3#include "Scene/GetBounds.h"
4#include "Scene/RayPick.h"
5#include "VectorFieldComponent.h"
6#include "VectorFieldRenderer.h"
7#include "Systems/ComponentSystem.h"
8#include "Resources/VertexFormats.h"
9#include "Resources/MeshStreamsLayout.h"
11namespace Cogs::Core::VectorField
24 void getBounds(
Context * context, Cogs::Geometry::BoundingBox & bounds)
final;
28 bool getBounds(
Context* context, Cogs::Geometry::BoundingBox& bounds,
bool ignoreVisibility)
const;
41 const glm::vec2& normPosition,
47 std::vector<RayPicking::RayPickHit>& hits)
override;
68 std::unique_ptr<VectorFieldBounds> getBounds;
69 std::unique_ptr<VectorFieldPick> rayPick;
71 Geometry::BoundingBox bbox;
75 glm::mat4 worldMatrix;
78 std::vector<float> time_offset;
79 std::vector<float> time_offset_speed;
80 std::vector<glm::vec3> dither_offset;
81 float ditherSize = 1.0f;
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.
void getBounds(Context *context, Cogs::Geometry::BoundingBox &bounds) final
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.
Base allocator implementation.
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.
ComponentModel::ComponentHandle createComponent() override
void destroyComponent(ComponentHandle component) override
void initialize(Context *context) override
Initialize the system.
Vertex element structure used to describe a single data element in a vertex for the input assembler.