/** * */ package ei.engine.scene; import org.lwjgl.opengl.GL11; import ei.engine.math.Vector2f; import ei.engine.math.Vector3f; /** * This class is the root class of all the objects that * will show on the scrren. This class handles the position * and rotation and the colitions of the objects. * @author Ziver */ public abstract class Entity { /** The name of this sprite */ private String name; /** The location of this entity in pixels*/ private Vector2f location; /** The rotation of this entity in pixels*/ private Vector3f rotation; /** The size of this entity in pixels*/ private Vector2f size; /** * creates a new entity * * @param name The name of the entity */ public Entity(String name){ this.name = name; location = new Vector2f(); rotation = new Vector3f(); size = new Vector2f(); } /** * @return The name of the entity */ public String getName() { return name; } /** * Get the Location of the entity * * @return The Location of the entity */ public Vector2f getLocation() { return location; } /** * set the location of this entity in pixels * * @param l The location of the entity */ public void setLocation(Vector2f l) { location = l; } /** * Get the rotation of the entity * * @return The Location of the entity */ public Vector3f getRotation() { return rotation; } /** * set the rotation of this entity in pixels * * @param r The rotation of the entity */ public void setRotation(Vector3f r) { rotation = r; } /** * Get the size of the entity * * @return The Location of the entity */ public Vector2f getSize() { return size; } /** * set the size of this entity in pixels * * @param s The size of the entity */ public void setSize(Vector2f s) { size = s; } /** * Sets the location of the entity in opengl * before rendering. */ protected void setTranslationGL(){ // translate to the right location and prepare to draw GL11.glTranslatef(location.getX(), location.getY(), 0); } /** * Sets the location of the entity in opengl plus * the parameter values before rendering. * * @param x The value to add x * @param y The value to add y */ protected void setTranslationGL(float x, float y){ // translate to the right location and prepare to draw GL11.glTranslatef(location.getX()+x, location.getY()+y, 0); } /** * Sets the rotation of the entity in opengl * before rendering. */ protected void setRotationGL(){ // rotating the entity GL11.glRotatef(rotation.getX(), 1.0f, 0.0f, 0.0f); // Rotate On The X Axis GL11.glRotatef(rotation.getY(), 0.0f, 1.0f, 0.0f); // Rotate On The Y Axis GL11.glRotatef(rotation.getZ(), 0.0f, 0.0f, 1.0f); // Rotate On The Z Axis } /** * the render method should be implemented for every entity */ public abstract void render(); /** * the update method can be implemented for every entity */ public void update(){} }