Я использую JointJS для создания динамических графов. В моем сценарии я получил две работы. Левый содержит элементы-фигуры в качестве шаблонов, которые я могу перетащить на нужную бумагу. Все отлично работает. Но теперь я хочу отбросить одну форму элемента над другой (например, связанный элемент). Если левый элемент пересекается с любым другим элементом на правой бумаге, должно быть инициировано событие, которое вставляет новую фигуру элемента в существующую.
Я получил это до сих пор, но пересечение не работает:
...
//try to embed by dropping
_.each(graph.getElements(), function (el) {
if (el.getBBox().intersect(cellView.model.getBBox())) {
//embed element one into element two
}
});
...
Заранее спасибо!
Теперь я собираюсь ответить на свой вопрос...
//get all existing elements and iterate through
_.each(graph.getElements(), function (elements) {
//let s be the new element to drag over the parent element
if (s.getBBox().intersect(elements.getBBox())) {
//add a condition if you want....
if (elements instanceof joint.shapes.devs.Coupled) {
//now embed the new element into the existing one
elements.embed(s);
}
}
});