Cogs.Core
|
Renders a mesh using instancing. More...
#include <InstancedMeshRenderComponent.h>
Static Public Member Functions | |
static void | registerType () |
Register the type in the type system. | |
static uint32_t | getRenderCount (uint32_t startIndex, uint32_t instanceCount, uint32_t meshCount) |
Get number of instanced Meshes to render. | |
![]() | |
static void | registerType () |
Register the type in the type system. | |
![]() | |
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 | |
MeshHandle | instanceMesh |
Mesh containing instancing data. | |
MaterialInstanceHandle | material |
Material instance used to render the mesh. | |
uint32_t | startIndex = 0 |
Start vertex index to render from. | |
uint32_t | vertexCount = DrawRest |
Number of vertexes to draw. uint32_t(-1) to draw all remaining vertices. | |
uint32_t | startInstance = 0 |
Start instance. | |
uint32_t | instanceCount = DrawRest |
Instance count. uint32_t(-1) to draw all remaining instances. | |
PrimitiveType::EPrimitiveType | primitiveType = (PrimitiveType::EPrimitiveType)-1 |
Primitive type to use when drawing. Default value -1 means use primitive type from mesh. | |
![]() | |
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. | |
Static Public Attributes | |
static constexpr uint32_t | DrawRest = static_cast<uint32_t>(-1) |
Special value for vertex/instance Count to draw all elements from start index. | |
Additional Inherited Members | |
![]() | |
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 |
![]() | |
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. | |
Renders a mesh using instancing.
Definition at line 14 of file InstancedMeshRenderComponent.h.
|
static |
Get number of instanced Meshes to render.
Will quietly limit number of Instances to fit within bounds of the Mesh values (positions, colors). Usage: InstancedMeshRenderComponent::getRenderCount(renderComponent.startIndex, renderComponent.vertexCount, mesh->getCount()); InstancedMeshRenderComponent::getRenderCount(renderComponent.startInstance, renderComponent.instanceCount, instanceMesh->getCount())
startIndex | First instanceIndex to draw. InstancedMeshRenderComponent.startInstance(or startIndex). |
instanceCount | Number of elements to draw. InstancedMeshRenderComponent.instanceCount |
meshCount | Length of mesh stream, e.g. Mesh Instance-Positions. |
Definition at line 22 of file InstancedMeshRenderComponent.cpp.
Referenced by Cogs::Core::InstancedMeshPicker::pickImpl(), and Cogs::Core::InstancedMeshRenderSystem::update().
|
static |
Register the type in the type system.
Definition at line 7 of file InstancedMeshRenderComponent.cpp.
References instanceCount, instanceMesh, material, primitiveType, startIndex, startInstance, and vertexCount.
|
staticconstexpr |
Special value for vertex/instance Count to draw all elements from start index.
Definition at line 43 of file InstancedMeshRenderComponent.h.
uint32_t Cogs::Core::InstancedMeshRenderComponent::instanceCount = DrawRest |
Instance count. uint32_t(-1) to draw all remaining instances.
Definition at line 36 of file InstancedMeshRenderComponent.h.
Referenced by Cogs::Core::InstancedMeshPicker::pickImpl(), registerType(), and Cogs::Core::InstancedMeshRenderSystem::update().
MeshHandle Cogs::Core::InstancedMeshRenderComponent::instanceMesh |
Mesh containing instancing data.
Definition at line 21 of file InstancedMeshRenderComponent.h.
Referenced by Cogs::Core::InstancedMeshPicker::pickImpl(), registerType(), Cogs::Core::MarkerPointSetSystem::update(), and Cogs::Core::InstancedMeshRenderSystem::update().
MaterialInstanceHandle Cogs::Core::InstancedMeshRenderComponent::material |
Material instance used to render the mesh.
Definition at line 24 of file InstancedMeshRenderComponent.h.
Referenced by registerType(), and Cogs::Core::MarkerPointSetSystem::update().
PrimitiveType::EPrimitiveType Cogs::Core::InstancedMeshRenderComponent::primitiveType = (PrimitiveType::EPrimitiveType)-1 |
Primitive type to use when drawing. Default value -1 means use primitive type from mesh.
Definition at line 39 of file InstancedMeshRenderComponent.h.
Referenced by registerType().
uint32_t Cogs::Core::InstancedMeshRenderComponent::startIndex = 0 |
Start vertex index to render from.
Definition at line 27 of file InstancedMeshRenderComponent.h.
Referenced by Cogs::Core::InstancedMeshPicker::pickImpl(), registerType(), Cogs::Core::InstancedMeshRenderSystem::update(), and Cogs::Core::InstancedModelSystem::update().
uint32_t Cogs::Core::InstancedMeshRenderComponent::startInstance = 0 |
Start instance.
Definition at line 33 of file InstancedMeshRenderComponent.h.
Referenced by Cogs::Core::InstancedMeshPicker::pickImpl(), registerType(), and Cogs::Core::InstancedMeshRenderSystem::update().
uint32_t Cogs::Core::InstancedMeshRenderComponent::vertexCount = DrawRest |
Number of vertexes to draw. uint32_t(-1) to draw all remaining vertices.
Definition at line 30 of file InstancedMeshRenderComponent.h.
Referenced by Cogs::Core::InstancedMeshPicker::pickImpl(), registerType(), and Cogs::Core::InstancedMeshRenderSystem::update().