Source code for pygerber.parser.pillow.apertures.util

# -*- coding: utf-8 -*-
from __future__ import annotations

from pygerber.constants import Polarity
from pygerber.mathclasses import Vector2D
from pygerber.renderer import Renderer
from pygerber.renderer.spec import ArcSpec, FlashSpec, LineSpec

INCH_TO_MM_MULTIPLIER = 0.0393701


[docs]class PillowUtilMethdos: renderer: Renderer @property def dpmm(self): return self.renderer.dpmm @property def canvas(self): return self.renderer.canvas @property def draw_canvas(self): return self.renderer.draw_canvas
[docs] def get_color(self): if self.is_clear(): return self.get_clear_color() else: return self.get_dark_color()
[docs] def is_clear(self): return self.renderer.state.polarity == Polarity.CLEAR
[docs] def get_dark_color(self): return self.renderer.colors.dark
[docs] def get_clear_color(self): return self.renderer.colors.clear
[docs] def prepare_coordinates(self, vector: Vector2D) -> Vector2D: return Vector2D( int(self._prepare_co(vector.x) + self.renderer.left_offset), int(self._prepare_co(vector.y) + self.renderer.bottom_offset), )
def _prepare_co(self, value: float) -> float: return value * self.dpmm
[docs] def prepare_flash_spec(self, spec: FlashSpec) -> FlashSpec: spec.location = self.prepare_coordinates(spec.location) return spec
[docs] def prepare_line_spec(self, spec: LineSpec) -> LineSpec: spec.begin = self.prepare_coordinates(spec.begin) spec.end = self.prepare_coordinates(spec.end) return spec
[docs] def prepare_arc_spec(self, spec: ArcSpec) -> ArcSpec: spec.begin = self.prepare_coordinates(spec.begin) spec.end = self.prepare_coordinates(spec.end) spec.center = self.prepare_coordinates(spec.center) return spec