diff options
Diffstat (limited to 'src/crepe/api')
| -rw-r--r-- | src/crepe/api/ParticleEmitter.cpp | 2 | ||||
| -rw-r--r-- | src/crepe/api/ParticleEmitter.h | 45 | 
2 files changed, 37 insertions, 10 deletions
| diff --git a/src/crepe/api/ParticleEmitter.cpp b/src/crepe/api/ParticleEmitter.cpp index f585a81..000bf30 100644 --- a/src/crepe/api/ParticleEmitter.cpp +++ b/src/crepe/api/ParticleEmitter.cpp @@ -3,7 +3,7 @@  using namespace crepe; -ParticleEmitter::ParticleEmitter(uint32_t game_object_id, const ParticleEmitterData& data) : Component(game_object_id),data(data) { +ParticleEmitter::ParticleEmitter(uint32_t game_object_id, const Data& data) : Component(game_object_id),data(data) {      for (size_t i = 0; i < this->data.max_particles; i++) {          this->data.particles.emplace_back();      } diff --git a/src/crepe/api/ParticleEmitter.h b/src/crepe/api/ParticleEmitter.h index f931e8c..2cda1bb 100644 --- a/src/crepe/api/ParticleEmitter.h +++ b/src/crepe/api/ParticleEmitter.h @@ -11,24 +11,44 @@ class Sprite;  namespace crepe { + +/** + * \brief Data holder for particle emission parameters. + * + * The ParticleEmitter class stores configuration data for particle properties, + * defining the characteristics and boundaries of particle emissions. + */ +  class ParticleEmitter : public Component {  public: -	struct ParticleBoundary{ +	/** +	 * \brief Defines the boundary within which particles are constrained. +	 * +	 * This structure specifies the boundary's size and offset, as well as the +	 * behavior of particles upon reaching the boundary limits. +	 */ +	struct Boundary{  		//! boundary width (midpoint is emitter location) -		double boundary_width = 0.0; +		double width = 0.0;  		//! boundary height (midpoint is emitter location) -		double boundary_height = 0.0; +		double height = 0.0;  		//! boundary offset from particle emitter location -		Vector2 boundary_offset; +		Vector2 offset;  		//! reset on exit or stop velocity and set max postion  		bool reset_on_exit = false;  	}; -	struct ParticleEmitterData{ +	/** +	 * \brief Holds parameters that control particle emission. +	 * +	 * Contains settings for the emitter’s position, particle speed, angle, lifespan, +	 * boundary, and the sprite used for rendering particles. +	 */ +	struct Data{  		//! position of the emitter  		Vector2 position;  		//! maximum number of particles -		uint32_t max_particles = 0; +		const uint32_t max_particles = 0;  		//! rate of particle emission per update (Lowest value = 0.001 any lower is ignored)  		double emission_rate = 0;  		//! min speed of the particles @@ -46,17 +66,24 @@ public:  		//! force over time (physics)  		Vector2 force_over_time;  		//! particle boundary -		ParticleBoundary boundary; +		Boundary boundary;  		//! collection of particles  		std::vector<Particle> particles;  		//! sprite reference  		const Sprite* sprite;  	};	  public: -	ParticleEmitter(uint32_t game_object_id, const ParticleEmitterData& data); +	/** +	 * \brief Constructs a ParticleEmitter data holder with specified settings. +	 * +	 * \param game_object_id  Identifier for the game object using this emitter. +	 * \param data            Configuration data defining particle properties. +	 */ +	ParticleEmitter(uint32_t game_object_id, const Data& data);  	~ParticleEmitter();  public: -	ParticleEmitterData data; +	//! Configuration data for particle emission settings. +	Data data;  };  } // namespace crepe |