Example usage for com.badlogic.gdx.math Rectangle merge

List of usage examples for com.badlogic.gdx.math Rectangle merge

Introduction

In this page you can find the example usage for com.badlogic.gdx.math Rectangle merge.

Prototype

public Rectangle merge(float x, float y) 

Source Link

Document

Merges this rectangle with a point.

Usage

From source file:org.ams.prettypaint.OutlinePolygon.java

License:Open Source License

private void updateBoxCulling(BoundingBox box) {
    Rectangle rectangle = box.rectangle;

    box.dataCount = 0;//from www  . j  av  a2s . c  o m

    boolean initialized = false;
    for (int n = box.begin; n < box.begin + box.count; n++) {

        Array<Float> inside = vertexDataArray.items[n].insideVertexData;
        Array<Float> outside = vertexDataArray.items[n].outsideVertexData;

        if (!initialized) {
            if (inside.size > 0 && drawInside) {
                rectangle.set(inside.items[0], inside.items[1], 0, 0);
            } else if (outside.size > 0 && drawOutside) {
                rectangle.set(outside.items[0], outside.items[1], 0, 0);
            }

            if (closedPolygon || n > 0) {
                int k = (box.begin - 1 + vertices.size) % vertices.size;

                if (drawInside) {
                    Array<Float> _inside = vertexDataArray.items[k].insideVertexData;
                    for (int i = 0; i < _inside.size; i += 3) {
                        rectangle.merge(_inside.items[i], _inside.items[i + 1]);
                        box.dataCount++;
                    }
                }

                if (drawOutside) {
                    Array<Float> _outside = vertexDataArray.items[k].outsideVertexData;
                    for (int i = 0; i < _outside.size; i += 3) {
                        rectangle.merge(_outside.items[i], _outside.items[i + 1]);
                        box.dataCount++;
                    }
                }
            }

            if (closedPolygon || n < vertices.size) {
                int k = (box.begin + box.count + vertices.size) % vertices.size;

                if (drawInside) {
                    Array<Float> _inside = vertexDataArray.items[k].insideVertexData;
                    for (int i = 0; i < _inside.size; i += 3) {
                        rectangle.merge(_inside.items[i], _inside.items[i + 1]);
                        box.dataCount++;
                    }
                }

                if (drawOutside) {
                    Array<Float> _outside = vertexDataArray.items[k].outsideVertexData;
                    for (int i = 0; i < _outside.size; i += 3) {
                        rectangle.merge(_outside.items[i], _outside.items[i + 1]);
                        box.dataCount++;
                    }
                }
            }

            initialized = true;
        }

        if (drawInside)
            for (int i = 0; i < inside.size; i += 3) {
                rectangle.merge(inside.items[i], inside.items[i + 1]);
                box.dataCount++;
            }

        if (drawOutside)
            for (int i = 0; i < outside.size; i += 3) {
                rectangle.merge(outside.items[i], outside.items[i + 1]);
                box.dataCount++;
            }
    }
}