public void RotateProperDouble(int rotation, PdfSourcePoint point) { double temp; rotation = (rotation + 360) % 360; switch (rotation) { case 90: //temp = (point.dY - _dY -_dHeight) + point.dX; temp = -(_dY + _dHeight - point.dY) + point.dX; _dY = (_dX - point.dX) + point.dY; _dX = temp; temp = _dWidth; _dWidth = _dHeight; _dHeight = temp; break; case 180: _dX = point.dX - (dRight - point.dX); _dY = point.dY - (dBottom - point.dY); break; case 270: temp = (_dY - point.dY) + point.dX; _dY = -(_dX + _dWidth - point.dX) + point.dY; _dX = temp; temp = _dWidth; _dWidth = _dHeight; _dHeight = temp; break; default: break; } }
public PdfSourcePoint GetOnPageCoordinates(PdfSourcePoint onCanvasCoordinates, int rotation) { PdfSourcePoint origin; //origin of page in canvas coordinates (botleft corner of unrotated page) switch (rotation) { case 0: origin = new PdfSourcePoint(_dX, dBottom); break; case 90: origin = new PdfSourcePoint(_dX, _dY); break; case 180: origin = new PdfSourcePoint(dRight, _dY); break; case 270: origin = new PdfSourcePoint(dRight, dBottom); break; default: throw new InvalidProgramException(); } PdfSourcePoint onPage = onCanvasCoordinates - origin; onPage.RotateAroundOrigin(360 - rotation); onPage.dY = -onPage.dY; return(onPage); }
public double ShortestDistanceSquared(PdfSourcePoint point) { double l = dX - point.dX; double r = point.dX - dRight; double t = dY - point.dY; double b = point.dY - dBottom; double h = Math.Max(0.0, Math.Max(l, r)); double v = Math.Max(0.0, Math.Max(t, b)); return(v * v + h * h); }
public bool contains(PdfSourcePoint point) { return(point.dX >= _dX && point.dY >= _dY && point.dX <= dRight && point.dY <= dBottom); }