def METHOD_NAME(self):
    x, y, h, radius = self.x, self.y, self.h, self.radius
    t = self.thickness
    r = self.r = 2 * (radius + t) * math.tan(math.pi/6)
    self.dx = dx = r * math.cos(math.pi/6)
    self.dy = dy = r * math.sin(math.pi/6)
    self.cx = cx = int((x-2*t) // (2*dx))
    self.cy = cy = int((y-dy-t) // (r+dy))
    self.delta = 3**0.5/6.*t
    self.rectangularWall(x, y, callback=[self.wallCB], move="up")
    self.rectangularWall(x, y, callback=[lambda:self.wallCB(backwall=True)], move="up")
    self.rectangularWall(x, y, callback=[lambda:self.wallCB(frontwall=True)], move="up")
    if self.walls == "all":
        tc = (cy//2 + cy % 2) * (6 * cx + 1)
    else:
        tc = (cy//2 + cy % 2) * (4 * cx)
    if self.walls == "minimal":
        tc -= 2 * (cy//2) # roofs of outer cells
    if cy % 2:
        if self.walls == "all":
            tc -= cx
    else:
        if self.walls != "minimal":
            tc += 2 * cx - 2 # very top row
    self.partsMatrix(tc, cx, "up", self.rectangularWall, r-2*self.delta, h, "fefe")