Cogs.Core
Static Public Member Functions | Public Attributes | List of all members
Cogs::Core::TexAtlasComponent Struct Reference

#include <TexAtlasComponent.h>

Inheritance diagram for Cogs::Core::TexAtlasComponent:
Cogs::ComponentModel::Component

Static Public Member Functions

static void registerType ()
 
- 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

std::string path
 Path to tile hierarcy root.
 
std::vector< MaterialHandlematerials
 Materials that use this atlas.
 
std::vector< glm::dvec2 > coefficients
 Coefficients that specifies the projection.
 
float elevation = 0.f
 Elevation of map to be used for culling and lod'ing. Keep as precise as possible.
 
TexAtlasProjection projection = TexAtlasProjection::WorldSpaceBilinear
 Projection to use.
 
glm::dvec2 domainMin = glm::dvec2(0.0)
 Specifies the lower-left corner of the domain that is mapped.
 
glm::dvec2 domainMax = glm::dvec2(1.0)
 Specifies the upper-right corner of the domain that is mapped.
 
glm::dvec2 domainExtentsMin = glm::dvec2(0.0)
 Specifies the lower-left corner of the domain. Values in domain units.
 
glm::dvec2 domainExtentsMax = glm::dvec2(0.0)
 Specifies the upper-right corner of the domain. Values in domain units.
 
uint32_t minLevel = 0
 Minimum level to use.
 
uint32_t maxLevel = 8
 Maximum level to use.
 
uint32_t index = 0
 Which atlas this is when a material has multiple atlases.
 
float tolerance = 1.f / 2048.f
 Specifies how big a texel should ideally be if screen has size 1.
 
uint32_t maxItemCount = 512
 Maximum number of tiles to use simultaneously.
 
uint32_t timeout = 30
 Time before timing out a fetch, in seconds. Set to zero to disable.
 
uint32_t minRetryDelay = 2
 Minimum delay before retrying a failed fetch in seconds. The delay will double with each successive failed fetch attempt for a tile. Set to zero to disable.
 
bool restrictBetweenNearAndFar = true
 Restrict visible tiles to the interval between near and far, otherwise all tiles from eye to the inifinity is considered visible.
 
bool debugBox = false
 Render wireframe box that outlines texture position in world.
 

Additional Inherited Members

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

Detailed Description

Manage a texture atlas that can be accessed in materials

See TexAtlas.md for a thorough description.

Definition at line 22 of file TexAtlasComponent.h.

Member Function Documentation

◆ registerType()

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

Definition at line 8 of file TexAtlasComponent.cpp.

Member Data Documentation

◆ coefficients

std::vector<glm::dvec2> Cogs::Core::TexAtlasComponent::coefficients

Coefficients that specifies the projection.

Definition at line 27 of file TexAtlasComponent.h.

◆ debugBox

bool Cogs::Core::TexAtlasComponent::debugBox = false

Render wireframe box that outlines texture position in world.

Definition at line 42 of file TexAtlasComponent.h.

◆ domainExtentsMax

glm::dvec2 Cogs::Core::TexAtlasComponent::domainExtentsMax = glm::dvec2(0.0)

Specifies the upper-right corner of the domain. Values in domain units.

Definition at line 33 of file TexAtlasComponent.h.

◆ domainExtentsMin

glm::dvec2 Cogs::Core::TexAtlasComponent::domainExtentsMin = glm::dvec2(0.0)

Specifies the lower-left corner of the domain. Values in domain units.

Definition at line 32 of file TexAtlasComponent.h.

◆ domainMax

glm::dvec2 Cogs::Core::TexAtlasComponent::domainMax = glm::dvec2(1.0)

Specifies the upper-right corner of the domain that is mapped.

Definition at line 31 of file TexAtlasComponent.h.

◆ domainMin

glm::dvec2 Cogs::Core::TexAtlasComponent::domainMin = glm::dvec2(0.0)

Specifies the lower-left corner of the domain that is mapped.

Definition at line 30 of file TexAtlasComponent.h.

◆ elevation

float Cogs::Core::TexAtlasComponent::elevation = 0.f

Elevation of map to be used for culling and lod'ing. Keep as precise as possible.

Definition at line 28 of file TexAtlasComponent.h.

◆ index

uint32_t Cogs::Core::TexAtlasComponent::index = 0

Which atlas this is when a material has multiple atlases.

Definition at line 36 of file TexAtlasComponent.h.

◆ materials

std::vector<MaterialHandle> Cogs::Core::TexAtlasComponent::materials

Materials that use this atlas.

Definition at line 26 of file TexAtlasComponent.h.

◆ maxItemCount

uint32_t Cogs::Core::TexAtlasComponent::maxItemCount = 512

Maximum number of tiles to use simultaneously.

Definition at line 38 of file TexAtlasComponent.h.

◆ maxLevel

uint32_t Cogs::Core::TexAtlasComponent::maxLevel = 8

Maximum level to use.

Definition at line 35 of file TexAtlasComponent.h.

◆ minLevel

uint32_t Cogs::Core::TexAtlasComponent::minLevel = 0

Minimum level to use.

Definition at line 34 of file TexAtlasComponent.h.

◆ minRetryDelay

uint32_t Cogs::Core::TexAtlasComponent::minRetryDelay = 2

Minimum delay before retrying a failed fetch in seconds. The delay will double with each successive failed fetch attempt for a tile. Set to zero to disable.

Definition at line 40 of file TexAtlasComponent.h.

◆ path

std::string Cogs::Core::TexAtlasComponent::path

Path to tile hierarcy root.

Definition at line 25 of file TexAtlasComponent.h.

◆ projection

TexAtlasProjection Cogs::Core::TexAtlasComponent::projection = TexAtlasProjection::WorldSpaceBilinear

Projection to use.

Definition at line 29 of file TexAtlasComponent.h.

◆ restrictBetweenNearAndFar

bool Cogs::Core::TexAtlasComponent::restrictBetweenNearAndFar = true

Restrict visible tiles to the interval between near and far, otherwise all tiles from eye to the inifinity is considered visible.

Definition at line 41 of file TexAtlasComponent.h.

◆ timeout

uint32_t Cogs::Core::TexAtlasComponent::timeout = 30

Time before timing out a fetch, in seconds. Set to zero to disable.

Definition at line 39 of file TexAtlasComponent.h.

◆ tolerance

float Cogs::Core::TexAtlasComponent::tolerance = 1.f / 2048.f

Specifies how big a texel should ideally be if screen has size 1.

Definition at line 37 of file TexAtlasComponent.h.


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