cz.cuni.jagrlib.piece
Class RenderDepthBuffer

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultRender3D
              extended by cz.cuni.jagrlib.piece.RenderDepthBuffer
All Implemented Interfaces:
Breakable, Property, Render, Render3D, Trigger, Template

public class RenderDepthBuffer
extends DefaultRender3D

Brep scene rendering - depth-buffer implementation.

Since:
0.25
Version:
0.26 $Rev: 843 $ $Date: 2009-01-12 12:14:46 +0100 (po, 12 I 2009) $ $Author: pepca $
See Also:
RenderDepthBuffer.java

Nested Class Summary
protected static class RenderDepthBuffer.EdgeComparator
          Edge comparator for actual edge list: [ x ].
protected  class RenderDepthBuffer.FlatShader
          H-line renderer - flat shading.
protected  class RenderDepthBuffer.GouraudShader
          Interpolating renderer - Gouraud color interpolation (with optional perspective-correct interpolation).
protected static interface RenderDepthBuffer.HLineRenderer
          Abstract H-line renderer.
protected static class RenderDepthBuffer.PolyEdge
          Polygon edge.
protected  class RenderDepthBuffer.TextureShader
          H-line renderer - external texture mapping (with optional perspective-correct interpolation).
 
Field Summary
protected static int[] BACKGROUND
          Canvas background.
protected  float[] buffer
          Depth-buffer, addressing: buffer[ x + y * bufferWidth ].
protected  int bufferHeight
          Buffer height in pixels.
protected  int bufferWidth
          Buffer width in pixels.
protected static String CATEGORY
          Object category.
static String CORRECT_INTERPOLATION
           
protected  boolean correctInterpolation
          Use perspective-correct interpolation?
protected static RenderDepthBuffer.EdgeComparator eComparator
          Single comparator instance.
protected  float infinity
          Infinite value used in depth-buffer reset.
static RegPiece reg
          Static registration instance for this class.
protected static String TEMPLATE_NAME
          Object template identifier.
 
Fields inherited from class cz.cuni.jagrlib.DefaultRender3D
compound, depthComparison, modelView, mvChanged, prChanged, projection, renderStyle, vpHeight, vpChanged, vpWidth, vpX0, vpY0
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.Render3D
DEPTH_GEQUAL, DEPTH_GREATER, DEPTH_LEQUAL, DEPTH_LESS
 
Fields inherited from interface cz.cuni.jagrlib.iface.Render
LINE_CAP, LINE_CAP_BUTT, LINE_CAP_ROUND, LINE_CAP_SQUARE, LINE_JOIN, LINE_JOIN_BEVEL, LINE_JOIN_DISJOINT, LINE_JOIN_MITER, LINE_JOIN_OVERLAP, LINE_JOIN_ROUND, LINE_WIDTH, PROJECTION, RENDER_STYLE, RENDER_STYLE_FLAT, RENDER_STYLE_GOURAUD, RENDER_STYLE_LINE, RENDER_STYLE_PHONG, RENDER_STYLE_TEXTURE
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
Fields inherited from interface cz.cuni.jagrlib.Template
ALL_PLUGS, C_1D, C_2D, C_3D, C_ALPHA, C_BINARY, C_BREP, C_CAMERA, C_CIRCLE, C_CLIP, C_COMPRESSION, C_CURVE, C_DATA, C_DRAW, C_EDITOR, C_ELLIPSE, C_FILL, C_FILTER, C_FLOAT, C_FUNCTION, C_IMAGE, C_INTEGER, C_IO, C_LIGHT, C_LINE, C_METRIC, C_POLYGON, C_PROJECTION, C_RADIOSITY, C_RASTER, C_RENDER, C_SAMPLE, C_SCENE, C_SET, C_SOLID, C_TEXT, C_TRANSFORM, C_VECTOR, C_VIEWER, C_WORKER, CAT_EMPTY, EMPTY, IFACE, JAGRLIB, JAGRLIB2, MANIPULATOR_COMBO, MANIPULATOR_CUSTOM, MANIPULATOR_DEFAULT, MANIPULATOR_MULTILINE, PL_ALPHAMASK, PL_BITMASK, PL_CODEC, PL_COLORMAP, PL_COMPARE, PL_DATA, PL_DIRECT, PL_EDITOR, PL_FILTER, PL_FUNCTION, PL_IMAGE, PL_IMPORT, PL_INPUT, PL_INTERSECTION, PL_LIGHTSOURCE, PL_ORDER, PL_OUTPUT, PL_PALETTE, PL_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING
 
Constructor Summary
RenderDepthBuffer()
           
 
Method Summary
 Object get(String key)
          Gets the given property.
protected  void initBuffer(int width, int height)
          Depth-buffer [re]-initialization.
 void render(TrMatrix mv, TrMatrix proj, int style)
          3D rendering using the given projection matrix.
 void set(String key, Object value)
          Sets the given property.
 void setDepthComparison(int comp)
          Sets type of depth-test comparison.
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
 
Methods inherited from class cz.cuni.jagrlib.DefaultRender3D
fire, checkMatrix, render, setModelView, setProjection, setProjection, setRenderStyle, setViewport
 
Methods inherited from class cz.cuni.jagrlib.Piece
className, connect, findPlug, findPlug, getInfo, getInterface, getInterface, getPlug, getReg, init, isCompatible, isCompatible, isConnected, logError, logWarning, myInterface, newInputPlug, newOptOutputPlug, newOutputPlug, newPlug, noTemplates, propBegin, propBounds, propDefault, propEnd, propEnum, propManipulator, propManipulator, setProgressListener, setRegStrings, setTemplateDynamic, stop
 
Methods inherited from class cz.cuni.jagrlib.DefaultProperty
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, stringProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit
 
Methods inherited from interface cz.cuni.jagrlib.Breakable
setProgressListener, stop
 

Field Detail

BACKGROUND

protected static final int[] BACKGROUND
Canvas background.


infinity

protected float infinity
Infinite value used in depth-buffer reset.


buffer

protected float[] buffer
Depth-buffer, addressing: buffer[ x + y * bufferWidth ].


bufferWidth

protected int bufferWidth
Buffer width in pixels.


bufferHeight

protected int bufferHeight
Buffer height in pixels.


correctInterpolation

protected boolean correctInterpolation
Use perspective-correct interpolation?


eComparator

protected static final RenderDepthBuffer.EdgeComparator eComparator
Single comparator instance.


CORRECT_INTERPOLATION

public static final String CORRECT_INTERPOLATION
See Also:
Constant Field Values

TEMPLATE_NAME

protected static final String TEMPLATE_NAME
Object template identifier.

See Also:
Constant Field Values

CATEGORY

protected static final String CATEGORY
Object category.

See Also:
Constant Field Values

reg

public static final RegPiece reg
Static registration instance for this class. Automatically initialized in class-loading time.

Constructor Detail

RenderDepthBuffer

public RenderDepthBuffer()
Method Detail

initBuffer

protected void initBuffer(int width,
                          int height)
Depth-buffer [re]-initialization.


setDepthComparison

public void setDepthComparison(int comp)
Sets type of depth-test comparison.

Specified by:
setDepthComparison in interface Render3D
Overrides:
setDepthComparison in class DefaultRender3D

render

public void render(TrMatrix mv,
                   TrMatrix proj,
                   int style)
3D rendering using the given projection matrix.

Specified by:
render in interface Render3D
Overrides:
render in class DefaultRender3D
Parameters:
mv - Local model-view matrix.
proj - Local projection matrix.
style - Local rendering style.
See Also:
DefaultRender3D.render()

set

public void set(String key,
                Object value)
Sets the given property.

Specified by:
set in interface Property
Overrides:
set in class DefaultProperty
Parameters:
key - Key string.
value - The new value.
See Also:
Property.commit()

get

public Object get(String key)
Gets the given property.

Specified by:
get in interface Property
Overrides:
get in class DefaultProperty
Parameters:
key - Key string.
Returns:
The actual value or null.

setTemplate

public static int setTemplate(Template t,
                              int ord)
General-purpose registration routine. Sets all plugs, strings, etc. to the given Template.