public static void _drawPull(Rect2I nRect, Graphics nGraphics, RGB nRGB, int nSize = 4) { Point2I lefttop_ = nRect._getPoint(); lefttop_._offset(-nSize, -nSize); Point2I righttop_ = nRect._getRTPoint(); righttop_._offset(nSize, -nSize); Point2I leftbottom_ = nRect._getLBPoint(); leftbottom_._offset(-nSize, nSize); Point2I rightbottom_ = nRect._getRBPoint(); rightbottom_._offset(nSize, nSize); Point2I lt_ = new Point2I(); lt_._setX(nRect._getX() - nSize); lt_._setY(nRect._centerY() - 3); Point2I lb_ = new Point2I(); lb_._setX(nRect._getX() - nSize); lb_._setY(nRect._centerY() + 3); Point2I lp_ = new Point2I(); lp_._setX(nRect._getX() - 4); lp_._setY(nRect._centerY()); Point2I rt_ = new Point2I(); rt_._setX(nRect._getRTX() + nSize); rt_._setY(nRect._centerY() - 3); Point2I rb_ = new Point2I(); rb_._setX(nRect._getRTX() + nSize); rb_._setY(nRect._centerY() + 3); Point2I rp_ = new Point2I(); rp_._setX(nRect._getRTX() + 4); rp_._setY(nRect._centerY()); Line2I top_ = new Line2I(lefttop_, righttop_); _drawBroken(top_, nGraphics, nRGB); Line2I bottom_ = new Line2I(leftbottom_, rightbottom_); _drawBroken(bottom_, nGraphics, nRGB); Line2I left0_ = new Line2I(lefttop_, lt_); _drawBroken(left0_, nGraphics, nRGB); Line2I left1_ = new Line2I(leftbottom_, lb_); _drawBroken(left1_, nGraphics, nRGB); Line2I right0_ = new Line2I(righttop_, rt_); _drawBroken(right0_, nGraphics, nRGB); Line2I right1_ = new Line2I(rightbottom_, rb_); _drawBroken(right1_, nGraphics, nRGB); _drawEllipse(lp_, nGraphics, nRGB); _drawEllipse(rp_, nGraphics, nRGB); }
public bool _intersectWith(Rect2I nRect) { Point2I lt0_ = this._getPoint(); Point2I lb0_ = this._getLBPoint(); Point2I rt0_ = this._getRTPoint(); Point2I rb0_ = this._getRBPoint(); if (nRect._contain(lt0_)) { return true; } if (nRect._contain(lb0_)) { return true; } if (nRect._contain(rt0_)) { return true; } if (nRect._contain(rb0_)) { return true; } Point2I lt1_ = nRect._getPoint(); Point2I lb1_ = nRect._getLBPoint(); Point2I rt1_ = nRect._getRTPoint(); Point2I rb1_ = nRect._getRBPoint(); if (this._contain(lt1_)) { return true; } if (this._contain(lb1_)) { return true; } if (this._contain(rt1_)) { return true; } if (this._contain(rb1_)) { return true; } int x00_ = this._getX(); int y00_ = this._getY(); int x01_ = this._getRTX(); int y01_ = this._getLBY(); int x10_ = nRect._getX(); int y10_ = nRect._getY(); int x11_ = nRect._getRTX(); int y11_ = nRect._getLBY(); if (x00_ < x10_ && x01_ > x11_ && y00_ > y10_ && y01_ < y11_) { return true; } if (x00_ > x10_ && x01_ < x11_ && y00_ < y10_ && y01_ > y11_) { return true; } return false; }