42 lines
1.9 KiB
Java
42 lines
1.9 KiB
Java
package electrosphere.renderer.light;
|
|
|
|
import electrosphere.entity.Entity;
|
|
import electrosphere.entity.EntityDataStrings;
|
|
import electrosphere.main.Globals;
|
|
import org.joml.Vector3f;
|
|
|
|
/**
|
|
*
|
|
* @author amaterasu
|
|
*/
|
|
public class LightEntityUtils {
|
|
|
|
public static Entity createDirectionalLight(Vector3f position, Vector3f ambient, Vector3f diffuse, Vector3f specular){
|
|
Entity rVal = new Entity();
|
|
Globals.entityManager.registerEntity(rVal);
|
|
Globals.entityManager.registerLightEntity(rVal);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_TYPE, EntityDataStrings.DATA_STRING_LIGHT_TYPE_DIRECTIONAL);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_POSITION, position);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_AMBIENT, ambient);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_DIFFUSE, diffuse);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_SPECULAR, specular);
|
|
return rVal;
|
|
}
|
|
|
|
public static Entity createPointLight(Vector3f position, Vector3f ambient, Vector3f diffuse, Vector3f specular, float constant, float linear, float quadratic){
|
|
Entity rVal = new Entity();
|
|
Globals.entityManager.registerEntity(rVal);
|
|
Globals.entityManager.registerLightEntity(rVal);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_TYPE, EntityDataStrings.DATA_STRING_LIGHT_TYPE_POINT);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_POSITION, position);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_AMBIENT, ambient);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_DIFFUSE, diffuse);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_SPECULAR, specular);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_CONSTANT, constant);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_LINEAR, linear);
|
|
rVal.putData(EntityDataStrings.DATA_STRING_LIGHT_QUADRATIC, quadratic);
|
|
return rVal;
|
|
}
|
|
|
|
}
|