Cogs.Core
Public Member Functions | Private Attributes | List of all members
Cogs::Core::TwinCadModelSystem Struct Reference
Inheritance diagram for Cogs::Core::TwinCadModelSystem:
Cogs::Core::ComponentSystemWithDataPool< TwinCadModelComponent, TwinCadModelData > Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes > Cogs::Core::ComponentSystem< ComponentType > Cogs::Core::ComponentSystemBase

Public Member Functions

 TwinCadModelSystem (Memory::Allocator *allocator, SizeType capacity)
 
void preUpdate (Context *context) override
 Provided for custom pre update logic in derived systems.
 
void update (Context *context) override
 Provided for custom update logic in derived systems.
 
ComponentHandle createComponent () override
 
void destroyComponent (ComponentHandle handle) override
 
- Public Member Functions inherited from Cogs::Core::ComponentSystemWithDataPool< TwinCadModelComponent, TwinCadModelData >
 ComponentSystemWithDataPool (Memory::Allocator *allocator, SizeType size=1024)
 
TwinCadModelDatagetData (const TwinCadModelComponent *component)
 
const TwinCadModelDatagetData (const TwinCadModelComponent *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.
 

Private Attributes

MaterialHandle material
 
VariableKey attributeMapKey = NoProperty
 
VariableKey emissiveColorKey = NoProperty
 
VariableKey diffuseColorKey = NoProperty
 
VariableKey specularColorKey = NoProperty
 
VariableKey specularPowerKey = NoProperty
 
VariableKey metallicKey = NoProperty
 
VariableKey roughnessKey = NoProperty
 
VariableKey substanceParamsKey = NoProperty
 
VariableKey parametersKey = NoProperty
 
VariableKey clippingKey = NoProperty
 
VariableKey minClippingKey = NoProperty
 
VariableKey maxClippingKey = NoProperty
 
VariableKey hasAttributeDataKey = NoProperty
 
VariableKey surfaceVarianceTextureKey = NoProperty
 
VariableKey baseColorMapKey = NoProperty
 
VariableKey normalMapKey = NoProperty
 
VariableKey occlusionRoughnessMetallicMapKey = NoProperty
 
size_t allowClippingVariantIndex = Material::NoVariantIndex
 
size_t customEffectVariantIndex = Material::NoVariantIndex
 
size_t selectionEffectVariantIndex = Material::NoVariantIndex
 
size_t surfaceVarianceVariantIndex = Material::NoVariantIndex
 
size_t lightModelVariantIndex = Material::NoVariantIndex
 
size_t numSubstanceDefinitionMapsVariantIndex = Material::NoVariantIndex
 
TwinCadModelRayPickExtensionrayPickExtension = nullptr
 
bool componentsCreated = false
 

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.
 
- 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.
 

Detailed Description

Definition at line 53 of file TwinCadModelSystem.h.

Constructor & Destructor Documentation

◆ TwinCadModelSystem()

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

Definition at line 56 of file TwinCadModelSystem.h.

Member Function Documentation

◆ createComponent()

ComponentHandle Cogs::Core::TwinCadModelSystem::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 TwinCadModelSystem.cpp.

References Cogs::Core::ComponentSystemBase::createComponent(), Cogs::Core::ResourceHandle_t< Material >::NoHandle, and Cogs::ComponentModel::ComponentHandle::resolveComponent().

◆ destroyComponent()

void Cogs::Core::TwinCadModelSystem::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 264 of file TwinCadModelSystem.cpp.

References Cogs::Core::ComponentSystemBase::destroyComponent().

◆ preUpdate()

void Cogs::Core::TwinCadModelSystem::preUpdate ( Context )
overridevirtual

Provided for custom pre update logic in derived systems.

Reimplemented from Cogs::Core::ComponentSystemBase.

Definition at line 26 of file TwinCadModelSystem.cpp.

References Cogs::Core::ComponentSystemBase::context, Cogs::ComponentModel::Component::getComponent(), and Cogs::Core::ComponentSystem< ComponentType >::pool.

◆ update()

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

Member Data Documentation

◆ allowClippingVariantIndex

size_t Cogs::Core::TwinCadModelSystem::allowClippingVariantIndex = Material::NoVariantIndex
private

Definition at line 87 of file TwinCadModelSystem.h.

◆ attributeMapKey

VariableKey Cogs::Core::TwinCadModelSystem::attributeMapKey = NoProperty
private

Definition at line 69 of file TwinCadModelSystem.h.

◆ baseColorMapKey

VariableKey Cogs::Core::TwinCadModelSystem::baseColorMapKey = NoProperty
private

Definition at line 83 of file TwinCadModelSystem.h.

◆ clippingKey

VariableKey Cogs::Core::TwinCadModelSystem::clippingKey = NoProperty
private

Definition at line 78 of file TwinCadModelSystem.h.

◆ componentsCreated

bool Cogs::Core::TwinCadModelSystem::componentsCreated = false
private

Definition at line 95 of file TwinCadModelSystem.h.

◆ customEffectVariantIndex

size_t Cogs::Core::TwinCadModelSystem::customEffectVariantIndex = Material::NoVariantIndex
private

Definition at line 88 of file TwinCadModelSystem.h.

◆ diffuseColorKey

VariableKey Cogs::Core::TwinCadModelSystem::diffuseColorKey = NoProperty
private

Definition at line 71 of file TwinCadModelSystem.h.

◆ emissiveColorKey

VariableKey Cogs::Core::TwinCadModelSystem::emissiveColorKey = NoProperty
private

Definition at line 70 of file TwinCadModelSystem.h.

◆ hasAttributeDataKey

VariableKey Cogs::Core::TwinCadModelSystem::hasAttributeDataKey = NoProperty
private

Definition at line 81 of file TwinCadModelSystem.h.

◆ lightModelVariantIndex

size_t Cogs::Core::TwinCadModelSystem::lightModelVariantIndex = Material::NoVariantIndex
private

Definition at line 91 of file TwinCadModelSystem.h.

◆ material

MaterialHandle Cogs::Core::TwinCadModelSystem::material
private

Definition at line 67 of file TwinCadModelSystem.h.

◆ maxClippingKey

VariableKey Cogs::Core::TwinCadModelSystem::maxClippingKey = NoProperty
private

Definition at line 80 of file TwinCadModelSystem.h.

◆ metallicKey

VariableKey Cogs::Core::TwinCadModelSystem::metallicKey = NoProperty
private

Definition at line 74 of file TwinCadModelSystem.h.

◆ minClippingKey

VariableKey Cogs::Core::TwinCadModelSystem::minClippingKey = NoProperty
private

Definition at line 79 of file TwinCadModelSystem.h.

◆ normalMapKey

VariableKey Cogs::Core::TwinCadModelSystem::normalMapKey = NoProperty
private

Definition at line 84 of file TwinCadModelSystem.h.

◆ numSubstanceDefinitionMapsVariantIndex

size_t Cogs::Core::TwinCadModelSystem::numSubstanceDefinitionMapsVariantIndex = Material::NoVariantIndex
private

Definition at line 92 of file TwinCadModelSystem.h.

◆ occlusionRoughnessMetallicMapKey

VariableKey Cogs::Core::TwinCadModelSystem::occlusionRoughnessMetallicMapKey = NoProperty
private

Definition at line 85 of file TwinCadModelSystem.h.

◆ parametersKey

VariableKey Cogs::Core::TwinCadModelSystem::parametersKey = NoProperty
private

Definition at line 77 of file TwinCadModelSystem.h.

◆ rayPickExtension

TwinCadModelRayPickExtension* Cogs::Core::TwinCadModelSystem::rayPickExtension = nullptr
private

Definition at line 94 of file TwinCadModelSystem.h.

◆ roughnessKey

VariableKey Cogs::Core::TwinCadModelSystem::roughnessKey = NoProperty
private

Definition at line 75 of file TwinCadModelSystem.h.

◆ selectionEffectVariantIndex

size_t Cogs::Core::TwinCadModelSystem::selectionEffectVariantIndex = Material::NoVariantIndex
private

Definition at line 89 of file TwinCadModelSystem.h.

◆ specularColorKey

VariableKey Cogs::Core::TwinCadModelSystem::specularColorKey = NoProperty
private

Definition at line 72 of file TwinCadModelSystem.h.

◆ specularPowerKey

VariableKey Cogs::Core::TwinCadModelSystem::specularPowerKey = NoProperty
private

Definition at line 73 of file TwinCadModelSystem.h.

◆ substanceParamsKey

VariableKey Cogs::Core::TwinCadModelSystem::substanceParamsKey = NoProperty
private

Definition at line 76 of file TwinCadModelSystem.h.

◆ surfaceVarianceTextureKey

VariableKey Cogs::Core::TwinCadModelSystem::surfaceVarianceTextureKey = NoProperty
private

Definition at line 82 of file TwinCadModelSystem.h.

◆ surfaceVarianceVariantIndex

size_t Cogs::Core::TwinCadModelSystem::surfaceVarianceVariantIndex = Material::NoVariantIndex
private

Definition at line 90 of file TwinCadModelSystem.h.


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