![]() |
Skylicht Engine
|
Factory class for creating emitters, zones, and renderers. More...
#include <ParticleSystem/Particles/CFactory.h>
Public Member Functions | |
| CRandomEmitter * | createRandomEmitter () |
| Creates a new Random emitter. | |
| CStraightEmitter * | createStraightEmitter (const core::vector3df &direction) |
| Creates a new Straight emitter with a fixed direction. | |
| CSphericEmitter * | createSphericEmitter (const core::vector3df &direction, float angleA, float angleB) |
| Creates a new Spheric (cone) emitter. | |
| CNormalEmitter * | createNormalEmitter (bool inverted) |
| Creates a new Normal emitter shooting along zone surfaces. | |
| void | deleteEmitter (CEmitter *e) |
| Deletes and removes an emitter. | |
| CQuadRenderer * | createQuadRenderer () |
| Creates a GPU instanced quad renderer. | |
| CCPURenderer * | createCPURenderer () |
| Creates a CPU-based quad renderer. | |
| CMeshParticleRenderer * | createMeshParticleRenderer () |
| Creates a GPU mesh instancing renderer. | |
| void | deleteRenderer (IRenderer *r) |
| Deletes and removes a renderer. | |
| CZone * | createZone (EZone type) |
| Creates a zone based on type enum. | |
| CPoint * | createPointZone () |
| Creates a Point zone at origin. | |
| CPoint * | createPointZone (const core::vector3df &pos) |
| Creates a Point zone at specific position. | |
| CSphere * | createSphereZone (const core::vector3df &pos, float radius) |
| Creates a Sphere zone. | |
| CAABox * | createAABoxZone (const core::vector3df &pos, const core::vector3df &dimension) |
| Creates an Axis-Aligned Box zone. | |
| CCylinder * | createCylinderZone (const core::vector3df &pos, const core::vector3df &direction, float radius, float length) |
| Creates a Cylinder zone. | |
| CLine * | createLineZone (const core::vector3df &p1, const core::vector3df &p2) |
| Creates a Line segment zone. | |
| CPolyLine * | createPolyLineZone (const core::array< core::vector3df > &points) |
| Creates a multi-segment PolyLine zone. | |
| CRing * | createRingZone (const core::vector3df &pos, const core::vector3df &normal, float minRadius, float maxRadius) |
| Creates a 2D Ring zone in 3D space. | |
| void | deleteZone (CZone *z) |
| Deletes and removes a zone. | |
| CEmitter * | createEmitter (const std::wstring &attributeName) |
| Creates an emitter by its class name (for XML loading). | |
| CZone * | createZone (const std::wstring &attributeName) |
| Creates a zone by its class name (for XML loading). | |
| IRenderer * | createRenderer (const std::wstring &attributeName) |
| Creates a renderer by its class name (for XML loading). | |
Protected Attributes | |
| std::vector< IRenderer * > | m_renderers |
| std::vector< CZone * > | m_zones |
| std::vector< CEmitter * > | m_emitters |
Factory class for creating emitters, zones, and renderers.
Accessed via CParticleComponent::getParticleFactory().