def METHOD_NAME(self, origin):  # pylint: disable=missing-docstring
    positions = {self.dendrogram: origin}
    if self.children:
        end_point = origin + [0, self.dendrogram.height]
        left_bottom_offset = [-.5 * self.total_width, 0]
        children_origin = end_point + left_bottom_offset
        for child in self.children:
            child_origin = children_origin + [.5 * child.total_width, 0]
            positions.update(child.METHOD_NAME(child_origin))
            children_origin += [child.total_width + self.HORIZONTAL_PADDING, 0]
    return positions