Mercurial > nagslang
changeset 445:79ba44e04b57
Add offset support.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sat, 07 Sep 2013 14:48:53 +0200 |
parents | 547320870aed |
children | 3054c62f9d64 0f8945232e54 |
files | tools/generate_poly.py |
diffstat | 1 files changed, 28 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/tools/generate_poly.py Sat Sep 07 14:47:34 2013 +0200 +++ b/tools/generate_poly.py Sat Sep 07 14:48:53 2013 +0200 @@ -14,6 +14,15 @@ def parse_args(args): """Parse arguments.""" parser = optparse.OptionParser(usage="%prog <type> arg1=foo arg2=bar") + + parser.add_option('-x', + dest='offset_x', type=int, default=0, + help='X offset for poly.') + + parser.add_option('-y', + dest='offset_y', type=int, default=0, + help='Y offset for poly.') + opts, args = parser.parse_args(args) args = args[1:] @@ -27,17 +36,21 @@ class PolyGenerator(object): - def generate(self, obj_type, params, opts): + def __init__(self, opts): + self.offset_x = opts.offset_x + self.offset_y = opts.offset_y + + def generate(self, obj_type, params): handler = getattr(self, 'generate_%s' % (obj_type,), self.unknown_type) - return handler(params, opts) + return handler(params) def print_poly(self, poly): print "Poly:" for point in poly: print " - [%d, %d]" % tuple(point) - def unknown_type(self, params, opts): + def unknown_type(self, params): prefix = "generate_" known_types = [k[len(prefix):] for k in self.__dict__ if k.startswith(prefix)] @@ -57,7 +70,15 @@ results.append(result) return results - def generate_circle(self, params, opts): + def apply_opts(self, poly): + new_poly = [] + for p in poly: + x = p[0] + self.offset_x + y = p[1] + self.offset_y + new_poly.append([x, y]) + return new_poly + + def generate_circle(self, params): r, steps = self.check_params(params, ("r", int), ("steps", int)) poly = [] rad, step_size = 0, 2 * math.pi / steps @@ -65,12 +86,12 @@ x, y = r * math.sin(rad), r * math.cos(rad) poly.append([x, y]) rad += step_size - return poly + return self.apply_opts(poly) if __name__ == "__main__": obj_type, params, opts = parse_args(sys.argv) if obj_type is not None: - p = PolyGenerator() - poly = p.generate(obj_type, params, opts) + p = PolyGenerator(opts) + poly = p.generate(obj_type, params) p.print_poly(poly)