nl.tudelft.goal.ut2004.visualizer.timeline.map
Class GLRendererCollection<T>

Package class diagram package GLRendererCollection
java.lang.Object
  extended by nl.tudelft.goal.ut2004.visualizer.timeline.map.GLRendererCollection<T>
Type Parameters:
T - Type of object subrenderers of this collection draws.
All Implemented Interfaces:
ISubGLRenderer<GLRendererCollection<T>>

public class GLRendererCollection<T>
extends Object
implements ISubGLRenderer<GLRendererCollection<T>>

Basically list of ISubGLRenderers with stuff for manipulating it and rendering it. Holds order of subrenderers.

Author:
Honza

Constructor Summary
GLRendererCollection()
           
 
Method Summary
 void addSubRenderer(ISubGLRenderer<T> subrenderer)
          Add renderer to collection.
 List<BlendTriangle> getBlendedTris()
          Because blending phase of rendering can be done only after all opaque objects has been drawn and because polys has to be back-to-front ordered every renderer will return list of its blended triangles so final renderer can sort all blended triangles from all blended renderers and do it correctly.
 Set<T> getDrawnObjects()
          Get set of all objects this collection draws.
 GLRendererCollection<T> getObject()
          Return object this renderer draws.
 List<ISubGLRenderer<T>> getRenderersOf(T o)
          Return list of renderers that draw passed object
 List<ISubGLRenderer<T>> getSubRenderes()
          List of subrenderes.
 void prepare(javax.media.opengl.GL gl)
          Prepare all renderers for rendering
 void removeRenderersOf(T o)
          Remove all renderers that draw object o.
 boolean removeSubRenderer(ISubGLRenderer<T> subrenderer)
          Remove subrenderer from collection
 void render(javax.media.opengl.GL gl)
          Display stuff you want to.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GLRendererCollection

public GLRendererCollection()
Method Detail

addSubRenderer

public void addSubRenderer(ISubGLRenderer<T> subrenderer)
Add renderer to collection. It will be rendered after all previous renders are drawn.

Parameters:
subrenderer -

removeSubRenderer

public boolean removeSubRenderer(ISubGLRenderer<T> subrenderer)
Remove subrenderer from collection

Parameters:
subrenderer - renderer to be removed
Returns:
true if subrenderes was in collection

getSubRenderes

public List<ISubGLRenderer<T>> getSubRenderes()
List of subrenderes.

Returns:
Unmodifiable list of subrenderes.

getRenderersOf

public List<ISubGLRenderer<T>> getRenderersOf(T o)
Return list of renderers that draw passed object

Returns:
list of renderers with object o, empty list if no found

removeRenderersOf

public void removeRenderersOf(T o)
Remove all renderers that draw object o.

Parameters:
o - object that may have renderers in collection we want to remove

getDrawnObjects

public Set<T> getDrawnObjects()
Get set of all objects this collection draws.

Returns:
all objects this collection draws

render

public void render(javax.media.opengl.GL gl)
Description copied from interface: ISubGLRenderer
Display stuff you want to. Assume that settings have already been set in GLRendererCollection

Specified by:
render in interface ISubGLRenderer<GLRendererCollection<T>>

getObject

public GLRendererCollection<T> getObject()
Description copied from interface: ISubGLRenderer
Return object this renderer draws. Because objects we want to draw can change rapidly, we have to remove and add subrenderers based on passed objects (renderer R draws object A, now we don't want to draw A anymore, we have to go through subrenderers to find which ones draws it).

Specified by:
getObject in interface ISubGLRenderer<GLRendererCollection<T>>
Returns:
Object this renderer draws.

prepare

public void prepare(javax.media.opengl.GL gl)
Prepare all renderers for rendering

Specified by:
prepare in interface ISubGLRenderer<GLRendererCollection<T>>
Parameters:
gl -

getBlendedTris

public List<BlendTriangle> getBlendedTris()
Description copied from interface: ISubGLRenderer
Because blending phase of rendering can be done only after all opaque objects has been drawn and because polys has to be back-to-front ordered every renderer will return list of its blended triangles so final renderer can sort all blended triangles from all blended renderers and do it correctly.

Specified by:
getBlendedTris in interface ISubGLRenderer<GLRendererCollection<T>>
Returns:
List of blended triangles this renderer wants to render. Empty collection if no such exists.


Copyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.