Cogs.Core
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Cogs::Core::Volumetric::OctComponent Struct Reference
Inheritance diagram for Cogs::Core::Volumetric::OctComponent:
Cogs::ComponentModel::Component

Public Member Functions

TileResponseinitTileResponse (const TileRequest *req)
 
void submitTileResponse (TileResponse *res, bool success)
 
- 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 ()
 
- 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

bool forceWipe = false
 Discard all processed data, but regions persist.
 
float tolerance = 0.1f
 Requested refinement tolerance, may be somewhat ignored when atlas size is insufficient.
 
glm::vec3 blockShift = glm::vec3(0.f)
 Object space grid origin, tweak if block boundaries happen at unfortunate places.
 
glm::vec3 blockExtent = glm::vec3(1.f)
 
float valueMin = 0.f
 


 
float valueMax = 1.f
 
float turbidity = 100.f
 
float ageScale = 0.1f
 
uint32_t tileSize = 64u
 
uint32_t gpuCacheSize = 5u
 
OctSource source = OctSource::Value
 
TextureHandle transferTexture
 
struct {
   float(*   func )(void *data, uint64_t clientData) = nullptr
 
   void *   data = nullptr
 
alphaCallback
 
bool clearAllRegions = false
 If set to true, all current regions are discarded before regionsToAdd is processed.
 
bool drawDebug = false
 
std::vector< RegionregionsToAdd
 Regions to add this frame. It is OK to add a region multiple times, and this will invalidate regions triggering an update.
 
std::vector< RegionKey > regionsToRemove
 Set of regions to remove. Blocks with no regions are purged from the oct-tree.
 
std::vector< TileRequesttileRequests
 Requests for tiles, populated by OctSystem::update, consumed by provider.
 
struct OctSystemsystem
 

Detailed Description

Definition at line 69 of file OctComponent.h.

Member Function Documentation

◆ initTileResponse()

Cogs::Core::Volumetric::TileResponse * Cogs::Core::Volumetric::OctComponent::initTileResponse ( const TileRequest req)

Definition at line 35 of file OctComponent.cpp.

◆ registerType()

void Cogs::Core::Volumetric::OctComponent::registerType ( )
static

Definition at line 7 of file OctComponent.cpp.

◆ submitTileResponse()

void Cogs::Core::Volumetric::OctComponent::submitTileResponse ( TileResponse res,
bool  success 
)

Definition at line 85 of file OctComponent.cpp.

Member Data Documentation

◆ ageScale

float Cogs::Core::Volumetric::OctComponent::ageScale = 0.1f

Definition at line 80 of file OctComponent.h.

◆ blockExtent

glm::vec3 Cogs::Core::Volumetric::OctComponent::blockExtent = glm::vec3(1.f)

Definition at line 74 of file OctComponent.h.

◆ blockShift

glm::vec3 Cogs::Core::Volumetric::OctComponent::blockShift = glm::vec3(0.f)

Object space grid origin, tweak if block boundaries happen at unfortunate places.

Definition at line 73 of file OctComponent.h.

Referenced by Cogs::Core::Volumetric::OctSystem::update().

◆ clearAllRegions

bool Cogs::Core::Volumetric::OctComponent::clearAllRegions = false

If set to true, all current regions are discarded before regionsToAdd is processed.

Definition at line 95 of file OctComponent.h.

Referenced by Cogs::Core::Volumetric::OctDummyProviderSystem::preUpdate(), and Cogs::Core::Volumetric::OctSystem::update().

◆ data

void* Cogs::Core::Volumetric::OctComponent::data = nullptr

Definition at line 91 of file OctComponent.h.

◆ drawDebug

bool Cogs::Core::Volumetric::OctComponent::drawDebug = false

Definition at line 97 of file OctComponent.h.

◆ forceWipe

bool Cogs::Core::Volumetric::OctComponent::forceWipe = false

Discard all processed data, but regions persist.

Definition at line 71 of file OctComponent.h.

Referenced by Cogs::Core::Volumetric::OctSystem::update().

◆ func

float(* Cogs::Core::Volumetric::OctComponent::func) (void *data, uint64_t clientData) = nullptr

Definition at line 90 of file OctComponent.h.

◆ gpuCacheSize

uint32_t Cogs::Core::Volumetric::OctComponent::gpuCacheSize = 5u

Definition at line 83 of file OctComponent.h.

◆ regionsToAdd

std::vector<Region> Cogs::Core::Volumetric::OctComponent::regionsToAdd

Regions to add this frame. It is OK to add a region multiple times, and this will invalidate regions triggering an update.

Definition at line 100 of file OctComponent.h.

Referenced by Cogs::Core::Volumetric::OctSystem::update().

◆ regionsToRemove

std::vector<RegionKey> Cogs::Core::Volumetric::OctComponent::regionsToRemove

Set of regions to remove. Blocks with no regions are purged from the oct-tree.

Definition at line 103 of file OctComponent.h.

◆ source

OctSource Cogs::Core::Volumetric::OctComponent::source = OctSource::Value

Definition at line 85 of file OctComponent.h.

◆ system

struct OctSystem* Cogs::Core::Volumetric::OctComponent::system

Definition at line 113 of file OctComponent.h.

◆ tileRequests

std::vector<TileRequest> Cogs::Core::Volumetric::OctComponent::tileRequests

Requests for tiles, populated by OctSystem::update, consumed by provider.

Definition at line 106 of file OctComponent.h.

Referenced by Cogs::Core::Volumetric::OctSystem::update().

◆ tileSize

uint32_t Cogs::Core::Volumetric::OctComponent::tileSize = 64u

Definition at line 82 of file OctComponent.h.

◆ tolerance

float Cogs::Core::Volumetric::OctComponent::tolerance = 0.1f

Requested refinement tolerance, may be somewhat ignored when atlas size is insufficient.

Definition at line 72 of file OctComponent.h.

◆ transferTexture

TextureHandle Cogs::Core::Volumetric::OctComponent::transferTexture

Definition at line 87 of file OctComponent.h.

◆ turbidity

float Cogs::Core::Volumetric::OctComponent::turbidity = 100.f

Definition at line 79 of file OctComponent.h.

◆ valueMax

float Cogs::Core::Volumetric::OctComponent::valueMax = 1.f

Definition at line 78 of file OctComponent.h.

◆ valueMin

float Cogs::Core::Volumetric::OctComponent::valueMin = 0.f

Definition at line 77 of file OctComponent.h.

Referenced by Cogs::Core::EchoSounder::OctProviderSystem::preUpdate().


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