3#include "Rendering/Common.h"
5#include "Resources/Resources.h"
6#include "Resources/Material.h"
8#include "Scene/RayPick.h"
10#include "Systems/ComponentSystem.h"
12#include "TwinCadModelComponent.h"
13#include "TwinVisualsSystem.h"
17 struct TwinCadModelSystem;
25 const glm::mat4& worldPickMatrix,
26 const glm::mat4& rawViewProjection,
27 const glm::mat4& viewMatrix,
31 std::vector<RayPicking::RayPickHit>& hits)
override;
41 std::vector<uint8_t> attributeMapData;
43 std::string substance;
48 uint8_t attributeMapGen = 0;
49 bool needUpdate =
false;
85 VariableKey occlusionRoughnessMetallicMapKey = NoProperty;
87 size_t allowClippingVariantIndex = Material::NoVariantIndex;
88 size_t customEffectVariantIndex = Material::NoVariantIndex;
89 size_t selectionEffectVariantIndex = Material::NoVariantIndex;
90 size_t surfaceVarianceVariantIndex = Material::NoVariantIndex;
91 size_t lightModelVariantIndex = Material::NoVariantIndex;
92 size_t numSubstanceDefinitionMapsVariantIndex = Material::NoVariantIndex;
95 bool componentsCreated =
false;
Context * context
Pointer to the Context instance the system lives in.
void update()
Updates the system state to that of the current frame.
void preUpdate()
Run the pre-update method of the system.
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.
Base class for picking meshes.
The mesh render system handles MeshRenderComponents.
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.
uint16_t VariableKey
Used to lookup material properties.
ComponentIndex SizeType
Type used to track the size of pools.
Handle to a Component instance.
bool pickImpl(Context *context, const glm::mat4 &worldPickMatrix, const glm::mat4 &rawViewProjection, const glm::mat4 &viewMatrix, const RayPicking::RayPickFilter &filter, PickingFlags pickingFlags, PicksReturned returnFlag, std::vector< RayPicking::RayPickHit > &hits) override
Each mesh rendering system should implement this function that goes through all components and calls ...
ComponentHandle createComponent() override
void destroyComponent(ComponentHandle handle) override