All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.badlogic.gdx.graphics.g3d.particles.renderers.ParticleControllerRenderer Maven / Gradle / Ivy

There is a newer version: 1.13.1
Show newest version
package com.badlogic.gdx.graphics.g3d.particles.renderers;

import com.badlogic.gdx.graphics.g3d.particles.ParticleController;
import com.badlogic.gdx.graphics.g3d.particles.ParticleControllerComponent;
import com.badlogic.gdx.graphics.g3d.particles.batches.ParticleBatch;

/** It's a {@link ParticleControllerComponent} which determines how the particles are rendered.
 * It's the base class of every particle renderer.
 * @author Inferno */
public abstract class ParticleControllerRenderer< D extends ParticleControllerRenderData, T extends ParticleBatch> extends ParticleControllerComponent{
	protected T batch;
	protected D renderData;
	
	protected ParticleControllerRenderer(){}
	
	protected ParticleControllerRenderer(D renderData){
		this.renderData = renderData;
	}
	
	@Override
	public void update () {
		batch.draw(renderData);
	}
	
	@SuppressWarnings("unchecked")
	public boolean setBatch (ParticleBatch batch){
		if(isCompatible(batch)){
			this.batch = (T)batch;
			return true;
		}
		return false;
	}
	
	public abstract boolean isCompatible (ParticleBatch batch);

	@Override
	public void set (ParticleController particleController) {
		super.set(particleController);
		if(renderData != null)
			renderData.controller = controller;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy