Example usage for com.badlogic.gdx.graphics.glutils ShapeRenderer identity

List of usage examples for com.badlogic.gdx.graphics.glutils ShapeRenderer identity

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.glutils ShapeRenderer identity.

Prototype

public void identity() 

Source Link

Document

Sets the transformation matrix to identity.

Usage

From source file:net.noviden.towerdefense.UnitFactory.HexagonUnit.java

License:Open Source License

public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its shape
    float percentHealthMissing = 1.0f - (this.health / this.maxHealth);
    float percentToDraw;

    float s = centerToVertex / 2, c = (float) Math.sqrt(3) * centerToVertex / 2;

    // draw a hexagon centered at the current location
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(BASE_UNIT_COLOR);

    shapeRenderer.identity();

    shapeRenderer.translate(location.x, location.y, 0.f);
    shapeRenderer.rotate(0f, 0f, 1f, rotation);

    //     E * * * F
    //   * * * * * * *
    // D * * * M * * * A
    //   * * * * * * *
    //    C * * * B

    // draw triangle MAB
    shapeRenderer.triangle(0, 0, centerToVertex, 0, s, -c);

    // draw triangle MBC
    shapeRenderer.triangle(0, 0, s, -c, -s, -c);

    // draw triangle MCD
    shapeRenderer.triangle(0, 0, -s, -c, -centerToVertex, 0);

    // draw triangle MDE
    shapeRenderer.triangle(0, 0, -centerToVertex, 0, -s, c);

    // draw triangle MEF
    shapeRenderer.triangle(0, 0, -s, c, s, c);

    // draw triangle MFA
    shapeRenderer.triangle(0, 0, s, c, centerToVertex, 0);

    if (percentHealthMissing > 0.0f) {

        // draw in missing health
        shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);

        // draw triangle MAB
        percentToDraw = MathUtils.clamp(percentHealthMissing / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, centerToVertex, 0,
                centerToVertex - (Math.abs(centerToVertex - s) * percentToDraw), -c * percentToDraw);

        // draw triangle MBC
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.166f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, s, -c, s - (s * 2 * percentToDraw), -c);

        // draw triangle MCD
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.33f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -s, -c, -s - (Math.abs(centerToVertex - s) * percentToDraw),
                -c + (c * percentToDraw));

        // draw triangle MDE
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.5f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -centerToVertex, 0,
                -centerToVertex + (Math.abs(centerToVertex - s) * percentToDraw), c * percentToDraw);

        // draw triangle MEF
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.66f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -s, c, -s + (s * 2 * percentToDraw), c);

        // draw triangle MFA
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.83f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, s, c, s + (Math.abs(centerToVertex - s) * percentToDraw),
                c - (c * percentToDraw));
    }/*from  w w w  .j av a 2s  .com*/

    shapeRenderer.identity();
}

From source file:net.noviden.towerdefense.UnitFactory.PentagonUnit.java

License:Open Source License

@Override
public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its shape
    float percentHealthMissing = 1.0f - (this.health / this.maxHealth);
    float percentToDraw;

    // thank you based wolframalpha
    // http://mathworld.wolfram.com/Pentagon.html

    float c1 = MathUtils.cos(MathUtils.PI * 2.0f / 5.0f) * centerToVertex,
            c2 = MathUtils.cos(MathUtils.PI / 5.0f) * centerToVertex,
            s1 = MathUtils.sin(MathUtils.PI * 2.0f / 5.0f) * centerToVertex,
            s2 = MathUtils.sin(MathUtils.PI * 4.0f / 5.0f) * centerToVertex;

    // draw a pentagon centered at the current location
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(BASE_UNIT_COLOR);

    shapeRenderer.identity();

    shapeRenderer.translate(location.x, location.y, 0.f);
    shapeRenderer.rotate(0f, 0f, 1f, rotation);

    // draw the pentagon

    //          A
    //        *   *
    //      E   M   B
    //       *     *
    //        D * C

    // draw triangle MAB
    shapeRenderer.triangle(0, 0, 0, centerToVertex, s1, c1);

    // draw triangle MBC
    shapeRenderer.triangle(0, 0, s1, c1, s2, -c2);

    // draw triangle MCD
    shapeRenderer.triangle(0, 0, s2, -c2, -s2, -c2);

    // draw triangle MDE
    shapeRenderer.triangle(0, 0, -s2, -c2, -s1, c1);

    // draw triangle MEA
    shapeRenderer.triangle(0, 0, -s1, c1, 0, centerToVertex);

    if (percentHealthMissing > 0.0f) {
        // draw missing health
        shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);

        // triangle MAB
        percentToDraw = MathUtils.clamp(percentHealthMissing / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, 0, centerToVertex, s1 * percentToDraw,
                centerToVertex - (Math.abs(centerToVertex - c1) * percentToDraw));

        // triangle MBC
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.2f) / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, s1, c1, s1 - (Math.abs(s1 - s2) * percentToDraw),
                c1 - ((c1 + c2) * percentToDraw));

        // triangle MCD
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.4f) / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, s2, -c2, s2 - (s2 * 2 * percentToDraw), -c2);

        // triangle MDE
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.6f) / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -s2, -c2, -s2 - (Math.abs(s1 - s2) * percentToDraw),
                -c2 + ((c1 + c2) * percentToDraw));

        // triangle MEA
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.8f) / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -s1, c1, -s1 + (s1 * percentToDraw),
                c1 + (Math.abs(centerToVertex - c1) * percentToDraw));

    }//from w  w  w . j  av a2 s.  c  o  m

    shapeRenderer.identity();
}

From source file:net.noviden.towerdefense.UnitFactory.SquareUnit.java

License:Open Source License

@Override
public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its shape
    float percentHealthMissing = 1.0f - (this.health / this.maxHealth);

    // draw a square centered at the current location
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(BASE_UNIT_COLOR);

    shapeRenderer.identity();

    shapeRenderer.translate(location.x, location.y, 0.f);
    shapeRenderer.rotate(0f, 0f, 1f, rotation);
    shapeRenderer.rect(-sideLength / 2, -sideLength / 2, sideLength, sideLength);

    // draw missing health: break up square into 4 distinct triangles
    if (percentHealthMissing > 0.0f) {
        shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);
        float percentToDraw;

        // draw 1 / 4
        percentToDraw = MathUtils.clamp(percentHealthMissing / 0.25f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, sideLength / 2, -sideLength / 2, sideLength / 2,
                -sideLength / 2 + percentToDraw * sideLength);

        // draw 2 / 4
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.25f) / 0.25f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, sideLength / 2, sideLength / 2,
                sideLength / 2 - percentToDraw * sideLength, sideLength / 2);

        // draw 3 / 4
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.5f) / 0.25f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -sideLength / 2, sideLength / 2, -sideLength / 2,
                sideLength / 2 - percentToDraw * sideLength);

        // draw 4 / 4
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.75f) / 0.25f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -sideLength / 2, -sideLength / 2,
                -sideLength / 2 + percentToDraw * sideLength, -sideLength / 2);
    }/*from www  .j  a v a  2 s  .  co  m*/

    // reset the shapeRenderer transformation matrix
    shapeRenderer.identity();
}

From source file:net.noviden.towerdefense.UnitFactory.TriangleUnit.java

License:Open Source License

@Override
public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its shape
    float percentHealthMissing = 1.0f - (this.health / this.maxHealth);
    float percentToDraw;

    // draw a square centered at the current location
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(BASE_UNIT_COLOR);

    shapeRenderer.identity();

    shapeRenderer.translate(location.x, location.y, 0.f);
    shapeRenderer.rotate(0f, 0f, 1f, rotation);

    shapeRenderer.triangle(points[0].x, points[0].y, points[1].x, points[1].y, points[2].x, points[2].y);

    // draw in health missing, break down large triangle into three smaller ones
    shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);

    if (percentHealthMissing > 0.0f) {

        // draw 1 / 3, MAB
        percentToDraw = MathUtils.clamp(percentHealthMissing / 0.33f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, points[0].x, points[0].y,
                points[0].x + (Math.abs(points[0].x - points[1].x) * percentToDraw),
                points[0].y - (Math.abs(points[0].y - points[1].y) * percentToDraw));

        // draw 2 / 3, MBC
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.33f) / 0.33f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, points[1].x, points[1].y, points[1].x - (points[1].x * percentToDraw * 2),
                points[2].y);/* w ww .  ja va  2 s  . co  m*/

        // draw 3 / 3, MCA
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.66f) / 0.33f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, points[2].x, points[2].y,
                points[2].x + (Math.abs(points[2].x - points[0].x) * percentToDraw),
                points[2].y + (Math.abs(points[2].y - points[0].y) * percentToDraw));
    }

    shapeRenderer.identity();
}