mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 12:28:02 +02:00
add menus to editVoxels.js
This commit is contained in:
parent
e12d791097
commit
4d0a25b6ea
1 changed files with 68 additions and 35 deletions
|
@ -1012,43 +1012,78 @@ function keyReleaseEvent(event) {
|
||||||
|
|
||||||
// handle clipboard items
|
// handle clipboard items
|
||||||
if (selectToolSelected) {
|
if (selectToolSelected) {
|
||||||
var pickRay = Camera.computePickRay(trackLastMouseX, trackLastMouseY);
|
// menu tied to BACKSPACE, so we handle DELETE key here...
|
||||||
var intersection = Voxels.findRayIntersection(pickRay);
|
if (event.text == "DELETE") {
|
||||||
selectedVoxel = calculateVoxelFromIntersection(intersection,"select");
|
var pickRay = Camera.computePickRay(trackLastMouseX, trackLastMouseY);
|
||||||
|
var intersection = Voxels.findRayIntersection(pickRay);
|
||||||
// Note: this sample uses Alt+ as the key codes for these clipboard items
|
selectedVoxel = calculateVoxelFromIntersection(intersection,"select");
|
||||||
if ((event.key == 199 || event.key == 67 || event.text == "C" || event.text == "c") && event.isAlt) {
|
print("the DELETE key was pressed... delete");
|
||||||
print("the Alt+C key was pressed... copy");
|
|
||||||
Clipboard.copyVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
|
||||||
}
|
|
||||||
if ((event.key == 8776 || event.key == 88 || event.text == "X" || event.text == "x") && event.isAlt) {
|
|
||||||
print("the Alt+X key was pressed... cut");
|
|
||||||
Clipboard.cutVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
|
||||||
}
|
|
||||||
if ((event.key == 8730 || event.key == 86 || event.text == "V" || event.text == "v") && event.isAlt) {
|
|
||||||
print("the Alt+V key was pressed... paste");
|
|
||||||
Clipboard.pasteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
|
||||||
}
|
|
||||||
if (event.text == "DELETE" || event.text == "BACKSPACE") {
|
|
||||||
print("the DELETE/BACKSPACE key was pressed... delete");
|
|
||||||
Clipboard.deleteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
Clipboard.deleteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((event.text == "E" || event.text == "e") && event.isMeta) {
|
|
||||||
print("the Ctl+E key was pressed... export");
|
|
||||||
Clipboard.exportVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
|
||||||
}
|
|
||||||
if ((event.text == "I" || event.text == "i") && event.isMeta) {
|
|
||||||
print("the Ctl+I key was pressed... import");
|
|
||||||
Clipboard.importVoxels();
|
|
||||||
}
|
|
||||||
if ((event.key == 78 || event.text == "N" || event.text == "n") && event.isMeta) {
|
|
||||||
print("the Ctl+N key was pressed, nudging to left 1 meter... nudge");
|
|
||||||
Clipboard.nudgeVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s, { x: -1, y: 0, z: 0 });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setupMenus() {
|
||||||
|
// hook up menus
|
||||||
|
Menu.menuItemEvent.connect(menuItemEvent);
|
||||||
|
|
||||||
|
// delete the standard application menu item
|
||||||
|
Menu.removeMenuItem("Edit", "Cut");
|
||||||
|
Menu.removeMenuItem("Edit", "Copy");
|
||||||
|
Menu.removeMenuItem("Edit", "Paste");
|
||||||
|
Menu.removeMenuItem("Edit", "Delete");
|
||||||
|
Menu.removeMenuItem("Edit", "Nudge");
|
||||||
|
Menu.removeMenuItem("File", "Export Voxels");
|
||||||
|
Menu.removeMenuItem("File", "Import Voxels");
|
||||||
|
|
||||||
|
// delete the standard application menu item
|
||||||
|
Menu.addMenuItem({ menuName: "Edit", menuItemName: "Cut", shortcutKey: "CTRL+X", afterItem: "Voxels" });
|
||||||
|
Menu.addMenuItem({ menuName: "Edit", menuItemName: "Copy", shortcutKey: "CTRL+C", afterItem: "Cut" });
|
||||||
|
Menu.addMenuItem({ menuName: "Edit", menuItemName: "Paste", shortcutKey: "CTRL+V", afterItem: "Copy" });
|
||||||
|
Menu.addMenuItem({ menuName: "Edit", menuItemName: "Nudge", shortcutKey: "CTRL+N", afterItem: "Paste" });
|
||||||
|
Menu.addMenuItem({ menuName: "Edit", menuItemName: "Delete", shortcutKeyEvent: { text: "backspace" }, afterItem: "Nudge" });
|
||||||
|
Menu.addMenuItem({ menuName: "File", menuItemName: "Export Voxels", shortcutKey: "CTRL+E", afterItem: "Voxels" });
|
||||||
|
Menu.addMenuItem({ menuName: "File", menuItemName: "Import Voxels", shortcutKey: "CTRL+I", afterItem: "Export Voxels" });
|
||||||
|
}
|
||||||
|
|
||||||
|
function menuItemEvent(menuItem) {
|
||||||
|
|
||||||
|
// handle clipboard items
|
||||||
|
if (selectToolSelected) {
|
||||||
|
var pickRay = Camera.computePickRay(trackLastMouseX, trackLastMouseY);
|
||||||
|
var intersection = Voxels.findRayIntersection(pickRay);
|
||||||
|
selectedVoxel = calculateVoxelFromIntersection(intersection,"select");
|
||||||
|
if (menuItem == "Copy") {
|
||||||
|
print("copying...");
|
||||||
|
Clipboard.copyVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
||||||
|
}
|
||||||
|
if (menuItem == "Cut") {
|
||||||
|
print("cutting...");
|
||||||
|
Clipboard.cutVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
||||||
|
}
|
||||||
|
if (menuItem == "Paste") {
|
||||||
|
print("pasting...");
|
||||||
|
Clipboard.pasteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
||||||
|
}
|
||||||
|
if (menuItem == "Delete") {
|
||||||
|
print("deleting...");
|
||||||
|
Clipboard.deleteVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (menuItem == "Export Voxels") {
|
||||||
|
print("export");
|
||||||
|
Clipboard.exportVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s);
|
||||||
|
}
|
||||||
|
if (menuItem == "Import Voxels") {
|
||||||
|
print("import");
|
||||||
|
Clipboard.importVoxels();
|
||||||
|
}
|
||||||
|
if (menuItem == "Nudge") {
|
||||||
|
print("nudge");
|
||||||
|
Clipboard.nudgeVoxel(selectedVoxel.x, selectedVoxel.y, selectedVoxel.z, selectedVoxel.s, { x: -1, y: 0, z: 0 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function mouseMoveEvent(event) {
|
function mouseMoveEvent(event) {
|
||||||
if (!editToolsOn) {
|
if (!editToolsOn) {
|
||||||
|
@ -1403,8 +1438,6 @@ function scriptEnding() {
|
||||||
}
|
}
|
||||||
Script.scriptEnding.connect(scriptEnding);
|
Script.scriptEnding.connect(scriptEnding);
|
||||||
|
|
||||||
|
|
||||||
Script.willSendVisualDataCallback.connect(update);
|
Script.willSendVisualDataCallback.connect(update);
|
||||||
|
|
||||||
|
setupMenus();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue