GeoRect - Географический прямоугольник
===========================================

.. currentmodule:: axioma.core.dp

.. class:: GeoRect

	Географический прямоугольник. объединяет в себе прямоугольник (:class:`~PyQt5.QtCore.QRectF`) и координатную систему (:class:`~axioma.cs.CoordSystem`).

	Методы:

		.. method:: GeoRect()

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

		.. method:: GeoRect(rect, coord_system)

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

			:param rect: прямоугольник
			:type rect: :class:`~PyQt5.QtCore.QRectF`
			:param coord_system: координатная система
			:type coord_system: :class:`~axioma.cs.CoordSystem`

		.. method:: GeoRect(coord_system)

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

			:param coord_system: координатная система
			:type coord_system: :class:`~axioma.cs.CoordSystem`

		.. method:: GeoRect(georect)

			Конструктор копирования

			:param georect: копируемый географический прямоугольник
			:type georect: :class:`~axioma.core.dp.GeoRect`

		.. method:: isValid()

			Является ли валидным, т.е. с ненулевым прямоугольником и координатной системой

			:rtype: :class:`bool`

		.. method:: rect()

			Ограничивающий прямоугольник

			:rtype: :class:`~PyQt5.QtCore.QRectF`

		.. method:: setRect(rect)

			Задать прямоугольник

			:param rect: новый прямоугольник
			:type rect: :class:`~PyQt5.QtCore.QRectF`

		.. csv-table:: Стандартные методы для прямоугольника. Подробнее в документации Qt для :class:`~PyQt5.QtCore.QRectF`
			:header: "Метод", "Возвращаемый тип", "Описание"

			.. method:: left(), :class:`float`, координата х левого края
			.. method:: top(), :class:`float`, координата y верхнего края
			.. method:: right(), :class:`float`, координата x правого края
			.. method:: bottom(), :class:`float`, координата y нижнего края
			.. method:: width(), :class:`float`, ширина прямоугольника
			.. method:: height(), :class:`float`, высота прямоугольника
			.. method:: center(), :class:`~PyQt5.QtCore.QPointF`, Центр
			.. method:: size(), :class:`~PyQt5.QtCore.QSize`, Размер

		.. method:: coordSystem()

			Получить координатную систему

			:rtype: :class:`~axioma.cs.CoordSystem`

		.. method:: setCoordSystem(coord_system)

			Задать координатную систему

			:param coord_system: новая координатная система
			:type coord_system: :class:`~axioma.cs.CoordSystem`

		.. method:: transformToCoordSystem(coord_system)

			Преобразовать к заданной координатной системе

			:param coord_system: координатная система, к которой производится преобразование
			:type coord_system: :class:`~axioma.cs.CoordSystem`

		.. method:: transformedToCoordSystem(coord_system)

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

			:param coord_system: координатная система, к которой производится преобразование
			:type coord_system: :class:`~axioma.cs.CoordSystem`
			:return: копия географического прямоугольника
			:rtype: :class:`~axioma.core.dp.GeoRect`

		.. method:: unite(georect)

			Объединить с другим географическим прямоугольником

			:param georect: другой прямоугольник
			:type georect: :class:`~axioma.core.dp.GeoRect`
			:return: сам объект
			:rtype: :class:`~axioma.core.dp.GeoRect`

		.. method:: united()

			Объединить с другим географическим прямоугольником

			:param georect: другой прямоугольник
			:type georect: :class:`~axioma.core.dp.GeoRect`
			:return: новый объект
			:rtype: :class:`~axioma.core.dp.GeoRect`

		.. staticmethod:: cropToCoordsysBounds(coord_system, georect)

			Обрезать прямоугольник до координатной системы

			:param coord_system: координатная система
			:type coord_system: :class:`~axioma.cs.CoordSystem`
			:param georect: прямоугольник
			:type georect: :class:`~axioma.core.dp.GeoRect`
			:return: полученный прямоугольник
			:rtype: :class:`~PyQt5.QtCore.QRectF`

		.. method:: corpToCoordsysBounds()

			Применить обрезку прямоугольника по границам координатной системы

			:return: сам объект
			:rtype: :class:`~axioma.core.dp.GeoRect`

		.. method:: isEqualCs(coord_system)

			Определяет, равна ли координатная система географического прямоугольника заданной

			:param coord_system: координатная система
			:type coord_system: :class:`~axioma.cs.CoordSystem`
			:return: True если равна, иначе - False
			:rtype: :class:`bool`

		.. method:: isNonEarthCs()

			Является ли данная координатная система NonEarth

			:return: `True`, если да
			:rtype: :class:`bool`
