Cogs.Core
|
Instantiates an asset model into the scene. More...
#include <AssetComponent.h>
Static Public Member Functions | |
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 | |
AssetHandle | asset = AssetHandle::NoHandle |
Asset resource that should be instantiated. | |
AssetFlags | flags = AssetFlags::None |
Flags to control behaviour of asset instantiation. | |
std::vector< uint32_t > | idRanges |
float | tolerance = 1.0f |
Tolerance scale factor to use when determining lod levels, see AssetComponent's documentation. | |
float | minDistance = 1.f |
Minimum distance to use when scaling the tolerance. | |
float | priority = 0.0f |
Used to sort requests, higher number gets processed before lower number. | |
bool | freezeLod = false |
Temporarily disable adjustment of target lod-level, debug tool to allow moving the camera without affecting lod levels. | |
bool | forceTolerance = false |
Disable adjustment of tolerance due to quality system or resource usage. | |
MaterialInstanceHandle | material = MaterialInstanceHandle::NoHandle |
Material to use for models if the OverrideMaterial flag is set. | |
Additional Inherited Members | |
![]() | |
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. | |
Instantiates an asset model into the scene.
see Documentation/AssetSystem.md
TODO: Investigate resource usage tolerance scaling. TODO: The tolerance should also be scaled by effective window size.
Definition at line 29 of file AssetComponent.h.
|
static |
Register the type in the type system.
Definition at line 7 of file AssetComponent.cpp.
References asset, Cogs::Core::CloneMaterial, flags, forceTolerance, freezeLod, Cogs::Core::InstantiateOnDemand, material, minDistance, Cogs::Core::OverrideMaterial, priority, Cogs::Core::RelativePaths, and tolerance.
AssetHandle Cogs::Core::AssetComponent::asset = AssetHandle::NoHandle |
Asset resource that should be instantiated.
Definition at line 34 of file AssetComponent.h.
Referenced by registerType().
AssetFlags Cogs::Core::AssetComponent::flags = AssetFlags::None |
Flags to control behaviour of asset instantiation.
Definition at line 36 of file AssetComponent.h.
Referenced by registerType().
bool Cogs::Core::AssetComponent::forceTolerance = false |
Disable adjustment of tolerance due to quality system or resource usage.
Definition at line 45 of file AssetComponent.h.
Referenced by registerType().
bool Cogs::Core::AssetComponent::freezeLod = false |
Temporarily disable adjustment of target lod-level, debug tool to allow moving the camera without affecting lod levels.
Definition at line 44 of file AssetComponent.h.
Referenced by registerType().
std::vector<uint32_t> Cogs::Core::AssetComponent::idRanges |
Definition at line 38 of file AssetComponent.h.
MaterialInstanceHandle Cogs::Core::AssetComponent::material = MaterialInstanceHandle::NoHandle |
Material to use for models if the OverrideMaterial flag is set.
Definition at line 47 of file AssetComponent.h.
Referenced by registerType().
float Cogs::Core::AssetComponent::minDistance = 1.f |
Minimum distance to use when scaling the tolerance.
Definition at line 41 of file AssetComponent.h.
Referenced by registerType().
float Cogs::Core::AssetComponent::priority = 0.0f |
Used to sort requests, higher number gets processed before lower number.
Definition at line 42 of file AssetComponent.h.
Referenced by registerType().
float Cogs::Core::AssetComponent::tolerance = 1.0f |
Tolerance scale factor to use when determining lod levels, see AssetComponent's documentation.
Definition at line 40 of file AssetComponent.h.
Referenced by registerType().