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 boolean intersectsBB(BoundingBox which) {
   Vec2 ll = which.getLowerLeft();
   Vec2 ur = which.getUpperRight();
   transform.getViewToLocalMatrix().transform(ll);
   transform.getViewToLocalMatrix().transform(ur);
   return boundingBox.intersects(new BoundingBox(ll, ur));
 }
Example #3
0
 public BoundingBox getBoundingBoxInViewSpace() {
   Vec2 ll = boundingBox.getLowerLeft();
   Vec2 ur = boundingBox.getUpperRight();
   transform.getLocalToViewMatrix().transform(ll);
   transform.getLocalToViewMatrix().transform(ur);
   return new BoundingBox(ll, ur);
 }