def __densify_border(self):
        """
        Densify the border of a polygon.

        The border is densified by a given factor (by default: 0.5).

        The complexity of the polygon's geometry is evaluated in order
        to densify the borders of its interior rings as well.

        Returns:
            list: a list of points where each point is represented by
                a list of its reduced coordinates

        Example:
            [[X1, Y1], [X2, Y2], ..., [Xn, Yn]

        """
        if isinstance(self._input_geom, MultiPolygon):
            polygons = [polygon for polygon in self._input_geom]
        else:
            polygons = [self._input_geom]

        points = []
        for polygon in polygons:
            if len(polygon.interiors) == 0:
                exterior = LineString(polygon.exterior)
                points += self.__fixed_interpolation(exterior)

            else:
                exterior = LineString(polygon.exterior)
                points += self.__fixed_interpolation(exterior)

                for j in range(len(polygon.interiors)):
                    interior = LineString(polygon.interiors[j])
                    points += self.__fixed_interpolation(interior)

        return points
Densify the border of a polygon.

        The border is densified by a given factor (by default: 0.5).

        The complexity of the polygon's geometry is evaluated in order
        to densify the borders of its interior rings as well.

        Returns:
            list: a list of points where each point is represented by
                a list of its reduced coordinates

        Example:
            [[X1, Y1], [X2, Y2], ..., [Xn, Yn]