com.brackeen.javagamebook.bsp2D
Class BSPRenderer

java.lang.Object
  extended bycom.brackeen.javagamebook.graphics3D.PolygonRenderer
      extended bycom.brackeen.javagamebook.graphics3D.FastTexturedPolygonRenderer
          extended bycom.brackeen.javagamebook.graphics3D.ShadedSurfacePolygonRenderer
              extended bycom.brackeen.javagamebook.graphics3D.ZBufferedRenderer
                  extended bycom.brackeen.javagamebook.bsp2D.BSPRenderer
All Implemented Interfaces:
BSPTreeTraverseListener, GameObjectRenderer

public class BSPRenderer
extends ZBufferedRenderer
implements BSPTreeTraverseListener

The BSPRenderer class is a renderer capable of drawing polygons in a BSP tree and any polygon objects in the scene. When drawing BSP polygons, the BSPRenderer writes the BSP polygon depth to a z-buffer. Polygon objects use the z-buffer to determine their visibility within the scene on a per-pixel basis.


Nested Class Summary
 
Nested classes inherited from class com.brackeen.javagamebook.graphics3D.ZBufferedRenderer
ZBufferedRenderer.PowerOf2TextureZRenderer, ZBufferedRenderer.ShadedSurfaceZRenderer, ZBufferedRenderer.ShadedTextureZRenderer
 
Nested classes inherited from class com.brackeen.javagamebook.graphics3D.FastTexturedPolygonRenderer
FastTexturedPolygonRenderer.Method0, FastTexturedPolygonRenderer.Method1, FastTexturedPolygonRenderer.Method2, FastTexturedPolygonRenderer.Method3, FastTexturedPolygonRenderer.PowerOf2TextureRenderer, FastTexturedPolygonRenderer.ScanRenderer, FastTexturedPolygonRenderer.ShadedSurfaceRenderer, FastTexturedPolygonRenderer.ShadedTextureRenderer
 
Field Summary
 
Fields inherited from class com.brackeen.javagamebook.graphics3D.FastTexturedPolygonRenderer
INTERP_SIZE, INTERP_SIZE_BITS, SCALE, SCALE_BITS
 
Constructor Summary
BSPRenderer(Transform3D camera, ViewWindow viewWindow)
          Creates a new BSP renderer with the specified camera object and view window.
 
Method Summary
 void draw(java.awt.Graphics2D g, BSPTree tree)
          Draws the visible polygons in a BSP tree based on the camera location.
 void endFrame(java.awt.Graphics2D g)
          Indicates the end of rendering of a frame.
 void setGameObjectManager(GameObjectManager gameObjectManager)
          Sets the GamebjectManager.
 void startFrame(java.awt.Graphics2D g)
          Indicates the start of rendering of a frame.
 boolean visitPolygon(BSPPolygon poly, boolean isBack)
          Visits a BSP polygon.
 
Methods inherited from class com.brackeen.javagamebook.graphics3D.ZBufferedRenderer
draw, draw
 
Methods inherited from class com.brackeen.javagamebook.graphics3D.PolygonRenderer
draw, getCamera
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BSPRenderer

public BSPRenderer(Transform3D camera,
                   ViewWindow viewWindow)
Creates a new BSP renderer with the specified camera object and view window.

Method Detail

setGameObjectManager

public void setGameObjectManager(GameObjectManager gameObjectManager)
Sets the GamebjectManager. The BSP traverser sets the visibily of the objects.


startFrame

public void startFrame(java.awt.Graphics2D g)
Description copied from class: PolygonRenderer
Indicates the start of rendering of a frame. This method should be called every frame before any polygons are drawn.

Overrides:
startFrame in class ZBufferedRenderer

endFrame

public void endFrame(java.awt.Graphics2D g)
Description copied from class: PolygonRenderer
Indicates the end of rendering of a frame. This method should be called every frame after all polygons are drawn.

Overrides:
endFrame in class ShadedSurfacePolygonRenderer

draw

public void draw(java.awt.Graphics2D g,
                 BSPTree tree)
Draws the visible polygons in a BSP tree based on the camera location. The polygons are drawn front-to-back.


visitPolygon

public boolean visitPolygon(BSPPolygon poly,
                            boolean isBack)
Description copied from interface: BSPTreeTraverseListener
Visits a BSP polygon. Called by a BSPTreeTraverer. If this method returns true, the BSPTreeTraverer will stop the current traversal. Otherwise, the BSPTreeTraverer will continue if there are polygons in the tree that have not yet been traversed.

Specified by:
visitPolygon in interface BSPTreeTraverseListener