def __init__(self, teeth, ts, oradius, iradius, depth, tolerance):
        self.centerOffset = 0
        self.iradius = iradius # inner radius, for the hole
        self.oradius = oradius
        print "Circle"
        print "radius =", oradius
        print "teeth =", teeth, "thickness =", depth, "inner radius =", iradius

        # ellipse values are needed by perimeter, which is needed by init
        SLFMaker.__init__(self, teeth, ts, depth, tolerance)
    def __init__(self, teeth, ts, oradius, iradius, depth, tolerance):
        self.centerOffset = 0
        self.iradius = iradius  # inner radius, for the hole
        self.oradius = oradius
        print "Circle"
        print "radius =", oradius
        print "teeth =", teeth, "thickness =", depth, "inner radius =", iradius

        # ellipse values are needed by perimeter, which is needed by init
        SLFMaker.__init__(self, teeth, ts, depth, tolerance)
    def __init__(self, teeth, ts, a, e, nodes, iradius, depth, tolerance):
        # various oval parameters
        self.a = a;
        self.nodes = nodes
        
        # make sure eccentricity value is valid
        
        self.c = e * a
        self.e = e
        assert self.e <= 1.0 and self.e >= 0.0
        self.p = a * (1.0 - self.e*self.e)
        self.b = a*a - self.c*self.c

        self.centerOffset = 0.0

        self.iradius = iradius # inner radius, for the hole
        print "Elliptical Gear"
        print "a =", self.a, "c =", self.c, "e =", self.e
        print "teeth =", teeth, "thickness =", depth, "inner radius =", iradius

        # oval values are needed by perimeter, which is needed by init
        SLFMaker.__init__(self, teeth, ts, depth, tolerance)