|
Cogs.Core
|
Base component for all rendering content. More...
#include <RenderComponent.h>
Classes | |
| struct | LodData |
| Lod data holding the LoD state of the entity this render component belongs to. More... | |
Public Member Functions | |
| constexpr void | setRenderFlag (RenderFlags flag) |
| Sets the given flag. | |
| constexpr void | setRenderFlag (RenderFlags flag, bool status) |
| Set the given flag to the given status. | |
| constexpr void | unsetRenderFlag (RenderFlags flag) |
| Unset the given flag. | |
| constexpr bool | isRenderFlagSet (RenderFlags flag) const |
| Check if the given flag is currently set. | |
| constexpr bool | isRenderFlagsSet (RenderFlags flags) const |
| Check if the given combination of flags are set. | |
| constexpr void | setVisible (bool visible) |
| Set the specific visibility. | |
| constexpr bool | isVisibleInLayer (RenderLayers layerMask) const |
| Check if the entity should be visible in the given layer mask. | |
| constexpr bool | isVisible () const |
| Check if the entity is visible or not. | |
| constexpr bool | isPickable () const |
| Check if the entity is pickable or not. | |
| constexpr bool | castShadows () const |
| Get if the object should cast shadows. | |
| constexpr bool | disableCulling () const |
| Get if the object should skip culling. | |
| constexpr bool | customMaterial () const |
Public Member Functions inherited from Cogs::ComponentModel::Component | |
| class Entity * | getContainer () const |
| Get the container currently owning this component instance. | |
| void | setContainer (class Entity *container) |
| Set the container owning this component instance. | |
| template<typename ComponentType > | |
| ComponentType * | getComponent () const |
| COGSFOUNDATION_API Component * | getComponent (const Reflection::Name &name) const |
| COGSFOUNDATION_API Component * | getComponent (const Reflection::TypeId &id) const |
| template<typename ComponentType > | |
| ComponentHandle | getComponentHandle () const |
| COGSFOUNDATION_API ComponentHandle | getComponentHandle (const Reflection::Name &name) const |
| COGSFOUNDATION_API ComponentHandle | getComponentHandle (const Reflection::TypeId &id) const |
| void | setActive () |
| Sets the component to the ComponentFlags::Active state. | |
| bool | isActive () const |
| Gets if the component is currently set to the ComponentFlags::Active state. | |
| void | setChanged () |
| Sets the component to the ComponentFlags::Changed state with carry. | |
| void | setChangedTransient () |
| Sets the component to the ComponentFlags::Changed state without carry. | |
| void | setFieldChanged (const Reflection::FieldId fieldId) |
| Sets the component to the ComponentFlags::Changed state without carry. | |
| template<typename ClassType , typename FieldType > | |
| void | setFieldChanged (FieldType ClassType::*field) |
| Sets a flag indicating that the given field has changed. | |
| void | setFieldChangedTransient (const Reflection::FieldId fieldId) |
| Sets the component to the ComponentFlags::Changed state without carry. | |
| bool | hasChanged () const |
| bool | hasAnyfieldChanged () const |
| Gets if any fields have been changed. | |
| bool | hasFieldChanged (const Reflection::FieldId fieldId) const |
| Gets if the field with the given id on this component instance has changed. | |
| template<typename ClassType , typename FieldType > | |
| bool | hasFieldChanged (FieldType ClassType::*field) const |
| Gets if the given field has changed. | |
| void | resetCarryChanged () |
| Reset the CarryChanged flag. Called at start of redraw. See ComponentFlags::CarryChanged. | |
| void | resetChanged () |
| Resets the changed state of the component, respecting any carry state set. | |
| template<typename ClassType , typename FieldType > | |
| Reflection::FieldId | getFieldId (FieldType ClassType::*field) const |
| Gets field ID of the given field. | |
| void | resetFieldsChanged () |
| Resets the state of all changed field flags. | |
| void | resetFieldChanged (const Reflection::FieldId fieldId) |
| Resets the changed state of the given fieldId. | |
| template<typename ClassType , typename FieldType > | |
| void | resetFieldChanged (FieldType ClassType::*field) |
| Resets the changed state of the given field. | |
| constexpr void | setFlags (const uint32_t flags) |
| Override all flags of the Component, setting the given flags. | |
| constexpr void | setFlag (const uint32_t flag) |
| Set the given flags. Does not override the currently set flags. | |
| constexpr void | unsetFlag (const uint32_t flag) |
| Unset the given flag. Does not remove the status of other than the given flags. | |
| constexpr bool | isSet (const uint32_t flag) const |
| Checks if the given flag is set. Requires exact bit match if test of several bits. | |
| constexpr void | setTypeId (const Reflection::TypeId typeId) |
| Set the Reflection::TypeId of the component. | |
| constexpr Reflection::TypeId | getTypeId () const |
| Get the Reflection::TypeId of the component. | |
| COGSFOUNDATION_API const Reflection::Type & | getType () const |
| Get the full Reflection::Type of the component. | |
| constexpr void | setIndex (const ComponentIndex index) |
| Set the components pool index. For internal use only. | |
| constexpr ComponentIndex | getIndex () const |
| Get the components pool index. For internal use only. | |
| constexpr void | setGeneration (uint16_t generation) |
| Sets the component generation. | |
| constexpr uint16_t | getGeneration () const |
| Gets the component generation. | |
| size_t | hash (size_t hashValue=Cogs::hash()) const |
| Calculates a hash of this component's members. | |
Static Public Member Functions | |
| static void | registerType () |
| Register the type in the type system. | |
Static Public Member Functions inherited from Cogs::ComponentModel::Component | |
| static COGSFOUNDATION_API void | registerType () |
| Register the Component type in the global type database. | |
| static COGSFOUNDATION_API Reflection::TypeId | getComponentTypeId (const StringView &name) |
| Get the type id of the component type with the given name. | |
Public Attributes | |
| struct Cogs::Core::RenderComponent::LodData | lod |
| RenderLayers | layer = RenderLayers::Default |
| Layer mask used to determine visibility for a given camera viewport. | |
| int32_t | drawOrder = 0 |
| Draw order within a render bucke. | |
| RenderFlags | renderFlags = RenderFlags::Default |
| Render flags used to control rendering behavior. | |
| uint32_t | objectId = NoObjectId |
| Object identifier passed to rendering commands. | |
| ComponentModel::ComponentHandle | clipShapeComponent = ComponentModel::ComponentHandle::Empty() |
| Handle to the currently active clip component, if any. | |
Base component for all rendering content.
The render component acts as a base class for all components describing rendering behavior. It provides common functionality for all rendering to toggle visibility, picking and layer behavior.
Definition at line 105 of file RenderComponent.h.
|
inlineconstexpr |
Get if the object should cast shadows.
Definition at line 255 of file RenderComponent.h.
References Cogs::Core::CastShadows, and isRenderFlagsSet().
|
inlineconstexpr |
Definition at line 266 of file RenderComponent.h.
|
inlineconstexpr |
Get if the object should skip culling.
Definition at line 261 of file RenderComponent.h.
References Cogs::Core::DisableCulling, and isRenderFlagsSet().
|
inlineconstexpr |
Check if the entity is pickable or not.
To be pickable, the component must have all pickable flags set and isVisible() must return true.
Definition at line 249 of file RenderComponent.h.
References isRenderFlagsSet(), isVisible(), Cogs::Core::ParentPickable, and Cogs::Core::SelfPickable.
Referenced by Cogs::Core::PotreePicker::pickCamera(), Cogs::Core::Image360::RayPickExtension::pickCamera(), Cogs::Core::OceanPicker::pickCamera(), Cogs::Core::SpritePicker::pickCamera(), Cogs::Core::InstancedMeshPicker::pickImpl(), Cogs::Core::MeshRenderPicker::pickImpl(), Cogs::Core::SubMeshPicker::pickImpl(), and Cogs::Core::PotreePicker::pickRay().
|
inlineconstexpr |
Check if the given flag is currently set.
| flag | Render flag to check the status of. |
Definition at line 193 of file RenderComponent.h.
References renderFlags.
Referenced by Cogs::Core::InstancedMeshPicker::pickImpl(), Cogs::Core::MeshRenderPicker::pickImpl(), and Cogs::Core::SubMeshPicker::pickImpl().
|
inlineconstexpr |
Check if the given combination of flags are set.
| flags | Combined flags to check the status of. |
Definition at line 202 of file RenderComponent.h.
References renderFlags.
Referenced by castShadows(), disableCulling(), isPickable(), and isVisible().
|
inlineconstexpr |
Check if the entity is visible or not.
To be visible the component must have all the different visibility flags set. If one or more of the visibility flags are unset, the entity should not be visible.
Definition at line 235 of file RenderComponent.h.
References isRenderFlagsSet(), Cogs::Core::ParentVisibility, Cogs::Core::SelfVisibility, and Cogs::Core::SpecificVisibility.
Referenced by Cogs::Core::HighlightRegionRenderer::handleEvent(), isPickable(), isVisibleInLayer(), Cogs::Core::InstancedMeshPicker::pickImpl(), Cogs::Core::MeshRenderPicker::pickImpl(), Cogs::Core::SubMeshPicker::pickImpl(), and Cogs::Core::PotreeSystem::update().
|
inlineconstexpr |
Check if the entity should be visible in the given layer mask.
| layerMask | Layer mask to combine with the components layer to determine if they match. |
Definition at line 222 of file RenderComponent.h.
References isVisible().
Referenced by Cogs::Core::PotreePicker::pickCamera(), Cogs::Core::Image360::RayPickExtension::pickCamera(), Cogs::Core::OceanPicker::pickCamera(), Cogs::Core::TerrainPicker::pickCamera(), Cogs::Core::VectorField::VectorFieldPick::pickCamera(), Cogs::Core::SpritePicker::pickCamera(), Cogs::Core::MarkerPointSetPicker::pickCamera(), Cogs::Core::InstancedMeshPicker::pickImpl(), Cogs::Core::MeshRenderPicker::pickImpl(), Cogs::Core::SubMeshPicker::pickImpl(), Cogs::Core::PotreePicker::pickRay(), and Cogs::Core::MarkerPointSetPicker::pickRay().
|
static |
Register the type in the type system.
Definition at line 7 of file RenderComponent.cpp.
References Cogs::Core::CastShadows, Cogs::Core::CustomMaterial, Cogs::Core::Default, Cogs::Core::DisableCulling, drawOrder, Cogs::Core::ForcePickable, layer, Cogs::Core::None, objectId, Cogs::Core::ParentPickable, Cogs::Core::ParentVisibility, renderFlags, Cogs::Core::SelfPickable, Cogs::Core::SelfVisibility, and Cogs::Core::SpecificVisibility.
|
inlineconstexpr |
Sets the given flag.
The flag is combined with the current state. If the flag is already set, has no effect.
| flag | Render flag to set. |
Definition at line 161 of file RenderComponent.h.
References renderFlags.
Referenced by setRenderFlag(), and setVisible().
|
inlineconstexpr |
Set the given flag to the given status.
The flag is toggled to either set or unset depending if the status is true or false.
| flag | Render flag to set. |
| status | A boolean indicating if the flag should be set or unset. |
Definition at line 171 of file RenderComponent.h.
References setRenderFlag(), and unsetRenderFlag().
|
inlineconstexpr |
Set the specific visibility.
| visible | A boolean indicating if the RenderFlags::SpecificVisibility flag should be set or unset. |
Definition at line 209 of file RenderComponent.h.
References setRenderFlag(), and Cogs::Core::SpecificVisibility.
|
inlineconstexpr |
Unset the given flag.
| flag | Render flag to unset. |
Definition at line 184 of file RenderComponent.h.
References renderFlags.
Referenced by setRenderFlag(), and Cogs::Core::MarkerPointSetSystem::update().
| ComponentModel::ComponentHandle Cogs::Core::RenderComponent::clipShapeComponent = ComponentModel::ComponentHandle::Empty() |
Handle to the currently active clip component, if any.
For internal use, it is updated by the asset and scene systems and read by the renderer.
Definition at line 276 of file RenderComponent.h.
Referenced by Cogs::Core::InstancedMeshPicker::pickImpl(), Cogs::Core::MeshRenderPicker::pickImpl(), Cogs::Core::SubMeshPicker::pickImpl(), and Cogs::Core::PotreeSystem::update().
| int32_t Cogs::Core::RenderComponent::drawOrder = 0 |
Draw order within a render bucke.
Useful to control transparency overdraw.
This value will be overriden by the material's draworder if that is nonzero.
Definition at line 143 of file RenderComponent.h.
Referenced by registerType().
| RenderLayers Cogs::Core::RenderComponent::layer = RenderLayers::Default |
Layer mask used to determine visibility for a given camera viewport.
The layer mask is combined with that of the camera. The resulting value can then be combined with the result of isVisible() to form a final visibility value.
Definition at line 134 of file RenderComponent.h.
Referenced by registerType().
| uint32_t Cogs::Core::RenderComponent::objectId = NoObjectId |
Object identifier passed to rendering commands.
Definition at line 153 of file RenderComponent.h.
Referenced by registerType().
| RenderFlags Cogs::Core::RenderComponent::renderFlags = RenderFlags::Default |
Render flags used to control rendering behavior.
Definition at line 148 of file RenderComponent.h.
Referenced by isRenderFlagSet(), isRenderFlagsSet(), registerType(), setRenderFlag(), and unsetRenderFlag().