Changeset 445:79ba44e04b57


Ignore:
Timestamp:
09/07/13 12:48:53 (8 years ago)
Author:
Simon Cross <hodgestar@…>
Branch:
default
Children:
446:3054c62f9d64, 458:0f8945232e54
Phase:
public
Rebase:
35366530313830623964656461303664316137393037363564643639636635626539316463646636
Message:

Add offset support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/generate_poly.py

    r443 r445  
    1515    """Parse arguments."""
    1616    parser = optparse.OptionParser(usage="%prog <type> arg1=foo arg2=bar")
     17
     18    parser.add_option('-x',
     19                      dest='offset_x', type=int, default=0,
     20                      help='X offset for poly.')
     21
     22    parser.add_option('-y',
     23                      dest='offset_y', type=int, default=0,
     24                      help='Y offset for poly.')
     25
    1726    opts, args = parser.parse_args(args)
    1827    args = args[1:]
     
    2837
    2938class PolyGenerator(object):
    30     def generate(self, obj_type, params, opts):
     39    def __init__(self, opts):
     40        self.offset_x = opts.offset_x
     41        self.offset_y = opts.offset_y
     42
     43    def generate(self, obj_type, params):
    3144        handler = getattr(self, 'generate_%s' % (obj_type,),
    3245                          self.unknown_type)
    33         return handler(params, opts)
     46        return handler(params)
    3447
    3548    def print_poly(self, poly):
     
    3851            print "  - [%d, %d]" % tuple(point)
    3952
    40     def unknown_type(self, params, opts):
     53    def unknown_type(self, params):
    4154        prefix = "generate_"
    4255        known_types = [k[len(prefix):] for k in self.__dict__
     
    5871        return results
    5972
    60     def generate_circle(self, params, opts):
     73    def apply_opts(self, poly):
     74        new_poly = []
     75        for p in poly:
     76            x = p[0] + self.offset_x
     77            y = p[1] + self.offset_y
     78            new_poly.append([x, y])
     79        return new_poly
     80
     81    def generate_circle(self, params):
    6182        r, steps = self.check_params(params, ("r", int), ("steps", int))
    6283        poly = []
     
    6687            poly.append([x, y])
    6788            rad += step_size
    68         return poly
     89        return self.apply_opts(poly)
    6990
    7091
     
    7293    obj_type, params, opts = parse_args(sys.argv)
    7394    if obj_type is not None:
    74         p = PolyGenerator()
    75         poly = p.generate(obj_type, params, opts)
     95        p = PolyGenerator(opts)
     96        poly = p.generate(obj_type, params)
    7697        p.print_poly(poly)
Note: See TracChangeset for help on using the changeset viewer.