Cogs.Core
|
Classes | |
struct | CellClassCounts |
Public Member Functions | |
LoftedCrossSectionsSystem (Memory::Allocator *allocator, SizeType capacity) | |
void | initialize (Context *context) override |
Initialize the system. | |
void | update (Context *context) override |
Provided for custom update logic in derived systems. | |
![]() | |
ComponentSystemWithDataPool (Memory::Allocator *allocator, SizeType size=1024) | |
LoftedCrossSectionsData & | getData (const LoftedCrossSectionsComponent *component) |
const LoftedCrossSectionsData & | getData (const LoftedCrossSectionsComponent *component) const |
![]() | |
ComponentSystemWithDataPools (Memory::Allocator *allocator, SizeType size=1024, MemBlockType componentMemType=MemBlockType::Component, MemBlockType dataMemType=MemBlockType::ComponentData) | |
ComponentHandle | createComponent () override |
void | destroyComponent (ComponentHandle component) override |
template<typename T > | |
T & | getData (const ComponentType *component) |
Get the data stored for the given component from the data pool storing objects of the specified template type. | |
template<typename T > | |
const T & | getData (const ComponentType *component) const |
Get the const data stored for the given component from the data pool storing objects of the specified template type. | |
![]() | |
ComponentSystem (Memory::Allocator *allocator, SizeType size=16384, MemBlockType componentMemType=MemBlockType::Component) | |
void | instrumentedPreUpdate () override |
Provided for tagged engine instrumentation. | |
void | instrumentedUpdate () override |
Provided for tagged engine instrumentation. | |
void | instrumentedPostUpdate () override |
Provided for tagged engine instrumentation. | |
ComponentHandle | createComponent () override |
Create a new component instance. | |
void | destroyComponent (ComponentHandle component) override |
Destroy the component held by the given handle. | |
SizeType | getComponentIndex (const Component *component) const |
Get the index of the given component in the component pool. | |
size_t | size () |
Returns the number of active components. | |
void | clearCarryFlags () |
Clear carry flags of all active components. | |
void | resetFlags () |
Reset the flags of all active components. | |
void | prepareUpdate (Context *) override |
void | postUpdate (Context *) override |
ComponentHandle | getHandle (const ComponentType *component) |
Get a handle to the given Component instance. | |
virtual void | addEntitiesWithComponent (std::vector< EntityId > &entities, Reflection::TypeId componentTypeId) override |
Return all entities with a given. | |
![]() | |
virtual | ~ComponentSystemBase () |
Provided for destruction via pointer to base. | |
ComponentSystemBase (Reflection::TypeId componentType) | |
Constructs a ComponentSystemBase to manage components of the given componentType. | |
virtual void | initialize (Context *context) |
Initialize the system. | |
void | preUpdate () |
Run the pre-update method of the system. | |
void | update () |
Updates the system state to that of the current frame. | |
void | postUpdate () |
Perform post update logic in the system. | |
virtual void | preUpdate (Context *) |
Provided for custom pre update logic in derived systems. | |
virtual void | prepareUpdate (Context *) |
Provided for custom update preparation logic in derived systems. | |
virtual void | update (Context *) |
Provided for custom update logic in derived systems. | |
virtual void | postUpdate (Context *) |
Provided for custom post update logic in derived systems. | |
virtual void | instrumentedPreUpdate () |
Provided for tagged engine instrumentation. | |
virtual void | instrumentedUpdate () |
Provided for tagged engine instrumentation. | |
virtual void | instrumentedPostUpdate () |
Provided for tagged engine instrumentation. | |
virtual void | addEntitiesWithComponent (std::vector< EntityId > &, Reflection::TypeId) |
Return all entities with a given. | |
virtual void | cleanup (Context *) |
Provided for custom cleanup logic in derived systems. | |
virtual ComponentHandle | createComponent () |
Create a new component instance. | |
virtual void | destroyComponent (ComponentHandle) |
Destroy the component held by the given handle. | |
Reflection::TypeId | getComponentType () const |
Get the reflected type of the components managed by this system. | |
Private Member Functions | |
void | solidInitialize () |
void | shellInitialize () |
void | hollowInitialize () |
void | solidOpenAlignedCountCellResources (size_t &newVertices, size_t &outIndices, size_t &cutIndices, std::vector< uint8_t > &classification, const std::vector< glm::vec3 > &spine, const std::vector< uint8_t > &inside, const glm::vec3 &viewer, const int slices, const int samples, const bool doubleSeam) |
void | shellOpenAlignedCountCellResources (size_t &newVertices, size_t &outIndices, std::vector< uint8_t > &classification, const std::vector< glm::vec3 > &spine, const std::vector< uint8_t > &inside, const glm::vec3 &viewer, const int slices, const int samples, const bool doubleSeam) |
void | hollowOpenAlignedCountCellResources (size_t &newVertices, size_t &outIndices, size_t &cutIndices, std::vector< uint8_t > &classification, const std::vector< glm::vec3 > &spine, const std::vector< uint8_t > &inside, const glm::vec3 &viewer, const int slices, const int samples, const bool doubleSeam) |
void | solidClosedSkin (std::vector< unsigned int > &outSurface, float *pos, const size_t pos_stride, float *tex, const size_t tex_stride, float *nrm, const size_t nrm_stride, const std::vector< glm::vec3 > &spine, const int slices, const int samples, const bool doubleSeam) |
void | shellClosedSkin (std::vector< unsigned int > &outSurface, const int slices, const int samples, const bool doubleSeam) |
void | hollowClosedSkin (std::vector< unsigned int > &outSurface, const int slices, const int samples, const bool doubleSeam) |
bool | process (Context *context, glm::vec4 viewer_world, LoftedCrossSectionsComponent &component, LoftedCrossSectionsData &data, Mesh *mesh) |
Static Private Member Functions | |
static void | solidOpenAlignedClassifySamples (std::vector< uint8_t > &inside, const float *pos, const size_t pos_stride, const std::vector< glm::vec3 > &spine, const glm::vec3 &viewer, const int slices, const int samples) |
static void | shellOpenAlignedClassifySamples (std::vector< uint8_t > &inside, const float *pos, const size_t pos_stride, const std::vector< glm::vec3 > &spine, const glm::vec3 &viewer, const int slices, const int samples) |
static void | hollowOpenAlignedClassifySamples (std::vector< uint8_t > &inside, const float *pos, const size_t pos_stride, const std::vector< glm::vec3 > &spine, const glm::vec3 &viewer, const int slices, const int samples) |
static void | solidOpenAlignedSkin (std::vector< unsigned int > &outSurface, std::vector< unsigned int > &cutSurface, float *pos, const size_t pos_stride, float *tex, const size_t tex_stride, float *nrm, const size_t nrm_stride, const std::vector< uint8_t > &classification, const std::vector< glm::vec3 > &spine, const glm::vec3 &viewer, const int slices, const int samples, const bool doubleSeam) |
static void | shellOpenAlignedSkin (std::vector< unsigned int > &outSurface, float *pos, const size_t pos_stride, float *tex, const size_t tex_stride, float *nrm, const size_t nrm_stride, const std::vector< uint8_t > &classification, const std::vector< glm::vec3 > &spine, const glm::vec3 &viewer, const int slices, const int samples, const bool doubleSeam) |
static void | hollowOpenAlignedSkin (std::vector< unsigned int > &outSurface, std::vector< unsigned int > &cutSurface, float *pos, const size_t pos_stride, float *tex, const size_t tex_stride, float *nrm, const size_t nrm_stride, const std::vector< uint8_t > &classification, const std::vector< glm::vec3 > &spine, const glm::vec3 &viewer, const int slices, const int samples, const bool doubleSeam) |
static void | solidOpenCountCellResources (size_t &newVertices, size_t &outIndices, size_t &cutIndices, const int slices, const int samples, const bool doubleSeam) |
static void | shellOpenCountCellResources (size_t &outIndices, const int slices, const int samples, const bool doubleSeam) |
static void | hollowOpenCountCellResources (size_t &newVertices, size_t &outIndices, size_t &cutIndices, const int slices, const int samples, const bool doubleSeam) |
static void | solidOpenSkin (std::vector< unsigned int > &outSurface, std::vector< unsigned int > &cutSurface, float *pos, const size_t pos_stride, float *tex, const size_t tex_stride, float *nrm, const size_t nrm_stride, const std::vector< glm::vec3 > &spine, const int slices, const int samples, const bool doubleSeam) |
static void | shellOpenSkin (std::vector< unsigned int > &outSurface, const int slices, const int samples, const bool doubleSeam) |
static void | hollowOpenSkin (std::vector< unsigned int > &outSurface, std::vector< unsigned int > &cutSurface, float *pos, const size_t pos_stride, float *tex, const size_t tex_stride, float *nrm, const size_t nrm_stride, const int slices, const int samples, const bool doubleSeam) |
static void | solidClosedCountCellResources (size_t &newVertices, size_t &outIndices, const int slices, const int samples, const bool doubleSeam) |
static void | shellClosedCountCellResources (size_t &outIndices, const int slices, const int samples, const bool doubleSeam) |
static void | hollowClosedCountCellResources (size_t &newVertices, size_t &outIndices, size_t &cutIndices, const int slices, const int samples, const bool doubleSeam) |
Private Attributes | |
std::vector< CellClassCounts > | shellCellClassCounts |
std::vector< CellClassCounts > | hollowCellClassCounts |
std::vector< CellClassCounts > | solidCellClassCounts |
Additional Inherited Members | |
![]() | |
typedef ComponentType | component_type |
![]() | |
static Reflection::TypeId | getTypeId () |
Get the type id of the component type used by the system. | |
![]() | |
ComponentPool< ComponentType > | pool |
Pool of components managed by the system. | |
![]() | |
Reflection::TypeId | componentType |
The type of components managed by this instance. | |
Context * | context = nullptr |
Pointer to the Context instance the system lives in. | |
Definition at line 27 of file LoftedCrossSectionsSystem.h.
|
inline |
Definition at line 31 of file LoftedCrossSectionsSystem.h.
|
staticprivate |
Definition at line 359 of file LoftedCrossSectionsSystemHollow.cpp.
|
private |
Definition at line 369 of file LoftedCrossSectionsSystemHollow.cpp.
|
private |
Definition at line 19 of file LoftedCrossSectionsSystemHollow.cpp.
|
staticprivate |
Definition at line 68 of file LoftedCrossSectionsSystemHollow.cpp.
|
private |
Definition at line 91 of file LoftedCrossSectionsSystemHollow.cpp.
|
staticprivate |
Definition at line 139 of file LoftedCrossSectionsSystemHollow.cpp.
|
staticprivate |
Definition at line 271 of file LoftedCrossSectionsSystemHollow.cpp.
|
staticprivate |
Definition at line 280 of file LoftedCrossSectionsSystemHollow.cpp.
|
overridevirtual |
Initialize the system.
Initialization is performed after all systems are created and a renderer initialized, but before the first time anything is rendered.
context | Pointer to the context the system lives in. |
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 21 of file LoftedCrossSectionsSystem.cpp.
References Cogs::Core::ComponentSystemBase::initialize().
|
private |
Definition at line 30 of file LoftedCrossSectionsSystem.cpp.
|
staticprivate |
Definition at line 189 of file LoftedCrossSectionsSystemShell.cpp.
|
private |
Definition at line 198 of file LoftedCrossSectionsSystemShell.cpp.
|
private |
Definition at line 17 of file LoftedCrossSectionsSystemShell.cpp.
|
staticprivate |
Definition at line 41 of file LoftedCrossSectionsSystemShell.cpp.
|
private |
Definition at line 56 of file LoftedCrossSectionsSystemShell.cpp.
|
staticprivate |
Definition at line 85 of file LoftedCrossSectionsSystemShell.cpp.
|
staticprivate |
Definition at line 158 of file LoftedCrossSectionsSystemShell.cpp.
|
staticprivate |
Definition at line 167 of file LoftedCrossSectionsSystemShell.cpp.
|
staticprivate |
Definition at line 472 of file LoftedCrossSectionsSystemSolid.cpp.
|
private |
Definition at line 481 of file LoftedCrossSectionsSystemSolid.cpp.
|
private |
Definition at line 17 of file LoftedCrossSectionsSystemSolid.cpp.
|
staticprivate |
Definition at line 96 of file LoftedCrossSectionsSystemSolid.cpp.
|
private |
Definition at line 114 of file LoftedCrossSectionsSystemSolid.cpp.
|
staticprivate |
Definition at line 157 of file LoftedCrossSectionsSystemSolid.cpp.
|
staticprivate |
Definition at line 328 of file LoftedCrossSectionsSystemSolid.cpp.
|
staticprivate |
Definition at line 338 of file LoftedCrossSectionsSystemSolid.cpp.
|
overridevirtual |
Provided for custom update logic in derived systems.
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 241 of file LoftedCrossSectionsSystem.cpp.
References Cogs::Core::LoftedCrossSectionsComponent::boundingBoxSet, Cogs::Core::Mesh::clear(), Cogs::Core::Mesh::clearIndexes(), Cogs::ComponentModel::Component::getComponent(), Cogs::Core::LoftedCrossSectionsComponent::hasData, Cogs::Core::MeshComponent::meshHandle, Cogs::Core::ResourceHandle_t< Mesh >::NoHandle, Cogs::Core::Mesh::setBounds(), and Cogs::ComponentModel::Component::setChanged().
|
private |
Definition at line 47 of file LoftedCrossSectionsSystem.h.
|
private |
Definition at line 46 of file LoftedCrossSectionsSystem.h.
|
private |
Definition at line 48 of file LoftedCrossSectionsSystem.h.