Cogs.Core
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Cogs::Core::RenderComponent Class Reference

Base component for all rendering content. More...

#include <RenderComponent.h>

Inheritance diagram for Cogs::Core::RenderComponent:
Cogs::ComponentModel::Component Cogs::Core::GuiRenderComponent Cogs::Core::HighlightRegionComponent Cogs::Core::Image360Component Cogs::Core::InstancedMeshRenderComponent Cogs::Core::MeshRenderComponent Cogs::Core::PotreeComponent Cogs::Core::SpriteRenderComponent Cogs::Core::SubMeshRenderComponent

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 EntitygetContainer () 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 ComponentgetComponent (const Reflection::Name &name) const
 
COGSFOUNDATION_API ComponentgetComponent (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::TypegetType () 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.
 

Detailed Description

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.

Member Function Documentation

◆ castShadows()

constexpr bool Cogs::Core::RenderComponent::castShadows ( ) const
inlineconstexpr

Get if the object should cast shadows.

Definition at line 255 of file RenderComponent.h.

References Cogs::Core::CastShadows, and isRenderFlagsSet().

◆ customMaterial()

constexpr bool Cogs::Core::RenderComponent::customMaterial ( ) const
inlineconstexpr

Definition at line 266 of file RenderComponent.h.

◆ disableCulling()

constexpr bool Cogs::Core::RenderComponent::disableCulling ( ) const
inlineconstexpr

Get if the object should skip culling.

Definition at line 261 of file RenderComponent.h.

References Cogs::Core::DisableCulling, and isRenderFlagsSet().

◆ isPickable()

constexpr bool Cogs::Core::RenderComponent::isPickable ( ) const
inlineconstexpr

◆ isRenderFlagSet()

constexpr bool Cogs::Core::RenderComponent::isRenderFlagSet ( RenderFlags  flag) const
inlineconstexpr

Check if the given flag is currently set.

Parameters
flagRender flag to check the status of.
Returns
A boolean indicating if the given flag is set.

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

◆ isRenderFlagsSet()

constexpr bool Cogs::Core::RenderComponent::isRenderFlagsSet ( RenderFlags  flags) const
inlineconstexpr

Check if the given combination of flags are set.

Parameters
flagsCombined flags to check the status of.
Returns
A boolean indicating if all the flags were set. If one or more flags were unset, returns false.

Definition at line 202 of file RenderComponent.h.

References renderFlags.

Referenced by castShadows(), disableCulling(), isPickable(), and isVisible().

◆ isVisible()

constexpr bool Cogs::Core::RenderComponent::isVisible ( ) const
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.

Returns
A boolean indicating true if visible, false if not.

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

◆ isVisibleInLayer()

constexpr bool Cogs::Core::RenderComponent::isVisibleInLayer ( RenderLayers  layerMask) const
inlineconstexpr

◆ registerType()

void Cogs::Core::RenderComponent::registerType ( )
static

◆ setRenderFlag() [1/2]

constexpr void Cogs::Core::RenderComponent::setRenderFlag ( RenderFlags  flag)
inlineconstexpr

Sets the given flag.

The flag is combined with the current state. If the flag is already set, has no effect.

Parameters
flagRender flag to set.

Definition at line 161 of file RenderComponent.h.

References renderFlags.

Referenced by setRenderFlag(), and setVisible().

◆ setRenderFlag() [2/2]

constexpr void Cogs::Core::RenderComponent::setRenderFlag ( RenderFlags  flag,
bool  status 
)
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.

Parameters
flagRender flag to set.
statusA boolean indicating if the flag should be set or unset.

Definition at line 171 of file RenderComponent.h.

References setRenderFlag(), and unsetRenderFlag().

◆ setVisible()

constexpr void Cogs::Core::RenderComponent::setVisible ( bool  visible)
inlineconstexpr

Set the specific visibility.

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

◆ unsetRenderFlag()

constexpr void Cogs::Core::RenderComponent::unsetRenderFlag ( RenderFlags  flag)
inlineconstexpr

Unset the given flag.

Parameters
flagRender flag to unset.

Definition at line 184 of file RenderComponent.h.

References renderFlags.

Referenced by setRenderFlag(), and Cogs::Core::MarkerPointSetSystem::update().

Member Data Documentation

◆ clipShapeComponent

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

◆ drawOrder

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

◆ layer

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.

See also
CameraComponent::layerMask

Definition at line 134 of file RenderComponent.h.

Referenced by registerType().

◆ objectId

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

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


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