GeometryInterface
=================

.. currentmodule:: axioma.core.geometry

.. class:: GeometryInterface

	Данный класс представляет собой интерфейс для работы с геометриями

	Унаследован от: 
	
	* :class:`~axioma.core.serialization.Serializable`
	
	От него наследуются:

	* :class:`~axioma.core.geometry.Curve`
	* :class:`~axioma.core.geometry.Surface`
	* :class:`~axioma.core.geometry.GeometryCollection`
	* :class:`~axioma.mapinfo.Text`

		.. method:: clone()

			Создание копии геометрии

			:return: копия геометрии
			:rtype: :class:`~axioma.core.geometry.GeometryInterface`

		.. method:: isCollection()

			Метод, позволяющий определить, является ли геометрия коллекцией

			:return: результат проверки
			:rtype: :class:`bool`

		.. method:: boundingRect()

			Расчет ограничивающего прямоугольника геометрии

			:return: ограничивающий прямоугольник
			:rtype: :class:`~PyQt5.QtCore.QRectF`

		.. method:: isHitByBoundingRect(rect)

			Проверят, попадает ли геометрия внутрь ограничивающего прямоугольника (для точек - особый случай)

			:param rect: ограничивающий прямоугольник
			:type: :class:`~PyQt5.QtCore.QRectF`
			:return: результат проверки
			:rtype: :class:`bool`

		.. method:: coordSystem()

			Координатная система геометрии

			:return: координатная система


		.. method:: setCoordSystem(coord_system)

			Установка координатной системы геометрии

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

		.. method:: name()

			Наименование геометрии

			:return: наименование геометрии
			:rtype: :class:`str`

		.. method:: translated(dx, dy)

			Преобразование геометрии путем смещения координат

			:param dx: смещение по оси X
			:type dx: :class:`float`
			:param dy: смещение по оси Y
			:type dy: :class:`float`
			:return: преобразованная геометрия
			:rtype: :class:`~axioma.core.geometry.GeometryInterface`

		.. method:: rotated(center, radians)

			Преобразование геометрии путем вращения вокруг точки

			:param center: координаты точки вращения
			:type center: :class:`~PyQt5.QtCore.QRectF`
			:param radians: величина угла вращения в радианах
			:type radians: :class:`float`
			:return: преобразованная геометрия
			:rtype: :class:`~axioma.core.geometry.GeometryInterface`
			:raises exception: :exc:`Exception` в случае, если преобразование невозможно выполнить

		.. method:: transformed(coord_system)

			Преобразование геометрии

			:param coord_system: координатная система в соответствии с которой необходимо преобразовать геометрию
			:type coord_system: :class:`~axioma.cs.CoordSystem`
			:return: новая преобразованная геометрия
			:rtype: :class:`~axioma.core.geometry.GeometryInterface`
			:raises exception: :exc:`Exception` в случае, если преобразование невозможно выполнить

		.. method:: transformed(transformation)

			Преобразование геометрии

			:param transformation: трансформация геометрии
			:type transformation: :class:`~PyQt5.QtGui.QTransform`
			:return: новая преобразованная геометрия
			:rtype: :class:`~axioma.core.geometry.GeometryInterface`
			:raises exception: :exc:`Exception` в случае, если преобразование невозможно выполнить


Примеры:

.. literalinclude:: ../../../../../../examples/geometry.py
	:language: python
	:linenos:

