Skip to content

Commit

Permalink
PolyTools: add inflateLine()
Browse files Browse the repository at this point in the history
  • Loading branch information
azrafe7 committed Oct 18, 2015
1 parent d7ae8fc commit becd968
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/hxGeomAlgo/PolyTools.hx
Original file line number Diff line number Diff line change
Expand Up @@ -375,4 +375,16 @@ class PolyTools

return out;
}

/** Expands a line into a rectangular poly, offsetting it by half-`thickness` along its normals. */
@:noUsing static public function inflateLine(start:HxPoint, end:HxPoint, thickness:Float):Poly {
var halfWidth = thickness / 2;
var dx = end.x - start.x;
var dy = end.y - start.y;
var len = Math.sqrt(sqr(dx) + sqr(dy));
var nx = (dx / len) * halfWidth;
var ny = (dy / len) * halfWidth;
return [new HxPoint(start.x - ny, start.y + nx), new HxPoint(end.x - ny, end.y + nx),
new HxPoint(end.x + ny, end.y - nx), new HxPoint(start.x + ny, start.y - nx)];
}
}

0 comments on commit becd968

Please sign in to comment.