|
libgdx API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.badlogic.gdx.graphics.glutils.ShapeRenderer
public class ShapeRenderer
Renders points, lines, rectangles, filled rectangles and boxes. This class is not meant to be used for performance sensitive applications but more oriented towards debugging.
This class works with OpenGL ES 1.x and 2.0. In its base configuration a 2D orthographic projection with the origin in the lower left corner is used. Units are given in screen pixels. To change the projection properties use thesetProjectionMatrix(Matrix4)
method. Usually the Camera.combined
matrix is set via this method.
If the screen orientation or resolution changes, the projection matrix might
have to be adapted as well.
Shapes are rendered in batches to increase performance. The standard use-pattern
looks as follows:
camera.update();
shapeRenderer.setProjectionMatrix(camera.combined);
shapeRenderer.begin(ShapeType.Line);
shapeRenderer.color(1, 1, 0, 1);
shapeRenderer.line(x, y, x2, y2);
shapeRenderer.line(x3, y3, x4, y4);
shapeRenderer.end();
shapeRenderer.begin(ShapeType.Box);
shapeRenderer.color(0, 1, 0, 1);
shapeRenderer.box(x, y, z, width, height, depth);
shapeRenderer.end();
The class has a second matrix called the transformation matrix which is used
to rotate, scale and translate shapes in a more flexible manner. This mechanism
works much like matrix operations in OpenGL ES 1.x. The following example shows
how to rotate a rectangle around its center using the z-axis as the rotation axis
and placing it's center at (20, 12, 2):
shapeRenderer.begin(ShapeType.Rectangle); shapeRenderer.identity(); shapeRenderer.translate(20, 12, 2); shapeRenderer.rotate(0, 0, 1, 90); shapeRenderer.rect(-width / 2, -height / 2, width, height); shapeRenderer.end();Matrix operations all use postmultiplication and work just like glTranslate, glScale and glRotate. The last transformation specified will be the first that is applied to a shape (rotate then translate in the above example). The projection and transformation matrices are a state of the ShapeRenderer, just like the color and will be applied to all shapes until they are changed.
Nested Class Summary | |
---|---|
static class |
ShapeRenderer.ShapeType
Shape types to be used with begin(ShapeType) . |
Constructor Summary | |
---|---|
ShapeRenderer()
|
Method Summary | |
---|---|
void |
begin(ShapeRenderer.ShapeType type)
Starts a new batch of shapes. |
void |
box(float x,
float y,
float z,
float width,
float height,
float depth)
Draws a box. |
void |
dispose()
|
void |
end()
Finishes the batch of shapes and ensures they get rendered. |
void |
filledRect(float x,
float y,
float width,
float height)
Draws a filled rectangle in the x/y plane. |
void |
identity()
Sets the transformation matrix to identity. |
void |
line(float x,
float y,
float x2,
float y2)
Draws a line in the x/y plane. |
void |
line(float x,
float y,
float z,
float x2,
float y2,
float z2)
Draws a line. |
void |
point(float x,
float y,
float z)
Draws a point. |
void |
rect(float x,
float y,
float width,
float height)
Draws a rectangle in the x/y plane. |
void |
rotate(float axisX,
float axisY,
float axisZ,
float angle)
Multiplies the current transformation matrix by a rotation matrix. |
void |
scale(float scaleX,
float scaleY,
float scaleZ)
Multiplies the current transformation matrix by a scale matrix. |
void |
setColor(Color color)
Sets the Color to be used by shapes. |
void |
setColor(float r,
float g,
float b,
float a)
Sets the Color to be used by shapes. |
void |
setProjectionMatrix(Matrix4 matrix)
Sets the projection matrix to be used for rendering. |
void |
setTransformMatrix(Matrix4 matrix)
|
void |
translate(float x,
float y,
float z)
Multiplies the current transformation matrix by a translation matrix. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ShapeRenderer()
Method Detail |
---|
public void setColor(Color color)
Color
to be used by shapes.
color
- public void setColor(float r, float g, float b, float a)
Color
to be used by shapes.
r
- g
- b
- a
- public void setProjectionMatrix(Matrix4 matrix)
Camera.combined
.
matrix
- public void setTransformMatrix(Matrix4 matrix)
public void identity()
public void translate(float x, float y, float z)
x
- y
- z
- public void rotate(float axisX, float axisY, float axisZ, float angle)
angle
- angle in degreesaxisX
- axisY
- axisZ
- public void scale(float scaleX, float scaleY, float scaleZ)
scaleX
- scaleY
- scaleZ
- public void begin(ShapeRenderer.ShapeType type)
ShapeRenderer.ShapeType.Point
is specified, only call #point().
The call to this method must be paired with a call to end()
.
In case OpenGL ES 1.x is used, the projection and modelview matrix will
be modified.
type
- the ShapeRenderer.ShapeType
.public void point(float x, float y, float z)
ShapeRenderer.ShapeType
passed to begin has to be ShapeRenderer.ShapeType.Point
.
x
- y
- z
- public void line(float x, float y, float z, float x2, float y2, float z2)
ShapeRenderer.ShapeType
passed to begin has to be ShapeRenderer.ShapeType.Line
.
x
- y
- z
- x2
- y2
- z2
- public void line(float x, float y, float x2, float y2)
ShapeRenderer.ShapeType
passed to begin has to be ShapeRenderer.ShapeType.Line
.
x
- y
- x2
- y2
- public void rect(float x, float y, float width, float height)
ShapeRenderer.ShapeType
passed to begin has to be ShapeRenderer.ShapeType.Rectangle
.
x
- y
- width
- height
- public void filledRect(float x, float y, float width, float height)
ShapeRenderer.ShapeType
passed to begin has to be ShapeRenderer.ShapeType.FilledRectangle
.
x
- y
- width
- height
- public void box(float x, float y, float z, float width, float height, float depth)
ShapeRenderer.ShapeType
passed to begin has to be ShapeRenderer.ShapeType.Box
.
x
- y
- width
- height
- public void end()
public void dispose()
|
libgdx API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |