getX -> x (in both the literal and algebraic sense).

In anticipation of the saying of nay, I offer this: these are value classes,
and in a civilized language, I wouldn't have setters either. "foo.x = x" would
call a setter method over which I had control. However, rather than throwing my
hands up and saying "Gee, I have to have verbose setters, so I guess I better
have verbose getters," I say, "I'll take what I can get."

Methods that verb can be verbs, and we can all agree to understand that methods
that are nouns are getters. foo.width() does not width my foo, it's my foo's
width. foo.invert() inverts up my foo, it is not some attribute of my foo's
nonsensically named invert. I don't want to add my foo's getWidth and
getHeight, I want to add my foo's width and height. So why should I have to
type get over and over again just because I want to protect myself from future
representation change? (Or in this case, to offer immutable views of my value
classes.)
This commit is contained in:
Michael Bayne
2011-08-12 10:19:37 -07:00
parent a537b6627d
commit 41f62de088
63 changed files with 865 additions and 865 deletions
+61 -61
View File
@@ -13,37 +13,37 @@ import java.util.NoSuchElementException;
public abstract class AbstractArc extends RectangularShape implements IArc
{
@Override // from interface IArc
public Point getStartPoint () {
return getStartPoint(new Point());
public Point startPoint () {
return startPoint(new Point());
}
@Override // from interface IArc
public Point getStartPoint (Point target) {
float a = FloatMath.toRadians(getAngleStart());
return target.set(getX() + (1f + FloatMath.cos(a)) * getWidth() / 2f,
getY() + (1f - FloatMath.sin(a)) * getHeight() / 2f);
public Point startPoint (Point target) {
float a = FloatMath.toRadians(angleStart());
return target.set(x() + (1f + FloatMath.cos(a)) * width() / 2f,
y() + (1f - FloatMath.sin(a)) * height() / 2f);
}
@Override // from interface IArc
public Point getEndPoint () {
return getEndPoint(new Point());
public Point endPoint () {
return endPoint(new Point());
}
@Override // from interface IArc
public Point getEndPoint (Point target) {
float a = FloatMath.toRadians(getAngleStart() + getAngleExtent());
return target.set(getX() + (1f + FloatMath.cos(a)) * getWidth() / 2f,
getY() + (1f - FloatMath.sin(a)) * getHeight() / 2f);
public Point endPoint (Point target) {
float a = FloatMath.toRadians(angleStart() + angleExtent());
return target.set(x() + (1f + FloatMath.cos(a)) * width() / 2f,
y() + (1f - FloatMath.sin(a)) * height() / 2f);
}
@Override // from interface IArc
public boolean containsAngle (float angle) {
float extent = getAngleExtent();
float extent = angleExtent();
if (extent >= 360f) {
return true;
}
angle = getNormAngle(angle);
float a1 = getNormAngle(getAngleStart());
angle = normAngle(angle);
float a1 = normAngle(angleStart());
float a2 = a1 + extent;
if (a2 > 360f) {
return angle >= a1 || angle <= a2 - 360f;
@@ -56,41 +56,41 @@ public abstract class AbstractArc extends RectangularShape implements IArc
@Override // from interface IArc
public Arc clone () {
return new Arc(getX(), getY(), getWidth(), getHeight(), getAngleStart(), getAngleExtent(),
getArcType());
return new Arc(x(), y(), width(), height(), angleStart(), angleExtent(),
arcType());
}
@Override // from RectangularShape
public boolean isEmpty () {
return getArcType() == OPEN || super.isEmpty();
return arcType() == OPEN || super.isEmpty();
}
@Override // from RectangularShape
public boolean contains (float px, float py) {
// normalize point
float nx = (px - getX()) / getWidth() - 0.5f;
float ny = (py - getY()) / getHeight() - 0.5f;
float nx = (px - x()) / width() - 0.5f;
float ny = (py - y()) / height() - 0.5f;
if ((nx * nx + ny * ny) > 0.25) {
return false;
}
float extent = getAngleExtent();
float extent = angleExtent();
float absExtent = Math.abs(extent);
if (absExtent >= 360f) {
return true;
}
boolean containsAngle = containsAngle(FloatMath.toDegrees(-FloatMath.atan2(ny, nx)));
if (getArcType() == PIE) {
if (arcType() == PIE) {
return containsAngle;
}
if (absExtent <= 180f && !containsAngle) {
return false;
}
Line l = new Line(getStartPoint(), getEndPoint());
Line l = new Line(startPoint(), endPoint());
int ccw1 = l.relativeCCW(px, py);
int ccw2 = l.relativeCCW(getCenterX(), getCenterY());
int ccw2 = l.relativeCCW(centerX(), centerY());
return ccw1 == 0 || ccw2 == 0 || ((ccw1 + ccw2) == 0 ^ absExtent > 180f);
}
@@ -101,20 +101,20 @@ public abstract class AbstractArc extends RectangularShape implements IArc
return false;
}
float absExtent = Math.abs(getAngleExtent());
if (getArcType() != PIE || absExtent <= 180f || absExtent >= 360f) {
float absExtent = Math.abs(angleExtent());
if (arcType() != PIE || absExtent <= 180f || absExtent >= 360f) {
return true;
}
Rectangle r = new Rectangle(rx, ry, rw, rh);
float cx = getCenterX(), cy = getCenterY();
float cx = centerX(), cy = centerY();
if (r.contains(cx, cy)) {
return false;
}
Point p1 = getStartPoint(), p2 = getEndPoint();
return !r.intersectsLine(cx, cy, p1.getX(), p1.getY()) &&
!r.intersectsLine(cx, cy, p2.getX(), p2.getY());
Point p1 = startPoint(), p2 = endPoint();
return !r.intersectsLine(cx, cy, p1.x(), p1.y()) &&
!r.intersectsLine(cx, cy, p2.x(), p2.y());
}
@Override // from RectangularShape
@@ -129,22 +129,22 @@ public abstract class AbstractArc extends RectangularShape implements IArc
return true;
}
float cx = getCenterX(), cy = getCenterY();
Point p1 = getStartPoint(), p2 = getEndPoint();
float cx = centerX(), cy = centerY();
Point p1 = startPoint(), p2 = endPoint();
// check: does rectangle contain arc's points
Rectangle r = new Rectangle(rx, ry, rw, rh);
if (r.contains(p1) || r.contains(p2) || (getArcType() == PIE && r.contains(cx, cy))) {
if (r.contains(p1) || r.contains(p2) || (arcType() == PIE && r.contains(cx, cy))) {
return true;
}
if (getArcType() == PIE) {
if (r.intersectsLine(p1.getX(), p1.getY(), cx, cy) ||
r.intersectsLine(p2.getX(), p2.getY(), cx, cy)) {
if (arcType() == PIE) {
if (r.intersectsLine(p1.x(), p1.y(), cx, cy) ||
r.intersectsLine(p2.x(), p2.y(), cx, cy)) {
return true;
}
} else {
if (r.intersectsLine(p1.getX(), p1.getY(), p2.getX(), p2.getY())) {
if (r.intersectsLine(p1.x(), p1.y(), p2.x(), p2.y())) {
return true;
}
}
@@ -156,27 +156,27 @@ public abstract class AbstractArc extends RectangularShape implements IArc
}
@Override // from RectangularShape
public Rectangle getBounds (Rectangle target) {
public Rectangle bounds (Rectangle target) {
if (isEmpty()) {
target.setBounds(getX(), getY(), getWidth(), getHeight());
target.setBounds(x(), y(), width(), height());
return target;
}
float rx1 = getX();
float ry1 = getY();
float rx2 = rx1 + getWidth();
float ry2 = ry1 + getHeight();
float rx1 = x();
float ry1 = y();
float rx2 = rx1 + width();
float ry2 = ry1 + height();
Point p1 = getStartPoint(), p2 = getEndPoint();
Point p1 = startPoint(), p2 = endPoint();
float bx1 = containsAngle(180f) ? rx1 : Math.min(p1.getX(), p2.getX());
float by1 = containsAngle(90f) ? ry1 : Math.min(p1.getY(), p2.getY());
float bx2 = containsAngle(0f) ? rx2 : Math.max(p1.getX(), p2.getX());
float by2 = containsAngle(270f) ? ry2 : Math.max(p1.getY(), p2.getY());
float bx1 = containsAngle(180f) ? rx1 : Math.min(p1.x(), p2.x());
float by1 = containsAngle(90f) ? ry1 : Math.min(p1.y(), p2.y());
float bx2 = containsAngle(0f) ? rx2 : Math.max(p1.x(), p2.x());
float by2 = containsAngle(270f) ? ry2 : Math.max(p1.y(), p2.y());
if (getArcType() == PIE) {
float cx = getCenterX();
float cy = getCenterY();
if (arcType() == PIE) {
float cx = centerX();
float cy = centerY();
bx1 = Math.min(bx1, cx);
by1 = Math.min(by1, cy);
bx2 = Math.max(bx2, cx);
@@ -187,12 +187,12 @@ public abstract class AbstractArc extends RectangularShape implements IArc
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform at) {
public PathIterator pathIterator (Transform at) {
return new Iterator(this, at);
}
/** Returns a normalized angle (bound between 0 and 360 degrees). */
protected float getNormAngle (float angle) {
protected float normAngle (float angle) {
return angle - FloatMath.floor(angle / 360f) * 360f;
}
@@ -258,13 +258,13 @@ public abstract class AbstractArc extends RectangularShape implements IArc
private float my;
Iterator (IArc a, Transform t) {
this.width = a.getWidth() / 2f;
this.height = a.getHeight() / 2f;
this.x = a.getX() + width;
this.y = a.getY() + height;
this.angle = -FloatMath.toRadians(a.getAngleStart());
this.extent = -a.getAngleExtent();
this.type = a.getArcType();
this.width = a.width() / 2f;
this.height = a.height() / 2f;
this.x = a.x() + width;
this.y = a.y() + height;
this.angle = -FloatMath.toRadians(a.angleStart());
this.extent = -a.angleExtent();
this.type = a.arcType();
this.t = t;
if (width < 0 || height < 0) {
@@ -296,7 +296,7 @@ public abstract class AbstractArc extends RectangularShape implements IArc
}
}
@Override public int getWindingRule () {
@Override public int windingRule () {
return WIND_NON_ZERO;
}
@@ -13,35 +13,35 @@ import java.util.NoSuchElementException;
public abstract class AbstractCubicCurve implements ICubicCurve
{
@Override // from interface ICubicCurve
public Point getP1 () {
return new Point(getX1(), getY1());
public Point p1 () {
return new Point(x1(), y1());
}
@Override // from interface ICubicCurve
public Point getCtrlP1 () {
return new Point(getCtrlX1(), getCtrlY1());
public Point ctrlP1 () {
return new Point(ctrlX1(), ctrlY1());
}
@Override // from interface ICubicCurve
public Point getCtrlP2 () {
return new Point(getCtrlX2(), getCtrlY2());
public Point ctrlP2 () {
return new Point(ctrlX2(), ctrlY2());
}
@Override // from interface ICubicCurve
public Point getP2 () {
return new Point(getX2(), getY2());
public Point p2 () {
return new Point(x2(), y2());
}
@Override // from interface ICubicCurve
public float getFlatnessSq () {
return CubicCurves.getFlatnessSq(getX1(), getY1(), getCtrlX1(), getCtrlY1(),
getCtrlX2(), getCtrlY2(), getX2(), getY2());
public float flatnessSq () {
return CubicCurves.flatnessSq(x1(), y1(), ctrlX1(), ctrlY1(),
ctrlX2(), ctrlY2(), x2(), y2());
}
@Override // from interface ICubicCurve
public float getFlatness () {
return CubicCurves.getFlatness(getX1(), getY1(), getCtrlX1(), getCtrlY1(),
getCtrlX2(), getCtrlY2(), getX2(), getY2());
public float flatness () {
return CubicCurves.flatness(x1(), y1(), ctrlX1(), ctrlY1(),
ctrlX2(), ctrlY2(), x2(), y2());
}
@Override // from interface ICubicCurve
@@ -51,8 +51,8 @@ public abstract class AbstractCubicCurve implements ICubicCurve
@Override // from interface ICubicCurve
public CubicCurve clone () {
return new CubicCurve(getX1(), getY1(), getCtrlX1(), getCtrlY1(),
getCtrlX2(), getCtrlY2(), getX2(), getY2());
return new CubicCurve(x1(), y1(), ctrlX1(), ctrlY1(),
ctrlX2(), ctrlY2(), x2(), y2());
}
@Override // from interface IShape
@@ -73,12 +73,12 @@ public abstract class AbstractCubicCurve implements ICubicCurve
@Override // from interface IShape
public boolean contains (IPoint p) {
return contains(p.getX(), p.getY());
return contains(p.x(), p.y());
}
@Override // from interface IShape
public boolean contains (IRectangle r) {
return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return contains(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IShape
@@ -89,19 +89,19 @@ public abstract class AbstractCubicCurve implements ICubicCurve
@Override // from interface IShape
public boolean intersects (IRectangle r) {
return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return intersects(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IShape
public Rectangle getBounds () {
return getBounds(new Rectangle());
public Rectangle bounds () {
return bounds(new Rectangle());
}
@Override // from interface IShape
public Rectangle getBounds (Rectangle target) {
float x1 = getX1(), y1 = getY1(), x2 = getX2(), y2 = getY2();
float ctrlx1 = getCtrlX1(), ctrly1 = getCtrlY1();
float ctrlx2 = getCtrlX2(), ctrly2 = getCtrlY2();
public Rectangle bounds (Rectangle target) {
float x1 = x1(), y1 = y1(), x2 = x2(), y2 = y2();
float ctrlx1 = ctrlX1(), ctrly1 = ctrlY1();
float ctrlx2 = ctrlX2(), ctrly2 = ctrlY2();
float rx1 = Math.min(Math.min(x1, x2), Math.min(ctrlx1, ctrlx2));
float ry1 = Math.min(Math.min(y1, y2), Math.min(ctrly1, ctrly2));
float rx2 = Math.max(Math.max(x1, x2), Math.max(ctrlx1, ctrlx2));
@@ -111,13 +111,13 @@ public abstract class AbstractCubicCurve implements ICubicCurve
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t) {
public PathIterator pathIterator (Transform t) {
return new Iterator(this, t);
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform at, float flatness) {
return new FlatteningPathIterator(getPathIterator(at), flatness);
public PathIterator pathIterator (Transform at, float flatness) {
return new FlatteningPathIterator(pathIterator(at), flatness);
}
/** An iterator over an {@link ICubicCurve}. */
@@ -132,7 +132,7 @@ public abstract class AbstractCubicCurve implements ICubicCurve
this.t = t;
}
@Override public int getWindingRule () {
@Override public int windingRule () {
return WIND_NON_ZERO;
}
@@ -152,17 +152,17 @@ public abstract class AbstractCubicCurve implements ICubicCurve
int count;
if (index == 0) {
type = SEG_MOVETO;
coords[0] = c.getX1();
coords[1] = c.getY1();
coords[0] = c.x1();
coords[1] = c.y1();
count = 1;
} else {
type = SEG_CUBICTO;
coords[0] = c.getCtrlX1();
coords[1] = c.getCtrlY1();
coords[2] = c.getCtrlX2();
coords[3] = c.getCtrlY2();
coords[4] = c.getX2();
coords[5] = c.getY2();
coords[0] = c.ctrlX1();
coords[1] = c.ctrlY1();
coords[2] = c.ctrlX2();
coords[3] = c.ctrlY2();
coords[4] = c.x2();
coords[5] = c.y2();
count = 3;
}
if (t != null) {
@@ -19,7 +19,7 @@ public abstract class AbstractDimension implements IDimension
@Override
public int hashCode () {
return Platform.hashCode(getWidth()) ^ Platform.hashCode(getHeight());
return Platform.hashCode(width()) ^ Platform.hashCode(height());
}
@Override
@@ -29,13 +29,13 @@ public abstract class AbstractDimension implements IDimension
}
if (obj instanceof AbstractDimension) {
AbstractDimension d = (AbstractDimension)obj;
return (d.getWidth() == getWidth() && d.getHeight() == getHeight());
return (d.width() == width() && d.height() == height());
}
return false;
}
@Override
public String toString () {
return Dimensions.dimenToString(getWidth(), getHeight());
return Dimensions.dimenToString(width(), height());
}
}
+11 -11
View File
@@ -14,14 +14,14 @@ public abstract class AbstractEllipse extends RectangularShape implements IEllip
{
@Override // from IEllipse
public Ellipse clone () {
return new Ellipse(getX(), getY(), getWidth(), getHeight());
return new Ellipse(x(), y(), width(), height());
}
@Override // from interface IShape
public boolean contains (float px, float py) {
if (isEmpty()) return false;
float a = (px - getX()) / getWidth() - 0.5f;
float b = (py - getY()) / getHeight() - 0.5f;
float a = (px - x()) / width() - 0.5f;
float b = (py - y()) / height() - 0.5f;
return a * a + b * b < 0.25f;
}
@@ -35,8 +35,8 @@ public abstract class AbstractEllipse extends RectangularShape implements IEllip
@Override // from interface IShape
public boolean intersects (float rx, float ry, float rw, float rh) {
if (isEmpty() || rw <= 0f || rh <= 0f) return false;
float cx = getX() + getWidth() / 2f;
float cy = getY() + getHeight() / 2f;
float cx = x() + width() / 2f;
float cy = y() + height() / 2f;
float rx1 = rx, ry1 = ry, rx2 = rx + rw, ry2 = ry + rh;
float nx = cx < rx1 ? rx1 : (cx > rx2 ? rx2 : cx);
float ny = cy < ry1 ? ry1 : (cy > ry2 ? ry2 : cy);
@@ -44,7 +44,7 @@ public abstract class AbstractEllipse extends RectangularShape implements IEllip
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform at) {
public PathIterator pathIterator (Transform at) {
return new Iterator(this, at);
}
@@ -56,17 +56,17 @@ public abstract class AbstractEllipse extends RectangularShape implements IEllip
private int index;
Iterator (IEllipse e, Transform t) {
this.x = e.getX();
this.y = e.getY();
this.width = e.getWidth();
this.height = e.getHeight();
this.x = e.x();
this.y = e.y();
this.width = e.width();
this.height = e.height();
this.t = t;
if (width < 0f || height < 0f) {
index = 6;
}
}
@Override public int getWindingRule () {
@Override public int windingRule () {
return WIND_NON_ZERO;
}
+31 -31
View File
@@ -13,78 +13,78 @@ import java.util.NoSuchElementException;
public abstract class AbstractLine implements ILine
{
@Override // from interface ILine
public Point getP1 () {
return getP1(new Point());
public Point p1 () {
return p1(new Point());
}
@Override // from interface ILine
public Point getP1 (Point target) {
return target.set(getX1(), getY1());
public Point p1 (Point target) {
return target.set(x1(), y1());
}
@Override // from interface ILine
public Point getP2 () {
return getP2(new Point());
public Point p2 () {
return p2(new Point());
}
@Override // from interface ILine
public Point getP2 (Point target) {
return target.set(getX2(), getY2());
public Point p2 (Point target) {
return target.set(x2(), y2());
}
@Override // from interface ILine
public float pointLineDistSq (float px, float py) {
return Lines.pointLineDistSq(px, py, getX1(), getY1(), getX2(), getY2());
return Lines.pointLineDistSq(px, py, x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public float pointLineDistSq (IPoint p) {
return Lines.pointLineDistSq(p.getX(), p.getY(), getX1(), getY1(), getX2(), getY2());
return Lines.pointLineDistSq(p.x(), p.y(), x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public float pointLineDist (float px, float py) {
return Lines.pointLineDist(px, py, getX1(), getY1(), getX2(), getY2());
return Lines.pointLineDist(px, py, x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public float pointLineDist (IPoint p) {
return Lines.pointLineDist(p.getX(), p.getY(), getX1(), getY1(), getX2(), getY2());
return Lines.pointLineDist(p.x(), p.y(), x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public float pointSegDistSq (float px, float py) {
return Lines.pointSegDistSq(px, py, getX1(), getY1(), getX2(), getY2());
return Lines.pointSegDistSq(px, py, x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public float pointSegDistSq (IPoint p) {
return Lines.pointSegDistSq(p.getX(), p.getY(), getX1(), getY1(), getX2(), getY2());
return Lines.pointSegDistSq(p.x(), p.y(), x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public float pointSegDist (float px, float py) {
return Lines.pointSegDist(px, py, getX1(), getY1(), getX2(), getY2());
return Lines.pointSegDist(px, py, x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public float pointSegDist (IPoint p) {
return Lines.pointSegDist(p.getX(), p.getY(), getX1(), getY1(), getX2(), getY2());
return Lines.pointSegDist(p.x(), p.y(), x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public int relativeCCW (float px, float py) {
return Lines.relativeCCW(px, py, getX1(), getY1(), getX2(), getY2());
return Lines.relativeCCW(px, py, x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public int relativeCCW (IPoint p) {
return Lines.relativeCCW(p.getX(), p.getY(), getX1(), getY1(), getX2(), getY2());
return Lines.relativeCCW(p.x(), p.y(), x1(), y1(), x2(), y2());
}
@Override // from interface ILine
public Line clone () {
return new Line(getX1(), getY1(), getX2(), getY2());
return new Line(x1(), y1(), x2(), y2());
}
@Override // from interface IShape
@@ -114,7 +114,7 @@ public abstract class AbstractLine implements ILine
@Override // from interface IShape
public boolean intersects (float rx, float ry, float rw, float rh) {
return Lines.lineIntersectsRect(getX1(), getY1(), getX2(), getY2(), rx, ry, rw, rh);
return Lines.lineIntersectsRect(x1(), y1(), x2(), y2(), rx, ry, rw, rh);
}
@Override // from interface IShape
@@ -123,13 +123,13 @@ public abstract class AbstractLine implements ILine
}
@Override // from interface IShape
public Rectangle getBounds () {
return getBounds(new Rectangle());
public Rectangle bounds () {
return bounds(new Rectangle());
}
@Override // from interface IShape
public Rectangle getBounds (Rectangle target) {
float x1 = getX1(), x2 = getX2(), y1 = getY1(), y2 = getY2();
public Rectangle bounds (Rectangle target) {
float x1 = x1(), x2 = x2(), y1 = y1(), y2 = y2();
float rx, ry, rw, rh;
if (x1 < x2) {
rx = x1;
@@ -150,12 +150,12 @@ public abstract class AbstractLine implements ILine
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform at) {
public PathIterator pathIterator (Transform at) {
return new Iterator(this, at);
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform at, float flatness) {
public PathIterator pathIterator (Transform at, float flatness) {
return new Iterator(this, at);
}
@@ -167,14 +167,14 @@ public abstract class AbstractLine implements ILine
private int index;
Iterator (ILine l, Transform at) {
this.x1 = l.getX1();
this.y1 = l.getY1();
this.x2 = l.getX2();
this.y2 = l.getY2();
this.x1 = l.x1();
this.y1 = l.y1();
this.x2 = l.x2();
this.y2 = l.y2();
this.t = at;
}
@Override public int getWindingRule () {
@Override public int windingRule () {
return WIND_NON_ZERO;
}
+11 -11
View File
@@ -14,22 +14,22 @@ public abstract class AbstractPoint implements IPoint
{
@Override // from IPoint
public float distanceSq (float px, float py) {
return Points.distanceSq(getX(), getY(), px, py);
return Points.distanceSq(x(), y(), px, py);
}
@Override // from IPoint
public float distanceSq (IPoint p) {
return Points.distanceSq(getX(), getY(), p.getX(), p.getY());
return Points.distanceSq(x(), y(), p.x(), p.y());
}
@Override // from IPoint
public float distance (float px, float py) {
return Points.distance(getX(), getY(), px, py);
return Points.distance(x(), y(), px, py);
}
@Override // from IPoint
public float distance (IPoint p) {
return Points.distance(getX(), getY(), p.getX(), p.getY());
return Points.distance(x(), y(), p.x(), p.y());
}
@Override // from IPoint
@@ -39,17 +39,17 @@ public abstract class AbstractPoint implements IPoint
@Override // from IPoint
public Point mult (float s, Point result) {
return result.set(getX() * s, getY() * s);
return result.set(x() * s, y() * s);
}
@Override // from IPoint
public Point add (float x, float y) {
return new Point(getX() + x, getY() + y);
return new Point(x() + x, y() + y);
}
@Override // from IPoint
public Point add (float x, float y, Point result) {
return result.set(getX() + x, getY() + y);
return result.set(x() + x, y() + y);
}
@Override // from IPoint
@@ -59,7 +59,7 @@ public abstract class AbstractPoint implements IPoint
@Override // from IPoint
public Point rotate (float angle, Point result) {
float x = getX(), y = getY();
float x = x(), y = y();
float sina = FloatMath.sin(angle), cosa = FloatMath.cos(angle);
return result.set(x*cosa - y*sina, x*sina + y*cosa);
}
@@ -76,18 +76,18 @@ public abstract class AbstractPoint implements IPoint
}
if (obj instanceof AbstractPoint) {
AbstractPoint p = (AbstractPoint)obj;
return getX() == p.getX() && getY() == p.getY();
return x() == p.x() && y() == p.y();
}
return false;
}
@Override
public int hashCode () {
return Platform.hashCode(getX()) ^ Platform.hashCode(getY());
return Platform.hashCode(x()) ^ Platform.hashCode(y());
}
@Override
public String toString () {
return Points.pointToString(getX(), getY());
return Points.pointToString(x(), y());
}
}
@@ -13,28 +13,28 @@ import java.util.NoSuchElementException;
public abstract class AbstractQuadCurve implements IQuadCurve
{
@Override // from interface IQuadCurve
public Point getP1 () {
return new Point(getX1(), getY1());
public Point p1 () {
return new Point(x1(), y1());
}
@Override // from interface IQuadCurve
public Point getCtrlP () {
return new Point(getCtrlX(), getCtrlY());
public Point ctrlP () {
return new Point(ctrlX(), ctrlY());
}
@Override // from interface IQuadCurve
public Point getP2 () {
return new Point(getX2(), getY2());
public Point p2 () {
return new Point(x2(), y2());
}
@Override // from interface IQuadCurve
public float getFlatnessSq () {
return Lines.pointSegDistSq(getCtrlX(), getCtrlY(), getX1(), getY1(), getX2(), getY2());
public float flatnessSq () {
return Lines.pointSegDistSq(ctrlX(), ctrlY(), x1(), y1(), x2(), y2());
}
@Override // from interface IQuadCurve
public float getFlatness () {
return Lines.pointSegDist(getCtrlX(), getCtrlY(), getX1(), getY1(), getX2(), getY2());
public float flatness () {
return Lines.pointSegDist(ctrlX(), ctrlY(), x1(), y1(), x2(), y2());
}
@Override // from interface IQuadCurve
@@ -44,7 +44,7 @@ public abstract class AbstractQuadCurve implements IQuadCurve
@Override // from interface IQuadCurve
public QuadCurve clone () {
return new QuadCurve(getX1(), getY1(), getCtrlX(), getCtrlY(), getX2(), getY2());
return new QuadCurve(x1(), y1(), ctrlX(), ctrlY(), x2(), y2());
}
@Override // from interface IShape
@@ -65,12 +65,12 @@ public abstract class AbstractQuadCurve implements IQuadCurve
@Override // from interface IShape
public boolean contains (IPoint p) {
return contains(p.getX(), p.getY());
return contains(p.x(), p.y());
}
@Override // from interface IShape
public boolean contains (IRectangle r) {
return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return contains(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IShape
@@ -81,18 +81,18 @@ public abstract class AbstractQuadCurve implements IQuadCurve
@Override // from interface IShape
public boolean intersects (IRectangle r) {
return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return intersects(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IShape
public Rectangle getBounds () {
return getBounds(new Rectangle());
public Rectangle bounds () {
return bounds(new Rectangle());
}
@Override // from interface IShape
public Rectangle getBounds (Rectangle target) {
float x1 = getX1(), y1 = getY1(), x2 = getX2(), y2 = getY2();
float ctrlx = getCtrlX(), ctrly = getCtrlY();
public Rectangle bounds (Rectangle target) {
float x1 = x1(), y1 = y1(), x2 = x2(), y2 = y2();
float ctrlx = ctrlX(), ctrly = ctrlY();
float rx0 = Math.min(Math.min(x1, x2), ctrlx);
float ry0 = Math.min(Math.min(y1, y2), ctrly);
float rx1 = Math.max(Math.max(x1, x2), ctrlx);
@@ -102,13 +102,13 @@ public abstract class AbstractQuadCurve implements IQuadCurve
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t) {
public PathIterator pathIterator (Transform t) {
return new Iterator(this, t);
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t, float flatness) {
return new FlatteningPathIterator(getPathIterator(t), flatness);
public PathIterator pathIterator (Transform t, float flatness) {
return new FlatteningPathIterator(pathIterator(t), flatness);
}
/** An iterator over an {@link IQuadCurve}. */
@@ -123,7 +123,7 @@ public abstract class AbstractQuadCurve implements IQuadCurve
this.t = t;
}
@Override public int getWindingRule () {
@Override public int windingRule () {
return WIND_NON_ZERO;
}
@@ -143,15 +143,15 @@ public abstract class AbstractQuadCurve implements IQuadCurve
int count;
if (index == 0) {
type = SEG_MOVETO;
coords[0] = c.getX1();
coords[1] = c.getY1();
coords[0] = c.x1();
coords[1] = c.y1();
count = 1;
} else {
type = SEG_QUADTO;
coords[0] = c.getCtrlX();
coords[1] = c.getCtrlY();
coords[2] = c.getX2();
coords[3] = c.getY2();
coords[0] = c.ctrlX();
coords[1] = c.ctrlY();
coords[2] = c.x2();
coords[3] = c.y2();
count = 2;
}
if (t != null) {
@@ -15,38 +15,38 @@ import pythagoras.util.Platform;
public abstract class AbstractRectangle extends RectangularShape implements IRectangle
{
@Override // from interface IRectangle
public Point getLocation () {
return getLocation(new Point());
public Point location () {
return location(new Point());
}
@Override // from interface IRectangle
public Point getLocation (Point target) {
return target.set(getX(), getY());
public Point location (Point target) {
return target.set(x(), y());
}
@Override // from interface IRectangle
public Dimension getSize () {
return getSize(new Dimension());
public Dimension size () {
return size(new Dimension());
}
@Override // from interface IRectangle
public Dimension getSize (Dimension target) {
target.setSize(getWidth(), getHeight());
public Dimension size (Dimension target) {
target.setSize(width(), height());
return target;
}
@Override // from interface IRectangle
public Rectangle intersection (float rx, float ry, float rw, float rh) {
float x1 = Math.max(getX(), rx);
float y1 = Math.max(getY(), ry);
float x2 = Math.min(getMaxX(), rx + rw);
float y2 = Math.min(getMaxY(), ry + rh);
float x1 = Math.max(x(), rx);
float y1 = Math.max(y(), ry);
float x2 = Math.min(maxX(), rx + rw);
float y2 = Math.min(maxY(), ry + rh);
return new Rectangle(x1, y1, x2 - x1, y2 - y1);
}
@Override // from interface IRectangle
public Rectangle intersection (IRectangle r) {
return intersection(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return intersection(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IRectangle
@@ -58,31 +58,31 @@ public abstract class AbstractRectangle extends RectangularShape implements IRec
@Override // from interface IRectangle
public boolean intersectsLine (float x1, float y1, float x2, float y2) {
return Lines.lineIntersectsRect(x1, y1, x2, y2, getX(), getY(), getWidth(), getHeight());
return Lines.lineIntersectsRect(x1, y1, x2, y2, x(), y(), width(), height());
}
@Override // from interface IRectangle
public boolean intersectsLine (ILine l) {
return intersectsLine(l.getX1(), l.getY1(), l.getX2(), l.getY2());
return intersectsLine(l.x1(), l.y1(), l.x2(), l.y2());
}
@Override // from interface IRectangle
public int outcode (float px, float py) {
int code = 0;
if (getWidth() <= 0) {
if (width() <= 0) {
code |= OUT_LEFT | OUT_RIGHT;
} else if (px < getX()) {
} else if (px < x()) {
code |= OUT_LEFT;
} else if (px > getMaxX()) {
} else if (px > maxX()) {
code |= OUT_RIGHT;
}
if (getHeight() <= 0) {
if (height() <= 0) {
code |= OUT_TOP | OUT_BOTTOM;
} else if (py < getY()) {
} else if (py < y()) {
code |= OUT_TOP;
} else if (py > getMaxY()) {
} else if (py > maxY()) {
code |= OUT_BOTTOM;
}
@@ -91,7 +91,7 @@ public abstract class AbstractRectangle extends RectangularShape implements IRec
@Override // from interface IRectangle
public int outcode (IPoint p) {
return outcode(p.getX(), p.getY());
return outcode(p.x(), p.y());
}
@Override // from interface IRectangle
@@ -103,19 +103,19 @@ public abstract class AbstractRectangle extends RectangularShape implements IRec
public boolean contains (float px, float py) {
if (isEmpty()) return false;
float x = getX(), y = getY();
float x = x(), y = y();
if (px < x || py < y) return false;
px -= x;
py -= y;
return px < getWidth() && py < getHeight();
return px < width() && py < height();
}
@Override // from interface IShape
public boolean contains (float rx, float ry, float rw, float rh) {
if (isEmpty()) return false;
float x1 = getX(), y1 = getY(), x2 = x1 + getWidth(), y2 = y1 + getHeight();
float x1 = x(), y1 = y(), x2 = x1 + width(), y2 = y1 + height();
return (x1 <= rx) && (rx + rw <= x2) && (y1 <= ry) && (ry + rh <= y2);
}
@@ -123,17 +123,17 @@ public abstract class AbstractRectangle extends RectangularShape implements IRec
public boolean intersects (float rx, float ry, float rw, float rh) {
if (isEmpty()) return false;
float x1 = getX(), y1 = getY(), x2 = x1 + getWidth(), y2 = y1 + getHeight();
float x1 = x(), y1 = y(), x2 = x1 + width(), y2 = y1 + height();
return (rx + rw > x1) && (rx < x2) && (ry + rh > y1) && (ry < y2);
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t) {
public PathIterator pathIterator (Transform t) {
return new Iterator(this, t);
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t, float flatness) {
public PathIterator pathIterator (Transform t, float flatness) {
return new Iterator(this, t);
}
@@ -144,22 +144,22 @@ public abstract class AbstractRectangle extends RectangularShape implements IRec
}
if (obj instanceof AbstractRectangle) {
AbstractRectangle r = (AbstractRectangle)obj;
return r.getX() == getX() && r.getY() == getY() &&
r.getWidth() == getWidth() && r.getHeight() == getHeight();
return r.x() == x() && r.y() == y() &&
r.width() == width() && r.height() == height();
}
return false;
}
@Override // from Object
public int hashCode () {
return Platform.hashCode(getX()) ^ Platform.hashCode(getY()) ^
Platform.hashCode(getWidth()) ^ Platform.hashCode(getHeight());
return Platform.hashCode(x()) ^ Platform.hashCode(y()) ^
Platform.hashCode(width()) ^ Platform.hashCode(height());
}
@Override // from Object
public String toString () {
return Dimensions.dimenToString(getWidth(), getHeight()) +
Points.pointToString(getX(), getY());
return Dimensions.dimenToString(width(), height()) +
Points.pointToString(x(), y());
}
/** An iterator over an {@link IRectangle}. */
@@ -172,17 +172,17 @@ public abstract class AbstractRectangle extends RectangularShape implements IRec
private int index;
Iterator (IRectangle r, Transform at) {
this.x = r.getX();
this.y = r.getY();
this.width = r.getWidth();
this.height = r.getHeight();
this.x = r.x();
this.y = r.y();
this.width = r.width();
this.height = r.height();
this.t = at;
if (width < 0f || height < 0f) {
index = 6;
}
}
@Override public int getWindingRule () {
@Override public int windingRule () {
return WIND_NON_ZERO;
}
@@ -14,21 +14,21 @@ public abstract class AbstractRoundRectangle extends RectangularShape implements
{
@Override // from interface IRoundRectangle
public RoundRectangle clone () {
return new RoundRectangle(getX(), getY(), getWidth(), getHeight(),
getArcWidth(), getArcHeight());
return new RoundRectangle(x(), y(), width(), height(),
arcWidth(), arcHeight());
}
@Override // from interface IShape
public boolean contains (float px, float py) {
if (isEmpty()) return false;
float rx1 = getX(), ry1 = getY();
float rx2 = rx1 + getWidth(), ry2 = ry1 + getHeight();
float rx1 = x(), ry1 = y();
float rx2 = rx1 + width(), ry2 = ry1 + height();
if (px < rx1 || px >= rx2 || py < ry1 || py >= ry2) {
return false;
}
float aw = getArcWidth() / 2f, ah = getArcHeight() / 2f;
float aw = arcWidth() / 2f, ah = arcHeight() / 2f;
float cx, cy;
if (px < rx1 + aw) {
cx = rx1 + aw;
@@ -62,7 +62,7 @@ public abstract class AbstractRoundRectangle extends RectangularShape implements
public boolean intersects (float rx, float ry, float rw, float rh) {
if (isEmpty() || rw <= 0f || rh <= 0f) return false;
float x1 = getX(), y1 = getY(), x2 = x1 + getWidth(), y2 = y1 + getHeight();
float x1 = x(), y1 = y(), x2 = x1 + width(), y2 = y1 + height();
float rx1 = rx, ry1 = ry, rx2 = rx + rw, ry2 = ry + rh;
if (rx2 < x1 || x2 < rx1 || ry2 < y1 || y2 < ry1) {
return false;
@@ -75,7 +75,7 @@ public abstract class AbstractRoundRectangle extends RectangularShape implements
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform at) {
public PathIterator pathIterator (Transform at) {
return new Iterator(this, at);
}
@@ -87,19 +87,19 @@ public abstract class AbstractRoundRectangle extends RectangularShape implements
private int index;
Iterator (IRoundRectangle rr, Transform at) {
this.x = rr.getX();
this.y = rr.getY();
this.width = rr.getWidth();
this.height = rr.getHeight();
this.aw = Math.min(width, rr.getArcWidth());
this.ah = Math.min(height, rr.getArcHeight());
this.x = rr.x();
this.y = rr.y();
this.width = rr.width();
this.height = rr.height();
this.aw = Math.min(width, rr.arcWidth());
this.ah = Math.min(height, rr.arcHeight());
this.t = at;
if (width < 0f || height < 0f || aw < 0f || ah < 0f) {
index = POINTS.length;
}
}
@Override public int getWindingRule () {
@Override public int windingRule () {
return WIND_NON_ZERO;
}
@@ -10,13 +10,13 @@ package pythagoras.f;
public abstract class AbstractTransform implements Transform
{
@Override // from Transform
public Vector getScale () {
return new Vector(getScaleX(), getScaleY());
public Vector scale () {
return new Vector(scaleX(), scaleY());
}
@Override // from Transform
public Vector getTranslation () {
return new Vector(getTx(), getTy());
public Vector translation () {
return new Vector(tx(), ty());
}
@Override // from Transform
+22 -22
View File
@@ -14,7 +14,7 @@ public abstract class AbstractVector implements IVector
{
@Override // from interface IVector
public float dot (IVector other) {
return getX()*other.getX() + getY()*other.getY();
return x()*other.x() + y()*other.y();
}
@Override // from interface IVector
@@ -24,7 +24,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector negate (Vector result) {
return result.set(-getX(), -getY());
return result.set(-x(), -y());
}
@Override // from interface IVector
@@ -45,7 +45,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public float direction (IVector other) {
return FloatMath.atan2(other.getY() - getY(), other.getX() - getX());
return FloatMath.atan2(other.y() - y(), other.x() - x());
}
@Override // from interface IVector
@@ -55,7 +55,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public float lengthSq () {
float x = getX(), y = getY();
float x = x(), y = y();
return (x*x + y*y);
}
@@ -66,7 +66,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public float distanceSq (IVector other) {
float dx = getX() - other.getX(), dy = getY() - other.getY();
float dx = x() - other.x(), dy = y() - other.y();
return dx*dx + dy*dy;
}
@@ -77,7 +77,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector mult (float v, Vector result) {
return result.set(getX()*v, getY()*v);
return result.set(x()*v, y()*v);
}
@Override // from interface IVector
@@ -87,7 +87,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector mult (IVector other, Vector result) {
return result.set(getX()*other.getX(), getY()*other.getY());
return result.set(x()*other.x(), y()*other.y());
}
@Override // from interface IVector
@@ -97,7 +97,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector add (IVector other, Vector result) {
return add(other.getX(), other.getY(), result);
return add(other.x(), other.y(), result);
}
@Override // from interface IVector
@@ -107,7 +107,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector subtract (IVector other, Vector result) {
return add(-other.getX(), -other.getY(), result);
return add(-other.x(), -other.y(), result);
}
@Override // from interface IVector
@@ -117,7 +117,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector add (float x, float y, Vector result) {
return result.set(getX() + x, getY() + y);
return result.set(x() + x, y() + y);
}
@Override // from interface IVector
@@ -127,7 +127,7 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector addScaled (IVector other, float v, Vector result) {
return result.set(getX() + other.getX()*v, getY() + other.getY()*v);
return result.set(x() + other.x()*v, y() + other.y()*v);
}
@Override // from interface IVector
@@ -137,24 +137,24 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector rotate (float angle, Vector result) {
float x = getX(), y = getY();
float x = x(), y = y();
float sina = FloatMath.sin(angle), cosa = FloatMath.cos(angle);
return result.set(x*cosa - y*sina, x*sina + y*cosa);
}
@Override // from interface IVector
public Vector rotateAndAdd (float angle, IVector add, Vector result) {
float x = getX(), y = getY();
float x = x(), y = y();
float sina = FloatMath.sin(angle), cosa = FloatMath.cos(angle);
return result.set(x*cosa - y*sina + add.getX(), x*sina + y*cosa + add.getY());
return result.set(x*cosa - y*sina + add.x(), x*sina + y*cosa + add.y());
}
@Override // from interface IVector
public Vector rotateScaleAndAdd (float angle, float scale, IVector add, Vector result) {
float x = getX(), y = getY();
float x = x(), y = y();
float sina = FloatMath.sin(angle), cosa = FloatMath.cos(angle);
return result.set((x*cosa - y*sina)*scale + add.getX(),
(x*sina + y*cosa)*scale + add.getY());
return result.set((x*cosa - y*sina)*scale + add.x(),
(x*sina + y*cosa)*scale + add.y());
}
@Override // from interface IVector
@@ -164,8 +164,8 @@ public abstract class AbstractVector implements IVector
@Override // from interface IVector
public Vector lerp (IVector other, float t, Vector result) {
float x = getX(), y = getY();
float dx = other.getX() - x, dy = other.getY() - y;
float x = x(), y = y();
float dx = other.x() - x, dy = other.y() - y;
return result.set(x + t*dx, y + t*dy);
}
@@ -181,18 +181,18 @@ public abstract class AbstractVector implements IVector
}
if (obj instanceof AbstractVector) {
AbstractVector p = (AbstractVector)obj;
return getX() == p.getX() && getY() == p.getY();
return x() == p.x() && y() == p.y();
}
return false;
}
@Override
public int hashCode () {
return Platform.hashCode(getX()) ^ Platform.hashCode(getY());
return Platform.hashCode(x()) ^ Platform.hashCode(y());
}
@Override
public String toString () {
return Vectors.vectorToString(getX(), getY());
return Vectors.vectorToString(x(), y());
}
}
+16 -16
View File
@@ -51,24 +51,24 @@ public class AffineTransform extends AbstractTransform
}
@Override // from Transform
public float getUniformScale () {
public float uniformScale () {
// the square root of the signed area of the parallelogram spanned by the axis vectors
float cp = m00*m11 - m01*m10;
return (cp < 0f) ? -FloatMath.sqrt(-cp) : FloatMath.sqrt(cp);
}
@Override // from Transform
public float getScaleX () {
public float scaleX () {
return FloatMath.sqrt(m00*m00 + m01*m01);
}
@Override // from Transform
public float getScaleY () {
public float scaleY () {
return FloatMath.sqrt(m10*m10 + m11*m11);
}
@Override // from Transform
public float getRotation () {
public float rotation () {
// use the iterative polar decomposition algorithm described by Ken Shoemake:
// http://www.cs.wisc.edu/graphics/Courses/838-s2002/Papers/polar-decomp.pdf
@@ -105,12 +105,12 @@ public class AffineTransform extends AbstractTransform
}
@Override // from Transform
public float getTx () {
public float tx () {
return this.tx;
}
@Override // from Transform
public float getTy () {
public float ty () {
return this.ty;
}
@@ -122,7 +122,7 @@ public class AffineTransform extends AbstractTransform
@Override // from Transform
public Transform setScaleX (float scaleX) {
// normalize the scale to 1, then re-apply
float osx = getScaleX();
float osx = scaleX();
m00 /= osx; m01 /= osx;
m00 *= scaleX; m01 *= scaleX;
return this;
@@ -131,7 +131,7 @@ public class AffineTransform extends AbstractTransform
@Override // from Transform
public Transform setScaleY (float scaleY) {
// normalize the scale to 1, then re-apply
float osy = getScaleY();
float osy = scaleY();
m10 /= osy; m11 /= osy;
m10 *= scaleY; m11 *= scaleY;
return this;
@@ -140,7 +140,7 @@ public class AffineTransform extends AbstractTransform
@Override // from Transform
public Transform setRotation (float angle) {
// extract the scale, then reapply rotation and scale together
float sx = getScaleX(), sy = getScaleY();
float sx = scaleX(), sy = scaleY();
float sina = FloatMath.sin(angle), cosa = FloatMath.cos(angle);
m00 = cosa * sx; m01 = sina * sx;
m10 = -sina * sy; m11 = cosa * sy;
@@ -276,7 +276,7 @@ public class AffineTransform extends AbstractTransform
@Override // from Transform
public Point transform (IPoint p, Point into) {
float x = p.getX(), y = p.getY();
float x = p.x(), y = p.y();
return into.set(m00*x + m10*y + tx, m01*x + m11*y + ty);
}
@@ -298,7 +298,7 @@ public class AffineTransform extends AbstractTransform
@Override // from Transform
public Point inverseTransform (IPoint p, Point into) {
float x = p.getX() - tx, y = p.getY() - ty;
float x = p.x() - tx, y = p.y() - ty;
float det = m00 * m11 - m01 * m10;
if (Math.abs(det) == 0f) {
// determinant is zero; matrix is not invertible
@@ -311,13 +311,13 @@ public class AffineTransform extends AbstractTransform
@Override // from Transform
public Vector transform (IVector v, Vector into) {
float x = v.getX(), y = v.getY();
float x = v.x(), y = v.y();
return into.set(m00*x + m10*y, m01*x + m11*y);
}
@Override // from Transform
public Vector inverseTransform (IVector v, Vector into) {
float x = v.getX(), y = v.getY();
float x = v.x(), y = v.y();
float det = m00 * m11 - m01 * m10;
if (Math.abs(det) == 0f) {
// determinant is zero; matrix is not invertible
@@ -341,13 +341,13 @@ public class AffineTransform extends AbstractTransform
@Override
public String toString () {
return "affine [" + FloatMath.toString(m00) + " " + FloatMath.toString(m01) + " " +
FloatMath.toString(m10) + " " + FloatMath.toString(m11) + " " + getTranslation() + "]";
FloatMath.toString(m10) + " " + FloatMath.toString(m11) + " " + translation() + "]";
}
// we don't publicize this because it might encourage someone to do something stupid like
// create a new AffineTransform from another AffineTransform using this instead of clone()
protected AffineTransform (Transform other) {
this(other.getScaleX(), other.getScaleY(), other.getRotation(),
other.getTx(), other.getTy());
this(other.scaleX(), other.scaleY(), other.rotation(),
other.tx(), other.ty());
}
}
+26 -26
View File
@@ -56,42 +56,42 @@ public class Arc extends AbstractArc implements Serializable
* angular extent.
*/
public Arc (IRectangle bounds, float start, float extent, int type) {
setArc(bounds.getX(), bounds.getY(), bounds.getWidth(), bounds.getHeight(),
setArc(bounds.x(), bounds.y(), bounds.width(), bounds.height(),
start, extent, type);
}
@Override // from interface IArc
public int getArcType () {
public int arcType () {
return type;
}
@Override // from interface IArc
public float getX () {
public float x () {
return x;
}
@Override // from interface IArc
public float getY () {
public float y () {
return y;
}
@Override // from interface IArc
public float getWidth () {
public float width () {
return width;
}
@Override // from interface IArc
public float getHeight () {
public float height () {
return height;
}
@Override // from interface IArc
public float getAngleStart () {
public float angleStart () {
return start;
}
@Override // from interface IArc
public float getAngleExtent () {
public float angleExtent () {
return extent;
}
@@ -139,7 +139,7 @@ public class Arc extends AbstractArc implements Serializable
* values.
*/
public void setArc (IPoint point, IDimension size, float start, float extent, int type) {
setArc(point.getX(), point.getY(), size.getWidth(), size.getHeight(), start, extent, type);
setArc(point.x(), point.y(), size.width(), size.height(), start, extent, type);
}
/**
@@ -147,7 +147,7 @@ public class Arc extends AbstractArc implements Serializable
* values.
*/
public void setArc (IRectangle rect, float start, float extent, int type) {
setArc(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight(), start, extent, type);
setArc(rect.x(), rect.y(), rect.width(), rect.height(), start, extent, type);
}
/**
@@ -155,8 +155,8 @@ public class Arc extends AbstractArc implements Serializable
* the supplied arc.
*/
public void setArc (IArc arc) {
setArc(arc.getX(), arc.getY(), arc.getWidth(), arc.getHeight(), arc.getAngleStart(),
arc.getAngleExtent(), arc.getArcType());
setArc(arc.x(), arc.y(), arc.width(), arc.height(), arc.angleStart(),
arc.angleExtent(), arc.arcType());
}
/**
@@ -174,16 +174,16 @@ public class Arc extends AbstractArc implements Serializable
*/
public void setArcByTangent (IPoint p1, IPoint p2, IPoint p3, float radius) {
// use simple geometric calculations of arc center, radius and angles by tangents
float a1 = -FloatMath.atan2(p1.getY() - p2.getY(), p1.getX() - p2.getX());
float a2 = -FloatMath.atan2(p3.getY() - p2.getY(), p3.getX() - p2.getX());
float a1 = -FloatMath.atan2(p1.y() - p2.y(), p1.x() - p2.x());
float a2 = -FloatMath.atan2(p3.y() - p2.y(), p3.x() - p2.x());
float am = (a1 + a2) / 2f;
float ah = a1 - am;
float d = radius / Math.abs(FloatMath.sin(ah));
float x = p2.getX() + d * FloatMath.cos(am);
float y = p2.getY() - d * FloatMath.sin(am);
float x = p2.x() + d * FloatMath.cos(am);
float y = p2.y() - d * FloatMath.sin(am);
ah = ah >= 0f ? FloatMath.PI * 1.5f - ah : FloatMath.PI * 0.5f - ah;
a1 = getNormAngle(FloatMath.toDegrees(am - ah));
a2 = getNormAngle(FloatMath.toDegrees(am + ah));
a1 = normAngle(FloatMath.toDegrees(am - ah));
a2 = normAngle(FloatMath.toDegrees(am + ah));
float delta = a2 - a1;
if (delta <= 0f) {
delta += 360f;
@@ -196,8 +196,8 @@ public class Arc extends AbstractArc implements Serializable
* the center of this arc.
*/
public void setAngleStart (IPoint point) {
float angle = FloatMath.atan2(point.getY() - getCenterY(), point.getX() - getCenterX());
setAngleStart(getNormAngle(-FloatMath.toDegrees(angle)));
float angle = FloatMath.atan2(point.y() - centerY(), point.x() - centerX());
setAngleStart(normAngle(-FloatMath.toDegrees(angle)));
}
/**
@@ -208,10 +208,10 @@ public class Arc extends AbstractArc implements Serializable
* counterclockwise from the first point around to the second point.
*/
public void setAngles (float x1, float y1, float x2, float y2) {
float cx = getCenterX();
float cy = getCenterY();
float a1 = getNormAngle(-FloatMath.toDegrees(FloatMath.atan2(y1 - cy, x1 - cx)));
float a2 = getNormAngle(-FloatMath.toDegrees(FloatMath.atan2(y2 - cy, x2 - cx)));
float cx = centerX();
float cy = centerY();
float a1 = normAngle(-FloatMath.toDegrees(FloatMath.atan2(y1 - cy, x1 - cx)));
float a2 = normAngle(-FloatMath.toDegrees(FloatMath.atan2(y2 - cy, x2 - cx)));
a2 -= a1;
if (a2 <= 0f) {
a2 += 360f;
@@ -228,12 +228,12 @@ public class Arc extends AbstractArc implements Serializable
* counterclockwise from the first point around to the second point.
*/
public void setAngles (IPoint p1, IPoint p2) {
setAngles(p1.getX(), p1.getY(), p2.getX(), p2.getY());
setAngles(p1.x(), p1.y(), p2.x(), p2.y());
}
@Override // from RectangularShape
public void setFrame (float x, float y, float width, float height) {
setArc(x, y, width, height, getAngleStart(), getAngleExtent(), type);
setArc(x, y, width, height, angleStart(), angleExtent(), type);
}
private int type;
+103 -103
View File
@@ -30,7 +30,7 @@ public class Area implements IShape, Cloneable
int rulesIndex = 0;
int coordsIndex = 0;
for (PathIterator pi = s.getPathIterator(null); !pi.isDone(); pi.next()) {
for (PathIterator pi = s.pathIterator(null); !pi.isDone(); pi.next()) {
coords = adjustSize(coords, coordsIndex + 6);
rules = adjustSize(rules, rulesIndex + 1);
offsets = adjustSize(offsets, rulesIndex + 1);
@@ -140,7 +140,7 @@ public class Area implements IShape, Cloneable
addCurvePolygon(area);
}
if (getAreaBoundsSquare() < GeometryUtil.EPSILON) {
if (areaBoundsSquare() < GeometryUtil.EPSILON) {
reset();
}
}
@@ -162,7 +162,7 @@ public class Area implements IShape, Cloneable
intersectCurvePolygon(area);
}
if (getAreaBoundsSquare() < GeometryUtil.EPSILON) {
if (areaBoundsSquare() < GeometryUtil.EPSILON) {
reset();
}
}
@@ -181,7 +181,7 @@ public class Area implements IShape, Cloneable
subtractCurvePolygon(area);
}
if (getAreaBoundsSquare() < GeometryUtil.EPSILON) {
if (areaBoundsSquare() < GeometryUtil.EPSILON) {
reset();
}
}
@@ -209,25 +209,25 @@ public class Area implements IShape, Cloneable
@Override // from interface IShape
public boolean contains (float x, float y, float width, float height) {
int crossCount = Crossing.intersectPath(getPathIterator(null), x, y, width, height);
int crossCount = Crossing.intersectPath(pathIterator(null), x, y, width, height);
return crossCount != Crossing.CROSSING && Crossing.isInsideEvenOdd(crossCount);
}
@Override // from interface IShape
public boolean contains (IPoint p) {
return contains(p.getX(), p.getY());
return contains(p.x(), p.y());
}
@Override // from interface IShape
public boolean contains (IRectangle r) {
return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return contains(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IShape
public boolean intersects (float x, float y, float width, float height) {
if ((width <= 0f) || (height <= 0f)) {
return false;
} else if (!getBounds().intersects(x, y, width, height)) {
} else if (!bounds().intersects(x, y, width, height)) {
return false;
}
int crossCount = Crossing.intersectShape(this, x, y, width, height);
@@ -236,16 +236,16 @@ public class Area implements IShape, Cloneable
@Override // from interface IShape
public boolean intersects (IRectangle r) {
return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return intersects(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IShape
public Rectangle getBounds () {
return getBounds(new Rectangle());
public Rectangle bounds () {
return bounds(new Rectangle());
}
@Override // from interface IShape
public Rectangle getBounds (Rectangle target) {
public Rectangle bounds (Rectangle target) {
float maxX = coords[0], maxY = coords[1];
float minX = coords[0], minY = coords[1];
for (int i = 0; i < coordsSize;) {
@@ -258,13 +258,13 @@ public class Area implements IShape, Cloneable
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t) {
public PathIterator pathIterator (Transform t) {
return new AreaPathIterator(t);
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t, float flatness) {
return new FlatteningPathIterator(getPathIterator(t), flatness);
public PathIterator pathIterator (Transform t, float flatness) {
return new FlatteningPathIterator(pathIterator(t), flatness);
}
@Override // from Object
@@ -296,9 +296,9 @@ public class Area implements IShape, Cloneable
IntersectPoint[] intersectPoints = crossHelper.findCrossing();
if (intersectPoints.length == 0) {
if (area.contains(getBounds())) {
if (area.contains(bounds())) {
copy(area, this);
} else if (!contains(area.getBounds())) {
} else if (!contains(area.bounds())) {
coords = adjustSize(coords, coordsSize + area.coordsSize);
System.arraycopy(area.coords, 0, coords, coordsSize, area.coordsSize);
coordsSize += area.coordsSize;
@@ -324,9 +324,9 @@ public class Area implements IShape, Cloneable
resultOffsets[resultRulesPos++] = resultCoordPos;
do {
resultCoords[resultCoordPos++] = point.getX();
resultCoords[resultCoordPos++] = point.getY();
int curIndex = point.getEndIndex(true);
resultCoords[resultCoordPos++] = point.x();
resultCoords[resultCoordPos++] = point.y();
int curIndex = point.endIndex(true);
if (curIndex < 0) {
isCurrentArea = !isCurrentArea;
} else if (area.containsExact(coords[2 * curIndex], coords[2 * curIndex + 1]) > 0) {
@@ -335,13 +335,13 @@ public class Area implements IShape, Cloneable
isCurrentArea = true;
}
IntersectPoint nextPoint = getNextIntersectPoint(intersectPoints, point, isCurrentArea);
IntersectPoint nextPoint = nextIntersectPoint(intersectPoints, point, isCurrentArea);
float[] coords = (isCurrentArea) ? this.coords : area.coords;
int[] offsets = (isCurrentArea) ? this.offsets : area.offsets;
int[] rules = (isCurrentArea) ? this.rules : area.rules;
int offset = point.getRuleIndex(isCurrentArea);
int offset = point.ruleIndex(isCurrentArea);
boolean isCopyUntilZero = false;
if ((point.getRuleIndex(isCurrentArea) > nextPoint.getRuleIndex(isCurrentArea))) {
if ((point.ruleIndex(isCurrentArea) > nextPoint.ruleIndex(isCurrentArea))) {
int rulesSize = (isCurrentArea) ? this.rulesSize : area.rulesSize;
resultCoordPos = includeCoordsAndRules(offset + 1, rulesSize, rules, offsets,
resultRules, resultOffsets, resultCoords, coords, resultRulesPos,
@@ -351,7 +351,7 @@ public class Area implements IShape, Cloneable
isCopyUntilZero = true;
}
int length = nextPoint.getRuleIndex(isCurrentArea) - offset + 1;
int length = nextPoint.ruleIndex(isCurrentArea) - offset + 1;
if (isCopyUntilZero) {
offset = 0;
}
@@ -379,9 +379,9 @@ public class Area implements IShape, Cloneable
IntersectPoint[] intersectPoints = crossHelper.findCrossing();
if (intersectPoints.length == 0) {
if (area.contains(getBounds())) {
if (area.contains(bounds())) {
copy(area, this);
} else if (!contains(area.getBounds())) {
} else if (!contains(area.bounds())) {
coords = adjustSize(coords, coordsSize + area.coordsSize);
System.arraycopy(area.coords, 0, coords, coordsSize, area.coordsSize);
coordsSize += area.coordsSize;
@@ -406,11 +406,11 @@ public class Area implements IShape, Cloneable
resultOffsets[resultRulesPos++] = resultCoordPos;
do {
resultCoords[resultCoordPos++] = point.getX();
resultCoords[resultCoordPos++] = point.getY();
resultCoords[resultCoordPos++] = point.x();
resultCoords[resultCoordPos++] = point.y();
resultRules[resultRulesPos] = PathIterator.SEG_LINETO;
resultOffsets[resultRulesPos++] = resultCoordPos - 2;
int curIndex = point.getEndIndex(true);
int curIndex = point.endIndex(true);
if (curIndex < 0) {
isCurrentArea = !isCurrentArea;
} else if (area.containsExact(coords[2 * curIndex], coords[2 * curIndex + 1]) > 0) {
@@ -419,11 +419,11 @@ public class Area implements IShape, Cloneable
isCurrentArea = true;
}
IntersectPoint nextPoint = getNextIntersectPoint(intersectPoints, point, isCurrentArea);
IntersectPoint nextPoint = nextIntersectPoint(intersectPoints, point, isCurrentArea);
float[] coords = (isCurrentArea) ? this.coords : area.coords;
int offset = 2 * point.getEndIndex(isCurrentArea);
int offset = 2 * point.endIndex(isCurrentArea);
if ((offset >= 0) &&
(nextPoint.getBegIndex(isCurrentArea) < point.getEndIndex(isCurrentArea))) {
(nextPoint.begIndex(isCurrentArea) < point.endIndex(isCurrentArea))) {
int coordSize = (isCurrentArea) ? this.coordsSize : area.coordsSize;
int length = coordSize - offset;
System.arraycopy(coords, offset, resultCoords, resultCoordPos, length);
@@ -438,7 +438,7 @@ public class Area implements IShape, Cloneable
}
if (offset >= 0) {
int length = 2 * nextPoint.getBegIndex(isCurrentArea) - offset + 2;
int length = 2 * nextPoint.begIndex(isCurrentArea) - offset + 2;
System.arraycopy(coords, offset, resultCoords, resultCoordPos, length);
for (int i = 0; i < length / 2; i++) {
@@ -469,9 +469,9 @@ public class Area implements IShape, Cloneable
new int[][] { offsets, area.offsets });
IntersectPoint[] intersectPoints = crossHelper.findCrossing();
if (intersectPoints.length == 0) {
if (contains(area.getBounds())) {
if (contains(area.bounds())) {
copy(area, this);
} else if (!area.contains(getBounds())) {
} else if (!area.contains(bounds())) {
reset();
}
return;
@@ -490,10 +490,10 @@ public class Area implements IShape, Cloneable
resultOffsets[resultRulesPos++] = resultCoordPos;
do {
resultCoords[resultCoordPos++] = point.getX();
resultCoords[resultCoordPos++] = point.getY();
resultCoords[resultCoordPos++] = point.x();
resultCoords[resultCoordPos++] = point.y();
int curIndex = point.getEndIndex(true);
int curIndex = point.endIndex(true);
if ((curIndex < 0) ||
(area.containsExact(coords[2 * curIndex], coords[2 * curIndex + 1]) == 0)) {
isCurrentArea = !isCurrentArea;
@@ -503,14 +503,14 @@ public class Area implements IShape, Cloneable
isCurrentArea = false;
}
nextPoint = getNextIntersectPoint(intersectPoints, point, isCurrentArea);
nextPoint = nextIntersectPoint(intersectPoints, point, isCurrentArea);
float[] coords = (isCurrentArea) ? this.coords : area.coords;
int[] offsets = (isCurrentArea) ? this.offsets : area.offsets;
int[] rules = (isCurrentArea) ? this.rules : area.rules;
int offset = point.getRuleIndex(isCurrentArea);
int offset = point.ruleIndex(isCurrentArea);
boolean isCopyUntilZero = false;
if (point.getRuleIndex(isCurrentArea) > nextPoint.getRuleIndex(isCurrentArea)) {
if (point.ruleIndex(isCurrentArea) > nextPoint.ruleIndex(isCurrentArea)) {
int rulesSize = (isCurrentArea) ? this.rulesSize : area.rulesSize;
resultCoordPos = includeCoordsAndRules(
offset + 1, rulesSize, rules, offsets, resultRules, resultOffsets,
@@ -521,17 +521,17 @@ public class Area implements IShape, Cloneable
isCopyUntilZero = true;
}
int length = nextPoint.getRuleIndex(isCurrentArea) - offset + 1;
int length = nextPoint.ruleIndex(isCurrentArea) - offset + 1;
if (isCopyUntilZero) {
offset = 0;
isCopyUntilZero = false;
}
if ((length == offset) &&
(nextPoint.getRule(isCurrentArea) != PathIterator.SEG_LINETO) &&
(nextPoint.getRule(isCurrentArea) != PathIterator.SEG_CLOSE) &&
(point.getRule(isCurrentArea) != PathIterator.SEG_LINETO) &&
(point.getRule(isCurrentArea) != PathIterator.SEG_CLOSE)) {
(nextPoint.rule(isCurrentArea) != PathIterator.SEG_LINETO) &&
(nextPoint.rule(isCurrentArea) != PathIterator.SEG_CLOSE) &&
(point.rule(isCurrentArea) != PathIterator.SEG_LINETO) &&
(point.rule(isCurrentArea) != PathIterator.SEG_CLOSE)) {
isCopyUntilZero = true;
length++;
}
@@ -548,8 +548,8 @@ public class Area implements IShape, Cloneable
if (resultRules[resultRulesPos - 1] == PathIterator.SEG_LINETO) {
resultRules[resultRulesPos - 1] = PathIterator.SEG_CLOSE;
} else {
resultCoords[resultCoordPos++] = nextPoint.getX();
resultCoords[resultCoordPos++] = nextPoint.getY();
resultCoords[resultCoordPos++] = nextPoint.x();
resultCoords[resultCoordPos++] = nextPoint.y();
resultRules[resultRulesPos++] = PathIterator.SEG_CLOSE;
}
@@ -567,9 +567,9 @@ public class Area implements IShape, Cloneable
new int[] { coordsSize, area.coordsSize });
IntersectPoint[] intersectPoints = crossHelper.findCrossing();
if (intersectPoints.length == 0) {
if (contains(area.getBounds())) {
if (contains(area.bounds())) {
copy(area, this);
} else if (!area.contains(getBounds())) {
} else if (!area.contains(bounds())) {
reset();
}
return;
@@ -587,11 +587,11 @@ public class Area implements IShape, Cloneable
resultOffsets[resultRulesPos++] = resultCoordPos;
do {
resultCoords[resultCoordPos++] = point.getX();
resultCoords[resultCoordPos++] = point.getY();
resultCoords[resultCoordPos++] = point.x();
resultCoords[resultCoordPos++] = point.y();
resultRules[resultRulesPos] = PathIterator.SEG_LINETO;
resultOffsets[resultRulesPos++] = resultCoordPos - 2;
int curIndex = point.getEndIndex(true);
int curIndex = point.endIndex(true);
if ((curIndex < 0) ||
(area.containsExact(coords[2 * curIndex], coords[2 * curIndex + 1]) == 0)) {
@@ -602,11 +602,11 @@ public class Area implements IShape, Cloneable
isCurrentArea = false;
}
IntersectPoint nextPoint = getNextIntersectPoint(intersectPoints, point, isCurrentArea);
IntersectPoint nextPoint = nextIntersectPoint(intersectPoints, point, isCurrentArea);
float[] coords = (isCurrentArea) ? this.coords : area.coords;
int offset = 2 * point.getEndIndex(isCurrentArea);
int offset = 2 * point.endIndex(isCurrentArea);
if ((offset >= 0) &&
(nextPoint.getBegIndex(isCurrentArea) < point.getEndIndex(isCurrentArea))) {
(nextPoint.begIndex(isCurrentArea) < point.endIndex(isCurrentArea))) {
int coordSize = (isCurrentArea) ? this.coordsSize : area.coordsSize;
int length = coordSize - offset;
System.arraycopy(coords, offset, resultCoords, resultCoordPos, length);
@@ -621,7 +621,7 @@ public class Area implements IShape, Cloneable
}
if (offset >= 0) {
int length = 2 * nextPoint.getBegIndex(isCurrentArea) - offset + 2;
int length = 2 * nextPoint.begIndex(isCurrentArea) - offset + 2;
System.arraycopy(coords, offset, resultCoords, resultCoordPos, length);
for (int i = 0; i < length / 2; i++) {
@@ -651,7 +651,7 @@ public class Area implements IShape, Cloneable
new int[] { rulesSize, area.rulesSize },
new int[][] { offsets, area.offsets });
IntersectPoint[] intersectPoints = crossHelper.findCrossing();
if (intersectPoints.length == 0 && contains(area.getBounds())) {
if (intersectPoints.length == 0 && contains(area.bounds())) {
copy(area, this);
return;
}
@@ -668,9 +668,9 @@ public class Area implements IShape, Cloneable
resultOffsets[resultRulesPos++] = resultCoordPos;
do {
resultCoords[resultCoordPos++] = point.getX();
resultCoords[resultCoordPos++] = point.getY();
int curIndex = offsets[point.getRuleIndex(true)] % coordsSize;
resultCoords[resultCoordPos++] = point.x();
resultCoords[resultCoordPos++] = point.y();
int curIndex = offsets[point.ruleIndex(true)] % coordsSize;
if (area.containsExact(coords[curIndex], coords[curIndex + 1]) == 0) {
isCurrentArea = !isCurrentArea;
} else if (area.containsExact(coords[curIndex], coords[curIndex + 1]) > 0) {
@@ -680,19 +680,19 @@ public class Area implements IShape, Cloneable
}
IntersectPoint nextPoint = (isCurrentArea) ?
getNextIntersectPoint(intersectPoints, point, isCurrentArea) :
getPrevIntersectPoint(intersectPoints, point, isCurrentArea);
nextIntersectPoint(intersectPoints, point, isCurrentArea) :
prevIntersectPoint(intersectPoints, point, isCurrentArea);
float[] coords = (isCurrentArea) ? this.coords : area.coords;
int[] offsets = (isCurrentArea) ? this.offsets : area.offsets;
int[] rules = (isCurrentArea) ? this.rules : area.rules;
int offset = (isCurrentArea) ? point.getRuleIndex(isCurrentArea) :
nextPoint.getRuleIndex(isCurrentArea);
int offset = (isCurrentArea) ? point.ruleIndex(isCurrentArea) :
nextPoint.ruleIndex(isCurrentArea);
boolean isCopyUntilZero = false;
if (((isCurrentArea) &&
(point.getRuleIndex(isCurrentArea) > nextPoint.getRuleIndex(isCurrentArea))) ||
(point.ruleIndex(isCurrentArea) > nextPoint.ruleIndex(isCurrentArea))) ||
((!isCurrentArea) &&
(nextPoint.getRuleIndex(isCurrentArea) > nextPoint.getRuleIndex(isCurrentArea)))) {
(nextPoint.ruleIndex(isCurrentArea) > nextPoint.ruleIndex(isCurrentArea)))) {
int rulesSize = (isCurrentArea) ? this.rulesSize : area.rulesSize;
resultCoordPos = includeCoordsAndRules(
offset + 1, rulesSize, rules, offsets, resultRules, resultOffsets, resultCoords,
@@ -702,7 +702,7 @@ public class Area implements IShape, Cloneable
isCopyUntilZero = true;
}
int length = nextPoint.getRuleIndex(isCurrentArea) - offset + 1;
int length = nextPoint.ruleIndex(isCurrentArea) - offset + 1;
if (isCopyUntilZero) {
offset = 0;
@@ -740,7 +740,7 @@ public class Area implements IShape, Cloneable
new int[] { coordsSize, area.coordsSize });
IntersectPoint[] intersectPoints = crossHelper.findCrossing();
if (intersectPoints.length == 0) {
if (contains(area.getBounds())) {
if (contains(area.bounds())) {
copy(area, this);
return;
}
@@ -763,18 +763,18 @@ public class Area implements IShape, Cloneable
resultOffsets[resultRulesPos++] = resultCoordPos;
do {
resultCoords[resultCoordPos++] = point.getX();
resultCoords[resultCoordPos++] = point.getY();
resultCoords[resultCoordPos++] = point.x();
resultCoords[resultCoordPos++] = point.y();
resultRules[resultRulesPos] = PathIterator.SEG_LINETO;
resultOffsets[resultRulesPos++] = resultCoordPos - 2;
int curIndex = point.getEndIndex(true);
int curIndex = point.endIndex(true);
if ((curIndex < 0) ||
(area.isVertex(coords[2 * curIndex], coords[2 * curIndex + 1]) &&
crossHelper.containsPoint(new float[] { coords[2 * curIndex],
coords[2 * curIndex + 1] }) &&
(coords[2 * curIndex] != point.getX() ||
coords[2 * curIndex + 1] != point.getY()))) {
(coords[2 * curIndex] != point.x() ||
coords[2 * curIndex + 1] != point.y()))) {
isCurrentArea = !isCurrentArea;
} else if (area.containsExact(coords[2 * curIndex], coords[2 * curIndex + 1]) > 0) {
isCurrentArea = false;
@@ -793,18 +793,18 @@ public class Area implements IShape, Cloneable
}
IntersectPoint nextPoint = (isCurrentArea) ?
getNextIntersectPoint(intersectPoints, point, isCurrentArea) :
getPrevIntersectPoint(intersectPoints, point, isCurrentArea);
nextIntersectPoint(intersectPoints, point, isCurrentArea) :
prevIntersectPoint(intersectPoints, point, isCurrentArea);
float[] coords = (isCurrentArea) ? this.coords : area.coords;
int offset = (isCurrentArea) ? 2 * point.getEndIndex(isCurrentArea) :
2 * nextPoint.getEndIndex(isCurrentArea);
int offset = (isCurrentArea) ? 2 * point.endIndex(isCurrentArea) :
2 * nextPoint.endIndex(isCurrentArea);
if ((offset > 0) &&
(((isCurrentArea) &&
(nextPoint.getBegIndex(isCurrentArea) < point.getEndIndex(isCurrentArea))) ||
(nextPoint.begIndex(isCurrentArea) < point.endIndex(isCurrentArea))) ||
((!isCurrentArea) &&
(nextPoint.getEndIndex(isCurrentArea) < nextPoint.getBegIndex(isCurrentArea))))) {
(nextPoint.endIndex(isCurrentArea) < nextPoint.begIndex(isCurrentArea))))) {
int coordSize = (isCurrentArea) ? this.coordsSize : area.coordsSize;
int length = coordSize - offset;
@@ -829,8 +829,8 @@ public class Area implements IShape, Cloneable
if (offset >= 0) {
int length = (isCurrentArea) ?
2 * nextPoint.getBegIndex(isCurrentArea) - offset + 2 :
2 * point.getBegIndex(isCurrentArea) - offset + 2;
2 * nextPoint.begIndex(isCurrentArea) - offset + 2 :
2 * point.begIndex(isCurrentArea) - offset + 2;
if (isCurrentArea) {
System.arraycopy(coords, offset, resultCoords, resultCoordPos, length);
@@ -861,10 +861,10 @@ public class Area implements IShape, Cloneable
rulesSize = resultRulesPos;
}
private IntersectPoint getNextIntersectPoint (IntersectPoint[] iPoints,
private IntersectPoint nextIntersectPoint (IntersectPoint[] iPoints,
IntersectPoint isectPoint,
boolean isCurrentArea) {
int endIndex = isectPoint.getEndIndex(isCurrentArea);
int endIndex = isectPoint.endIndex(isCurrentArea);
if (endIndex < 0) {
return iPoints[Math.abs(endIndex) - 1];
}
@@ -872,11 +872,11 @@ public class Area implements IShape, Cloneable
IntersectPoint firstIsectPoint = null;
IntersectPoint nextIsectPoint = null;
for (IntersectPoint point : iPoints) {
int begIndex = point.getBegIndex(isCurrentArea);
int begIndex = point.begIndex(isCurrentArea);
if (begIndex >= 0) {
if (firstIsectPoint == null) {
firstIsectPoint = point;
} else if (begIndex < firstIsectPoint.getBegIndex(isCurrentArea)) {
} else if (begIndex < firstIsectPoint.begIndex(isCurrentArea)) {
firstIsectPoint = point;
}
}
@@ -884,7 +884,7 @@ public class Area implements IShape, Cloneable
if (endIndex <= begIndex) {
if (nextIsectPoint == null) {
nextIsectPoint = point;
} else if (begIndex < nextIsectPoint.getBegIndex(isCurrentArea)) {
} else if (begIndex < nextIsectPoint.begIndex(isCurrentArea)) {
nextIsectPoint = point;
}
}
@@ -893,10 +893,10 @@ public class Area implements IShape, Cloneable
return (nextIsectPoint != null) ? nextIsectPoint : firstIsectPoint;
}
private IntersectPoint getPrevIntersectPoint (IntersectPoint[] iPoints,
private IntersectPoint prevIntersectPoint (IntersectPoint[] iPoints,
IntersectPoint isectPoint,
boolean isCurrentArea) {
int begIndex = isectPoint.getBegIndex(isCurrentArea);
int begIndex = isectPoint.begIndex(isCurrentArea);
if (begIndex < 0) {
return iPoints[Math.abs(begIndex) - 1];
}
@@ -904,11 +904,11 @@ public class Area implements IShape, Cloneable
IntersectPoint firstIsectPoint = null;
IntersectPoint predIsectPoint = null;
for (IntersectPoint point : iPoints) {
int endIndex = point.getEndIndex(isCurrentArea);
int endIndex = point.endIndex(isCurrentArea);
if (endIndex >= 0) {
if (firstIsectPoint == null) {
firstIsectPoint = point;
} else if (endIndex < firstIsectPoint.getEndIndex(isCurrentArea)) {
} else if (endIndex < firstIsectPoint.endIndex(isCurrentArea)) {
firstIsectPoint = point;
}
}
@@ -916,7 +916,7 @@ public class Area implements IShape, Cloneable
if (endIndex <= begIndex) {
if (predIsectPoint == null) {
predIsectPoint = point;
} else if (endIndex > predIsectPoint.getEndIndex(isCurrentArea)) {
} else if (endIndex > predIsectPoint.endIndex(isCurrentArea)) {
predIsectPoint = point;
}
}
@@ -976,7 +976,7 @@ public class Area implements IShape, Cloneable
resultRules[resultRulesPos] = PathIterator.SEG_LINETO;
resultOffsets[resultRulesPos++] = resultCoordPos + 2;
boolean isLeft = CrossingHelper.compare(
coords[index], coords[index + 1], point.getX(), point.getY()) > 0;
coords[index], coords[index + 1], point.x(), point.y()) > 0;
if (way || !isLeft) {
temp[coordsCount++] = coords[index];
temp[coordsCount++] = coords[index + 1];
@@ -990,13 +990,13 @@ public class Area implements IShape, Cloneable
coords[index - 2], coords[index - 1],
coords[index], coords[index + 1], coords[index + 2], coords[index + 3] };
isLeft = CrossingHelper.compare(
coords[index - 2], coords[index - 1], point.getX(), point.getY()) > 0;
coords[index - 2], coords[index - 1], point.x(), point.y()) > 0;
if ((!additional) && (operation == 0 || operation == 2)) {
isLeft = !isLeft;
way = false;
}
GeometryUtil.subQuad(coefs, point.getParam(isCurrentArea), isLeft);
GeometryUtil.subQuad(coefs, point.param(isCurrentArea), isLeft);
if (way || isLeft) {
temp[coordsCount++] = coefs[2];
@@ -1014,8 +1014,8 @@ public class Area implements IShape, Cloneable
coords[index + 1], coords[index + 2], coords[index + 3],
coords[index + 4], coords[index + 5] };
isLeft = CrossingHelper.compare(
coords[index - 2], coords[index - 1], point.getX(), point.getY()) > 0;
GeometryUtil.subCubic(coefs, point.getParam(isCurrentArea), !isLeft);
coords[index - 2], coords[index - 1], point.x(), point.y()) > 0;
GeometryUtil.subCubic(coefs, point.param(isCurrentArea), !isLeft);
if (isLeft) {
System.arraycopy(coefs, 2, temp, coordsCount, 6);
@@ -1048,7 +1048,7 @@ public class Area implements IShape, Cloneable
}
private int containsExact (float x, float y) {
PathIterator pi = getPathIterator(null);
PathIterator pi = pathIterator(null);
int crossCount = Crossing.crossPath(pi, x, y);
if (Crossing.isInsideEvenOdd(crossCount)) {
return 1;
@@ -1062,7 +1062,7 @@ public class Area implements IShape, Cloneable
float moveX = -1;
float moveY = -1;
for (pi = getPathIterator(null); !pi.isDone(); pi.next()) {
for (pi = pathIterator(null); !pi.isDone(); pi.next()) {
rule = pi.currentSegment(segmentCoords);
switch (rule) {
case PathIterator.SEG_MOVETO:
@@ -1123,9 +1123,9 @@ public class Area implements IShape, Cloneable
}
}
private float getAreaBoundsSquare () {
Rectangle bounds = getBounds();
return bounds.getHeight() * bounds.getWidth();
private float areaBoundsSquare () {
Rectangle bounds = bounds();
return bounds.height() * bounds.width();
}
private boolean isVertex (float x, float y) {
@@ -1167,7 +1167,7 @@ public class Area implements IShape, Cloneable
this.transform = t;
}
@Override public int getWindingRule () {
@Override public int windingRule () {
return WIND_EVEN_ODD;
}
+4 -4
View File
@@ -472,10 +472,10 @@ class Crossing
* Returns how many times a ray from point (x,y) crosses a shape.
*/
public static int crossShape (IShape s, float x, float y) {
if (!s.getBounds().contains(x, y)) {
if (!s.bounds().contains(x, y)) {
return 0;
}
return crossPath(s.getPathIterator(null), x, y);
return crossPath(s.pathIterator(null), x, y);
}
/**
@@ -759,10 +759,10 @@ class Crossing
* Returns how many times rectangle stripe cross shape or the are intersect
*/
public static int intersectShape (IShape s, float x, float y, float w, float h) {
if (!s.getBounds().intersects(x, y, w, h)) {
if (!s.bounds().intersects(x, y, w, h)) {
return 0;
}
return intersectPath(s.getPathIterator(null), x, y, w, h);
return intersectPath(s.pathIterator(null), x, y, w, h);
}
/**
@@ -177,8 +177,8 @@ class CrossingHelper
IntersectPoint ip;
for (Iterator<IntersectPoint> i = isectPoints.iterator(); i.hasNext();) {
ip = i.next();
if ((initBegin == ip.getBegIndex(true)) && (initEnd == ip.getEndIndex(true))) {
if (compare(ip.getX(), ip.getY(), point[0], point[1]) > 0) {
if ((initBegin == ip.begIndex(true)) && (initEnd == ip.endIndex(true))) {
if (compare(ip.x(), ip.y(), point[0], point[1]) > 0) {
initEnd = -(isectPoints.indexOf(ip) + 1);
ip.setBegIndex1(-(isectPoints.size() + 1));
} else {
@@ -187,8 +187,8 @@ class CrossingHelper
}
}
if ((addBegin == ip.getBegIndex(false)) && (addEnd == ip.getEndIndex(false))) {
if (compare(ip.getX(), ip.getY(), point[0], point[1]) > 0) {
if ((addBegin == ip.begIndex(false)) && (addEnd == ip.endIndex(false))) {
if (compare(ip.x(), ip.y(), point[0], point[1]) > 0) {
addEnd = -(isectPoints.indexOf(ip) + 1);
ip.setBegIndex2(-(isectPoints.size() + 1));
} else {
@@ -256,7 +256,7 @@ class CrossingHelper
IntersectPoint ipoint;
for (Iterator<IntersectPoint> i = isectPoints.iterator(); i.hasNext();) {
ipoint = i.next();
if (ipoint.getX() == point[0] && ipoint.getY() == point[1]) {
if (ipoint.x() == point[0] && ipoint.y() == point[1]) {
return true;
}
}
+16 -16
View File
@@ -68,8 +68,8 @@ public class CubicCurve extends AbstractCubicCurve implements Serializable
* Configures the start, control and end points for this curve.
*/
public void setCurve (IPoint p1, IPoint cp1, IPoint cp2, IPoint p2) {
setCurve(p1.getX(), p1.getY(), cp1.getX(), cp1.getY(),
cp2.getX(), cp2.getY(), p2.getX(), p2.getY());
setCurve(p1.x(), p1.y(), cp1.x(), cp1.y(),
cp2.x(), cp2.y(), p2.x(), p2.y());
}
/**
@@ -86,10 +86,10 @@ public class CubicCurve extends AbstractCubicCurve implements Serializable
* specified offset in the {@code points} array.
*/
public void setCurve (IPoint[] points, int offset) {
setCurve(points[offset + 0].getX(), points[offset + 0].getY(),
points[offset + 1].getX(), points[offset + 1].getY(),
points[offset + 2].getX(), points[offset + 2].getY(),
points[offset + 3].getX(), points[offset + 3].getY());
setCurve(points[offset + 0].x(), points[offset + 0].y(),
points[offset + 1].x(), points[offset + 1].y(),
points[offset + 2].x(), points[offset + 2].y(),
points[offset + 3].x(), points[offset + 3].y());
}
/**
@@ -97,47 +97,47 @@ public class CubicCurve extends AbstractCubicCurve implements Serializable
* curve.
*/
public void setCurve (ICubicCurve curve) {
setCurve(curve.getX1(), curve.getY1(), curve.getCtrlX1(), curve.getCtrlY1(),
curve.getCtrlX2(), curve.getCtrlY2(), curve.getX2(), curve.getY2());
setCurve(curve.x1(), curve.y1(), curve.ctrlX1(), curve.ctrlY1(),
curve.ctrlX2(), curve.ctrlY2(), curve.x2(), curve.y2());
}
@Override // from interface ICubicCurve
public float getX1 () {
public float x1 () {
return x1;
}
@Override // from interface ICubicCurve
public float getY1 () {
public float y1 () {
return y1;
}
@Override // from interface ICubicCurve
public float getCtrlX1 () {
public float ctrlX1 () {
return ctrlx1;
}
@Override // from interface ICubicCurve
public float getCtrlY1 () {
public float ctrlY1 () {
return ctrly1;
}
@Override // from interface ICubicCurve
public float getCtrlX2 () {
public float ctrlX2 () {
return ctrlx2;
}
@Override // from interface ICubicCurve
public float getCtrlY2 () {
public float ctrlY2 () {
return ctrly2;
}
@Override // from interface ICubicCurve
public float getX2 () {
public float x2 () {
return x2;
}
@Override // from interface ICubicCurve
public float getY2 () {
public float y2 () {
return y2;
}
}
+11 -11
View File
@@ -9,34 +9,34 @@ package pythagoras.f;
*/
public class CubicCurves
{
public static float getFlatnessSq (float x1, float y1, float ctrlx1, float ctrly1,
public static float flatnessSq (float x1, float y1, float ctrlx1, float ctrly1,
float ctrlx2, float ctrly2, float x2, float y2) {
return Math.max(Lines.pointSegDistSq(ctrlx1, ctrly1, x1, y1, x2, y2),
Lines.pointSegDistSq(ctrlx2, ctrly2, x1, y1, x2, y2));
}
public static float getFlatnessSq (float[] coords, int offset) {
return getFlatnessSq(coords[offset + 0], coords[offset + 1], coords[offset + 2],
public static float flatnessSq (float[] coords, int offset) {
return flatnessSq(coords[offset + 0], coords[offset + 1], coords[offset + 2],
coords[offset + 3], coords[offset + 4], coords[offset + 5],
coords[offset + 6], coords[offset + 7]);
}
public static float getFlatness (float x1, float y1, float ctrlx1, float ctrly1,
public static float flatness (float x1, float y1, float ctrlx1, float ctrly1,
float ctrlx2, float ctrly2, float x2, float y2) {
return FloatMath.sqrt(getFlatnessSq(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2));
return FloatMath.sqrt(flatnessSq(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2));
}
public static float getFlatness (float[] coords, int offset) {
return getFlatness(coords[offset + 0], coords[offset + 1], coords[offset + 2],
public static float flatness (float[] coords, int offset) {
return flatness(coords[offset + 0], coords[offset + 1], coords[offset + 2],
coords[offset + 3], coords[offset + 4], coords[offset + 5],
coords[offset + 6], coords[offset + 7]);
}
public static void subdivide (ICubicCurve src, CubicCurve left, CubicCurve right) {
float x1 = src.getX1(), y1 = src.getY1();
float cx1 = src.getCtrlX1(), cy1 = src.getCtrlY1();
float cx2 = src.getCtrlX2(), cy2 = src.getCtrlY2();
float x2 = src.getX2(), y2 = src.getY2();
float x1 = src.x1(), y1 = src.y1();
float cx1 = src.ctrlX1(), cy1 = src.ctrlY1();
float cx2 = src.ctrlX2(), cy2 = src.ctrlY2();
float x2 = src.x2(), y2 = src.y2();
float cx = (cx1 + cx2) / 2f, cy = (cy1 + cy2) / 2f;
cx1 = (x1 + cx1) / 2f;
cy1 = (y1 + cy1) / 2f;
@@ -43,11 +43,11 @@ class CurveCrossingHelper
for (int i = 0; i < rulesSizes[0]; i++) {
rule1 = rules[0][i];
endIndex1 = getCurrentEdge(0, i, edge1, mp1, cp1);
endIndex1 = currentEdge(0, i, edge1, mp1, cp1);
for (int j = 0; j < rulesSizes[1]; j++) {
ipCount = 0;
rule2 = rules[1][j];
endIndex2 = getCurrentEdge(1, j, edge2, mp2, cp2);
endIndex2 = currentEdge(1, j, edge2, mp2, cp2);
if (((rule1 == PathIterator.SEG_LINETO) || (rule1 == PathIterator.SEG_CLOSE)) &&
((rule2 == PathIterator.SEG_LINETO) || (rule2 == PathIterator.SEG_CLOSE))) {
ipCount = GeometryUtil.intersectLinesWithParams(
@@ -167,9 +167,9 @@ class CurveCrossingHelper
for (Iterator<IntersectPoint> iter = isectPoints.iterator();
iter.hasNext();) {
ip = iter.next();
if ((begIndex1 == ip.getBegIndex(true)) &&
(endIndex1 == ip.getEndIndex(true))) {
if (ip.getParam(true) > params[2 * k]) {
if ((begIndex1 == ip.begIndex(true)) &&
(endIndex1 == ip.endIndex(true))) {
if (ip.param(true) > params[2 * k]) {
endIndex1 = -(isectPoints.indexOf(ip) + 1);
ip.setBegIndex1(-(isectPoints.size() + 1));
} else {
@@ -178,9 +178,9 @@ class CurveCrossingHelper
}
}
if ((begIndex2 == ip.getBegIndex(false)) &&
(endIndex2 == ip.getEndIndex(false))) {
if (ip.getParam(false) > params[2 * k + 1]) {
if ((begIndex2 == ip.begIndex(false)) &&
(endIndex2 == ip.endIndex(false))) {
if (ip.param(false) > params[2 * k + 1]) {
endIndex2 = -(isectPoints.indexOf(ip) + 1);
ip.setBegIndex2(-(isectPoints.size() + 1));
} else {
@@ -209,7 +209,7 @@ class CurveCrossingHelper
return isectPoints.toArray(new IntersectPoint[isectPoints.size()]);
}
private int getCurrentEdge (int areaIndex, int index, float[] c, float[] mp, float[] cp) {
private int currentEdge (int areaIndex, int index, float[] c, float[] mp, float[] cp) {
int endIndex = 0;
switch (rules[areaIndex][index]) {
@@ -263,8 +263,8 @@ class CurveCrossingHelper
IntersectPoint ipoint;
for (Iterator<IntersectPoint> i = isectPoints.iterator(); i.hasNext();) {
ipoint = i.next();
if ((Math.abs(ipoint.getX() - x) < Math.pow(10, -6)) &&
(Math.abs(ipoint.getY() - y) < Math.pow(10, -6))) {
if ((Math.abs(ipoint.x() - x) < Math.pow(10, -6)) &&
(Math.abs(ipoint.y() - y) < Math.pow(10, -6))) {
return true;
}
}
+4 -4
View File
@@ -35,7 +35,7 @@ public class Dimension extends AbstractDimension implements Serializable
* Creates a dimension with width and height equal to the supplied dimension.
*/
public Dimension (IDimension d) {
this(d.getWidth(), d.getHeight());
this(d.width(), d.height());
}
/**
@@ -50,16 +50,16 @@ public class Dimension extends AbstractDimension implements Serializable
* Sets the magnitudes of this dimension to be equal to the supplied dimension.
*/
public void setSize (IDimension d) {
setSize(d.getWidth(), d.getHeight());
setSize(d.width(), d.height());
}
@Override // from interface IDimension
public float getWidth () {
public float width () {
return width;
}
@Override // from interface IDimension
public float getHeight () {
public float height () {
return height;
}
}
+4 -4
View File
@@ -37,22 +37,22 @@ public class Ellipse extends AbstractEllipse implements Serializable
}
@Override // from interface IRectangularShape
public float getX () {
public float x () {
return x;
}
@Override // from interface IRectangularShape
public float getY () {
public float y () {
return y;
}
@Override // from interface IRectangularShape
public float getWidth () {
public float width () {
return width;
}
@Override // from interface IRectangularShape
public float getHeight () {
public float height () {
return height;
}
@@ -34,18 +34,18 @@ class FlatteningPathIterator implements PathIterator
this.bufIndex = bufSize;
}
public float getFlatness () {
public float flatness () {
return flatness;
}
public int getRecursionLimit () {
public int recursionLimit () {
return bufLimit;
}
@Override
// from interface PathIterator
public int getWindingRule () {
return p.getWindingRule();
public int windingRule () {
return p.windingRule();
}
@Override
@@ -81,7 +81,7 @@ class FlatteningPathIterator implements PathIterator
}
/** Calculates flat path points for the current segment of the source shape. Line segment is
* flat by itself. Flatness of quad and cubic curves are evaluated by the getFlatnessSq()
* flat by itself. Flatness of quad and cubic curves are evaluated by the flatnessSq()
* method. Curves are subdivided until current flatness is bigger than user defined value and
* subdivision limit isn't exhausted. Single source segments are translated to a series of
* buffer points. The smaller the flatness the bigger the series. Every currentSegment() call
@@ -109,7 +109,7 @@ class FlatteningPathIterator implements PathIterator
}
while (bufSubdiv < bufLimit) {
if (QuadCurves.getFlatnessSq(buf, bufIndex) < flatness2) {
if (QuadCurves.flatnessSq(buf, bufIndex) < flatness2) {
break;
}
@@ -150,7 +150,7 @@ class FlatteningPathIterator implements PathIterator
}
while (bufSubdiv < bufLimit) {
if (CubicCurves.getFlatnessSq(buf, bufIndex) < flatness2) {
if (CubicCurves.flatnessSq(buf, bufIndex) < flatness2) {
break;
}
+2 -2
View File
@@ -319,7 +319,7 @@ public class FloatMath
* Returns the (shortest) distance between two angles, assuming that both angles are in
* [-pi, +pi].
*/
public static float getAngularDistance (float a1, float a2)
public static float angularDistance (float a1, float a2)
{
float ma1 = mirrorAngle(a1), ma2 = mirrorAngle(a2);
return Math.min(Math.abs(a1 - a2), Math.abs(ma1 - ma2));
@@ -329,7 +329,7 @@ public class FloatMath
* Returns the (shortest) difference between two angles, assuming that both angles are in
* [-pi, +pi].
*/
public static float getAngularDifference (float a1, float a2)
public static float angularDifference (float a1, float a2)
{
float ma1 = mirrorAngle(a1), ma2 = mirrorAngle(a2);
float diff = a1 - a2, mdiff = ma2 - ma1;
+7 -7
View File
@@ -22,31 +22,31 @@ public interface IArc extends IRectangularShape, Cloneable
int PIE = 2;
/** Returns the type of this arc: {@link #OPEN}, etc. */
int getArcType ();
int arcType ();
/** Returns the starting angle of this arc. */
float getAngleStart ();
float angleStart ();
/** Returns the angular extent of this arc. */
float getAngleExtent ();
float angleExtent ();
/** Returns the intersection of the ray from the center (defined by the starting angle) and the
* elliptical boundary of the arc. */
Point getStartPoint ();
Point startPoint ();
/** Writes the intersection of the ray from the center (defined by the starting angle) and the
* elliptical boundary of the arc into {@code target}.
* @return the supplied point. */
Point getStartPoint (Point target);
Point startPoint (Point target);
/** Returns the intersection of the ray from the center (defined by the starting angle plus the
* angular extent of the arc) and the elliptical boundary of the arc. */
Point getEndPoint ();
Point endPoint ();
/** Writes the intersection of the ray from the center (defined by the starting angle plus the
* angular extent of the arc) and the elliptical boundary of the arc into {@code target}.
* @return the supplied point. */
Point getEndPoint (Point target);
Point endPoint (Point target);
/** Returns whether the specified angle is within the angular extents of this arc. */
boolean containsAngle (float angle);
+14 -14
View File
@@ -10,48 +10,48 @@ package pythagoras.f;
public interface ICubicCurve extends IShape, Cloneable
{
/** Returns the x-coordinate of the start of this curve. */
float getX1 ();
float x1 ();
/** Returns the y-coordinate of the start of this curve. */
float getY1 ();
float y1 ();
/** Returns the x-coordinate of the first control point. */
float getCtrlX1 ();
float ctrlX1 ();
/** Returns the y-coordinate of the first control point. */
float getCtrlY1 ();
float ctrlY1 ();
/** Returns the x-coordinate of the second control point. */
float getCtrlX2 ();
float ctrlX2 ();
/** Returns the y-coordinate of the second control point. */
float getCtrlY2 ();
float ctrlY2 ();
/** Returns the x-coordinate of the end of this curve. */
float getX2 ();
float x2 ();
/** Returns the y-coordinate of the end of this curve. */
float getY2 ();
float y2 ();
/** Returns a copy of the starting point of this curve. */
Point getP1 ();
Point p1 ();
/** Returns a copy of the first control point of this curve. */
Point getCtrlP1 ();
Point ctrlP1 ();
/** Returns a copy of the second control point of this curve. */
Point getCtrlP2 ();
Point ctrlP2 ();
/** Returns a copy of the ending point of this curve. */
Point getP2 ();
Point p2 ();
/** Returns the square of the flatness (maximum distance of a control point from the line
* connecting the end points) of this curve. */
float getFlatnessSq ();
float flatnessSq ();
/** Returns the flatness (maximum distance of a control point from the line connecting the end
* points) of this curve. */
float getFlatness ();
float flatness ();
/** Subdivides this curve and stores the results into {@code left} and {@code right}. */
void subdivide (CubicCurve left, CubicCurve right);
+2 -2
View File
@@ -12,12 +12,12 @@ public interface IDimension extends Cloneable
/**
* Returns the magnitude in the x-dimension.
*/
float getWidth ();
float width ();
/**
* Returns the magnitude in the y-dimension.
*/
float getHeight ();
float height ();
/**
* Returns a mutable copy of this dimension.
+8 -8
View File
@@ -10,30 +10,30 @@ package pythagoras.f;
public interface ILine extends IShape, Cloneable
{
/** Returns the x-coordinate of the start of this line. */
float getX1 ();
float x1 ();
/** Returns the y-coordinate of the start of this line. */
float getY1 ();
float y1 ();
/** Returns the x-coordinate of the end of this line. */
float getX2 ();
float x2 ();
/** Returns the y-coordinate of the end of this line. */
float getY2 ();
float y2 ();
/** Returns a copy of the starting point of this line. */
Point getP1 ();
Point p1 ();
/** Initializes the supplied point with this line's starting point.
* @return the supplied point. */
Point getP1 (Point target);
Point p1 (Point target);
/** Returns a copy of the ending point of this line. */
Point getP2 ();
Point p2 ();
/** Initializes the supplied point with this line's ending point.
* @return the supplied point. */
Point getP2 (Point target);
Point p2 (Point target);
/** Returns the square of the distance from the specified point to the line defined by this
* line segment. */
+2 -2
View File
@@ -10,10 +10,10 @@ package pythagoras.f;
public interface IPoint extends Cloneable
{
/** Returns this point's x-coordinate. */
float getX ();
float x ();
/** Returns this point's y-coordinate. */
float getY ();
float y ();
/** Returns the squared Euclidian distance between this point and the specified point. */
float distanceSq (float px, float py);
+11 -11
View File
@@ -10,39 +10,39 @@ package pythagoras.f;
public interface IQuadCurve extends IShape, Cloneable
{
/** Returns the x-coordinate of the start of this curve. */
float getX1 ();
float x1 ();
/** Returns the y-coordinate of the start of this curve. */
float getY1 ();
float y1 ();
/** Returns the x-coordinate of the control point. */
float getCtrlX ();
float ctrlX ();
/** Returns the y-coordinate of the control point. */
float getCtrlY ();
float ctrlY ();
/** Returns the x-coordinate of the end of this curve. */
float getX2 ();
float x2 ();
/** Returns the y-coordinate of the end of this curve. */
float getY2 ();
float y2 ();
/** Returns a copy of the starting point of this curve. */
Point getP1 ();
Point p1 ();
/** Returns a copy of the control point of this curve. */
Point getCtrlP ();
Point ctrlP ();
/** Returns a copy of the ending point of this curve. */
Point getP2 ();
Point p2 ();
/** Returns the square of the flatness (maximum distance of a control point from the line
* connecting the end points) of this curve. */
float getFlatnessSq ();
float flatnessSq ();
/** Returns the flatness (maximum distance of a control point from the line connecting the end
* points) of this curve. */
float getFlatness ();
float flatness ();
/** Subdivides this curve and stores the results into {@code left} and {@code right}. */
void subdivide (QuadCurve left, QuadCurve right);
+4 -4
View File
@@ -24,18 +24,18 @@ public interface IRectangle extends IRectangularShape, Cloneable
int OUT_BOTTOM = 8;
/** Returns a copy of this rectangle's upper-left corner. */
Point getLocation ();
Point location ();
/** Initializes the supplied point with this rectangle's upper-left corner.
* @return the supplied point. */
Point getLocation (Point target);
Point location (Point target);
/** Returns a copy of this rectangle's size. */
Dimension getSize ();
Dimension size ();
/** Initializes the supplied dimension with this rectangle's size.
* @return the supplied dimension. */
Dimension getSize (Dimension target);
Dimension size (Dimension target);
/** Returns the intersection of the specified rectangle and this rectangle (i.e. the largest
* rectangle contained in both this and the specified rectangle). */
@@ -12,48 +12,48 @@ package pythagoras.f;
public interface IRectangularShape extends IShape
{
/** Returns the x-coordinate of the upper-left corner of the framing rectangle. */
float getX ();
float x ();
/** Returns the y-coordinate of the upper-left corner of the framing rectangle. */
float getY ();
float y ();
/** Returns the width of the framing rectangle. */
float getWidth ();
float width ();
/** Returns the height of the framing rectangle. */
float getHeight ();
float height ();
/** Returns the minimum x,y-coordinate of the framing rectangle. */
Point getMin ();
Point min ();
/** Returns the minimum x-coordinate of the framing rectangle. */
float getMinX ();
float minX ();
/** Returns the minimum y-coordinate of the framing rectangle. */
float getMinY ();
float minY ();
/** Returns the maximum x,y-coordinate of the framing rectangle. */
Point getMax ();
Point max ();
/** Returns the maximum x-coordinate of the framing rectangle. */
float getMaxX ();
float maxX ();
/** Returns the maximum y-coordinate of the framing rectangle. */
float getMaxY ();
float maxY ();
/** Returns the center of the framing rectangle. */
Point getCenter ();
Point center ();
/** Returns the x-coordinate of the center of the framing rectangle. */
float getCenterX ();
float centerX ();
/** Returns the y-coordinate of the center of the framing rectangle. */
float getCenterY ();
float centerY ();
/** Returns a copy of this shape's framing rectangle. */
Rectangle getFrame ();
Rectangle frame ();
/** Initializes the supplied rectangle with this shape's framing rectangle.
* @return the supplied rectangle. */
Rectangle getFrame (Rectangle target);
Rectangle frame (Rectangle target);
}
@@ -10,10 +10,10 @@ package pythagoras.f;
public interface IRoundRectangle extends IRectangularShape, Cloneable
{
/** Returns the width of the corner arc. */
float getArcWidth ();
float arcWidth ();
/** Returns the height of the corner arc. */
float getArcHeight ();
float arcHeight ();
/** Returns a mutable copy of this round rectangle. */
RoundRectangle clone ();
+4 -4
View File
@@ -31,18 +31,18 @@ public interface IShape
boolean intersects (IRectangle r);
/** Returns a copy of the bounding rectangle for this shape. */
Rectangle getBounds ();
Rectangle bounds ();
/** Initializes the supplied rectangle with this shape's bounding rectangle.
* @return the supplied rectangle. */
Rectangle getBounds (Rectangle target);
Rectangle bounds (Rectangle target);
/**
* Returns an iterator over the path described by this shape.
*
* @param at if supplied, the points in the path are transformed using this.
*/
PathIterator getPathIterator (Transform at);
PathIterator pathIterator (Transform at);
/**
* Returns an iterator over the path described by this shape.
@@ -52,5 +52,5 @@ public interface IShape
* distance the lines are allowed to deviate from the approximated curve, thus a higher
* flatness value generally allows for a path with fewer segments.
*/
PathIterator getPathIterator (Transform at, float flatness);
PathIterator pathIterator (Transform at, float flatness);
}
+2 -2
View File
@@ -10,10 +10,10 @@ package pythagoras.f;
public interface IVector
{
/** Returns the x-component of this vector. */
float getX ();
float x ();
/** Returns the y-component of this vector. */
float getY ();
float y ();
/** Computes and returns the dot product of this and the specified other vector. */
float dot (IVector other);
@@ -13,32 +13,32 @@ public class IdentityTransform extends AbstractTransform
public static final int GENERALITY = 0;
@Override // from Transform
public float getUniformScale () {
public float uniformScale () {
return 1;
}
@Override // from Transform
public float getScaleX () {
public float scaleX () {
return 1;
}
@Override // from Transform
public float getScaleY () {
public float scaleY () {
return 1;
}
@Override // from Transform
public float getRotation () {
public float rotation () {
return 0;
}
@Override // from Transform
public float getTx () {
public float tx () {
return 0;
}
@Override // from Transform
public float getTy () {
public float ty () {
return 0;
}
@@ -36,31 +36,31 @@ class IntersectPoint
this.y = y;
}
public int getBegIndex (boolean isCurrentArea) {
public int begIndex (boolean isCurrentArea) {
return isCurrentArea ? begIndex1 : begIndex2;
}
public int getEndIndex (boolean isCurrentArea) {
public int endIndex (boolean isCurrentArea) {
return isCurrentArea ? endIndex1 : endIndex2;
}
public int getRuleIndex (boolean isCurrentArea) {
public int ruleIndex (boolean isCurrentArea) {
return isCurrentArea ? ruleIndex1 : ruleIndex2;
}
public float getParam (boolean isCurrentArea) {
public float param (boolean isCurrentArea) {
return isCurrentArea ? param1 : param2;
}
public int getRule (boolean isCurrentArea) {
public int rule (boolean isCurrentArea) {
return isCurrentArea ? rule1 : rule2;
}
public float getX () {
public float x () {
return x;
}
public float getY () {
public float y () {
return y;
}
+5 -5
View File
@@ -57,26 +57,26 @@ public class Line extends AbstractLine implements Serializable
* Sets the start and end of this line to the specified points.
*/
public void setLine (IPoint p1, IPoint p2) {
setLine(p1.getX(), p1.getY(), p2.getY(), p2.getY());
setLine(p1.x(), p1.y(), p2.y(), p2.y());
}
@Override // from interface ILine
public float getX1 () {
public float x1 () {
return x1;
}
@Override // from interface ILine
public float getY1 () {
public float y1 () {
return y1;
}
@Override // from interface ILine
public float getX2 () {
public float x2 () {
return x2;
}
@Override // from interface ILine
public float getY2 () {
public float y2 () {
return y2;
}
}
@@ -34,32 +34,32 @@ public class NonUniformTransform extends AbstractTransform
}
@Override // from Transform
public float getUniformScale () {
public float uniformScale () {
return (scaleX + scaleY) / 2; // TODO: is this sane
}
@Override // from Transform
public float getScaleX () {
public float scaleX () {
return scaleX;
}
@Override // from Transform
public float getScaleY () {
public float scaleY () {
return scaleY;
}
@Override // from Transform
public float getRotation () {
public float rotation () {
return rotation;
}
@Override // from Transform
public float getTx () {
public float tx () {
return tx;
}
@Override // from Transform
public float getTy () {
public float ty () {
return ty;
}
@@ -160,14 +160,14 @@ public class NonUniformTransform extends AbstractTransform
return other.preConcatenate(this);
}
float otx = other.getTx(), oty = other.getTy();
float otx = other.tx(), oty = other.ty();
float sina = FloatMath.sin(rotation), cosa = FloatMath.cos(rotation);
float ntx = (otx*cosa - oty*sina) * scaleX + getTx();
float nty = (otx*sina + oty*cosa) * scaleY + getTy();
float ntx = (otx*cosa - oty*sina) * scaleX + tx();
float nty = (otx*sina + oty*cosa) * scaleY + ty();
float nrotation = FloatMath.normalizeAngle(rotation + other.getRotation());
float nscaleX = scaleX * other.getScaleX();
float nscaleY = scaleY * other.getScaleY();
float nrotation = FloatMath.normalizeAngle(rotation + other.rotation());
float nscaleX = scaleX * other.scaleX();
float nscaleY = scaleY * other.scaleY();
return new NonUniformTransform(nscaleX, nscaleY, nrotation, ntx, nty);
}
@@ -177,13 +177,13 @@ public class NonUniformTransform extends AbstractTransform
return other.concatenate(this);
}
float tx = getTx(), ty = getTy();
float sina = FloatMath.sin(other.getRotation()), cosa = FloatMath.cos(other.getRotation());
float ntx = (tx*cosa - ty*sina) * other.getScaleX() + other.getTx();
float nty = (tx*sina + ty*cosa) * other.getScaleY() + other.getTy();
float nrotation = FloatMath.normalizeAngle(other.getRotation() + rotation);
float nscaleX = other.getScaleX() * scaleX;
float nscaleY = other.getScaleY() * scaleY;
float tx = tx(), ty = ty();
float sina = FloatMath.sin(other.rotation()), cosa = FloatMath.cos(other.rotation());
float ntx = (tx*cosa - ty*sina) * other.scaleX() + other.tx();
float nty = (tx*sina + ty*cosa) * other.scaleY() + other.ty();
float nrotation = FloatMath.normalizeAngle(other.rotation() + rotation);
float nscaleX = other.scaleX() * scaleX;
float nscaleY = other.scaleY() * scaleY;
return new NonUniformTransform(nscaleX, nscaleY, nrotation, ntx, nty);
}
@@ -193,17 +193,17 @@ public class NonUniformTransform extends AbstractTransform
return other.lerp(this, -t); // TODO: is this correct?
}
float ntx = FloatMath.lerpa(tx, other.getTx(), t);
float nty = FloatMath.lerpa(ty, other.getTy(), t);
float nrotation = FloatMath.lerpa(rotation, other.getRotation(), t);
float nscaleX = FloatMath.lerp(scaleX, other.getScaleX(), t);
float nscaleY = FloatMath.lerp(scaleY, other.getScaleY(), t);
float ntx = FloatMath.lerpa(tx, other.tx(), t);
float nty = FloatMath.lerpa(ty, other.ty(), t);
float nrotation = FloatMath.lerpa(rotation, other.rotation(), t);
float nscaleX = FloatMath.lerp(scaleX, other.scaleX(), t);
float nscaleY = FloatMath.lerp(scaleY, other.scaleY(), t);
return new NonUniformTransform(nscaleX, nscaleY, nrotation, ntx, nty);
}
@Override // from Transform
public Point transform (IPoint p, Point into) {
return Points.transform(p.getX(), p.getY(), scaleX, scaleY, rotation, tx, ty, into);
return Points.transform(p.x(), p.y(), scaleX, scaleY, rotation, tx, ty, into);
}
@Override // from Transform
@@ -211,7 +211,7 @@ public class NonUniformTransform extends AbstractTransform
float sina = FloatMath.sin(rotation), cosa = FloatMath.cos(rotation);
for (int ii = 0; ii < count; ii++) {
IPoint s = src[srcOff++];
Points.transform(s.getX(), s.getY(), scaleX, scaleY, sina, cosa, tx, ty, dst[dstOff++]);
Points.transform(s.x(), s.y(), scaleX, scaleY, sina, cosa, tx, ty, dst[dstOff++]);
}
}
@@ -228,17 +228,17 @@ public class NonUniformTransform extends AbstractTransform
@Override // from Transform
public Point inverseTransform (IPoint p, Point into) {
return Points.inverseTransform(p.getX(), p.getY(), scaleX, scaleY, rotation, tx, ty, into);
return Points.inverseTransform(p.x(), p.y(), scaleX, scaleY, rotation, tx, ty, into);
}
@Override // from Transform
public Vector transform (IVector v, Vector into) {
return Vectors.transform(v.getX(), v.getY(), scaleX, scaleY, rotation, into);
return Vectors.transform(v.x(), v.y(), scaleX, scaleY, rotation, into);
}
@Override // from Transform
public Vector inverseTransform (IVector v, Vector into) {
return Vectors.inverseTransform(v.getX(), v.getY(), scaleX, scaleY, rotation, into);
return Vectors.inverseTransform(v.x(), v.y(), scaleX, scaleY, rotation, into);
}
@Override // from Transform
@@ -253,7 +253,7 @@ public class NonUniformTransform extends AbstractTransform
@Override
public String toString () {
return "nonunif [scale=" + getScale() + ", rot=" + rotation +
", trans=" + getTranslation() + "]";
return "nonunif [scale=" + scale() + ", rot=" + rotation +
", trans=" + translation() + "]";
}
}
+17 -17
View File
@@ -35,8 +35,8 @@ public final class Path implements IShape, Cloneable
public Path (IShape shape) {
this(WIND_NON_ZERO, BUFFER_SIZE);
PathIterator p = shape.getPathIterator(null);
setWindingRule(p.getWindingRule());
PathIterator p = shape.pathIterator(null);
setWindingRule(p.windingRule());
append(p, false);
}
@@ -47,7 +47,7 @@ public final class Path implements IShape, Cloneable
this.rule = rule;
}
public int getWindingRule () {
public int windingRule () {
return rule;
}
@@ -98,7 +98,7 @@ public final class Path implements IShape, Cloneable
}
public void append (IShape shape, boolean connect) {
PathIterator p = shape.getPathIterator(null);
PathIterator p = shape.pathIterator(null);
append(p, connect);
}
@@ -135,7 +135,7 @@ public final class Path implements IShape, Cloneable
}
}
public Point getCurrentPoint () {
public Point currentPoint () {
if (typeSize == 0) {
return null;
}
@@ -170,12 +170,12 @@ public final class Path implements IShape, Cloneable
}
@Override // from interface IShape
public Rectangle getBounds () {
return getBounds(new Rectangle());
public Rectangle bounds () {
return bounds(new Rectangle());
}
@Override // from interface IShape
public Rectangle getBounds (Rectangle target) {
public Rectangle bounds (Rectangle target) {
float rx1, ry1, rx2, ry2;
if (pointSize == 0) {
rx1 = ry1 = rx2 = ry2 = 0f;
@@ -205,7 +205,7 @@ public final class Path implements IShape, Cloneable
@Override // from interface IShape
public boolean isEmpty () {
// TODO: will this be insanely difficult to do correctly?
return getBounds().isEmpty();
return bounds().isEmpty();
}
@Override // from interface IShape
@@ -227,27 +227,27 @@ public final class Path implements IShape, Cloneable
@Override // from interface IShape
public boolean contains (IPoint p) {
return contains(p.getX(), p.getY());
return contains(p.x(), p.y());
}
@Override // from interface IShape
public boolean contains (IRectangle r) {
return contains(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return contains(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IShape
public boolean intersects (IRectangle r) {
return intersects(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return intersects(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t) {
public PathIterator pathIterator (Transform t) {
return new Iterator(this, t);
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t, float flatness) {
return new FlatteningPathIterator(getPathIterator(t), flatness);
public PathIterator pathIterator (Transform t, float flatness) {
return new FlatteningPathIterator(pathIterator(t), flatness);
}
// @Override // can't declare @Override due to GWT
@@ -320,8 +320,8 @@ public final class Path implements IShape, Cloneable
this.t = at;
}
@Override public int getWindingRule () {
return p.getWindingRule();
@Override public int windingRule () {
return p.windingRule();
}
@Override public boolean isDone () {
+1 -1
View File
@@ -36,7 +36,7 @@ public interface PathIterator
/**
* Returns the winding rule used to determine the interior of this path.
*/
int getWindingRule ();
int windingRule ();
/**
* Returns true if this path has no additional segments.
+4 -4
View File
@@ -34,13 +34,13 @@ public class Point extends AbstractPoint implements Serializable
* Constructs a point with coordinates equal to the supplied point.
*/
public Point (IPoint p) {
set(p.getX(), p.getY());
set(p.x(), p.y());
}
/** Sets the coordinates of this point to be equal to those of the supplied point.
* @return a reference to this this, for chaining. */
public Point set (IPoint p) {
return set(p.getX(), p.getY());
return set(p.x(), p.y());
}
/** Sets the coordinates of this point to the supplied values.
@@ -70,12 +70,12 @@ public class Point extends AbstractPoint implements Serializable
}
@Override // from interface IPoint
public float getX () {
public float x () {
return x;
}
@Override // from interface IPoint
public float getY () {
public float y () {
return y;
}
}
+12 -12
View File
@@ -58,7 +58,7 @@ public class QuadCurve extends AbstractQuadCurve implements Serializable
* Configures the start, control, and end points for this curve.
*/
public void setCurve (IPoint p1, IPoint cp, IPoint p2) {
setCurve(p1.getX(), p1.getY(), cp.getX(), cp.getY(), p2.getX(), p2.getY());
setCurve(p1.x(), p1.y(), cp.x(), cp.y(), p2.x(), p2.y());
}
/**
@@ -76,9 +76,9 @@ public class QuadCurve extends AbstractQuadCurve implements Serializable
* specified offset in the {@code points} array.
*/
public void setCurve (IPoint[] points, int offset) {
setCurve(points[offset + 0].getX(), points[offset + 0].getY(),
points[offset + 1].getX(), points[offset + 1].getY(),
points[offset + 2].getX(), points[offset + 2].getY());
setCurve(points[offset + 0].x(), points[offset + 0].y(),
points[offset + 1].x(), points[offset + 1].y(),
points[offset + 2].x(), points[offset + 2].y());
}
/**
@@ -86,37 +86,37 @@ public class QuadCurve extends AbstractQuadCurve implements Serializable
* curve.
*/
public void setCurve (IQuadCurve curve) {
setCurve(curve.getX1(), curve.getY1(), curve.getCtrlX(), curve.getCtrlY(),
curve.getX2(), curve.getY2());
setCurve(curve.x1(), curve.y1(), curve.ctrlX(), curve.ctrlY(),
curve.x2(), curve.y2());
}
@Override // from interface IQuadCurve
public float getX1 () {
public float x1 () {
return x1;
}
@Override // from interface IQuadCurve
public float getY1 () {
public float y1 () {
return y1;
}
@Override // from interface IQuadCurve
public float getCtrlX () {
public float ctrlX () {
return ctrlx;
}
@Override // from interface IQuadCurve
public float getCtrlY () {
public float ctrlY () {
return ctrly;
}
@Override // from interface IQuadCurve
public float getX2 () {
public float x2 () {
return x2;
}
@Override // from interface IQuadCurve
public float getY2 () {
public float y2 () {
return y2;
}
}
+10 -10
View File
@@ -9,35 +9,35 @@ package pythagoras.f;
*/
public class QuadCurves
{
public static float getFlatnessSq (float x1, float y1, float ctrlx, float ctrly,
public static float flatnessSq (float x1, float y1, float ctrlx, float ctrly,
float x2, float y2) {
return Lines.pointSegDistSq(ctrlx, ctrly, x1, y1, x2, y2);
}
public static float getFlatnessSq (float[] coords, int offset) {
public static float flatnessSq (float[] coords, int offset) {
return Lines.pointSegDistSq(coords[offset + 2], coords[offset + 3],
coords[offset + 0], coords[offset + 1],
coords[offset + 4], coords[offset + 5]);
}
public static float getFlatness (float x1, float y1, float ctrlx, float ctrly,
public static float flatness (float x1, float y1, float ctrlx, float ctrly,
float x2, float y2) {
return Lines.pointSegDist(ctrlx, ctrly, x1, y1, x2, y2);
}
public static float getFlatness (float[] coords, int offset) {
public static float flatness (float[] coords, int offset) {
return Lines.pointSegDist(coords[offset + 2], coords[offset + 3],
coords[offset + 0], coords[offset + 1],
coords[offset + 4], coords[offset + 5]);
}
public static void subdivide (IQuadCurve src, QuadCurve left, QuadCurve right) {
float x1 = src.getX1();
float y1 = src.getY1();
float cx = src.getCtrlX();
float cy = src.getCtrlY();
float x2 = src.getX2();
float y2 = src.getY2();
float x1 = src.x1();
float y1 = src.y1();
float cx = src.ctrlX();
float cy = src.ctrlY();
float x2 = src.x2();
float y2 = src.y2();
float cx1 = (x1 + cx) / 2f;
float cy1 = (y1 + cy) / 2f;
float cx2 = (x2 + cx) / 2f;
+16 -16
View File
@@ -33,14 +33,14 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Constructs a rectangle with the supplied upper-left corner and dimensions (0,0).
*/
public Rectangle (IPoint p) {
setBounds(p.getX(), p.getY(), 0, 0);
setBounds(p.x(), p.y(), 0, 0);
}
/**
* Constructs a rectangle with upper-left corner at (0,) and the supplied dimensions.
*/
public Rectangle (IDimension d) {
setBounds(0, 0, d.getWidth(), d.getHeight());
setBounds(0, 0, d.width(), d.height());
}
/**
@@ -48,7 +48,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* dimensions.
*/
public Rectangle (IPoint p, IDimension d) {
setBounds(p.getX(), p.getY(), d.getWidth(), d.getHeight());
setBounds(p.x(), p.y(), d.width(), d.height());
}
/**
@@ -62,7 +62,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Constructs a rectangle with bounds equal to the supplied rectangle.
*/
public Rectangle (IRectangle r) {
setBounds(r.getX(), r.getY(), r.getWidth(), r.getHeight());
setBounds(r.x(), r.y(), r.width(), r.height());
}
/**
@@ -77,7 +77,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Sets the upper-left corner of this rectangle to the supplied point.
*/
public void setLocation (IPoint p) {
setLocation(p.getX(), p.getY());
setLocation(p.x(), p.y());
}
/**
@@ -92,7 +92,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Sets the size of this rectangle to the supplied dimensions.
*/
public void setSize (IDimension d) {
setSize(d.getWidth(), d.getHeight());
setSize(d.width(), d.height());
}
/**
@@ -109,7 +109,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Sets the bounds of this rectangle to those of the supplied rectangle.
*/
public void setBounds (IRectangle r) {
setBounds(r.getX(), r.getY(), r.getWidth(), r.getHeight());
setBounds(r.x(), r.y(), r.width(), r.height());
}
/**
@@ -147,37 +147,37 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Expands the bounds of this rectangle to contain the supplied point.
*/
public void add (IPoint p) {
add(p.getX(), p.getY());
add(p.x(), p.y());
}
/**
* Expands the bounds of this rectangle to contain the supplied rectangle.
*/
public void add (IRectangle r) {
float x1 = Math.min(x, r.getX());
float x2 = Math.max(x + width, r.getX() + r.getWidth());
float y1 = Math.min(y, r.getY());
float y2 = Math.max(y + height, r.getY() + r.getHeight());
float x1 = Math.min(x, r.x());
float x2 = Math.max(x + width, r.x() + r.width());
float y1 = Math.min(y, r.y());
float y2 = Math.max(y + height, r.y() + r.height());
setBounds(x1, y1, x2 - x1, y2 - y1);
}
@Override // from interface IRectangularShape
public float getX () {
public float x () {
return x;
}
@Override // from interface IRectangularShape
public float getY () {
public float y () {
return y;
}
@Override // from interface IRectangularShape
public float getWidth () {
public float width () {
return width;
}
@Override // from interface IRectangularShape
public float getHeight () {
public float height () {
return height;
}
+8 -8
View File
@@ -13,10 +13,10 @@ public class Rectangles
* Intersects the supplied two rectangles, writing the result into {@code dst}.
*/
public static void intersect (IRectangle src1, IRectangle src2, Rectangle dst) {
float x1 = Math.max(src1.getMinX(), src2.getMinX());
float y1 = Math.max(src1.getMinY(), src2.getMinY());
float x2 = Math.min(src1.getMaxX(), src2.getMaxX());
float y2 = Math.min(src1.getMaxY(), src2.getMaxY());
float x1 = Math.max(src1.minX(), src2.minX());
float y1 = Math.max(src1.minY(), src2.minY());
float x2 = Math.min(src1.maxX(), src2.maxX());
float y2 = Math.min(src1.maxY(), src2.maxY());
dst.setBounds(x1, y1, x2 - x1, y2 - y1);
}
@@ -24,10 +24,10 @@ public class Rectangles
* Unions the supplied two rectangles, writing the result into {@code dst}.
*/
public static void union (IRectangle src1, IRectangle src2, Rectangle dst) {
float x1 = Math.min(src1.getMinX(), src2.getMinX());
float y1 = Math.min(src1.getMinY(), src2.getMinY());
float x2 = Math.max(src1.getMaxX(), src2.getMaxX());
float y2 = Math.max(src1.getMaxY(), src2.getMaxY());
float x1 = Math.min(src1.minX(), src2.minX());
float y1 = Math.min(src1.minY(), src2.minY());
float x2 = Math.max(src1.maxX(), src2.maxX());
float y2 = Math.max(src1.maxY(), src2.maxY());
dst.setBounds(x1, y1, x2 - x1, y2 - y1);
}
}
@@ -19,7 +19,7 @@ public abstract class RectangularShape implements IRectangularShape
* Sets the location and size of the framing rectangle of this shape to the supplied values.
*/
public void setFrame (IPoint loc, IDimension size) {
setFrame(loc.getX(), loc.getY(), size.getWidth(), size.getHeight());
setFrame(loc.x(), loc.y(), size.width(), size.height());
}
/**
@@ -27,7 +27,7 @@ public abstract class RectangularShape implements IRectangularShape
* supplied rectangle.
*/
public void setFrame (IRectangle r) {
setFrame(r.getX(), r.getY(), r.getWidth(), r.getHeight());
setFrame(r.x(), r.y(), r.width(), r.height());
}
/**
@@ -58,7 +58,7 @@ public abstract class RectangularShape implements IRectangularShape
* diagonal line.
*/
public void setFrameFromDiagonal (IPoint p1, IPoint p2) {
setFrameFromDiagonal(p1.getX(), p1.getY(), p2.getX(), p2.getY());
setFrameFromDiagonal(p1.x(), p1.y(), p2.x(), p2.y());
}
/**
@@ -77,100 +77,100 @@ public abstract class RectangularShape implements IRectangularShape
* center and corner points.
*/
public void setFrameFromCenter (IPoint center, IPoint corner) {
setFrameFromCenter(center.getX(), center.getY(), corner.getX(), corner.getY());
setFrameFromCenter(center.x(), center.y(), corner.x(), corner.y());
}
@Override // from IRectangularShape
public Point getMin ()
public Point min ()
{
return new Point(getMinX(), getMinY());
return new Point(minX(), minY());
}
@Override // from IRectangularShape
public float getMinX () {
return getX();
public float minX () {
return x();
}
@Override // from IRectangularShape
public float getMinY () {
return getY();
public float minY () {
return y();
}
@Override // from IRectangularShape
public Point getMax ()
public Point max ()
{
return new Point(getMaxX(), getMaxY());
return new Point(maxX(), maxY());
}
@Override // from IRectangularShape
public float getMaxX () {
return getX() + getWidth();
public float maxX () {
return x() + width();
}
@Override // from IRectangularShape
public float getMaxY () {
return getY() + getHeight();
public float maxY () {
return y() + height();
}
@Override // from IRectangularShape
public Point getCenter ()
public Point center ()
{
return new Point(getCenterX(), getCenterY());
return new Point(centerX(), centerY());
}
@Override // from IRectangularShape
public float getCenterX () {
return getX() + getWidth() / 2;
public float centerX () {
return x() + width() / 2;
}
@Override // from IRectangularShape
public float getCenterY () {
return getY() + getHeight() / 2;
public float centerY () {
return y() + height() / 2;
}
@Override // from IRectangularShape
public Rectangle getFrame () {
return getBounds();
public Rectangle frame () {
return bounds();
}
@Override // from IRectangularShape
public Rectangle getFrame (Rectangle target) {
return getBounds(target);
public Rectangle frame (Rectangle target) {
return bounds(target);
}
@Override // from interface IShape
public boolean isEmpty () {
return getWidth() <= 0 || getHeight() <= 0;
return width() <= 0 || height() <= 0;
}
@Override // from interface IShape
public boolean contains (IPoint point) {
return contains(point.getX(), point.getY());
return contains(point.x(), point.y());
}
@Override // from interface IShape
public boolean contains (IRectangle rect) {
return contains(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
return contains(rect.x(), rect.y(), rect.width(), rect.height());
}
@Override // from interface IShape
public boolean intersects (IRectangle rect) {
return intersects(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
return intersects(rect.x(), rect.y(), rect.width(), rect.height());
}
@Override // from interface IShape
public Rectangle getBounds () {
return getBounds(new Rectangle());
public Rectangle bounds () {
return bounds(new Rectangle());
}
@Override // from interface IShape
public Rectangle getBounds (Rectangle target) {
target.setBounds(getX(), getY(), getWidth(), getHeight());
public Rectangle bounds (Rectangle target) {
target.setBounds(x(), y(), width(), height());
return target;
}
@Override // from interface IShape
public PathIterator getPathIterator (Transform t, float flatness) {
return new FlatteningPathIterator(getPathIterator(t), flatness);
public PathIterator pathIterator (Transform t, float flatness) {
return new FlatteningPathIterator(pathIterator(t), flatness);
}
}
+19 -19
View File
@@ -29,32 +29,32 @@ public class RigidTransform extends AbstractTransform
}
@Override // from Transform
public float getUniformScale () {
public float uniformScale () {
return 1;
}
@Override // from Transform
public float getScaleX () {
public float scaleX () {
return 1;
}
@Override // from Transform
public float getScaleY () {
public float scaleY () {
return 1;
}
@Override // from Transform
public float getRotation () {
public float rotation () {
return rotation;
}
@Override // from Transform
public float getTx () {
public float tx () {
return tx;
}
@Override // from Transform
public float getTy () {
public float ty () {
return ty;
}
@@ -102,7 +102,7 @@ public class RigidTransform extends AbstractTransform
@Override // from Transform
public Transform invert () {
Vector t = getTranslation().negateLocal().rotateLocal(-rotation);
Vector t = translation().negateLocal().rotateLocal(-rotation);
return new RigidTransform(-rotation, t.x, t.y);
}
@@ -112,9 +112,9 @@ public class RigidTransform extends AbstractTransform
return other.preConcatenate(this);
}
Vector nt = other.getTranslation();
nt.rotateAndAdd(rotation, getTranslation(), nt);
float nrotation = FloatMath.normalizeAngle(rotation + other.getRotation());
Vector nt = other.translation();
nt.rotateAndAdd(rotation, translation(), nt);
float nrotation = FloatMath.normalizeAngle(rotation + other.rotation());
return new RigidTransform(nrotation, nt.x, nt.y);
}
@@ -124,9 +124,9 @@ public class RigidTransform extends AbstractTransform
return other.concatenate(this);
}
Vector nt = getTranslation();
nt.rotateAndAdd(other.getRotation(), other.getTranslation(), nt);
float nrotation = FloatMath.normalizeAngle(other.getRotation() + rotation);
Vector nt = translation();
nt.rotateAndAdd(other.rotation(), other.translation(), nt);
float nrotation = FloatMath.normalizeAngle(other.rotation() + rotation);
return new RigidTransform(nrotation, nt.x, nt.y);
}
@@ -135,13 +135,13 @@ public class RigidTransform extends AbstractTransform
if (generality() < other.generality()) {
return other.lerp(this, -t); // TODO: is this correct?
}
Vector nt = getTranslation().lerpLocal(other.getTranslation(), t);
return new RigidTransform(FloatMath.lerpa(rotation, other.getRotation(), t), nt.x, nt.y);
Vector nt = translation().lerpLocal(other.translation(), t);
return new RigidTransform(FloatMath.lerpa(rotation, other.rotation(), t), nt.x, nt.y);
}
@Override // from Transform
public Point transform (IPoint p, Point into) {
return Points.transform(p.getX(), p.getY(), 1, 1, rotation, tx, ty, into);
return Points.transform(p.x(), p.y(), 1, 1, rotation, tx, ty, into);
}
@Override // from Transform
@@ -149,7 +149,7 @@ public class RigidTransform extends AbstractTransform
float sina = FloatMath.sin(rotation), cosa = FloatMath.cos(rotation);
for (int ii = 0; ii < count; ii++) {
IPoint s = src[srcOff++];
Points.transform(s.getX(), s.getY(), 1, 1, sina, cosa, tx, ty, dst[dstOff++]);
Points.transform(s.x(), s.y(), 1, 1, sina, cosa, tx, ty, dst[dstOff++]);
}
}
@@ -166,7 +166,7 @@ public class RigidTransform extends AbstractTransform
@Override // from Transform
public Point inverseTransform (IPoint p, Point into) {
return Points.inverseTransform(p.getX(), p.getY(), 1, 1, rotation, tx, ty, into);
return Points.inverseTransform(p.x(), p.y(), 1, 1, rotation, tx, ty, into);
}
@Override // from Transform
@@ -191,6 +191,6 @@ public class RigidTransform extends AbstractTransform
@Override
public String toString () {
return "rigid [rot=" + rotation + ", trans=" + getTranslation() + "]";
return "rigid [rot=" + rotation + ", trans=" + translation() + "]";
}
}
@@ -61,37 +61,37 @@ public class RoundRectangle extends AbstractRoundRectangle implements Serializab
* rectangle.
*/
public void setRoundRect (IRoundRectangle rr) {
setRoundRect(rr.getX(), rr.getY(), rr.getWidth(), rr.getHeight(),
rr.getArcWidth(), rr.getArcHeight());
setRoundRect(rr.x(), rr.y(), rr.width(), rr.height(),
rr.arcWidth(), rr.arcHeight());
}
@Override // from interface IRoundRectangle
public float getArcWidth () {
public float arcWidth () {
return arcwidth;
}
@Override // from interface IRoundRectangle
public float getArcHeight () {
public float arcHeight () {
return archeight;
}
@Override // from interface IRectangularShape
public float getX () {
public float x () {
return x;
}
@Override // from interface IRectangularShape
public float getY () {
public float y () {
return y;
}
@Override // from interface IRectangularShape
public float getWidth () {
public float width () {
return width;
}
@Override // from interface IRectangularShape
public float getHeight () {
public float height () {
return height;
}
+8 -8
View File
@@ -12,32 +12,32 @@ public interface Transform
{
/** Returns the uniform scale applied by this transform. The uniform scale will be approximated
* for non-uniform transforms. */
float getUniformScale ();
float uniformScale ();
/** Returns the scale vector for this transform. */
Vector getScale ();
Vector scale ();
/** Returns the x-component of the scale applied by this transform. Note that this will be
* extracted and therefore approximate for affine transforms. */
float getScaleX ();
float scaleX ();
/** Returns the y-component of the scale applied by this transform. Note that this will be
* extracted and therefore approximate for affine transforms. */
float getScaleY ();
float scaleY ();
/** Returns the rotation applied by this transform. Note that the rotation is extracted and
* therefore approximate for affine transforms.
* @throws NoninvertibleTransformException if the transform is not invertible. */
float getRotation ();
float rotation ();
/** Returns the translation vector for this transform. */
Vector getTranslation ();
Vector translation ();
/** Returns the x-coordinate of the translation component. */
float getTx ();
float tx ();
/** Returns the y-coordinate of the translation component. */
float getTy ();
float ty ();
/** Sets the uniform scale of this transform.
* @return this instance, for chaining.
+2 -2
View File
@@ -20,8 +20,8 @@ public class Transforms
if (src instanceof Path) {
return ((Path)src).createTransformedShape(t);
}
PathIterator path = src.getPathIterator(t);
Path dst = new Path(path.getWindingRule());
PathIterator path = src.pathIterator(t);
Path dst = new Path(path.windingRule());
dst.append(path, false);
return dst;
}
@@ -34,32 +34,32 @@ public class UniformTransform extends AbstractTransform
}
@Override // from Transform
public float getUniformScale () {
public float uniformScale () {
return scale;
}
@Override // from Transform
public float getScaleX () {
public float scaleX () {
return scale;
}
@Override // from Transform
public float getScaleY () {
public float scaleY () {
return scale;
}
@Override // from Transform
public float getRotation () {
public float rotation () {
return rotation;
}
@Override // from Transform
public float getTx () {
public float tx () {
return tx;
}
@Override // from Transform
public float getTy () {
public float ty () {
return ty;
}
@@ -124,7 +124,7 @@ public class UniformTransform extends AbstractTransform
@Override // from Transform
public Transform invert () {
float nscale = 1f / scale, nrotation = -rotation;
Vector t = getTranslation().negateLocal().rotateLocal(nrotation).multLocal(nscale);
Vector t = translation().negateLocal().rotateLocal(nrotation).multLocal(nscale);
return new UniformTransform(nscale, nrotation, t.x, t.y);
}
@@ -134,10 +134,10 @@ public class UniformTransform extends AbstractTransform
return other.preConcatenate(this);
}
Vector nt = other.getTranslation();
nt.rotateScaleAndAdd(rotation, scale, getTranslation(), nt);
float nrotation = FloatMath.normalizeAngle(rotation + other.getRotation());
float nscale = scale * other.getUniformScale();
Vector nt = other.translation();
nt.rotateScaleAndAdd(rotation, scale, translation(), nt);
float nrotation = FloatMath.normalizeAngle(rotation + other.rotation());
float nscale = scale * other.uniformScale();
return new UniformTransform(nscale, nrotation, nt.x, nt.y);
}
@@ -147,11 +147,11 @@ public class UniformTransform extends AbstractTransform
return other.concatenate(this);
}
Vector nt = getTranslation();
nt.rotateScaleAndAdd(other.getRotation(), other.getUniformScale(),
other.getTranslation(), nt);
float nrotation = FloatMath.normalizeAngle(other.getRotation() + rotation);
float nscale = other.getUniformScale() * scale;
Vector nt = translation();
nt.rotateScaleAndAdd(other.rotation(), other.uniformScale(),
other.translation(), nt);
float nrotation = FloatMath.normalizeAngle(other.rotation() + rotation);
float nscale = other.uniformScale() * scale;
return new UniformTransform(nscale, nrotation, nt.x, nt.y);
}
@@ -161,15 +161,15 @@ public class UniformTransform extends AbstractTransform
return other.lerp(this, -t); // TODO: is this correct?
}
Vector nt = getTranslation().lerpLocal(other.getTranslation(), t);
float nrotation = FloatMath.lerpa(rotation, other.getRotation(), t);
float nscale = FloatMath.lerp(scale, other.getUniformScale(), t);
Vector nt = translation().lerpLocal(other.translation(), t);
float nrotation = FloatMath.lerpa(rotation, other.rotation(), t);
float nscale = FloatMath.lerp(scale, other.uniformScale(), t);
return new UniformTransform(nscale, nrotation, nt.x, nt.y);
}
@Override // from Transform
public Point transform (IPoint p, Point into) {
return Points.transform(p.getX(), p.getY(), scale, scale, rotation, tx, ty, into);
return Points.transform(p.x(), p.y(), scale, scale, rotation, tx, ty, into);
}
@Override // from Transform
@@ -177,7 +177,7 @@ public class UniformTransform extends AbstractTransform
float sina = FloatMath.sin(rotation), cosa = FloatMath.cos(rotation);
for (int ii = 0; ii < count; ii++) {
IPoint p = src[srcOff++];
Points.transform(p.getX(), p.getY(), scale, scale, sina, cosa, tx, ty, dst[dstOff++]);
Points.transform(p.x(), p.y(), scale, scale, sina, cosa, tx, ty, dst[dstOff++]);
}
}
@@ -194,17 +194,17 @@ public class UniformTransform extends AbstractTransform
@Override // from Transform
public Point inverseTransform (IPoint p, Point into) {
return Points.inverseTransform(p.getX(), p.getY(), scale, scale, rotation, tx, ty, into);
return Points.inverseTransform(p.x(), p.y(), scale, scale, rotation, tx, ty, into);
}
@Override // from Transform
public Vector transform (IVector v, Vector into) {
return Vectors.transform(v.getX(), v.getY(), scale, scale, rotation, into);
return Vectors.transform(v.x(), v.y(), scale, scale, rotation, into);
}
@Override // from Transform
public Vector inverseTransform (IVector v, Vector into) {
return Vectors.inverseTransform(v.getX(), v.getY(), scale, scale, rotation, into);
return Vectors.inverseTransform(v.x(), v.y(), scale, scale, rotation, into);
}
@Override // from Transform
@@ -220,6 +220,6 @@ public class UniformTransform extends AbstractTransform
@Override
public String toString () {
return "uniform [scale=" + scale + ", rot=" + rotation +
", trans=" + getTranslation() + "]";
", trans=" + translation() + "]";
}
}
+3 -3
View File
@@ -92,7 +92,7 @@ public class Vector extends AbstractVector
/** Copies the elements of another vector.
* @return a reference to this vector, for chaining. */
public Vector set (IVector other) {
return set(other.getX(), other.getY());
return set(other.x(), other.y());
}
/** Copies the elements of an array.
@@ -110,12 +110,12 @@ public class Vector extends AbstractVector
}
@Override // from AbstractVector
public float getX () {
public float x () {
return x;
}
@Override // from AbstractVector
public float getY () {
public float y () {
return y;
}
}
@@ -17,7 +17,7 @@ public abstract class AbstractDimension implements IDimension
@Override
public int hashCode () {
return getWidth() ^ getHeight();
return width() ^ height();
}
@Override
@@ -27,13 +27,13 @@ public abstract class AbstractDimension implements IDimension
}
if (obj instanceof AbstractDimension) {
AbstractDimension d = (AbstractDimension)obj;
return (d.getWidth() == getWidth() && d.getHeight() == getHeight());
return (d.width() == width() && d.height() == height());
}
return false;
}
@Override
public String toString () {
return Dimensions.dimenToString(getWidth(), getHeight());
return Dimensions.dimenToString(width(), height());
}
}
@@ -12,22 +12,22 @@ public abstract class AbstractPoint implements IPoint
{
@Override // from interface IPoint
public int distanceSq (int px, int py) {
return Points.distanceSq(getX(), getY(), px, py);
return Points.distanceSq(x(), y(), px, py);
}
@Override // from interface IPoint
public int distanceSq (IPoint p) {
return Points.distanceSq(getX(), getY(), p.getX(), p.getY());
return Points.distanceSq(x(), y(), p.x(), p.y());
}
@Override // from interface IPoint
public int distance (int px, int py) {
return Points.distance(getX(), getY(), px, py);
return Points.distance(x(), y(), px, py);
}
@Override // from interface IPoint
public int distance (IPoint p) {
return Points.distance(getX(), getY(), p.getX(), p.getY());
return Points.distance(x(), y(), p.x(), p.y());
}
@Override // from interface IPoint
@@ -42,18 +42,18 @@ public abstract class AbstractPoint implements IPoint
}
if (obj instanceof AbstractPoint) {
AbstractPoint p = (AbstractPoint)obj;
return getX() == p.getX() && getY() == p.getY();
return x() == p.x() && y() == p.y();
}
return false;
}
@Override
public int hashCode () {
return getX() ^ getY();
return x() ^ y();
}
@Override
public String toString () {
return Points.pointToString(getX(), getY());
return Points.pointToString(x(), y());
}
}
@@ -11,59 +11,59 @@ package pythagoras.i;
public abstract class AbstractRectangle implements IRectangle
{
@Override // from IRectangle
public int getMinX () {
return getX();
public int minX () {
return x();
}
@Override // from IRectangle
public int getMinY () {
return getY();
public int minY () {
return y();
}
@Override // from IRectangle
public int getMaxX () {
return getX() + getWidth() - 1;
public int maxX () {
return x() + width() - 1;
}
@Override // from IRectangle
public int getMaxY () {
return getY() + getHeight() - 1;
public int maxY () {
return y() + height() - 1;
}
@Override // from interface IRectangle
public Point getLocation () {
return getLocation(new Point());
public Point location () {
return location(new Point());
}
@Override // from interface IRectangle
public Point getLocation (Point target) {
target.setLocation(getX(), getY());
public Point location (Point target) {
target.setLocation(x(), y());
return target;
}
@Override // from interface IRectangle
public Dimension getSize () {
return getSize(new Dimension());
public Dimension size () {
return size(new Dimension());
}
@Override // from interface IRectangle
public Dimension getSize (Dimension target) {
target.setSize(getWidth(), getHeight());
public Dimension size (Dimension target) {
target.setSize(width(), height());
return target;
}
@Override // from interface IRectangle
public Rectangle intersection (int rx, int ry, int rw, int rh) {
int x1 = Math.max(getX(), rx);
int y1 = Math.max(getY(), ry);
int x2 = Math.min(getMaxX(), rx + rw - 1);
int y2 = Math.min(getMaxY(), ry + rh - 1);
int x1 = Math.max(x(), rx);
int y1 = Math.max(y(), ry);
int x2 = Math.min(maxX(), rx + rw - 1);
int y2 = Math.min(maxY(), ry + rh - 1);
return new Rectangle(x1, y1, x2 - x1, y2 - y1);
}
@Override // from interface IRectangle
public Rectangle intersection (IRectangle r) {
return intersection(r.getX(), r.getY(), r.getWidth(), r.getHeight());
return intersection(r.x(), r.y(), r.width(), r.height());
}
@Override // from interface IRectangle
@@ -77,19 +77,19 @@ public abstract class AbstractRectangle implements IRectangle
public int outcode (int px, int py) {
int code = 0;
if (getWidth() <= 0) {
if (width() <= 0) {
code |= OUT_LEFT | OUT_RIGHT;
} else if (px < getX()) {
} else if (px < x()) {
code |= OUT_LEFT;
} else if (px > getMaxX()) {
} else if (px > maxX()) {
code |= OUT_RIGHT;
}
if (getHeight() <= 0) {
if (height() <= 0) {
code |= OUT_TOP | OUT_BOTTOM;
} else if (py < getY()) {
} else if (py < y()) {
code |= OUT_TOP;
} else if (py > getMaxY()) {
} else if (py > maxY()) {
code |= OUT_BOTTOM;
}
@@ -98,7 +98,7 @@ public abstract class AbstractRectangle implements IRectangle
@Override // from interface IRectangle
public int outcode (IPoint p) {
return outcode(p.getX(), p.getY());
return outcode(p.x(), p.y());
}
@Override // from interface IRectangle
@@ -108,60 +108,60 @@ public abstract class AbstractRectangle implements IRectangle
@Override // from interface IShape
public boolean isEmpty () {
return getWidth() <= 0 || getHeight() <= 0;
return width() <= 0 || height() <= 0;
}
@Override // from interface IShape
public boolean contains (int px, int py) {
if (isEmpty()) return false;
int x = getX(), y = getY();
int x = x(), y = y();
if (px < x || py < y) return false;
px -= x;
py -= y;
return px < getWidth() && py < getHeight();
return px < width() && py < height();
}
@Override // from interface IShape
public boolean contains (IPoint point) {
return contains(point.getX(), point.getY());
return contains(point.x(), point.y());
}
@Override // from interface IShape
public boolean contains (int rx, int ry, int rw, int rh) {
if (isEmpty()) return false;
int x1 = getX(), y1 = getY(), x2 = x1 + getWidth(), y2 = y1 + getHeight();
int x1 = x(), y1 = y(), x2 = x1 + width(), y2 = y1 + height();
return (x1 <= rx) && (rx + rw <= x2) && (y1 <= ry) && (ry + rh <= y2);
}
@Override // from interface IShape
public boolean contains (IRectangle rect) {
return contains(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
return contains(rect.x(), rect.y(), rect.width(), rect.height());
}
@Override // from interface IShape
public boolean intersects (int rx, int ry, int rw, int rh) {
if (isEmpty()) return false;
int x1 = getX(), y1 = getY(), x2 = x1 + getWidth(), y2 = y1 + getHeight();
int x1 = x(), y1 = y(), x2 = x1 + width(), y2 = y1 + height();
return (rx + rw > x1) && (rx < x2) && (ry + rh > y1) && (ry < y2);
}
@Override // from interface IShape
public boolean intersects (IRectangle rect) {
return intersects(rect.getX(), rect.getY(), rect.getWidth(), rect.getHeight());
return intersects(rect.x(), rect.y(), rect.width(), rect.height());
}
@Override // from interface IShape
public Rectangle getBounds () {
return getBounds(new Rectangle());
public Rectangle bounds () {
return bounds(new Rectangle());
}
@Override // from interface IShape
public Rectangle getBounds (Rectangle target) {
target.setBounds(getX(), getY(), getWidth(), getHeight());
public Rectangle bounds (Rectangle target) {
target.setBounds(x(), y(), width(), height());
return target;
}
@@ -172,20 +172,20 @@ public abstract class AbstractRectangle implements IRectangle
}
if (obj instanceof AbstractRectangle) {
AbstractRectangle r = (AbstractRectangle)obj;
return r.getX() == getX() && r.getY() == getY() &&
r.getWidth() == getWidth() && r.getHeight() == getHeight();
return r.x() == x() && r.y() == y() &&
r.width() == width() && r.height() == height();
}
return false;
}
@Override // from Object
public int hashCode () {
return getX() ^ getY() ^ getWidth() ^ getHeight();
return x() ^ y() ^ width() ^ height();
}
@Override // from Object
public String toString () {
return Dimensions.dimenToString(getWidth(), getHeight()) +
Points.pointToString(getX(), getY());
return Dimensions.dimenToString(width(), height()) +
Points.pointToString(x(), y());
}
}
+4 -4
View File
@@ -35,7 +35,7 @@ public class Dimension extends AbstractDimension implements Serializable
* Creates a dimension with width and height equal to the supplied dimension.
*/
public Dimension (IDimension d) {
this(d.getWidth(), d.getHeight());
this(d.width(), d.height());
}
/**
@@ -50,16 +50,16 @@ public class Dimension extends AbstractDimension implements Serializable
* Sets the magnitudes of this dimension to be equal to the supplied dimension.
*/
public void setSize (IDimension d) {
setSize(d.getWidth(), d.getHeight());
setSize(d.width(), d.height());
}
@Override // from interface IDimension
public int getWidth () {
public int width () {
return width;
}
@Override // from interface IDimension
public int getHeight () {
public int height () {
return height;
}
}
+2 -2
View File
@@ -12,12 +12,12 @@ public interface IDimension extends Cloneable
/**
* Returns the magnitude in the x-dimension.
*/
int getWidth ();
int width ();
/**
* Returns the magnitude in the y-dimension.
*/
int getHeight ();
int height ();
/**
* Returns a mutable copy of this dimension.
+2 -2
View File
@@ -10,10 +10,10 @@ package pythagoras.i;
public interface IPoint extends Cloneable
{
/** Returns this point's x-coordinate. */
int getX ();
int x ();
/** Returns this point's y-coordinate. */
int getY ();
int y ();
/** Returns the squared Euclidian distance between this point and the specified point. */
int distanceSq (int px, int py);
+12 -12
View File
@@ -24,46 +24,46 @@ public interface IRectangle extends IShape, Cloneable
int OUT_BOTTOM = 8;
/** Returns the x-coordinate of the upper-left corner of the framing rectangle. */
int getX ();
int x ();
/** Returns the y-coordinate of the upper-left corner of the framing rectangle. */
int getY ();
int y ();
/** Returns the width of the framing rectangle. */
int getWidth ();
int width ();
/** Returns the height of the framing rectangle. */
int getHeight ();
int height ();
/** Returns the minimum x-coordinate of the framing rectangle. */
int getMinX ();
int minX ();
/** Returns the minimum y-coordinate of the framing rectangle. */
int getMinY ();
int minY ();
/** Returns the maximum x-coordinate of the framing rectangle. <em>Note:</em> this method
* differs from its floating-point counterparts in that it considers {@code (x + width - 1)} to
* be a rectangle's maximum x-coordinate. */
int getMaxX ();
int maxX ();
/** Returns the maximum y-coordinate of the framing rectangle. <em>Note:</em> this method
* differs from its floating-point counterparts in that it considers {@code (y + height - 1)}
* to be a rectangle's maximum x-coordinate. */
int getMaxY ();
int maxY ();
/** Returns a copy of this rectangle's upper-left corner. */
Point getLocation ();
Point location ();
/** Initializes the supplied point with this rectangle's upper-left corner.
* @return the supplied point. */
Point getLocation (Point target);
Point location (Point target);
/** Returns a copy of this rectangle's size. */
Dimension getSize ();
Dimension size ();
/** Initializes the supplied dimension with this rectangle's size.
* @return the supplied dimension. */
Dimension getSize (Dimension target);
Dimension size (Dimension target);
/** Returns the intersection of the specified rectangle and this rectangle (i.e. the largest
* rectangle contained in both this and the specified rectangle). */
+2 -2
View File
@@ -31,9 +31,9 @@ public interface IShape
boolean intersects (IRectangle r);
/** Returns a copy of the bounding rectangle for this shape. */
Rectangle getBounds ();
Rectangle bounds ();
/** Initializes the supplied rectangle with this shape's bounding rectangle.
* @return the supplied rectangle. */
Rectangle getBounds (Rectangle target);
Rectangle bounds (Rectangle target);
}
+4 -4
View File
@@ -34,14 +34,14 @@ public class Point extends AbstractPoint implements Serializable
* Constructs a point with coordinates equal to the supplied point.
*/
public Point (IPoint p) {
setLocation(p.getX(), p.getY());
setLocation(p.x(), p.y());
}
/**
* Sets the coordinates of this point to be equal to those of the supplied point.
*/
public void setLocation (IPoint p) {
setLocation(p.getX(), p.getY());
setLocation(p.x(), p.y());
}
/**
@@ -68,12 +68,12 @@ public class Point extends AbstractPoint implements Serializable
}
@Override // from interface IPoint
public int getX () {
public int x () {
return x;
}
@Override // from interface IPoint
public int getY () {
public int y () {
return y;
}
}
+16 -16
View File
@@ -33,14 +33,14 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Constructs a rectangle with the supplied upper-left corner and dimensions (0,0).
*/
public Rectangle (IPoint p) {
setBounds(p.getX(), p.getY(), 0, 0);
setBounds(p.x(), p.y(), 0, 0);
}
/**
* Constructs a rectangle with upper-left corner at (0,) and the supplied dimensions.
*/
public Rectangle (IDimension d) {
setBounds(0, 0, d.getWidth(), d.getHeight());
setBounds(0, 0, d.width(), d.height());
}
/**
@@ -48,7 +48,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* dimensions.
*/
public Rectangle (IPoint p, IDimension d) {
setBounds(p.getX(), p.getY(), d.getWidth(), d.getHeight());
setBounds(p.x(), p.y(), d.width(), d.height());
}
/**
@@ -62,7 +62,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Constructs a rectangle with bounds equal to the supplied rectangle.
*/
public Rectangle (IRectangle r) {
setBounds(r.getX(), r.getY(), r.getWidth(), r.getHeight());
setBounds(r.x(), r.y(), r.width(), r.height());
}
/**
@@ -77,7 +77,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Sets the upper-left corner of this rectangle to the supplied point.
*/
public void setLocation (IPoint p) {
setLocation(p.getX(), p.getY());
setLocation(p.x(), p.y());
}
/**
@@ -92,7 +92,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Sets the size of this rectangle to the supplied dimensions.
*/
public void setSize (IDimension d) {
setSize(d.getWidth(), d.getHeight());
setSize(d.width(), d.height());
}
/**
@@ -109,7 +109,7 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Sets the bounds of this rectangle to those of the supplied rectangle.
*/
public void setBounds (IRectangle r) {
setBounds(r.getX(), r.getY(), r.getWidth(), r.getHeight());
setBounds(r.x(), r.y(), r.width(), r.height());
}
/**
@@ -147,37 +147,37 @@ public class Rectangle extends AbstractRectangle implements Serializable
* Expands the bounds of this rectangle to contain the supplied point.
*/
public void add (IPoint p) {
add(p.getX(), p.getY());
add(p.x(), p.y());
}
/**
* Expands the bounds of this rectangle to contain the supplied rectangle.
*/
public void add (IRectangle r) {
int x1 = Math.min(x, r.getX());
int x2 = Math.max(x + width, r.getX() + r.getWidth());
int y1 = Math.min(y, r.getY());
int y2 = Math.max(y + height, r.getY() + r.getHeight());
int x1 = Math.min(x, r.x());
int x2 = Math.max(x + width, r.x() + r.width());
int y1 = Math.min(y, r.y());
int y2 = Math.max(y + height, r.y() + r.height());
setBounds(x1, y1, x2 - x1, y2 - y1);
}
@Override // from interface IRectangle
public int getX () {
public int x () {
return x;
}
@Override // from interface IRectangle
public int getY () {
public int y () {
return y;
}
@Override // from interface IRectangle
public int getWidth () {
public int width () {
return width;
}
@Override // from interface IRectangle
public int getHeight () {
public int height () {
return height;
}
}
+8 -8
View File
@@ -13,10 +13,10 @@ public class Rectangles
* Intersects the supplied two rectangles, writing the result into {@code dst}.
*/
public static void intersect (IRectangle src1, IRectangle src2, Rectangle dst) {
int x1 = Math.max(src1.getMinX(), src2.getMinX());
int y1 = Math.max(src1.getMinY(), src2.getMinY());
int x2 = Math.min(src1.getMaxX(), src2.getMaxX());
int y2 = Math.min(src1.getMaxY(), src2.getMaxY());
int x1 = Math.max(src1.minX(), src2.minX());
int y1 = Math.max(src1.minY(), src2.minY());
int x2 = Math.min(src1.maxX(), src2.maxX());
int y2 = Math.min(src1.maxY(), src2.maxY());
dst.setBounds(x1, y1, x2 - x1, y2 - y1);
}
@@ -24,10 +24,10 @@ public class Rectangles
* Unions the supplied two rectangles, writing the result into {@code dst}.
*/
public static void union (IRectangle src1, IRectangle src2, Rectangle dst) {
int x1 = Math.min(src1.getMinX(), src2.getMinX());
int y1 = Math.min(src1.getMinY(), src2.getMinY());
int x2 = Math.max(src1.getMaxX(), src2.getMaxX());
int y2 = Math.max(src1.getMaxY(), src2.getMaxY());
int x1 = Math.min(src1.minX(), src2.minX());
int y1 = Math.min(src1.minY(), src2.minY());
int x2 = Math.max(src1.maxX(), src2.maxX());
int y2 = Math.max(src1.maxY(), src2.maxY());
dst.setBounds(x1, y1, x2 - x1, y2 - y1);
}
}