Example #1
0
  public void doDraw(Painter p) {
    WorkCraftServer server = ownerDocument.getServer();

    Vec2 ll = boundingBox.getLowerLeft();
    Vec2 ur = boundingBox.getUpperRight();
    Vec2 ul = new Vec2(ll.getX(), ur.getY());
    Vec2 lr = new Vec2(ur.getX(), ll.getY());

    transform.getLocalToViewMatrix().transform(ll);
    transform.getLocalToViewMatrix().transform(ur);
    transform.getLocalToViewMatrix().transform(ul);
    transform.getLocalToViewMatrix().transform(lr);

    BoundingBox superbb = new BoundingBox();

    superbb.addPoint(ll);
    superbb.addPoint(ul);
    superbb.addPoint(ur);
    superbb.addPoint(lr);

    Vec2 v1 = superbb.getLowerLeft();
    Vec2 v2 = superbb.getUpperRight();
    Vec2 center;

    p.setTextColor(getLabelColor());

    PyObject po;
    if (server != null) po = server.python.get("_draw_labels");
    else po = null;

    if ((server == null) || (po != null && po.__nonzero__()))
      if (!label.equals("")) {
        if (labelOrder == 0)
          center = new Vec2(0.5f * (v1.getX() + v2.getX()), v1.getY() + getLabelYOffset());
        else center = new Vec2((v1.getX() + v2.getX()) * 0.5f, v2.getY() + getLabelYOffset());

        //		transform.getLocalToViewMatrix().transform(center);
        p.drawString(label, center, 0.05f, TextAlign.CENTER);
      }

    if (server != null) po = server.python.get("_draw_ids");
    else po = null;

    if ((server == null) || (po != null && po.__nonzero__()))
      if (id != null && !id.equals("")) {
        if (labelOrder == 0) center = new Vec2((v1.getX() + v2.getX()) * 0.5f, v2.getY() + 0.025f);
        else center = new Vec2(0.5f * (v1.getX() + v2.getX()), v1.getY() - 0.05f);
        //		transform.getLocalToViewMatrix().transform(center);
        p.drawString(id, center, 0.05f, TextAlign.CENTER);
      }
  }
Example #2
0
  public void doDraw(Painter p) {
    super.doDraw(p);
    p.setShapeMode(ShapeMode.FILL_AND_OUTLINE);
    p.setLineMode(LineMode.SOLID);
    p.setLineWidth(0.0075f);
    p.setLineColor((selected) ? selectedOutlineColor : (canWork) ? userOutlineColor : outlineColor);
    p.setFillColor(
        (selected)
            ? selectedFillColor
            : (canFire) ? enabledFillColor : (lostSignal) ? lostSignalFillColor : fillColor);

    for (SubGate sg : subGates) {
      if (sg.in.size() < 2) continue;
      p.setTransform(transform.getLocalToViewMatrix());
      p.translate(-rad * 0.75f, -sg.y);
      p.drawShape((complexOrAnd) ? or_shape : and_shape);
    }

    p.setTransform(transform.getLocalToViewMatrix());
    p.translate(-((complexOrAnd) ? -subrad : -subrad + rad * 0.1f), 0.0f);
    p.drawShape((!complexOrAnd) ? or_shape : and_shape);

    // draw invertion circles
    for (GateContact c : in) {
      c.doDrawInvert(p);
    }
    out.getFirst().doDrawInvert(p);
  }
Example #3
0
 public boolean cull(Painter p) {
   return p.cull(getBoundingBoxInViewSpace());
 }
Example #4
0
  public void draw(Painter p) {
    p.setTransform(transform.getLocalToViewMatrix());
    p.setShapeMode(ShapeMode.FILL);

    if (selected) p.setFillColor(selectedACMOutlineColor);
    else p.setFillColor(ACMOutlineColor);

    p.drawCircle(radius, null);

    if (selected) p.setFillColor(selectedACMColor);
    else p.setFillColor(ACMColor);

    p.drawCircle(innerRadius, null);

    if (selected) p.setLineColor(selectedACMOutlineColor);
    else p.setLineColor(ACMOutlineColor);

    float L = -radius, R = radius;
    if (blockWriting) L *= 0.6f;
    if (blockReading) R *= 0.6f;

    p.setLineMode(LineMode.SOLID);
    p.setLineWidth(0.01f);
    p.drawLine(L, 0.0f, R, 0.0f);

    p.setLineWidth(0.004f);
    if (blockWriting) p.drawLine(L, -radius * 0.75f, L, radius * 0.75f);
    if (blockReading) p.drawLine(R, -radius * 0.75f, R, radius * 0.75f);

    String n = Integer.toString(countValidTokens());
    float h = radius * 0.8f;
    Vec2 v = new Vec2(0, radius * 0.2f);
    transform.getLocalToViewMatrix().transform(v);
    p.setTextColor(validTokenColor);
    p.drawString(n, v, h, TextAlign.CENTER);

    n = Integer.toString(capacity - countValidTokens());
    h = radius * 0.8f;
    v = new Vec2(0, -radius * 0.7f);
    transform.getLocalToViewMatrix().transform(v);
    p.setTextColor(invalidTokenColor);
    p.drawString(n, v, h, TextAlign.CENTER);

    super.draw(p);
  }