Beispiel #1
0
  public Grid(Context context) {
    super(context);

    setEGLContextClientVersion(2);
    setRenderer(this);
    setRenderMode(RENDERMODE_CONTINUOUSLY);

    quadVertices = GeometryHelper.createScreenQuad();

    float[] line_data = new float[LINE_COUNT * 3];

    int line = 0;

    final float k = 1.0f;

    for (int x = 0; x <= GRID_DIM; ++x) {
      for (int y = 0; y <= GRID_DIM; ++y) {
        line_data[6 * line + 0] = (((float) x / GRID_DIM) * 2 - 1) * k;
        line_data[6 * line + 1] = -1.0f * k;
        line_data[6 * line + 2] = (((float) y / GRID_DIM));
        line_data[6 * line + 3] = (((float) x / GRID_DIM) * 2 - 1) * k;
        line_data[6 * line + 4] = 1.0f * k;
        line_data[6 * line + 5] = (((float) y / GRID_DIM));

        ++line;

        line_data[6 * line + 0] = -1.0f * k;
        line_data[6 * line + 1] = (((float) x / GRID_DIM) * 2 - 1) * k;
        line_data[6 * line + 2] = (((float) y / GRID_DIM));
        line_data[6 * line + 3] = 1.0f * k;
        line_data[6 * line + 4] = (((float) x / GRID_DIM) * 2 - 1) * k;
        line_data[6 * line + 5] = (((float) y / GRID_DIM));

        ++line;
      }
    }

    for (int x = 0; x <= GRID_DIM; ++x) {
      for (int y = 0; y <= GRID_DIM; ++y) {
        line_data[6 * line + 0] = (((float) x / GRID_DIM) * 2 - 1) * k;
        line_data[6 * line + 1] = (((float) y / GRID_DIM) * 2 - 1) * k;
        line_data[6 * line + 2] = 0.0f;
        line_data[6 * line + 3] = (((float) x / GRID_DIM) * 2 - 1) * k;
        line_data[6 * line + 4] = (((float) y / GRID_DIM) * 2 - 1) * k;
        line_data[6 * line + 5] = 1.0f;

        ++line;
      }
    }

    lineVertices = new VertexBuffer(line_data, new short[0], false);
  }
Beispiel #2
0
 public static Integer findDockSide(
     int x0, int y0, int dx, int dy, double docX, double docY, Vector mousePos) {
   if (GeometryHelper.containsInRectangle(
       Vector.valueOf(x0 + docX, y0 + docY),
       Vector.valueOf(dx - 2 * docX, dy - 2 * docY),
       mousePos)) return Side.CENTER;
   else if (GeometryHelper.containsInRectangle(
           Vector.valueOf(x0 + docX, y0 + dy - docY),
           Vector.valueOf(dx - 2 * docX, docY),
           mousePos)
       || GeometryHelper.containsInRightTriangle(
           Vector.valueOf(x0 + docX, y0 + dy), -docX, -docY, mousePos)
       || GeometryHelper.containsInRightTriangle(
           Vector.valueOf(x0 + dx - docX, y0 + dy), docX, -docY, mousePos)) {
     return Side.BOTTOM;
   } else if (GeometryHelper.containsInRectangle(
           Vector.valueOf(x0, y0 + docY), new Vector(docX, dy - 2 * docY), mousePos)
       || GeometryHelper.containsInRightTriangle(
           Vector.valueOf(x0, y0 + docY), docX, -docY, mousePos)
       || GeometryHelper.containsInRightTriangle(
           Vector.valueOf(x0, y0 + dy - docY), docX, docY, mousePos)) {
     return Side.LEFT;
   } else if (GeometryHelper.containsInRectangle(
           Vector.valueOf(x0 + dx - docX, y0 + docY), new Vector(docX, dy - 2 * docY), mousePos)
       || GeometryHelper.containsInRightTriangle(
           Vector.valueOf(x0 + dx, y0 + docY), -docX, -docY, mousePos)
       || GeometryHelper.containsInRightTriangle(
           Vector.valueOf(x0 + dx, y0 + dy - docY), -docX, docY, mousePos)) {
     return Side.RIGHT;
   } else if (GeometryHelper.containsInRectangle(
           Vector.valueOf(x0 + docX, y0), new Vector(dy - 2 * docY, docY), mousePos)
       || GeometryHelper.containsInRightTriangle(
           Vector.valueOf(x0 + docX, y0), -docX, docY, mousePos)
       || GeometryHelper.containsInRightTriangle(
           Vector.valueOf(x0 + dx - docX, y0), docX, docY, mousePos)) {
     return Side.TOP;
   } else return null;
 }