espresso3d.engine.world.sector.particle
Class E3DSprite

java.lang.Object
  extended byespresso3d.engine.base.E3DEngineItem
      extended byespresso3d.engine.renderer.base.E3DRenderable
          extended byespresso3d.engine.renderer.base.E3DTexturedRenderable
              extended byespresso3d.engine.world.sector.base.E3DPortalEnabledTexturedRenderableItem
                  extended byespresso3d.engine.world.sector.particle.E3DSprite
All Implemented Interfaces:
E3DCollisionDetectableObject
Direct Known Subclasses:
E3DBillboardSprite

public abstract class E3DSprite
extends E3DPortalEnabledTexturedRenderableItem
implements E3DCollisionDetectableObject

Author:
Curt A sprite is a texture mapped quad. TODO: Alpha blending & masking is currently not supported, but will be. Collision detection for particles is based on its bounding quad.

Constructor Summary
E3DSprite(E3DEngine engine, E3DVector3F position, double size, int glTextureID)
           
E3DSprite(E3DEngine engine, E3DVector3F position, E3DVector3F forward, E3DVector3F up, double size, int glTextureID)
           
 
Method Summary
 E3DBoundingObject getBoundingObject()
          Return the bounding object or null for bounding collision tests
 E3DVector3F getForward()
           
 E3DVector3F getPosition()
          Used to get the position of t he object
 E3DQuad getQuad()
           
 double getSize()
           
 java.util.ArrayList getTriangleList()
          Must return an ArrayList of E3DTriangles that make up the geometry of the object.
 java.util.ArrayList getUniqueVertexList()
          This will ideally only return unique vertices that the object has.
 E3DVector3F getUp()
           
abstract  void onCollisionActor(E3DCollision collision)
          This is called when another actor collides with this object
abstract  void onCollisionSprite(E3DCollision collision)
          This is called when a sprite collides with this object
 void renderAtPosition(E3DVector3F position)
           
 void rotate(double angle, E3DVector3F upVec)
          Rotate the sprite around upVec angle amount
 void scale(double scaleAmt)
           
 void setPosition(E3DVector3F position)
           
 void setQuad(E3DQuad quad)
           
 void translate(E3DVector3F translationAmt)
           
 
Methods inherited from class espresso3d.engine.world.sector.base.E3DPortalEnabledTexturedRenderableItem
checkSectorChangeDuringMovement, getSector, setSector
 
Methods inherited from class espresso3d.engine.renderer.base.E3DTexturedRenderable
getGlTextureID, getTextureName, setGlTextureID, setTextureName
 
Methods inherited from class espresso3d.engine.renderer.base.E3DRenderable
render
 
Methods inherited from class espresso3d.engine.base.E3DEngineItem
getEngine, setEngine
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface espresso3d.engine.collision.base.E3DCollisionDetectableObject
getEngine, getSector, isCollideable
 

Constructor Detail

E3DSprite

public E3DSprite(E3DEngine engine,
                 E3DVector3F position,
                 double size,
                 int glTextureID)

E3DSprite

public E3DSprite(E3DEngine engine,
                 E3DVector3F position,
                 E3DVector3F forward,
                 E3DVector3F up,
                 double size,
                 int glTextureID)
Method Detail

onCollisionActor

public abstract void onCollisionActor(E3DCollision collision)
Description copied from interface: E3DCollisionDetectableObject
This is called when another actor collides with this object

Specified by:
onCollisionActor in interface E3DCollisionDetectableObject
Parameters:
collision -

onCollisionSprite

public abstract void onCollisionSprite(E3DCollision collision)
Description copied from interface: E3DCollisionDetectableObject
This is called when a sprite collides with this object

Specified by:
onCollisionSprite in interface E3DCollisionDetectableObject
Parameters:
collision -

renderAtPosition

public void renderAtPosition(E3DVector3F position)
Specified by:
renderAtPosition in class E3DTexturedRenderable

getForward

public E3DVector3F getForward()

getPosition

public E3DVector3F getPosition()
Description copied from interface: E3DCollisionDetectableObject
Used to get the position of t he object

Specified by:
getPosition in interface E3DCollisionDetectableObject
Returns:

setPosition

public void setPosition(E3DVector3F position)

scale

public void scale(double scaleAmt)

translate

public void translate(E3DVector3F translationAmt)

rotate

public void rotate(double angle,
                   E3DVector3F upVec)
Rotate the sprite around upVec angle amount

Parameters:
angle - Radian angle
upVec - Normalised up vector to use as the rotation axis

getSize

public double getSize()

getUp

public E3DVector3F getUp()

getQuad

public E3DQuad getQuad()

setQuad

public void setQuad(E3DQuad quad)

getTriangleList

public java.util.ArrayList getTriangleList()
Description copied from interface: E3DCollisionDetectableObject
Must return an ArrayList of E3DTriangles that make up the geometry of the object. This is used for direct triangle collisions

Specified by:
getTriangleList in interface E3DCollisionDetectableObject
Returns:

getUniqueVertexList

public java.util.ArrayList getUniqueVertexList()
Description copied from interface: E3DCollisionDetectableObject
This will ideally only return unique vertices that the object has.

Specified by:
getUniqueVertexList in interface E3DCollisionDetectableObject
Returns:

getBoundingObject

public E3DBoundingObject getBoundingObject()
Description copied from interface: E3DCollisionDetectableObject
Return the bounding object or null for bounding collision tests

Specified by:
getBoundingObject in interface E3DCollisionDetectableObject
Returns: