org.osm2world.core.target.common
Class PrimitiveTarget<R extends Renderable>

Object
  extended by AbstractTarget<R>
      extended by PrimitiveTarget<R>
All Implemented Interfaces:
Target<R>
Direct Known Subclasses:
JOGLTarget, PrimitiveBuffer

public abstract class PrimitiveTarget<R extends Renderable>
extends AbstractTarget<R>

superclass for targets that are based on OpenGL primitives. These targets will treat different primitives similarly: They convert them all to a list of vertices and represent the primitive type using an enum or flags.


Constructor Summary
PrimitiveTarget()
           
 
Method Summary
 void drawPolygon(Material material, List<? extends VectorXYZ> vs)
           
 void drawPolygon(Material material, VectorXYZ... vs)
           
protected abstract  void drawPrimitive(Primitive.Type type, Material material, List<? extends VectorXYZ> vs, VectorXYZ[] normals)
           
 void drawTriangleFan(Material material, List<? extends VectorXYZ> vs)
           
 void drawTriangles(Material material, Collection<? extends TriangleXYZ> triangles)
           
 void drawTriangleStrip(Material material, List<? extends VectorXYZ> vs)
           
 void drawTriangleStrip(Material material, VectorXYZ... vs)
           
 void drawTrianglesWithNormals(Material material, Collection<? extends TriangleXYZWithNormals> triangles)
           
 
Methods inherited from class AbstractTarget
beginObject, drawBox, drawColumn
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface Target
getRenderableType, render
 

Constructor Detail

PrimitiveTarget

public PrimitiveTarget()
Method Detail

drawPrimitive

protected abstract void drawPrimitive(Primitive.Type type,
                                      Material material,
                                      List<? extends VectorXYZ> vs,
                                      VectorXYZ[] normals)
Parameters:
vs - vertices that form the primitive
normals - normal vector for each vertex; same size as vs

drawTriangleStrip

public void drawTriangleStrip(Material material,
                              VectorXYZ... vs)
Specified by:
drawTriangleStrip in interface Target<R extends Renderable>
Overrides:
drawTriangleStrip in class AbstractTarget<R extends Renderable>

drawTriangleStrip

public void drawTriangleStrip(Material material,
                              List<? extends VectorXYZ> vs)
Specified by:
drawTriangleStrip in interface Target<R extends Renderable>
Overrides:
drawTriangleStrip in class AbstractTarget<R extends Renderable>

drawTriangleFan

public void drawTriangleFan(Material material,
                            List<? extends VectorXYZ> vs)
Specified by:
drawTriangleFan in interface Target<R extends Renderable>
Overrides:
drawTriangleFan in class AbstractTarget<R extends Renderable>

drawPolygon

public void drawPolygon(Material material,
                        VectorXYZ... vs)
Specified by:
drawPolygon in interface Target<R extends Renderable>
Overrides:
drawPolygon in class AbstractTarget<R extends Renderable>

drawPolygon

public void drawPolygon(Material material,
                        List<? extends VectorXYZ> vs)

drawTriangles

public void drawTriangles(Material material,
                          Collection<? extends TriangleXYZ> triangles)

drawTrianglesWithNormals

public void drawTrianglesWithNormals(Material material,
                                     Collection<? extends TriangleXYZWithNormals> triangles)