gui.Window.get().showDevTools();
}, "show developer tools");
- yuu.anchorPoint = function (anchor, x0, y0, x1, y1) {
+ var anchorPoint = yuu.anchorPoint = yf.argcd(
/** Calculate the anchor point for a box given extents and anchor mode
This function is the inverse of yuu.bottomLeft.
*/
- switch (anchor) {
- case "center": return [(x0 + x1) / 2, (y0 + y1) / 2];
- case "top": return [(x0 + x1) / 2, y1];
- case "bottom": return [(x0 + x1) / 2, y0];
- case "left": return [x0, (y0 + y1) / 2];
- case "right": return [x1, (y0 + y1) / 2];
-
- case "topleft": return [x0, y1];
- case "topright": return [x1, y1];
- case "bottomleft": return [x0, y0];
- case "bottomright": return [x0, y0];
- default: return [anchor[0], anchor[1]];
+ function (anchor, aabb) {
+ return anchorPoint(anchor, aabb.x0, aabb.y0, aabb.x1, aabb.y1);
+ },
+ function (anchor, x0, y0, x1, y1) {
+ switch (anchor) {
+ case "center": return [(x0 + x1) / 2, (y0 + y1) / 2];
+ case "top": return [(x0 + x1) / 2, y1];
+ case "bottom": return [(x0 + x1) / 2, y0];
+ case "left": return [x0, (y0 + y1) / 2];
+ case "right": return [x1, (y0 + y1) / 2];
+ case "topleft": return [x0, y1];
+ case "topright": return [x1, y1];
+ case "bottomleft": return [x0, y0];
+ case "bottomright": return [x0, y0];
+ default: return [anchor[0], anchor[1]];
+ }
}
- };
+ );
yuu.bottomLeft = function (anchor, x, y, w, h) {
/** Calculate the bottom-left for a box given size and anchor mode
}
),
+ xc: {
+ get: function () { return (this.x0 + this.x1) / 2; }
+ },
+ yc: {
+ get: function () { return (this.y0 + this.y1) / 2; }
+ },
+
w: {
get: function () { return this.x1 - this.x0; },
set: function (w) { this.x1 = this.x0 + w; }
size: { swizzle: "wh" },
+ hw: { get: function () { return this.w / 2; } },
+ hh: { get: function () { return this.h / 2; } },
+
contains: yf.argcd(
function (p) { return this.contains(p.x, p.y); },
function (x, y) {