Render
=================

.. currentmodule:: axioma.render

.. class:: Render

	Сервисный класс модуля отрисовки. Используется когда есть необходимость использовать модуль render и функционала core недостаточно. \
	Например, отрисовки карты в растр. В рамках одного отдельного проекта \
	достаточно проинициализировать один экземпляр данного класса. Перед вызовом :meth:`~axioma.render.Render.initialize` 
	должен быть создан объект приложения  :class:`~PyQt5.QtGui.QGuiApplication`. При этом так-же вызывается инициализация \
	для окружения :meth:`~axioma.core.Core`
	
	
	.. code-block:: python
		:caption: Пример инициализации:

		import sys
		import axioma.render
		from PyQt5.QtGui import QGuiApplication

		a = QGuiApplication(sys.argv)
		render = axioma.render.Render()
		render.initialize()


	.. note:: Получить существующий экземпляр можно через глобальную переменную axioma.app.render


	Унаследован от: :class:`~axioma.core.Core`

	От него наследуются: :class:`~axioma.gui.Gui`

		.. py:method:: Render(parent=None)

			Конструктор

			:param parent: родительский объект
			:type parent: :class:`~PyQt5.QtCore.QObject` или :any:`None`

		.. py:method:: createLayerForDataObject(dataObject)

			Создание слоя необходимого типа для переданного источника данных

			:param  dataObject: Открытый источник данных
			:type dataObject: :class:`~axioma.core.dp.DataObject`
			:return: Полученный слой
			:rtype: :class:`~axioma.render.Layer`

                .. py:method:: createLayerForTableEditing(table)

                        Создание слоя для редактирования таблиц.
                        Эта функция отличается от функции `createLayerForDataObject` тем, 
                        что принимает редактируемую таблицу, и, если эта таблица не 
                        поддерживает механизм транзакций (insert, update, remove),
                        создает для нее транзакционную оболочку. 
                        В результате всегда получается редактируемый слой.

	                :param table: Таблица для редактирования
                        :type  table: :class:`~axioma.code.dp.EditableTable`
                	:return: Слой для отображения и редактирования таблицы table,
	                         либо None, если данный тип таблиц не поддерживается
                        :rtype: :class:`~axioma.render.TableLayer`

		.. py:method:: styleService()

			Ссылка на службу стилей

			:return: Активная служба
			:rtype: :class:`~axioma.render.StyleService`
			
			.. py:method:: renderSettingsManager()

			Получить ссылку на объект с текущими настройками приложения

			:rtype: :class:`~axioma.render.RenderSettingsManager`
			
		.. py:method:: geometryStyleManager()

			Получение ссылки на менеджер соответствия стилей и его геометрии.

			:rtype: :class:`~axioma.render.GeometryStyleManager`
