org.osm2world.core.target.primitivebuffer
Class PrimitiveBuffer

Object
  extended by AbstractTarget<R>
      extended by PrimitiveTarget<RenderableToPrimitiveBuffer>
          extended by PrimitiveBuffer
All Implemented Interfaces:
Target<RenderableToPrimitiveBuffer>

public class PrimitiveBuffer
extends PrimitiveTarget<RenderableToPrimitiveBuffer>

Storage for low-level rendering information (vertex and primitive data) that can be displayed using graphics APIs, e.g. OpenGL. Higher-level information, such as object coherence, OSM attributes or representations, isn't present in an OGLBuffer.


Constructor Summary
PrimitiveBuffer()
           
 
Method Summary
protected  void drawPrimitive(Primitive.Type type, Material material, List<? extends VectorXYZ> vertices, VectorXYZ[] normals)
           
 Set<Material> getMaterials()
          returns all materials used in the buffer
 Collection<Primitive> getPrimitives(Material material)
          returns all primitives that use a given material
 Class<RenderableToPrimitiveBuffer> getRenderableType()
          returns the renderable type designed for this target
 VectorXYZ getVertex(int index)
           
 List<VectorXYZ> getVertices()
          returns all vertices, in a list where the indices correspond to those used by getVertex(int)
 void optimize()
          optimizes the primitives, for example by merging them into larger primitives.
 void render(RenderableToPrimitiveBuffer renderable)
          renders a renderable object to this target.
 
Methods inherited from class PrimitiveTarget
drawPolygon, drawPolygon, drawTriangleFan, drawTriangles, drawTriangleStrip, drawTriangleStrip, drawTrianglesWithNormals
 
Methods inherited from class AbstractTarget
beginObject, drawBox, drawBox, drawColumn
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PrimitiveBuffer

public PrimitiveBuffer()
Method Detail

getRenderableType

public Class<RenderableToPrimitiveBuffer> getRenderableType()
Description copied from interface: Target
returns the renderable type designed for this target


render

public void render(RenderableToPrimitiveBuffer renderable)
Description copied from interface: Target
renders a renderable object to this target. Usually, this means calling a "renderTo" method on that renderable, with this target as a parameter.


drawPrimitive

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

optimize

public void optimize()
optimizes the primitives, for example by merging them into larger primitives.


getVertex

public VectorXYZ getVertex(int index)

getVertices

public List<VectorXYZ> getVertices()
returns all vertices, in a list where the indices correspond to those used by getVertex(int)


getMaterials

public Set<Material> getMaterials()
returns all materials used in the buffer


getPrimitives

public Collection<Primitive> getPrimitives(Material material)
returns all primitives that use a given material