Skip to content

draw_polygon

draw_polygon

Polygon component for creating apertures.

DrawPolygon

Bases: DrawCommand

Description of polygon aperture component.

Source code in src/pygerber/backend/abstract/draw_commands/draw_polygon.py
class DrawPolygon(DrawCommand):
    """Description of polygon aperture component."""

    center_position: Vector2D
    outer_diameter: Offset
    number_of_vertices: int
    rotation: Decimal

    def __init__(  # noqa: PLR0913
        self,
        backend: Backend,
        polarity: Polarity,
        center_position: Vector2D,
        outer_diameter: Offset,
        number_of_vertices: int,
        rotation: Decimal,
    ) -> None:
        """Initialize draw command."""
        super().__init__(backend, polarity)
        self.center_position = center_position
        self.outer_diameter = outer_diameter
        self.number_of_vertices = number_of_vertices
        self.rotation = rotation

    def get_bounding_box(self) -> BoundingBox:
        """Return bounding box of draw operation."""
        return self._bounding_box

    @cached_property
    def _bounding_box(self) -> BoundingBox:
        return BoundingBox.from_diameter(self.outer_diameter) + self.center_position

__init__

__init__(
    backend: Backend,
    polarity: Polarity,
    center_position: Vector2D,
    outer_diameter: Offset,
    number_of_vertices: int,
    rotation: Decimal,
) -> None

Initialize draw command.

Source code in src/pygerber/backend/abstract/draw_commands/draw_polygon.py
def __init__(  # noqa: PLR0913
    self,
    backend: Backend,
    polarity: Polarity,
    center_position: Vector2D,
    outer_diameter: Offset,
    number_of_vertices: int,
    rotation: Decimal,
) -> None:
    """Initialize draw command."""
    super().__init__(backend, polarity)
    self.center_position = center_position
    self.outer_diameter = outer_diameter
    self.number_of_vertices = number_of_vertices
    self.rotation = rotation

get_bounding_box

get_bounding_box() -> BoundingBox

Return bounding box of draw operation.

Source code in src/pygerber/backend/abstract/draw_commands/draw_polygon.py
def get_bounding_box(self) -> BoundingBox:
    """Return bounding box of draw operation."""
    return self._bounding_box