LayerGroup
=================

.. currentmodule:: axioma.render

.. class:: LayerGroup

	Контейнер для хранения элементов карты. 

	Унаследован от: :class:`Layer`

	От него наследуются: :class:`RootLayerGroup`

		.. py:method:: LayerGroup( parent)

			Конструктор

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

		.. py:method:: LayerGroup(other)

			Копирующий конструктор

			:param other: Исходный контейнер, на базе которого создается текущий контейнер.
			:type other: :class:`LayerGroup`

		.. py:method:: flatLayerList()

			Список всех слоев, содержащихся в контейнере

			:return: Перечень слоев, представленный в виде списка
			:rtype: :class:`list` [:class:`Layer`]

		.. py:method:: childCount()

			Количество дочерних элементов

			:return: Количество
			:rtype: :class:`int`

		.. py:method:: indexOf(child)

			Индекс дочернего элемента.

			:param child: Элемент поиска.
			:type child: :class:`~axioma.render.MapItem`
			:return: Индекс. Если элемент не найден, возвращается -1
			:rtype: :class:`int`

		.. py:method:: insertChild(child, index)

			Вставка нового элемента в указанное место.

			:param child: Вставляемый элемент.
			:type child: :class:`~axioma.render.MapItem`
			:param index: Индекс элемента, перед которым будет вставлен элемент
			:type index: :class:`int`

		.. py:method:: append(child)

			Вставка нового элемента в конец списка. Приоритет размещения не учитывается. Вставляется как есть.

			:param child: Вставляемый элемент.
			:type child: :class:`~axioma.render.MapItem`

		.. py:method:: insert(child)

			Добавление элемента согласно приоритету его типа.  При вставке учитывается его приоритет размещения (растровые слои вниз, точечные векторные наверх)

			:param child: Вставляемый элемент.
			:type child: :class:`~axioma.render.MapItem`

		.. py:method:: removeItemAt(index)

			Убрать элемент из группы. Элемент при данном действии не удаляется

			:param index: Индекс элемента.
			:type index: :class:`int`
			:return: Убранный из группы элемент
			:rtype: :class:`~axioma.render.MapItem`

		.. py:method:: deleteAllChildren()

		Удаление всех элементов в группе

		.. py:method:: deleteChild(index)

			Удаление элемента по индексу. Элемент при этом будет удален

			:param index: Индекс удаляемого элемента.
			:type index: :class:`int`

		.. py:method:: moveChild(from, to)

			Перемещение элемента.

			:param from: Индекс, откуда необходимо переместить элемент
			:type from: :class:`int`
			:param to: Индекс, куда необходимо переместить элемент
			:type to: :class:`int`

		.. py:method:: childAt(index)

			Получение элемента по индексу.

			:param index: Индекс элемента.
			:type index: :class:`int`
			:return: Элемент группы
			:rtype: :class:`~axioma.render.MapItem`

		.. py:method:: takeAt(index)

			Получение элемента по индексу. При использовании этого метода LayerGroup перестает быть владельцем элемента

			:param index: Индекс элемента.
			:type index: :class:`int`
			:return: Элемент группы
			:rtype: :class:`~axioma.render.MapItem`

		.. py:method:: findChildByName(name)

			Поиск элемента по имени.

			:param name: Имя искомого элемента
			:type name: :class:`str`
			:return: Элемент группы. Если элемент не найден, возвращается None
			:rtype: :class:`~axioma.render.MapItem`

		.. py:method:: moveUp(index)

			Перемещение элемента на одну позицию вверх

			:param index: Индекс из которого элемент будет перемещен.
			:type index: :class:`int`

		.. py:method:: moveDown(index)

			Перемещение элемента на одну позицию вниз

			:param index: Индекс из которого элемент будет перемещен.
			:type index: :class:`int`

		.. py:method:: ungroup(group)

			Перемещение элемента на одну позицию вниз

			:param group: Группа для разгруппировки.
			:type group: :class:`LayerGroup`

		.. py:method:: group(indexes)

			Группировка элементов

			:param indexes: Список индексов элементов для группировки.
			:type indexes: :class:`list` [ :class:`int` ]

