ContextInterface
====================

.. currentmodule:: axioma.render

.. class:: ContextInterface

	Базовый класс контекста рисования. Содержит информацию о том, куда производится рисование (:class:`~PyQt5.QtGui.QPainter`), а так же о необходимых преобразованиях,
	которые необходимо применить к объекту непосредственно перед его отрисовкой (:class:`~axioma.render.ViewportInterface`)

	От него наследуются:
	
	* :class:`~axioma.render.Context`
	* :class:`MapContext`

		.. py:method:: painter()

			Ссылка на объект для рисования

			:return:  QPainter для рисования
			:rtype: :class:`~PyQt5.QtGui.QPainter`

		.. py:method:: viewport()

			Информация о преобразовании координат между устройством вывода и первоначальной сценой (карты или отчета). А так же о том, какой участок сцены рисуется

			:return:  Ссылка на viewport
			:rtype: :class:`~axioma.render.Viewport`

		.. py:method:: dpi()

			Количество точек на дюйм, с которым происходит рисование.  Влияет на отрисовку в "реальных" единицах измерения (мм, см, пункты)

			:return:  Количество точек на дюйм
			:rtype: :class:`float`

		.. py:method:: sceneToDeviceTransform()

			Матрица преобразования из координат сцены в координаты устройства рисования

			:return:  Матрица преобразования
			:rtype: :class:`~PyQt5.QtGui.QTransform`

		.. py:method:: deviceToSceneTransform()

			Матрица преобразования из координат устройства рисования в координаты сцены

			:return:  Матрица преобразования
			:rtype: :class:`~PyQt5.QtGui.QTransform`

		.. py:method:: setPainter(painter)

			Устанавливает QPainter для рисования

			:param painter: Новое значение 
			:type painter: :class:`~PyQt5.QtGui.QPainter`

		.. py:method:: setDpi(dpi)

			Устанавливает количество точек на дюйм

			:param dpi: Новое значение 
			:type dpi: :class:`float`

		.. py:staticmethod:: deviceDpi(dev)

			Функция для расчета dpi для QPaintDevice

			:param dev: Устройство для анализа
			:type dev: :class:`~PyQt5.QtGui.QPaintDevice`
			:return: значение dpi
			:rtype: :class:`float`

Пример использования:

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