7 #ifndef NAZARA_PARTICLEDECLARATION_HPP 8 #define NAZARA_PARTICLEDECLARATION_HPP 10 #include <Nazara/Prerequesites.hpp> 11 #include <Nazara/Core/ObjectLibrary.hpp> 12 #include <Nazara/Core/ObjectRef.hpp> 13 #include <Nazara/Core/RefCounted.hpp> 14 #include <Nazara/Core/Signal.hpp> 15 #include <Nazara/Graphics/Config.hpp> 16 #include <Nazara/Graphics/Enums.hpp> 17 #include <Nazara/Utility/Enums.hpp> 22 class ParticleDeclaration;
24 using ParticleDeclarationConstRef = ObjectRef<const ParticleDeclaration>;
25 using ParticleDeclarationLibrary = ObjectLibrary<ParticleDeclaration>;
26 using ParticleDeclarationRef = ObjectRef<ParticleDeclaration>;
30 friend ParticleDeclarationLibrary;
38 void DisableComponent(ParticleComponent component);
39 void EnableComponent(ParticleComponent component, ComponentType type, std::size_t offset);
41 void GetComponent(ParticleComponent component,
bool* enabled, ComponentType* type, std::size_t* offset)
const;
42 std::size_t GetStride()
const;
44 void SetStride(
unsigned int stride);
49 static bool IsTypeSupported(ComponentType type);
56 static bool Initialize();
57 static void Uninitialize();
73 std::array<Component, ParticleComponent_Max + 1> m_components;
76 static std::array<ParticleDeclaration, ParticleLayout_Max + 1> s_declarations;
77 static ParticleDeclarationLibrary::LibraryMap s_library;
81 #include <Nazara/Graphics/ParticleDeclaration.inl> 83 #endif // NAZARA_PARTICLEDECLARATION_HPP TODO: Inherit SoundEmitter from Node.
Definition: Algorithm.hpp:12
Graphics class that represents the module initializer of Graphics.
Definition: Graphics.hpp:15
Core class that represents a reference with a counter.
Definition: RefCounted.hpp:21
Core class that represents a reference to an object.
Definition: ObjectRef.hpp:18
Graphics class that represents the declaration of the particle, works like an ECS.
Definition: ParticleDeclaration.hpp:28