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

Public Types

enum struct  Shape : int { Hollow , Solid , Shell }
 

Public Member Functions

template<typename Arg0 , typename Arg1 >
bool set (Arg0 &&vertices, Arg1 &&spine, LoftedCrossSectionsComponent::Shape shape, int samples, int crossSections, bool doubleSeamVertices)
 
template<typename Arg0 >
void setVertices (Arg0 &&arg)
 
- 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 open = false
 If true, cull the front of the shape such that the inside is visible.
 
bool screenAligned = false
 Let open geometry be screen-aligned.
 
LoftedCrossSectionsComponent::Shape shape = Shape::Hollow
 
int samples = 0
 Number of sample points in each of the cross sections.
 
int crossSections = 0
 Number of cross sections (inner & outer cross sections count as one).
 
bool hollow = false
 True if shape has inner and outer cross sections, otherwise shape is solid with only outer cross sections.
 
bool doubleSeamVertices = false
 
bool hasData = false
 True if we have (sane) data.
 
std::vector< PositionNormalVertexvertices_vn
 
std::vector< PositionNormalTexVertexvertices_vnt
 
std::vector< glm::vec3 > spine
 
Geometry::BoundingBox boundingBox
 
bool boundingBoxSet = false
 True when bounding box info is set but not yet forwarded to mesh.
 
bool visibility = false
 

Detailed Description

Definition at line 16 of file LoftedCrossSectionsComponent.h.

Member Enumeration Documentation

◆ Shape

enum struct Cogs::Core::LoftedCrossSectionsComponent::Shape : int
strong

Definition at line 18 of file LoftedCrossSectionsComponent.h.

Member Function Documentation

◆ registerType()

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

Definition at line 7 of file LoftedCrossSectionsComponent.cpp.

◆ set()

template<typename Arg0 , typename Arg1 >
bool Cogs::Core::LoftedCrossSectionsComponent::set ( Arg0 &&  vertices,
Arg1 &&  spine,
LoftedCrossSectionsComponent::Shape  shape,
int  samples,
int  crossSections,
bool  doubleSeamVertices 
)
inline

Definition at line 41 of file LoftedCrossSectionsComponent.h.

Member Data Documentation

◆ boundingBox

Geometry::BoundingBox Cogs::Core::LoftedCrossSectionsComponent::boundingBox

Definition at line 36 of file LoftedCrossSectionsComponent.h.

◆ boundingBoxSet

bool Cogs::Core::LoftedCrossSectionsComponent::boundingBoxSet = false

True when bounding box info is set but not yet forwarded to mesh.

Definition at line 37 of file LoftedCrossSectionsComponent.h.

Referenced by Cogs::Core::LoftedCrossSectionsSystem::update().

◆ crossSections

int Cogs::Core::LoftedCrossSectionsComponent::crossSections = 0

Number of cross sections (inner & outer cross sections count as one).

Definition at line 29 of file LoftedCrossSectionsComponent.h.

◆ doubleSeamVertices

bool Cogs::Core::LoftedCrossSectionsComponent::doubleSeamVertices = false

Definition at line 31 of file LoftedCrossSectionsComponent.h.

◆ hasData

bool Cogs::Core::LoftedCrossSectionsComponent::hasData = false

True if we have (sane) data.

Definition at line 32 of file LoftedCrossSectionsComponent.h.

Referenced by Cogs::Core::LoftedCrossSectionsSystem::update().

◆ hollow

bool Cogs::Core::LoftedCrossSectionsComponent::hollow = false

True if shape has inner and outer cross sections, otherwise shape is solid with only outer cross sections.

Definition at line 30 of file LoftedCrossSectionsComponent.h.

◆ open

bool Cogs::Core::LoftedCrossSectionsComponent::open = false

If true, cull the front of the shape such that the inside is visible.

Definition at line 25 of file LoftedCrossSectionsComponent.h.

◆ samples

int Cogs::Core::LoftedCrossSectionsComponent::samples = 0

Number of sample points in each of the cross sections.

Definition at line 28 of file LoftedCrossSectionsComponent.h.

Referenced by Cogs::Core::TrajectoryCrossSectionsSystem::update().

◆ screenAligned

bool Cogs::Core::LoftedCrossSectionsComponent::screenAligned = false

Let open geometry be screen-aligned.

Definition at line 26 of file LoftedCrossSectionsComponent.h.

◆ shape

LoftedCrossSectionsComponent::Shape Cogs::Core::LoftedCrossSectionsComponent::shape = Shape::Hollow

Definition at line 27 of file LoftedCrossSectionsComponent.h.

◆ spine

std::vector<glm::vec3> Cogs::Core::LoftedCrossSectionsComponent::spine

Definition at line 35 of file LoftedCrossSectionsComponent.h.

◆ vertices_vn

std::vector<PositionNormalVertex> Cogs::Core::LoftedCrossSectionsComponent::vertices_vn

Definition at line 33 of file LoftedCrossSectionsComponent.h.

◆ vertices_vnt

std::vector<PositionNormalTexVertex> Cogs::Core::LoftedCrossSectionsComponent::vertices_vnt

Definition at line 34 of file LoftedCrossSectionsComponent.h.

◆ visibility

bool Cogs::Core::LoftedCrossSectionsComponent::visibility = false

Definition at line 38 of file LoftedCrossSectionsComponent.h.


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