deniskoronchik/sc-web-components — pull request #77 by yalchik (2014-05-07 05:18:23+00:00)
Title: Сделано issue #51 (добавление контура в контур) + пересчёт вершин для контуров

Один контур попадает в другой контур тогда, когда в другой контур попадают все вершины первого контура.

Если добавляем контур А в контур Б, то все элементы контура А остаются в нём. Контур А переносится на слой выше контура Б.

Каждый контур создаётся на верхнем слое, относительно других контуров.

Если scg-объект попадает в несколько контуров, то добавляем его в тот контур, который находится в верхнем слое, относительно других.

Если при создании контура А в него попадают scg-объекты, уже находящиеся в другом контуре Б, но сам контур Б не попадает в контур А, то мы переносим попавшие элементы из контура Б в А.

====================================
Добавлена возможность построения контура по набору принадлежащих ему узлов

Пример создания контура для трёх узлов (model_node1, model_node2, model_node3), созданных и добавленных в scene заранее:
var model_contour = new SCg.ModelContour({
childs: [model_node1, model_node2, model_node3]
});
editor.scene.appendContour(model_contour);

Данная возможность будет полезна при автоматической генерации контуров, вершины которых не заданы.

Также добавил возможность пересчитать уже построенный контур. Для этого надо выделить контур и с зажатой левой кнопкой мыши нажать Enter. Это позволяет оптимизировать занимаемое контуром пространство.

Инициировать пересчёт контура можно с помощью вызова метода recalculateVertexes() класса SCg.ModelContour