maspack.render
Interface GLRenderer

All Known Implementing Classes:
GLViewer

public interface GLRenderer


Nested Class Summary
static class GLRenderer.SelectionHighlighting
           
 
Field Summary
static int CLEAR_MESH_DISPLAY_LISTS
          Flag requesting that all display lists be cleared
static int HSV_COLOR_INTERPOLATION
          Flag requesting color interpolation in HSV space, if possible.
static int REFRESH
          Flag requesting components refresh any custom rendering info
static int SELECTED
          Flag requesting that an object be rendered as though it is selected.
static int SORT_FACES
          Flag requesting that faces of a mesh be sorted before rendering
static int VERTEX_COLORING
          Flag requesting that vertex coloring should be used for mesh rendering.
 
Method Summary
 void begin2DRendering()
          Start displaying 2D objects, dimensions given by pixels
 void begin2DRendering(double w, double h)
          Start displaying 2D objects, dimensions governed by supplied width/height
 void beginSelectionQuery(int qid)
          Begins a selection query with the {\it query identifier} qid.
 void beginSubSelection(GLSelectable s, int qid)
          Begins selection for a GLSelectable sthat manages its own selection; this call should be used in place of beginSelectionQuery(int) for such objects.
 double centerDistancePerPixel()
           
 double distancePerPixel(Vector3d p)
           
 void drawArrow(RenderProps props, float[] coords0, float[] coords1, boolean capped, boolean selected)
           
 void drawAxes(RenderProps props, RigidTransform3d X, double[] len, boolean selected)
           
 void drawAxes(RenderProps props, RigidTransform3d X, double len, boolean selected)
           
 void drawCylinder(RenderProps props, float[] coords0, float[] coords1)
           
 void drawCylinder(RenderProps props, float[] coords0, float[] coords1, boolean capped)
           
 void drawHex(RenderProps props, double scale, float[] v0, float[] v1, float[] v2, float[] v3, float[] v4, float[] v5, float[] v6, float[] v7)
           
 void drawLine(RenderProps props, float[] coords0, float[] coords1, boolean selected)
           
 void drawLine(RenderProps props, float[] coords0, float[] coords1, boolean capped, boolean selected)
           
 void drawLine(RenderProps props, float[] coords0, float[] coords1, boolean capped, float[] color, boolean selected)
           
 void drawLines(RenderProps props, java.util.Iterator<? extends RenderableLine> iterator)
           
 void drawPoint(RenderProps props, float[] coords, boolean selected)
           
 void drawPoints(RenderProps props, java.util.Iterator<? extends RenderablePoint> iterator)
           
 void drawPyramid(RenderProps props, double scale, float[] v0, float[] v1, float[] v2, float[] v3, float[] v4)
           
 void drawSolidArrow(RenderProps props, float[] coords0, float[] coords1)
           
 void drawSolidArrow(RenderProps props, float[] coords0, float[] coords1, boolean capped)
           
 void drawSphere(RenderProps props, float[] coords)
           
 void drawSphere(RenderProps props, float[] coords, double r)
           
 void drawTaperedEllipsoid(RenderProps props, float[] coords0, float[] coords1)
           
 void drawTet(RenderProps props, double scale, float[] v0, float[] v1, float[] v2, float[] v3)
           
 void drawWedge(RenderProps props, double scale, float[] v0, float[] v1, float[] v2, float[] v3, float[] v4, float[] v5)
           
 void end2DRendering()
          Finalize 2D rendering, returning to default 3D mode
 void endSelectionQuery()
          Ends a selection query that was initiated with a call to beginSelectionQuery(int).
 void endSubSelection()
          Ends object sub-selection that was initiated with a call to beginSubSelection(maspack.render.GLSelectable, int).
 RigidTransform3d getEyeToWorld()
           
 double getFarClipPlaneZ()
           
 javax.media.opengl.GL getGL()
           
 javax.media.opengl.GL2 getGL2()
           
 javax.media.opengl.glu.GLU getGLU()
           
 int getHeight()
           
 double getNearClipPlaneZ()
           
 java.awt.Color getSelectionColor()
           
 GLSelectionFilter getSelectionFilter()
          Returns the current selection filter for the renderer, if any.
 GLRenderer.SelectionHighlighting getSelectionHighlighting()
           
 Material getSelectionMaterial()
           
 double getViewPlaneHeight()
           
 double getViewPlaneWidth()
           
 int getWidth()
           
 Vector3d getZDirection()
          Direction pointing out of monitor
 boolean is2DRendering()
          Check whether renderer is currently in 2D mode
 boolean isLightingEnabled()
          Returns whether or not GL_LIGHTING is enabled.
 boolean isOrthogonal()
           
 boolean isSelectable(GLSelectable s)
          Returns true if s is selectable in the current selection context.
 boolean isSelecting()
          Returns true if the renderer is currently performing a selection render.
 boolean isTransparencyEnabled()
           
 void mulTransform(AffineTransform3d X)
           
 void mulTransform(RigidTransform3d X)
           
 void rerender()
           
 void restoreShading(RenderProps props)
           
 void setColor(java.awt.Color color)
           
 void setColor(float[] rgb)
           
 void setColor(float[] rgb, boolean selected)
           
 void setColor(float r, float g, float b)
           
 void setColor(float r, float g, float b, float a)
           
 void setDefaultFaceMode()
           
 void setFaceMode(RenderProps.Faces mode)
           
 void setLightingEnabled(boolean enable)
          Enables or disables GL_LIGHTING.
 void setMaterial(Material material, boolean selected)
           
 void setMaterialAndShading(RenderProps props, Material mat, boolean selected)
           
 void setMaterialAndShading(RenderProps props, Material mat, float[] diffuseColor, boolean selected)
           
 void setSelectionFilter(GLSelectionFilter filter)
          Sets a selection filter for the renderer.
 void setTransparencyEnabled(boolean enable)
           
 void updateColor(float[] rgb, boolean selected)
           
 void updateMaterial(RenderProps props, Material material, boolean selected)
           
 void updateMaterial(RenderProps props, Material mat, float[] diffuseColor, boolean selected)
           
 

Field Detail

SELECTED

static final int SELECTED
Flag requesting that an object be rendered as though it is selected.

See Also:
Constant Field Values

VERTEX_COLORING

static final int VERTEX_COLORING
Flag requesting that vertex coloring should be used for mesh rendering.

See Also:
Constant Field Values

HSV_COLOR_INTERPOLATION

static final int HSV_COLOR_INTERPOLATION
Flag requesting color interpolation in HSV space, if possible.

See Also:
Constant Field Values

SORT_FACES

static final int SORT_FACES
Flag requesting that faces of a mesh be sorted before rendering

See Also:
Constant Field Values

CLEAR_MESH_DISPLAY_LISTS

static final int CLEAR_MESH_DISPLAY_LISTS
Flag requesting that all display lists be cleared

See Also:
Constant Field Values

REFRESH

static final int REFRESH
Flag requesting components refresh any custom rendering info

See Also:
Constant Field Values
Method Detail

getHeight

int getHeight()

getWidth

int getWidth()

getViewPlaneHeight

double getViewPlaneHeight()

getViewPlaneWidth

double getViewPlaneWidth()

centerDistancePerPixel

double centerDistancePerPixel()

distancePerPixel

double distancePerPixel(Vector3d p)

isOrthogonal

boolean isOrthogonal()

getNearClipPlaneZ

double getNearClipPlaneZ()

getFarClipPlaneZ

double getFarClipPlaneZ()

getGL

javax.media.opengl.GL getGL()

getGL2

javax.media.opengl.GL2 getGL2()

getGLU

javax.media.opengl.glu.GLU getGLU()

rerender

void rerender()

getEyeToWorld

RigidTransform3d getEyeToWorld()

isSelecting

boolean isSelecting()
Returns true if the renderer is currently performing a selection render. When this is the case, the application should avoid GL calls affecting color and lighting.

Returns:
true if the renderer is in selection mode.

isLightingEnabled

boolean isLightingEnabled()
Returns whether or not GL_LIGHTING is enabled.


setLightingEnabled

void setLightingEnabled(boolean enable)
Enables or disables GL_LIGHTING. The reason for doing this through the renderer, rather than calling GL directly, is so that the renderer can discard the request when performing a selection render.


setColor

void setColor(float[] rgb,
              boolean selected)

setColor

void setColor(float[] rgb)

setColor

void setColor(java.awt.Color color)

updateColor

void updateColor(float[] rgb,
                 boolean selected)

setColor

void setColor(float r,
              float g,
              float b)

setColor

void setColor(float r,
              float g,
              float b,
              float a)

setMaterial

void setMaterial(Material material,
                 boolean selected)

setMaterialAndShading

void setMaterialAndShading(RenderProps props,
                           Material mat,
                           boolean selected)

setMaterialAndShading

void setMaterialAndShading(RenderProps props,
                           Material mat,
                           float[] diffuseColor,
                           boolean selected)

restoreShading

void restoreShading(RenderProps props)

updateMaterial

void updateMaterial(RenderProps props,
                    Material material,
                    boolean selected)

updateMaterial

void updateMaterial(RenderProps props,
                    Material mat,
                    float[] diffuseColor,
                    boolean selected)

drawSphere

void drawSphere(RenderProps props,
                float[] coords)

drawSphere

void drawSphere(RenderProps props,
                float[] coords,
                double r)

drawTet

void drawTet(RenderProps props,
             double scale,
             float[] v0,
             float[] v1,
             float[] v2,
             float[] v3)

drawHex

void drawHex(RenderProps props,
             double scale,
             float[] v0,
             float[] v1,
             float[] v2,
             float[] v3,
             float[] v4,
             float[] v5,
             float[] v6,
             float[] v7)

drawWedge

void drawWedge(RenderProps props,
               double scale,
               float[] v0,
               float[] v1,
               float[] v2,
               float[] v3,
               float[] v4,
               float[] v5)

drawPyramid

void drawPyramid(RenderProps props,
                 double scale,
                 float[] v0,
                 float[] v1,
                 float[] v2,
                 float[] v3,
                 float[] v4)

drawTaperedEllipsoid

void drawTaperedEllipsoid(RenderProps props,
                          float[] coords0,
                          float[] coords1)

drawCylinder

void drawCylinder(RenderProps props,
                  float[] coords0,
                  float[] coords1)

drawCylinder

void drawCylinder(RenderProps props,
                  float[] coords0,
                  float[] coords1,
                  boolean capped)

drawLine

void drawLine(RenderProps props,
              float[] coords0,
              float[] coords1,
              boolean selected)

drawLine

void drawLine(RenderProps props,
              float[] coords0,
              float[] coords1,
              boolean capped,
              float[] color,
              boolean selected)

drawLine

void drawLine(RenderProps props,
              float[] coords0,
              float[] coords1,
              boolean capped,
              boolean selected)

drawSolidArrow

void drawSolidArrow(RenderProps props,
                    float[] coords0,
                    float[] coords1,
                    boolean capped)

drawSolidArrow

void drawSolidArrow(RenderProps props,
                    float[] coords0,
                    float[] coords1)

drawArrow

void drawArrow(RenderProps props,
               float[] coords0,
               float[] coords1,
               boolean capped,
               boolean selected)

drawLines

void drawLines(RenderProps props,
               java.util.Iterator<? extends RenderableLine> iterator)

drawPoint

void drawPoint(RenderProps props,
               float[] coords,
               boolean selected)

drawPoints

void drawPoints(RenderProps props,
                java.util.Iterator<? extends RenderablePoint> iterator)

drawAxes

void drawAxes(RenderProps props,
              RigidTransform3d X,
              double len,
              boolean selected)

drawAxes

void drawAxes(RenderProps props,
              RigidTransform3d X,
              double[] len,
              boolean selected)

isTransparencyEnabled

boolean isTransparencyEnabled()

setTransparencyEnabled

void setTransparencyEnabled(boolean enable)

setFaceMode

void setFaceMode(RenderProps.Faces mode)

setDefaultFaceMode

void setDefaultFaceMode()

mulTransform

void mulTransform(AffineTransform3d X)

mulTransform

void mulTransform(RigidTransform3d X)

getSelectionHighlighting

GLRenderer.SelectionHighlighting getSelectionHighlighting()

getSelectionColor

java.awt.Color getSelectionColor()

getSelectionMaterial

Material getSelectionMaterial()

getZDirection

Vector3d getZDirection()
Direction pointing out of monitor


begin2DRendering

void begin2DRendering()
Start displaying 2D objects, dimensions given by pixels


begin2DRendering

void begin2DRendering(double w,
                      double h)
Start displaying 2D objects, dimensions governed by supplied width/height


end2DRendering

void end2DRendering()
Finalize 2D rendering, returning to default 3D mode


is2DRendering

boolean is2DRendering()
Check whether renderer is currently in 2D mode


beginSelectionQuery

void beginSelectionQuery(int qid)
Begins a selection query with the {\it query identifier} qid. If the rendering that occurs between this call and the subsequent call to endSelectionQuery() results in anything being rendered within the selection window, a {\it selection hit} will be generated for qid. If called within the render method for a GLSelectable, then qid must lie in the range 0 to numq-1, where numq is the value returned by GLSelectable.numSelectionQueriesNeeded(). Selection queries cannot be nested, and a given query identifier should be used only once.

Parameters:
qid - identifier for the selection query
See Also:
endSelectionQuery()

endSelectionQuery

void endSelectionQuery()
Ends a selection query that was initiated with a call to beginSelectionQuery(int).

See Also:
beginSelectionQuery(int)

beginSubSelection

void beginSubSelection(GLSelectable s,
                       int qid)
Begins selection for a GLSelectable sthat manages its own selection; this call should be used in place of beginSelectionQuery(int) for such objects. Selectables that manage their own selection are identified by having a value numq >= 0, where numq is the value returned by GLSelectable#numSelectionQueriesNeeded{}. The argument qid is the current selection query identifier, which after the call should be increased by numq.

Parameters:
s - Selectable that is managing its own sub-selection
qid - current selection query identifier

endSubSelection

void endSubSelection()
Ends object sub-selection that was initiated with a call to beginSubSelection(maspack.render.GLSelectable, int).

See Also:
endSubSelection()

setSelectionFilter

void setSelectionFilter(GLSelectionFilter filter)
Sets a selection filter for the renderer. This restricts which objects are actually rendered when a selection render is performed, and therefore restricts which objects can actually be selected. This allows selection of objects that might otherwise be occluded within a scene.

Parameters:
filter - Selection filter to be applied

getSelectionFilter

GLSelectionFilter getSelectionFilter()
Returns the current selection filter for the renderer, if any.

Returns:
current selection filter, or null if there is none.

isSelectable

boolean isSelectable(GLSelectable s)
Returns true if s is selectable in the current selection context. This will be the case if s.isSelectable() returns true, and s also passes whatever selection filter might currently be set in the renderer.