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); } }
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)); }
public BoundingBox getBoundingBoxInViewSpace() { Vec2 ll = boundingBox.getLowerLeft(); Vec2 ur = boundingBox.getUpperRight(); transform.getLocalToViewMatrix().transform(ll); transform.getLocalToViewMatrix().transform(ur); return new BoundingBox(ll, ur); }