# PolygonStyle - Стиль полигонов

class axipy.PolygonStyle

  Базовые классы: `Style`

  Стиль площадного объекта. По умолчанию создается прозрачный стиль `FillStyle` с черной окантовкой `LineStyle`.

  Пример.

      # Создадим стиль по умолчанию
      plstyle = PolygonStyle()
      print(plstyle.to_mapinfo())
      # Назначим цвет заливки и фона заливки
      plstyle.set_brush(color=Qt.green, bgColor=Qt.blue)
      print(plstyle.to_mapinfo())
      # Установим обводку
      plstyle.set_pen(color=Qt.black)
      print(plstyle.to_mapinfo())
      # Установим параметры заливки через свойства
      plstyle.fill.pattern = 5
      plstyle.fill.color = Qt.blue
      # Установим параметры обводки через свойства
      plstyle.border.width = 4
      plstyle.border.color = Qt.blue
      '''
      >>> Brush (1, 16777215)
      >>> Brush (1, 65280, 255)
      >>> Pen (1, 2, 0)  Brush (1, 65280, 255)
      '''

  Конструктор класса:

  `__init__`([pattern, color, pattern_pen]) | Конструктор класса.

  Классовые методы:

  `for_geometry`(geom) | Возвращает стиль по умолчанию из настроек для переданного объекта.
  `for_geometry_type`(geometry_type) | Возвращает стиль по умолчанию для переданного типа геометрии.
  `from_mapinfo`(mapbasic_string) | Получает стиль из строки формата MapBasic.

  Свойства:

  `border` | Стиль окантовки.
  `fill` | Стиль заливки.

  Методы:

  `clone`() | Создаёт копию объекта стиля.
  `draw`(geometry, painter) | Рисует геометрический объект с текущим стилем в произвольном контексте вывода.
  `set_brush`([pattern, color, bgColor]) | Задание стиля заливки площадного объекта.
  `set_pen`([pattern, color, width]) | Задание стиля обводки.
  `to_mapinfo`() | Возвращает строковое представление в формате MapBasic.

  Специальные методы:

  `__eq__`(other) | Оператор равенства (==).
  `__repr__`() | Официальное строковое представление объекта при вызове `repr()`.
  `__str__`() | Неформальное строковое представление объекта при вызове `str` или `print()`.

  __eq__(other: object) → bool

    Оператор равенства (==).

  __init__(pattern: int = 1, color: Union[QColor, GlobalColor] = Qt.white, pattern_pen: int = 1)

    Конструктор класса.

    Параметры:

      - pattern – Номер стиля заливки.

      - color – Цвет основной заливки.

      - pattern_pen – Цвет обводки. По умолчанию обводка отсутствует.

  __repr__() → str

    Официальное строковое представление объекта при вызове `repr()`.

  __str__() → str

    Неформальное строковое представление объекта при вызове `str` или `print()`.

  property border: Optional[LineStyle]

    Стиль окантовки.

    Может отсутствовать. Для переопределения можно также использовать `set_pen()`.

  clone() → Style

    Создаёт копию объекта стиля.

  draw(geometry: Geometry, painter: QPainter)

    Рисует геометрический объект с текущим стилем в произвольном контексте вывода. Это может быть востребовано при желании отрисовать геометрию со стилем на форме или диалоге.

    Параметры:

      - geometry – Геометрия. Должна соответствовать стилю. Т.е. если объект полигон, а стиль для рисования точечных объектов, то ничего нарисовано не будет.

      - painter – Контекст вывода.

    Пример отрисовки в растре и сохранение результата в файле.

        image = QImage(100, 100, QImage.Format_ARGB32_Premultiplied)
        image.fill(Qt.white)
        painter = QPainter(image)
        point = Point(50, 50)
        style = PointStyle.create_mi_font(42, Qt.red, 24)
        style.draw(point, painter)
        image.save(filename)

  property fill: FillStyle

    Стиль заливки.

  classmethod for_geometry(geom: Geometry) → Style

    Возвращает стиль по умолчанию из настроек для переданного объекта.

    Параметры:

      geom – Геометрический объект, для которого необходимо получить соответствующий ему стиль.

  classmethod for_geometry_type(geometry_type: StyleGeometryType) → Style

    Возвращает стиль по умолчанию для переданного типа геометрии.

    Параметры:

      geometry_type – Тип геометрического объекта, для которого необходимо получить стиль.

  classmethod from_mapinfo(mapbasic_string: str) → Optional[Style]

    Получает стиль из строки формата MapBasic.

    Параметры:

      mapbasic_string – Строка в формате MapBasic.

        style = Style.from_mapinfo("Pen (1, 2, 0) Brush (8, 255)")

  set_brush(pattern: int = 1, color: Union[QColor, GlobalColor] = Qt.white, bgColor: Union[QColor, GlobalColor] = Qt.transparent)

    Задание стиля заливки площадного объекта.

    Параметры:

      - pattern – Номер стиля заливки. Шаблон задается числом от 1 до 71, при этом в шаблоне с номером 1 оба цвета отсутствуют, а в шаблоне 2 отсутствует цвет фона. Шаблоны с кодами 9-11 зарезервированы для внутренних целей.

      - color – Цвет основной заливки.

      - bgColor – Цвет заднего фона, если заливка неполная.

    Доступные стили заливки см. `FillStyle`:

  set_pen(pattern: int = 2, color: Union[QColor, GlobalColor] = Qt.black, width: int = 1)

    Задание стиля обводки. Параметры аналогичны при задании стиля линии `LineStyle()`

    Параметры:

      - pattern – Номер стиля линии.

      - color – Цвет линии

      - width – Толщина линии.

  to_mapinfo() → str

    Возвращает строковое представление в формате MapBasic.

        print(style.to_mapinfo())
        '''
        >>> Pen (1, 2, 0) Brush (8, 255)
        '''