mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 22:59:58 +02:00
Update entity edit tools
Move editing functions into "tool" objects which contain onBegin, onMove, and onEnd functions. Add multi-selection Add local and world editing modes Fix XZ tool
This commit is contained in:
parent
2a4092f287
commit
d5c7c60553
3 changed files with 1267 additions and 1530 deletions
|
@ -97,11 +97,12 @@ EntityCameraTool = function() {
|
||||||
|
|
||||||
that.focus = function(entityProperties) {
|
that.focus = function(entityProperties) {
|
||||||
var dim = entityProperties.dimensions;
|
var dim = entityProperties.dimensions;
|
||||||
|
dim = SelectionManager.worldDimensions;
|
||||||
var size = Math.max(dim.x, Math.max(dim.y, dim.z));
|
var size = Math.max(dim.x, Math.max(dim.y, dim.z));
|
||||||
|
|
||||||
that.targetZoomDistance = Math.max(size * FOCUS_ZOOM_SCALE, FOCUS_MIN_ZOOM);
|
that.targetZoomDistance = Math.max(size * FOCUS_ZOOM_SCALE, FOCUS_MIN_ZOOM);
|
||||||
|
|
||||||
that.setFocalPoint(entityProperties.position);
|
that.setFocalPoint(SelectionManager.worldPosition);//entityProperties.position);
|
||||||
|
|
||||||
that.updateCamera();
|
that.updateCamera();
|
||||||
}
|
}
|
||||||
|
@ -184,7 +185,7 @@ EntityCameraTool = function() {
|
||||||
// Scale based on current zoom level
|
// Scale based on current zoom level
|
||||||
dZoom *= that.targetZoomDistance * ZOOM_SCALING;
|
dZoom *= that.targetZoomDistance * ZOOM_SCALING;
|
||||||
|
|
||||||
that.targetZoomDistance = Math.max(Math.min(that.targetZoomDistance + dZoom, MAX_ZOOM_DISTANCE), MIN_ZOOM_DISTANCE);
|
that.targetZoomDistance = Math.max(that.targetZoomDistance + dZoom, MIN_ZOOM_DISTANCE);
|
||||||
|
|
||||||
that.updateCamera();
|
that.updateCamera();
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -21,6 +21,7 @@ Script.include("libraries/progressDialog.js");
|
||||||
|
|
||||||
Script.include("libraries/entitySelectionTool.js");
|
Script.include("libraries/entitySelectionTool.js");
|
||||||
var selectionDisplay = SelectionDisplay;
|
var selectionDisplay = SelectionDisplay;
|
||||||
|
var selectionManager = SelectionManager;
|
||||||
|
|
||||||
Script.include("libraries/ModelImporter.js");
|
Script.include("libraries/ModelImporter.js");
|
||||||
var modelImporter = new ModelImporter();
|
var modelImporter = new ModelImporter();
|
||||||
|
@ -34,6 +35,8 @@ var entityPropertyDialogBox = EntityPropertyDialogBox;
|
||||||
Script.include("libraries/entityCameraTool.js");
|
Script.include("libraries/entityCameraTool.js");
|
||||||
var entityCameraTool = new EntityCameraTool();
|
var entityCameraTool = new EntityCameraTool();
|
||||||
|
|
||||||
|
selectionManager.setEventListener(selectionDisplay.updateHandles());
|
||||||
|
|
||||||
var windowDimensions = Controller.getViewportDimensions();
|
var windowDimensions = Controller.getViewportDimensions();
|
||||||
var toolIconUrl = HIFI_PUBLIC_BUCKET + "images/tools/";
|
var toolIconUrl = HIFI_PUBLIC_BUCKET + "images/tools/";
|
||||||
var toolHeight = 50;
|
var toolHeight = 50;
|
||||||
|
@ -440,6 +443,11 @@ function mousePressEvent(event) {
|
||||||
orientation = MyAvatar.orientation;
|
orientation = MyAvatar.orientation;
|
||||||
intersection = rayPlaneIntersection(pickRay, P, Quat.getFront(orientation));
|
intersection = rayPlaneIntersection(pickRay, P, Quat.getFront(orientation));
|
||||||
|
|
||||||
|
if (!event.isShifted) {
|
||||||
|
selectionManager.clearSelections();
|
||||||
|
}
|
||||||
|
selectionManager.addEntity(foundEntity);
|
||||||
|
|
||||||
print("Model selected selectedEntityID:" + selectedEntityID.id);
|
print("Model selected selectedEntityID:" + selectedEntityID.id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -641,11 +649,16 @@ Menu.menuItemEvent.connect(handeMenuEvent);
|
||||||
|
|
||||||
Controller.keyReleaseEvent.connect(function (event) {
|
Controller.keyReleaseEvent.connect(function (event) {
|
||||||
// since sometimes our menu shortcut keys don't work, trap our menu items here also and fire the appropriate menu items
|
// since sometimes our menu shortcut keys don't work, trap our menu items here also and fire the appropriate menu items
|
||||||
|
print(event.text);
|
||||||
if (event.text == "`") {
|
if (event.text == "`") {
|
||||||
handeMenuEvent("Edit Properties...");
|
handeMenuEvent("Edit Properties...");
|
||||||
}
|
}
|
||||||
if (event.text == "BACKSPACE") {
|
if (event.text == "BACKSPACE") {
|
||||||
handeMenuEvent("Delete");
|
handeMenuEvent("Delete");
|
||||||
|
} else if (event.text == "TAB") {
|
||||||
|
selectionDisplay.toggleSpaceMode();
|
||||||
|
} else if (event.text == "ESC") {
|
||||||
|
selectionDisplay.cancelTool();
|
||||||
} else if (event.text == "f") {
|
} else if (event.text == "f") {
|
||||||
if (entitySelected) {
|
if (entitySelected) {
|
||||||
// Get latest properties
|
// Get latest properties
|
||||||
|
|
Loading…
Reference in a new issue