def METHOD_NAME(self):
    x, y, h = self.width, self.length, self.height
    t = self.thickness
    hf = self.frontheight
    yg = self.tophole
    tf = self.fronttop
    r=self.radius
    if (hf > h):
        # Give an error because the result will be wrong with possible unconnected paths
        raise ValueError("Height at front of shoe must be less than height at back of shoe.")
    stretch = (self.edges["X"].settings.stretch)
    self.ctx.save()
    self.rectangularWall(y, x, "FFFF", move="up", label="Bottom")
    lf,a=self.shoeside(y,h,hf,yg,tf,r, move="up", label="Side")
    self.shoeside(y,h,hf,yg,tf,r, move="mirror up", label="Side")
    self.ctx.restore()
    self.rectangularWall(y, x, "FFFF", move="right only")
    self.rectangularWall(x, h, "ffef", move="up", label="Back")
    self.rectangularWall(x, hf, "ffff", move="up", label="front")
    dr = a*(r-t)/stretch
    self.shoelip(x, tf, dr, lf, label="top")