tdgm-blocks/src/lib/vector/tools/node.js

45 lines
1.3 KiB
JavaScript
Raw Normal View History

2023-02-28 18:09:11 -05:00
let toolData = {
doubleClickInner: (event) => {
var nearestPoint = event.target.getNearestPoint(event.point);
if (nearestPoint.getDistance(event.point) > event.nodeDist) return;
event.target.segments.forEach(segment => {
segment.selected = false;
});
let closestPoint = event.target.segments[0];
let closestDist = 10000;
event.target.segments.forEach(segment => {
let dist = segment.point.getDistance(nearestPoint);
if (dist < closestDist) {
closestDist = dist;
closestPoint = segment.point;
}
});
let newPoint;
if (nearestPoint.getDistance(closestPoint) > event.grabDist) {
newPoint = event.target.divideAt(event.target.getLocationOf(nearestPoint));
} else {
newPoint = closestPoint;
}
newPoint.selected = true;
},
mouseDrag : ( {selectedItems, delta} ) => {
selectedItems.forEach(item => {
if (item.className == 'Path') {
item.segments.forEach(segment => {
if (segment.selected)
segment.point = segment.point.add(delta)
})
}
})
}
}
export { toolData };