org.jzy3d.plot3d.text.renderers
Class TextBillboardRenderer

java.lang.Object
  extended by org.jzy3d.plot3d.text.AbstractTextRenderer
      extended by org.jzy3d.plot3d.text.renderers.TextBillboardRenderer
All Implemented Interfaces:
ITextRenderer

public class TextBillboardRenderer
extends AbstractTextRenderer
implements ITextRenderer

A TextBillboardRenderer allows writing 2d text always facing the Camera of a 3d Scene.
TextBillboard provides the pixel definition of all characters of the ASCII alphabet. A default bitmap (plain rectangle) is provided for unrecognized characters (those that do not have an ASCII code). The bitmap library is static, and thus no overhead is generated by the use of several instances of TextBillboard.
It is however not necessary to have an instance of TextBillboard for each drawn string.
String s = new String("2d text in 3d Scene");
TextBillboard txt = new TextBillboard();
BoundingBox3d box;

txt.drawText(gl, s, Coord3d.ORIGIN, Halign.LEFT, Valign.GROUND, Color.BLACK);
box = txt.drawText(gl, glu, cam, s, Coord3d.ORIGIN, Halign.LEFT, Valign.GROUND, Color.BLACK);

Layout constants
As demonstrated in the previous example, the TextBillboardRenderer handles vertical and horizontal layout of text according to the given text coordinate.
The following picture illustrates the text layout when using the various layout constants

Author:
Martin Pernollet

Field Summary
 
Fields inherited from class org.jzy3d.plot3d.text.AbstractTextRenderer
defSceneOffset, defScreenOffset
 
Constructor Summary
TextBillboardRenderer()
          The TextBillboard class provides support for drawing ASCII characters Any non ascii caracter will be replaced by a square.
 
Method Summary
 void drawSimpleText(javax.media.opengl.GL2 gl, javax.media.opengl.glu.GLU glu, Camera cam, String s, Coord3d position, Color color)
           
 BoundingBox3d drawText(javax.media.opengl.GL2 gl, javax.media.opengl.glu.GLU glu, Camera cam, String s, Coord3d position, Halign halign, Valign valign, Color color, Coord2d screenOffset, Coord3d sceneOffset)
          Draw a string at the specified position and compute the 3d volume occupied by the string according to the current Camera configuration.
 void drawText(javax.media.opengl.GL2 gl, String s, Coord3d position, Halign halign, Valign valign, Color color)
          Draw a string at the specified position.
 
Methods inherited from class org.jzy3d.plot3d.text.AbstractTextRenderer
drawText, drawText, drawText
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jzy3d.plot3d.text.ITextRenderer
drawText, drawText, drawText
 

Constructor Detail

TextBillboardRenderer

public TextBillboardRenderer()
The TextBillboard class provides support for drawing ASCII characters Any non ascii caracter will be replaced by a square.

Method Detail

drawSimpleText

public void drawSimpleText(javax.media.opengl.GL2 gl,
                           javax.media.opengl.glu.GLU glu,
                           Camera cam,
                           String s,
                           Coord3d position,
                           Color color)
Specified by:
drawSimpleText in interface ITextRenderer

drawText

public void drawText(javax.media.opengl.GL2 gl,
                     String s,
                     Coord3d position,
                     Halign halign,
                     Valign valign,
                     Color color)
Draw a string at the specified position.


drawText

public BoundingBox3d drawText(javax.media.opengl.GL2 gl,
                              javax.media.opengl.glu.GLU glu,
                              Camera cam,
                              String s,
                              Coord3d position,
                              Halign halign,
                              Valign valign,
                              Color color,
                              Coord2d screenOffset,
                              Coord3d sceneOffset)
Draw a string at the specified position and compute the 3d volume occupied by the string according to the current Camera configuration.

Specified by:
drawText in interface ITextRenderer