mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 19:16:56 +02:00
CR changes + eslint fixes
This commit is contained in:
parent
ed56f09fcf
commit
c019a4816f
1 changed files with 152 additions and 195 deletions
|
@ -13,11 +13,12 @@
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
|
|
||||||
/* global SPACE_LOCAL, SelectionManager */
|
/* global SelectionManager, grid, rayPlaneIntersection, rayPlaneIntersection2, pushCommandForSelections,
|
||||||
|
getMainTabletIDs, getControllerWorldLocation */
|
||||||
|
|
||||||
SPACE_LOCAL = "local";
|
var SPACE_LOCAL = "local";
|
||||||
SPACE_WORLD = "world";
|
var SPACE_WORLD = "world";
|
||||||
HIGHLIGHT_LIST_NAME = "editHandleHighlightList";
|
var HIGHLIGHT_LIST_NAME = "editHandleHighlightList";
|
||||||
|
|
||||||
Script.include([
|
Script.include([
|
||||||
"./controllers.js",
|
"./controllers.js",
|
||||||
|
@ -76,7 +77,7 @@ SelectionManager = (function() {
|
||||||
outlineWidth: 3,
|
outlineWidth: 3,
|
||||||
isOutlineSmooth: true
|
isOutlineSmooth: true
|
||||||
};
|
};
|
||||||
//disabling this for now as it is causing rendering issues with the other handle overlays
|
// disabling this for now as it is causing rendering issues with the other handle overlays
|
||||||
//Selection.enableListHighlight(HIGHLIGHT_LIST_NAME, editHandleOutlineStyle);
|
//Selection.enableListHighlight(HIGHLIGHT_LIST_NAME, editHandleOutlineStyle);
|
||||||
|
|
||||||
that.savedProperties = {};
|
that.savedProperties = {};
|
||||||
|
@ -179,7 +180,7 @@ SelectionManager = (function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return duplicatedEntityIDs;
|
return duplicatedEntityIDs;
|
||||||
}
|
};
|
||||||
|
|
||||||
that._update = function(selectionUpdated) {
|
that._update = function(selectionUpdated) {
|
||||||
var properties = null;
|
var properties = null;
|
||||||
|
@ -257,11 +258,12 @@ SelectionManager = (function() {
|
||||||
|
|
||||||
// Normalize degrees to be in the range (-180, 180)
|
// Normalize degrees to be in the range (-180, 180)
|
||||||
function normalizeDegrees(degrees) {
|
function normalizeDegrees(degrees) {
|
||||||
degrees = ((degrees + 180) % 360) - 180;
|
var maxDegrees = 360;
|
||||||
if (degrees <= -180) {
|
var halfMaxDegrees = maxDegrees / 2;
|
||||||
degrees += 360;
|
degrees = ((degrees + halfMaxDegrees) % maxDegrees) - halfMaxDegrees;
|
||||||
|
if (degrees <= -halfMaxDegrees) {
|
||||||
|
degrees += maxDegrees;
|
||||||
}
|
}
|
||||||
|
|
||||||
return degrees;
|
return degrees;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,14 +273,14 @@ SelectionDisplay = (function() {
|
||||||
|
|
||||||
var NEGATE_VECTOR = -1;
|
var NEGATE_VECTOR = -1;
|
||||||
|
|
||||||
var COLOR_GREEN = { red:31, green:198, blue:166 };
|
var COLOR_GREEN = { red: 31, green: 198, blue: 166 };
|
||||||
var COLOR_BLUE = { red:0, green:147, blue:197 };
|
var COLOR_BLUE = { red: 0, green: 147, blue: 197 };
|
||||||
var COLOR_RED = { red:226, green:51, blue:77 };
|
var COLOR_RED = { red: 226, green: 51, blue: 77 };
|
||||||
var COLOR_HOVER = { red:227, green:227, blue:227 };
|
var COLOR_HOVER = { red: 227, green: 227, blue: 227 };
|
||||||
var COLOR_ROTATE_CURRENT_RING = { red: 255, green: 99, blue: 9 };
|
var COLOR_ROTATE_CURRENT_RING = { red: 255, green: 99, blue: 9 };
|
||||||
var COLOR_SCALE_EDGE = { red:87, green:87, blue:87 };
|
var COLOR_SCALE_EDGE = { red: 87, green: 87, blue: 87 };
|
||||||
var COLOR_SCALE_CUBE = { red:106, green:106, blue:106 };
|
var COLOR_SCALE_CUBE = { red: 106, green: 106, blue: 106 };
|
||||||
var COLOR_SCALE_CUBE_SELECTED = { red:18, green:18, blue:18 };
|
var COLOR_SCALE_CUBE_SELECTED = { red: 18, green: 18, blue: 18 };
|
||||||
|
|
||||||
var TRANSLATE_ARROW_CYLINDER_OFFSET = 0.1;
|
var TRANSLATE_ARROW_CYLINDER_OFFSET = 0.1;
|
||||||
var TRANSLATE_ARROW_CYLINDER_CAMERA_DISTANCE_MULTIPLE = 0.005;
|
var TRANSLATE_ARROW_CYLINDER_CAMERA_DISTANCE_MULTIPLE = 0.005;
|
||||||
|
@ -309,41 +311,41 @@ SelectionDisplay = (function() {
|
||||||
var SCALE_CUBE_OFFSET = 0.5;
|
var SCALE_CUBE_OFFSET = 0.5;
|
||||||
var SCALE_CUBE_CAMERA_DISTANCE_MULTIPLE = 0.0125;
|
var SCALE_CUBE_CAMERA_DISTANCE_MULTIPLE = 0.0125;
|
||||||
|
|
||||||
var CLONER_OFFSET = { x:0.9, y:-0.9, z:0.9 };
|
var CLONER_OFFSET = { x: 0.9, y: -0.9, z: 0.9 };
|
||||||
|
|
||||||
var CTRL_KEY_CODE = 16777249;
|
var CTRL_KEY_CODE = 16777249;
|
||||||
|
|
||||||
var AVATAR_COLLISIONS_OPTION = "Enable Avatar Collisions";
|
var AVATAR_COLLISIONS_OPTION = "Enable Avatar Collisions";
|
||||||
|
|
||||||
var TRANSLATE_DIRECTION = {
|
var TRANSLATE_DIRECTION = {
|
||||||
X : 0,
|
X: 0,
|
||||||
Y : 1,
|
Y: 1,
|
||||||
Z : 2
|
Z: 2
|
||||||
}
|
};
|
||||||
|
|
||||||
var STRETCH_DIRECTION = {
|
var STRETCH_DIRECTION = {
|
||||||
X : 0,
|
X: 0,
|
||||||
Y : 1,
|
Y: 1,
|
||||||
Z : 2,
|
Z: 2,
|
||||||
ALL : 3
|
ALL: 3
|
||||||
}
|
};
|
||||||
|
|
||||||
var SCALE_DIRECTION = {
|
var SCALE_DIRECTION = {
|
||||||
LBN : 0,
|
LBN: 0,
|
||||||
RBN : 1,
|
RBN: 1,
|
||||||
LBF : 2,
|
LBF: 2,
|
||||||
RBF : 3,
|
RBF: 3,
|
||||||
LTN : 4,
|
LTN: 4,
|
||||||
RTN : 5,
|
RTN: 5,
|
||||||
LTF : 6,
|
LTF: 6,
|
||||||
RTF : 7
|
RTF: 7
|
||||||
}
|
};
|
||||||
|
|
||||||
var ROTATE_DIRECTION = {
|
var ROTATE_DIRECTION = {
|
||||||
PITCH : 0,
|
PITCH: 0,
|
||||||
YAW : 1,
|
YAW: 1,
|
||||||
ROLL : 2
|
ROLL: 2
|
||||||
}
|
};
|
||||||
|
|
||||||
var spaceMode = SPACE_LOCAL;
|
var spaceMode = SPACE_LOCAL;
|
||||||
var overlayNames = [];
|
var overlayNames = [];
|
||||||
|
@ -386,16 +388,16 @@ SelectionDisplay = (function() {
|
||||||
};
|
};
|
||||||
var handleTranslateXCone = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCones);
|
var handleTranslateXCone = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCones);
|
||||||
var handleTranslateXCylinder = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCylinders);
|
var handleTranslateXCylinder = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCylinders);
|
||||||
Overlays.editOverlay(handleTranslateXCone, { color : COLOR_RED });
|
Overlays.editOverlay(handleTranslateXCone, { color: COLOR_RED });
|
||||||
Overlays.editOverlay(handleTranslateXCylinder, { color : COLOR_RED });
|
Overlays.editOverlay(handleTranslateXCylinder, { color: COLOR_RED });
|
||||||
var handleTranslateYCone = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCones);
|
var handleTranslateYCone = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCones);
|
||||||
var handleTranslateYCylinder = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCylinders);
|
var handleTranslateYCylinder = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCylinders);
|
||||||
Overlays.editOverlay(handleTranslateYCone, { color : COLOR_GREEN });
|
Overlays.editOverlay(handleTranslateYCone, { color: COLOR_GREEN });
|
||||||
Overlays.editOverlay(handleTranslateYCylinder, { color : COLOR_GREEN });
|
Overlays.editOverlay(handleTranslateYCylinder, { color: COLOR_GREEN });
|
||||||
var handleTranslateZCone = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCones);
|
var handleTranslateZCone = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCones);
|
||||||
var handleTranslateZCylinder = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCylinders);
|
var handleTranslateZCylinder = Overlays.addOverlay("shape", handlePropertiesTranslateArrowCylinders);
|
||||||
Overlays.editOverlay(handleTranslateZCone, { color : COLOR_BLUE });
|
Overlays.editOverlay(handleTranslateZCone, { color: COLOR_BLUE });
|
||||||
Overlays.editOverlay(handleTranslateZCylinder, { color : COLOR_BLUE });
|
Overlays.editOverlay(handleTranslateZCylinder, { color: COLOR_BLUE });
|
||||||
|
|
||||||
var handlePropertiesRotateRings = {
|
var handlePropertiesRotateRings = {
|
||||||
alpha: 1,
|
alpha: 1,
|
||||||
|
@ -411,18 +413,18 @@ SelectionDisplay = (function() {
|
||||||
};
|
};
|
||||||
var handleRotatePitchRing = Overlays.addOverlay("circle3d", handlePropertiesRotateRings);
|
var handleRotatePitchRing = Overlays.addOverlay("circle3d", handlePropertiesRotateRings);
|
||||||
Overlays.editOverlay(handleRotatePitchRing, {
|
Overlays.editOverlay(handleRotatePitchRing, {
|
||||||
color : COLOR_RED,
|
color: COLOR_RED,
|
||||||
majorTickMarksColor: COLOR_RED,
|
majorTickMarksColor: COLOR_RED
|
||||||
});
|
});
|
||||||
var handleRotateYawRing = Overlays.addOverlay("circle3d", handlePropertiesRotateRings);
|
var handleRotateYawRing = Overlays.addOverlay("circle3d", handlePropertiesRotateRings);
|
||||||
Overlays.editOverlay(handleRotateYawRing, {
|
Overlays.editOverlay(handleRotateYawRing, {
|
||||||
color : COLOR_GREEN,
|
color: COLOR_GREEN,
|
||||||
majorTickMarksColor: COLOR_GREEN,
|
majorTickMarksColor: COLOR_GREEN
|
||||||
});
|
});
|
||||||
var handleRotateRollRing = Overlays.addOverlay("circle3d", handlePropertiesRotateRings);
|
var handleRotateRollRing = Overlays.addOverlay("circle3d", handlePropertiesRotateRings);
|
||||||
Overlays.editOverlay(handleRotateRollRing, {
|
Overlays.editOverlay(handleRotateRollRing, {
|
||||||
color : COLOR_BLUE,
|
color: COLOR_BLUE,
|
||||||
majorTickMarksColor: COLOR_BLUE,
|
majorTickMarksColor: COLOR_BLUE
|
||||||
});
|
});
|
||||||
|
|
||||||
var handleRotateCurrentRing = Overlays.addOverlay("circle3d", {
|
var handleRotateCurrentRing = Overlays.addOverlay("circle3d", {
|
||||||
|
@ -461,11 +463,11 @@ SelectionDisplay = (function() {
|
||||||
drawInFront: true
|
drawInFront: true
|
||||||
};
|
};
|
||||||
var handleStretchXSphere = Overlays.addOverlay("shape", handlePropertiesStretchSpheres);
|
var handleStretchXSphere = Overlays.addOverlay("shape", handlePropertiesStretchSpheres);
|
||||||
Overlays.editOverlay(handleStretchXSphere, { color : COLOR_RED });
|
Overlays.editOverlay(handleStretchXSphere, { color: COLOR_RED });
|
||||||
var handleStretchYSphere = Overlays.addOverlay("shape", handlePropertiesStretchSpheres);
|
var handleStretchYSphere = Overlays.addOverlay("shape", handlePropertiesStretchSpheres);
|
||||||
Overlays.editOverlay(handleStretchYSphere, { color : COLOR_GREEN });
|
Overlays.editOverlay(handleStretchYSphere, { color: COLOR_GREEN });
|
||||||
var handleStretchZSphere = Overlays.addOverlay("shape", handlePropertiesStretchSpheres);
|
var handleStretchZSphere = Overlays.addOverlay("shape", handlePropertiesStretchSpheres);
|
||||||
Overlays.editOverlay(handleStretchZSphere, { color : COLOR_BLUE });
|
Overlays.editOverlay(handleStretchZSphere, { color: COLOR_BLUE });
|
||||||
|
|
||||||
var handlePropertiesStretchPanel = {
|
var handlePropertiesStretchPanel = {
|
||||||
shape: "Quad",
|
shape: "Quad",
|
||||||
|
@ -474,13 +476,13 @@ SelectionDisplay = (function() {
|
||||||
visible: false,
|
visible: false,
|
||||||
ignoreRayIntersection: true,
|
ignoreRayIntersection: true,
|
||||||
drawInFront: true
|
drawInFront: true
|
||||||
}
|
};
|
||||||
var handleStretchXPanel = Overlays.addOverlay("shape", handlePropertiesStretchPanel);
|
var handleStretchXPanel = Overlays.addOverlay("shape", handlePropertiesStretchPanel);
|
||||||
Overlays.editOverlay(handleStretchXPanel, { color : COLOR_RED });
|
Overlays.editOverlay(handleStretchXPanel, { color: COLOR_RED });
|
||||||
var handleStretchYPanel = Overlays.addOverlay("shape", handlePropertiesStretchPanel);
|
var handleStretchYPanel = Overlays.addOverlay("shape", handlePropertiesStretchPanel);
|
||||||
Overlays.editOverlay(handleStretchYPanel, { color : COLOR_GREEN });
|
Overlays.editOverlay(handleStretchYPanel, { color: COLOR_GREEN });
|
||||||
var handleStretchZPanel = Overlays.addOverlay("shape", handlePropertiesStretchPanel);
|
var handleStretchZPanel = Overlays.addOverlay("shape", handlePropertiesStretchPanel);
|
||||||
Overlays.editOverlay(handleStretchZPanel, { color : COLOR_BLUE });
|
Overlays.editOverlay(handleStretchZPanel, { color: COLOR_BLUE });
|
||||||
|
|
||||||
var handlePropertiesScaleCubes = {
|
var handlePropertiesScaleCubes = {
|
||||||
size: 0.025,
|
size: 0.025,
|
||||||
|
@ -506,7 +508,7 @@ SelectionDisplay = (function() {
|
||||||
ignoreRayIntersection: true,
|
ignoreRayIntersection: true,
|
||||||
drawInFront: true,
|
drawInFront: true,
|
||||||
lineWidth: 0.2
|
lineWidth: 0.2
|
||||||
}
|
};
|
||||||
var handleScaleTREdge = Overlays.addOverlay("line3d", handlePropertiesScaleEdge);
|
var handleScaleTREdge = Overlays.addOverlay("line3d", handlePropertiesScaleEdge);
|
||||||
var handleScaleTLEdge = Overlays.addOverlay("line3d", handlePropertiesScaleEdge);
|
var handleScaleTLEdge = Overlays.addOverlay("line3d", handlePropertiesScaleEdge);
|
||||||
var handleScaleTFEdge = Overlays.addOverlay("line3d", handlePropertiesScaleEdge);
|
var handleScaleTFEdge = Overlays.addOverlay("line3d", handlePropertiesScaleEdge);
|
||||||
|
@ -646,7 +648,7 @@ SelectionDisplay = (function() {
|
||||||
|
|
||||||
that.shutdown = function() {
|
that.shutdown = function() {
|
||||||
that.restoreAvatarCollisionsFromStretch();
|
that.restoreAvatarCollisionsFromStretch();
|
||||||
}
|
};
|
||||||
Script.scriptEnding.connect(that.shutdown);
|
Script.scriptEnding.connect(that.shutdown);
|
||||||
|
|
||||||
// We get mouseMoveEvents from the handControllers, via handControllerPointer.
|
// We get mouseMoveEvents from the handControllers, via handControllerPointer.
|
||||||
|
@ -773,11 +775,11 @@ SelectionDisplay = (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
that.resetPreviousHandleColor = function() {
|
that.resetPreviousHandleColor = function() {
|
||||||
if (previousHandle != null) {
|
if (previousHandle !== null) {
|
||||||
Overlays.editOverlay(previousHandle, { color: previousHandleColor });
|
Overlays.editOverlay(previousHandle, { color: previousHandleColor });
|
||||||
previousHandle = null;
|
previousHandle = null;
|
||||||
}
|
}
|
||||||
if (previousHandleHelper != null) {
|
if (previousHandleHelper !== null) {
|
||||||
Overlays.editOverlay(previousHandleHelper, { color: previousHandleColor });
|
Overlays.editOverlay(previousHandleHelper, { color: previousHandleColor });
|
||||||
previousHandleHelper = null;
|
previousHandleHelper = null;
|
||||||
}
|
}
|
||||||
|
@ -874,7 +876,7 @@ SelectionDisplay = (function() {
|
||||||
Overlays.editOverlay(result.overlayID, { color: COLOR_HOVER });
|
Overlays.editOverlay(result.overlayID, { color: COLOR_HOVER });
|
||||||
previousHandle = result.overlayID;
|
previousHandle = result.overlayID;
|
||||||
previousHandleHelper = that.getHandleHelper(result.overlayID);
|
previousHandleHelper = that.getHandleHelper(result.overlayID);
|
||||||
if (previousHandleHelper != null) {
|
if (previousHandleHelper !== null) {
|
||||||
Overlays.editOverlay(previousHandleHelper, { color: COLOR_HOVER });
|
Overlays.editOverlay(previousHandleHelper, { color: COLOR_HOVER });
|
||||||
}
|
}
|
||||||
previousHandleColor = pickedColor;
|
previousHandleColor = pickedColor;
|
||||||
|
@ -932,7 +934,7 @@ SelectionDisplay = (function() {
|
||||||
ctrlPressed = false;
|
ctrlPressed = false;
|
||||||
that.updateActiveRotateRing();
|
that.updateActiveRotateRing();
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
// Triggers notification on specific key driven events
|
// Triggers notification on specific key driven events
|
||||||
that.keyPressEvent = function(key) {
|
that.keyPressEvent = function(key) {
|
||||||
|
@ -940,7 +942,7 @@ SelectionDisplay = (function() {
|
||||||
ctrlPressed = true;
|
ctrlPressed = true;
|
||||||
that.updateActiveRotateRing();
|
that.updateActiveRotateRing();
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
// NOTE: mousePressEvent and mouseMoveEvent from the main script should call us., so we don't hook these:
|
// NOTE: mousePressEvent and mouseMoveEvent from the main script should call us., so we don't hook these:
|
||||||
// Controller.mousePressEvent.connect(that.mousePressEvent);
|
// Controller.mousePressEvent.connect(that.mousePressEvent);
|
||||||
|
@ -1007,8 +1009,6 @@ SelectionDisplay = (function() {
|
||||||
lastCameraOrientation = Camera.getOrientation();
|
lastCameraOrientation = Camera.getOrientation();
|
||||||
|
|
||||||
if (event !== false) {
|
if (event !== false) {
|
||||||
pickRay = generalComputePickRay(event.x, event.y);
|
|
||||||
|
|
||||||
var wantDebug = false;
|
var wantDebug = false;
|
||||||
if (wantDebug) {
|
if (wantDebug) {
|
||||||
print("select() with EVENT...... ");
|
print("select() with EVENT...... ");
|
||||||
|
@ -1034,7 +1034,8 @@ SelectionDisplay = (function() {
|
||||||
spaceMode = newSpaceMode;
|
spaceMode = newSpaceMode;
|
||||||
that.updateHandles();
|
that.updateHandles();
|
||||||
} else if (wantDebug) {
|
} else if (wantDebug) {
|
||||||
print("WARNING: entitySelectionTool.setSpaceMode - Can't update SpaceMode. CurrentMode: " + spaceMode + " DesiredMode: " + newSpaceMode);
|
print("WARNING: entitySelectionTool.setSpaceMode - Can't update SpaceMode. CurrentMode: " +
|
||||||
|
spaceMode + " DesiredMode: " + newSpaceMode);
|
||||||
}
|
}
|
||||||
if (wantDebug) {
|
if (wantDebug) {
|
||||||
print("====== SetSpaceMode called. <========");
|
print("====== SetSpaceMode called. <========");
|
||||||
|
@ -1084,7 +1085,8 @@ SelectionDisplay = (function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!handleTools.hasOwnProperty(toolHandle)) {
|
if (!handleTools.hasOwnProperty(toolHandle)) {
|
||||||
print("WARNING: entitySelectionTool.isActiveTool - Encountered unknown grabberToolHandle: " + toolHandle + ". Tools should be registered via addHandleTool.");
|
print("WARNING: entitySelectionTool.isActiveTool - Encountered unknown grabberToolHandle: " +
|
||||||
|
toolHandle + ". Tools should be registered via addHandleTool.");
|
||||||
// EARLY EXIT
|
// EARLY EXIT
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1114,13 +1116,14 @@ SelectionDisplay = (function() {
|
||||||
var rotationInverse = Quat.inverse(rotation);
|
var rotationInverse = Quat.inverse(rotation);
|
||||||
var toCameraDistance = getDistanceToCamera(position);
|
var toCameraDistance = getDistanceToCamera(position);
|
||||||
|
|
||||||
var localRotationX = Quat.fromPitchYawRollDegrees(0, 0, -90);
|
var rotationDegrees = 90;
|
||||||
|
var localRotationX = Quat.fromPitchYawRollDegrees(0, 0, -rotationDegrees);
|
||||||
var rotationX = Quat.multiply(rotation, localRotationX);
|
var rotationX = Quat.multiply(rotation, localRotationX);
|
||||||
worldRotationX = rotationX;
|
worldRotationX = rotationX;
|
||||||
var localRotationY = Quat.fromPitchYawRollDegrees(0, 90, 0);
|
var localRotationY = Quat.fromPitchYawRollDegrees(0, rotationDegrees, 0);
|
||||||
var rotationY = Quat.multiply(rotation, localRotationY);
|
var rotationY = Quat.multiply(rotation, localRotationY);
|
||||||
worldRotationY = rotationY;
|
worldRotationY = rotationY;
|
||||||
var localRotationZ = Quat.fromPitchYawRollDegrees(90, 0, 0);
|
var localRotationZ = Quat.fromPitchYawRollDegrees(rotationDegrees, 0, 0);
|
||||||
var rotationZ = Quat.multiply(rotation, localRotationZ);
|
var rotationZ = Quat.multiply(rotation, localRotationZ);
|
||||||
worldRotationZ = rotationZ;
|
worldRotationZ = rotationZ;
|
||||||
|
|
||||||
|
@ -1133,7 +1136,7 @@ SelectionDisplay = (function() {
|
||||||
// UPDATE ROTATION RINGS
|
// UPDATE ROTATION RINGS
|
||||||
// rotateDimension is used as the base dimension for all overlays
|
// rotateDimension is used as the base dimension for all overlays
|
||||||
var rotateDimension = Math.max(maxHandleDimension, toCameraDistance * ROTATE_RING_CAMERA_DISTANCE_MULTIPLE);
|
var rotateDimension = Math.max(maxHandleDimension, toCameraDistance * ROTATE_RING_CAMERA_DISTANCE_MULTIPLE);
|
||||||
var rotateDimensions = { x:rotateDimension, y:rotateDimension, z:rotateDimension };
|
var rotateDimensions = { x: rotateDimension, y: rotateDimension, z: rotateDimension };
|
||||||
if (!isActiveTool(handleRotatePitchRing)) {
|
if (!isActiveTool(handleRotatePitchRing)) {
|
||||||
Overlays.editOverlay(handleRotatePitchRing, {
|
Overlays.editOverlay(handleRotatePitchRing, {
|
||||||
position: position,
|
position: position,
|
||||||
|
@ -1165,16 +1168,16 @@ SelectionDisplay = (function() {
|
||||||
var arrowCylinderDimension = rotateDimension * TRANSLATE_ARROW_CYLINDER_CAMERA_DISTANCE_MULTIPLE /
|
var arrowCylinderDimension = rotateDimension * TRANSLATE_ARROW_CYLINDER_CAMERA_DISTANCE_MULTIPLE /
|
||||||
ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
||||||
var arrowCylinderDimensions = {
|
var arrowCylinderDimensions = {
|
||||||
x:arrowCylinderDimension,
|
x: arrowCylinderDimension,
|
||||||
y:arrowCylinderDimension * TRANSLATE_ARROW_CYLINDER_Y_MULTIPLE,
|
y: arrowCylinderDimension * TRANSLATE_ARROW_CYLINDER_Y_MULTIPLE,
|
||||||
z:arrowCylinderDimension
|
z: arrowCylinderDimension
|
||||||
};
|
};
|
||||||
var arrowConeDimension = rotateDimension * TRANSLATE_ARROW_CONE_CAMERA_DISTANCE_MULTIPLE /
|
var arrowConeDimension = rotateDimension * TRANSLATE_ARROW_CONE_CAMERA_DISTANCE_MULTIPLE /
|
||||||
ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
||||||
var arrowConeDimensions = { x:arrowConeDimension, y:arrowConeDimension, z:arrowConeDimension };
|
var arrowConeDimensions = { x: arrowConeDimension, y: arrowConeDimension, z: arrowConeDimension };
|
||||||
var arrowCylinderOffset = rotateDimension * TRANSLATE_ARROW_CYLINDER_OFFSET / ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
var arrowCylinderOffset = rotateDimension * TRANSLATE_ARROW_CYLINDER_OFFSET / ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
||||||
var arrowConeOffset = arrowCylinderDimensions.y * TRANSLATE_ARROW_CONE_OFFSET_CYLINDER_DIMENSION_MULTIPLE;
|
var arrowConeOffset = arrowCylinderDimensions.y * TRANSLATE_ARROW_CONE_OFFSET_CYLINDER_DIMENSION_MULTIPLE;
|
||||||
var cylinderXPosition = { x:arrowCylinderOffset, y:0, z:0 };
|
var cylinderXPosition = { x: arrowCylinderOffset, y: 0, z: 0 };
|
||||||
cylinderXPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, cylinderXPosition));
|
cylinderXPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, cylinderXPosition));
|
||||||
Overlays.editOverlay(handleTranslateXCylinder, {
|
Overlays.editOverlay(handleTranslateXCylinder, {
|
||||||
position: cylinderXPosition,
|
position: cylinderXPosition,
|
||||||
|
@ -1188,7 +1191,7 @@ SelectionDisplay = (function() {
|
||||||
rotation: rotationX,
|
rotation: rotationX,
|
||||||
dimensions: arrowConeDimensions
|
dimensions: arrowConeDimensions
|
||||||
});
|
});
|
||||||
var cylinderYPosition = { x:0, y:arrowCylinderOffset, z:0 };
|
var cylinderYPosition = { x: 0, y: arrowCylinderOffset, z: 0 };
|
||||||
cylinderYPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, cylinderYPosition));
|
cylinderYPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, cylinderYPosition));
|
||||||
Overlays.editOverlay(handleTranslateYCylinder, {
|
Overlays.editOverlay(handleTranslateYCylinder, {
|
||||||
position: cylinderYPosition,
|
position: cylinderYPosition,
|
||||||
|
@ -1202,7 +1205,7 @@ SelectionDisplay = (function() {
|
||||||
rotation: rotationY,
|
rotation: rotationY,
|
||||||
dimensions: arrowConeDimensions
|
dimensions: arrowConeDimensions
|
||||||
});
|
});
|
||||||
var cylinderZPosition = { x:0, y:0, z:arrowCylinderOffset };
|
var cylinderZPosition = { x: 0, y: 0, z: arrowCylinderOffset };
|
||||||
cylinderZPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, cylinderZPosition));
|
cylinderZPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, cylinderZPosition));
|
||||||
Overlays.editOverlay(handleTranslateZCylinder, {
|
Overlays.editOverlay(handleTranslateZCylinder, {
|
||||||
position: cylinderZPosition,
|
position: cylinderZPosition,
|
||||||
|
@ -1222,28 +1225,28 @@ SelectionDisplay = (function() {
|
||||||
var scaleCubeOffsetY = SCALE_CUBE_OFFSET * dimensions.y;
|
var scaleCubeOffsetY = SCALE_CUBE_OFFSET * dimensions.y;
|
||||||
var scaleCubeOffsetZ = SCALE_CUBE_OFFSET * dimensions.z;
|
var scaleCubeOffsetZ = SCALE_CUBE_OFFSET * dimensions.z;
|
||||||
var scaleCubeRotation = spaceMode === SPACE_LOCAL ? rotation : Quat.IDENTITY;
|
var scaleCubeRotation = spaceMode === SPACE_LOCAL ? rotation : Quat.IDENTITY;
|
||||||
var scaleLBNCubePosition = { x:-scaleCubeOffsetX, y:-scaleCubeOffsetY, z:-scaleCubeOffsetZ };
|
var scaleLBNCubePosition = { x: -scaleCubeOffsetX, y: -scaleCubeOffsetY, z: -scaleCubeOffsetZ };
|
||||||
scaleLBNCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleLBNCubePosition));
|
scaleLBNCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleLBNCubePosition));
|
||||||
var scaleLBNCubeToCamera = getDistanceToCamera(scaleLBNCubePosition);
|
var scaleLBNCubeToCamera = getDistanceToCamera(scaleLBNCubePosition);
|
||||||
var scaleRBNCubePosition = { x:scaleCubeOffsetX, y:-scaleCubeOffsetY, z:-scaleCubeOffsetZ };
|
var scaleRBNCubePosition = { x: scaleCubeOffsetX, y: -scaleCubeOffsetY, z: -scaleCubeOffsetZ };
|
||||||
scaleRBNCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleRBNCubePosition));
|
scaleRBNCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleRBNCubePosition));
|
||||||
var scaleRBNCubeToCamera = getDistanceToCamera(scaleRBNCubePosition);
|
var scaleRBNCubeToCamera = getDistanceToCamera(scaleRBNCubePosition);
|
||||||
var scaleLBFCubePosition = { x:-scaleCubeOffsetX, y:-scaleCubeOffsetY, z:scaleCubeOffsetZ };
|
var scaleLBFCubePosition = { x: -scaleCubeOffsetX, y: -scaleCubeOffsetY, z: scaleCubeOffsetZ };
|
||||||
scaleLBFCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleLBFCubePosition));
|
scaleLBFCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleLBFCubePosition));
|
||||||
var scaleLBFCubeToCamera = getDistanceToCamera(scaleLBFCubePosition);
|
var scaleLBFCubeToCamera = getDistanceToCamera(scaleLBFCubePosition);
|
||||||
var scaleRBFCubePosition = { x:scaleCubeOffsetX, y:-scaleCubeOffsetY, z:scaleCubeOffsetZ };
|
var scaleRBFCubePosition = { x: scaleCubeOffsetX, y: -scaleCubeOffsetY, z: scaleCubeOffsetZ };
|
||||||
scaleRBFCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleRBFCubePosition));
|
scaleRBFCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleRBFCubePosition));
|
||||||
var scaleRBFCubeToCamera = getDistanceToCamera(scaleRBFCubePosition);
|
var scaleRBFCubeToCamera = getDistanceToCamera(scaleRBFCubePosition);
|
||||||
var scaleLTNCubePosition = { x:-scaleCubeOffsetX, y:scaleCubeOffsetY, z:-scaleCubeOffsetZ };
|
var scaleLTNCubePosition = { x: -scaleCubeOffsetX, y: scaleCubeOffsetY, z: -scaleCubeOffsetZ };
|
||||||
scaleLTNCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleLTNCubePosition));
|
scaleLTNCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleLTNCubePosition));
|
||||||
var scaleLTNCubeToCamera = getDistanceToCamera(scaleLTNCubePosition);
|
var scaleLTNCubeToCamera = getDistanceToCamera(scaleLTNCubePosition);
|
||||||
var scaleRTNCubePosition = { x:scaleCubeOffsetX, y:scaleCubeOffsetY, z:-scaleCubeOffsetZ };
|
var scaleRTNCubePosition = { x: scaleCubeOffsetX, y: scaleCubeOffsetY, z: -scaleCubeOffsetZ };
|
||||||
scaleRTNCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleRTNCubePosition));
|
scaleRTNCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleRTNCubePosition));
|
||||||
var scaleRTNCubeToCamera = getDistanceToCamera(scaleRTNCubePosition);
|
var scaleRTNCubeToCamera = getDistanceToCamera(scaleRTNCubePosition);
|
||||||
var scaleLTFCubePosition = { x:-scaleCubeOffsetX, y:scaleCubeOffsetY, z:scaleCubeOffsetZ };
|
var scaleLTFCubePosition = { x: -scaleCubeOffsetX, y: scaleCubeOffsetY, z: scaleCubeOffsetZ };
|
||||||
scaleLTFCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleLTFCubePosition));
|
scaleLTFCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleLTFCubePosition));
|
||||||
var scaleLTFCubeToCamera = getDistanceToCamera(scaleLTFCubePosition);
|
var scaleLTFCubeToCamera = getDistanceToCamera(scaleLTFCubePosition);
|
||||||
var scaleRTFCubePosition = { x:scaleCubeOffsetX, y:scaleCubeOffsetY, z:scaleCubeOffsetZ };
|
var scaleRTFCubePosition = { x: scaleCubeOffsetX, y: scaleCubeOffsetY, z: scaleCubeOffsetZ };
|
||||||
scaleRTFCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleRTFCubePosition));
|
scaleRTFCubePosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, scaleRTFCubePosition));
|
||||||
var scaleRTFCubeToCamera = getDistanceToCamera(scaleRTFCubePosition);
|
var scaleRTFCubeToCamera = getDistanceToCamera(scaleRTFCubePosition);
|
||||||
|
|
||||||
|
@ -1251,7 +1254,7 @@ SelectionDisplay = (function() {
|
||||||
scaleRBFCubeToCamera, scaleLTNCubeToCamera, scaleRTNCubeToCamera,
|
scaleRBFCubeToCamera, scaleLTNCubeToCamera, scaleRTNCubeToCamera,
|
||||||
scaleLTFCubeToCamera, scaleRTFCubeToCamera);
|
scaleLTFCubeToCamera, scaleRTFCubeToCamera);
|
||||||
var scaleCubeDimension = scaleCubeToCamera * SCALE_CUBE_CAMERA_DISTANCE_MULTIPLE;
|
var scaleCubeDimension = scaleCubeToCamera * SCALE_CUBE_CAMERA_DISTANCE_MULTIPLE;
|
||||||
var scaleCubeDimensions = { x:scaleCubeDimension, y:scaleCubeDimension, z:scaleCubeDimension };
|
var scaleCubeDimensions = { x: scaleCubeDimension, y: scaleCubeDimension, z: scaleCubeDimension };
|
||||||
|
|
||||||
Overlays.editOverlay(handleScaleLBNCube, {
|
Overlays.editOverlay(handleScaleLBNCube, {
|
||||||
position: scaleLBNCubePosition,
|
position: scaleLBNCubePosition,
|
||||||
|
@ -1311,21 +1314,21 @@ SelectionDisplay = (function() {
|
||||||
// UPDATE STRETCH SPHERES
|
// UPDATE STRETCH SPHERES
|
||||||
var stretchSphereDimension = rotateDimension * STRETCH_SPHERE_CAMERA_DISTANCE_MULTIPLE /
|
var stretchSphereDimension = rotateDimension * STRETCH_SPHERE_CAMERA_DISTANCE_MULTIPLE /
|
||||||
ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
||||||
var stretchSphereDimensions = { x:stretchSphereDimension, y:stretchSphereDimension, z:stretchSphereDimension };
|
var stretchSphereDimensions = { x: stretchSphereDimension, y: stretchSphereDimension, z: stretchSphereDimension };
|
||||||
var stretchSphereOffset = rotateDimension * STRETCH_SPHERE_OFFSET / ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
var stretchSphereOffset = rotateDimension * STRETCH_SPHERE_OFFSET / ROTATE_RING_CAMERA_DISTANCE_MULTIPLE;
|
||||||
var stretchXPosition = { x:stretchSphereOffset, y:0, z:0 };
|
var stretchXPosition = { x: stretchSphereOffset, y: 0, z: 0 };
|
||||||
stretchXPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, stretchXPosition));
|
stretchXPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, stretchXPosition));
|
||||||
Overlays.editOverlay(handleStretchXSphere, {
|
Overlays.editOverlay(handleStretchXSphere, {
|
||||||
position: stretchXPosition,
|
position: stretchXPosition,
|
||||||
dimensions: stretchSphereDimensions
|
dimensions: stretchSphereDimensions
|
||||||
});
|
});
|
||||||
var stretchYPosition = { x:0, y:stretchSphereOffset, z:0 };
|
var stretchYPosition = { x: 0, y: stretchSphereOffset, z: 0 };
|
||||||
stretchYPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, stretchYPosition));
|
stretchYPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, stretchYPosition));
|
||||||
Overlays.editOverlay(handleStretchYSphere, {
|
Overlays.editOverlay(handleStretchYSphere, {
|
||||||
position: stretchYPosition,
|
position: stretchYPosition,
|
||||||
dimensions: stretchSphereDimensions
|
dimensions: stretchSphereDimensions
|
||||||
});
|
});
|
||||||
var stretchZPosition = { x:0, y:0, z:stretchSphereOffset };
|
var stretchZPosition = { x: 0, y: 0, z: stretchSphereOffset };
|
||||||
stretchZPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, stretchZPosition));
|
stretchZPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, stretchZPosition));
|
||||||
Overlays.editOverlay(handleStretchZSphere, {
|
Overlays.editOverlay(handleStretchZSphere, {
|
||||||
position: stretchZPosition,
|
position: stretchZPosition,
|
||||||
|
@ -1342,7 +1345,7 @@ SelectionDisplay = (function() {
|
||||||
stretchPanelXDimensions.x = STRETCH_PANEL_WIDTH;
|
stretchPanelXDimensions.x = STRETCH_PANEL_WIDTH;
|
||||||
stretchPanelXDimensions.y = Math.abs(stretchPanelXDimensions.z);
|
stretchPanelXDimensions.y = Math.abs(stretchPanelXDimensions.z);
|
||||||
stretchPanelXDimensions.z = tempY;
|
stretchPanelXDimensions.z = tempY;
|
||||||
var stretchPanelXPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, { x:dimensions.x / 2, y:0, z:0 }));
|
var stretchPanelXPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, { x: dimensions.x / 2, y: 0, z: 0 }));
|
||||||
Overlays.editOverlay(handleStretchXPanel, {
|
Overlays.editOverlay(handleStretchXPanel, {
|
||||||
position: stretchPanelXPosition,
|
position: stretchPanelXPosition,
|
||||||
rotation: rotationZ,
|
rotation: rotationZ,
|
||||||
|
@ -1353,18 +1356,18 @@ SelectionDisplay = (function() {
|
||||||
stretchPanelYDimensions.x = Math.abs(stretchPanelYDimensions.z);
|
stretchPanelYDimensions.x = Math.abs(stretchPanelYDimensions.z);
|
||||||
stretchPanelYDimensions.y = STRETCH_PANEL_WIDTH;
|
stretchPanelYDimensions.y = STRETCH_PANEL_WIDTH;
|
||||||
stretchPanelYDimensions.z = tempX;
|
stretchPanelYDimensions.z = tempX;
|
||||||
var stretchPanelYPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, { x:0, y:dimensions.y / 2, z:0 }));
|
var stretchPanelYPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, { x: 0, y: dimensions.y / 2, z: 0 }));
|
||||||
Overlays.editOverlay(handleStretchYPanel, {
|
Overlays.editOverlay(handleStretchYPanel, {
|
||||||
position: stretchPanelYPosition,
|
position: stretchPanelYPosition,
|
||||||
rotation: rotationY,
|
rotation: rotationY,
|
||||||
dimensions: stretchPanelYDimensions
|
dimensions: stretchPanelYDimensions
|
||||||
});
|
});
|
||||||
var stretchPanelZDimensions = Vec3.subtract(scaleLTNCubePositionRotated, scaleRBFCubePositionRotated);
|
var stretchPanelZDimensions = Vec3.subtract(scaleLTNCubePositionRotated, scaleRBFCubePositionRotated);
|
||||||
var tempX = Math.abs(stretchPanelZDimensions.x);
|
tempX = Math.abs(stretchPanelZDimensions.x);
|
||||||
stretchPanelZDimensions.x = Math.abs(stretchPanelZDimensions.y);
|
stretchPanelZDimensions.x = Math.abs(stretchPanelZDimensions.y);
|
||||||
stretchPanelZDimensions.y = tempX;
|
stretchPanelZDimensions.y = tempX;
|
||||||
stretchPanelZDimensions.z = STRETCH_PANEL_WIDTH;
|
stretchPanelZDimensions.z = STRETCH_PANEL_WIDTH;
|
||||||
var stretchPanelZPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, { x:0, y:0, z:dimensions.z / 2 }));
|
var stretchPanelZPosition = Vec3.sum(position, Vec3.multiplyQbyV(rotation, { x: 0, y: 0, z: dimensions.z / 2 }));
|
||||||
Overlays.editOverlay(handleStretchZPanel, {
|
Overlays.editOverlay(handleStretchZPanel, {
|
||||||
position: stretchPanelZPosition,
|
position: stretchPanelZPosition,
|
||||||
rotation: rotationX,
|
rotation: rotationX,
|
||||||
|
@ -1397,10 +1400,10 @@ SelectionDisplay = (function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// UPDATE CLONER (CURRENTLY HIDDEN FOR NOW)
|
// UPDATE CLONER (CURRENTLY HIDDEN FOR NOW)
|
||||||
var handleClonerOffset = {
|
var handleClonerOffset = {
|
||||||
x:CLONER_OFFSET.x * dimensions.x,
|
x: CLONER_OFFSET.x * dimensions.x,
|
||||||
y:CLONER_OFFSET.y * dimensions.y,
|
y: CLONER_OFFSET.y * dimensions.y,
|
||||||
z:CLONER_OFFSET.z * dimensions.z
|
z: CLONER_OFFSET.z * dimensions.z
|
||||||
};
|
};
|
||||||
var handleClonerPos = Vec3.sum(position, Vec3.multiplyQbyV(rotation, handleClonerOffset));
|
var handleClonerPos = Vec3.sum(position, Vec3.multiplyQbyV(rotation, handleClonerOffset));
|
||||||
Overlays.editOverlay(handleCloner, {
|
Overlays.editOverlay(handleCloner, {
|
||||||
|
@ -1438,9 +1441,9 @@ SelectionDisplay = (function() {
|
||||||
!isActiveTool(handleRotateYawRing) &&
|
!isActiveTool(handleRotateYawRing) &&
|
||||||
!isActiveTool(handleRotateRollRing)));
|
!isActiveTool(handleRotateRollRing)));
|
||||||
|
|
||||||
//keep cloner always hidden for now since you can hold Alt to clone while
|
// keep cloner always hidden for now since you can hold Alt to clone while
|
||||||
//translating an entity - we may bring cloner back for HMD only later
|
// translating an entity - we may bring cloner back for HMD only later
|
||||||
//that.setHandleClonerVisible(!activeTool || isActiveTool(handleCloner));
|
// that.setHandleClonerVisible(!activeTool || isActiveTool(handleCloner));
|
||||||
|
|
||||||
if (wantDebug) {
|
if (wantDebug) {
|
||||||
print("====== Update Handles <=======");
|
print("====== Update Handles <=======");
|
||||||
|
@ -1458,8 +1461,8 @@ SelectionDisplay = (function() {
|
||||||
} else if (isActiveTool(handleRotateRollRing)) {
|
} else if (isActiveTool(handleRotateRollRing)) {
|
||||||
activeRotateRing = handleRotateRollRing;
|
activeRotateRing = handleRotateRollRing;
|
||||||
}
|
}
|
||||||
if (activeRotateRing != null) {
|
if (activeRotateRing !== null) {
|
||||||
var tickMarksAngle = ctrlPressed ? ROTATE_CTRL_SNAP_ANGLE : ROTATE_DEFAULT_TICK_MARKS_ANGLE;
|
var tickMarksAngle = ctrlPressed ? ROTATE_CTRL_SNAP_ANGLE : ROTATE_DEFAULT_TICK_MARKS_ANGLE;
|
||||||
Overlays.editOverlay(activeRotateRing, { majorTickMarksAngle: tickMarksAngle });
|
Overlays.editOverlay(activeRotateRing, { majorTickMarksAngle: tickMarksAngle });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1640,7 +1643,7 @@ SelectionDisplay = (function() {
|
||||||
},
|
},
|
||||||
onMove: function(event) {
|
onMove: function(event) {
|
||||||
var wantDebug = false;
|
var wantDebug = false;
|
||||||
pickRay = generalComputePickRay(event.x, event.y);
|
var pickRay = generalComputePickRay(event.x, event.y);
|
||||||
|
|
||||||
var pick = rayPlaneIntersection2(pickRay, translateXZTool.pickPlanePosition, {
|
var pick = rayPlaneIntersection2(pickRay, translateXZTool.pickPlanePosition, {
|
||||||
x: 0,
|
x: 0,
|
||||||
|
@ -1706,7 +1709,8 @@ SelectionDisplay = (function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
constrainMajorOnly = event.isControl;
|
constrainMajorOnly = event.isControl;
|
||||||
var cornerPosition = Vec3.sum(startPosition, Vec3.multiply(-0.5, SelectionManager.worldDimensions));
|
var negateAndHalve = -0.5;
|
||||||
|
var cornerPosition = Vec3.sum(startPosition, Vec3.multiply(negateAndHalve, SelectionManager.worldDimensions));
|
||||||
vector = Vec3.subtract(
|
vector = Vec3.subtract(
|
||||||
grid.snapToGrid(Vec3.sum(cornerPosition, vector), constrainMajorOnly),
|
grid.snapToGrid(Vec3.sum(cornerPosition, vector), constrainMajorOnly),
|
||||||
cornerPosition);
|
cornerPosition);
|
||||||
|
@ -1752,15 +1756,16 @@ SelectionDisplay = (function() {
|
||||||
var pickNormal = null;
|
var pickNormal = null;
|
||||||
var lastPick = null;
|
var lastPick = null;
|
||||||
var projectionVector = null;
|
var projectionVector = null;
|
||||||
|
var previousPickRay = null;
|
||||||
addHandleTool(overlay, {
|
addHandleTool(overlay, {
|
||||||
mode: mode,
|
mode: mode,
|
||||||
onBegin: function(event, pickRay, pickResult) {
|
onBegin: function(event, pickRay, pickResult) {
|
||||||
if (direction === TRANSLATE_DIRECTION.X) {
|
if (direction === TRANSLATE_DIRECTION.X) {
|
||||||
pickNormal = { x:0, y:1, z:1 };
|
pickNormal = { x: 0, y: 1, z: 1 };
|
||||||
} else if (direction === TRANSLATE_DIRECTION.Y) {
|
} else if (direction === TRANSLATE_DIRECTION.Y) {
|
||||||
pickNormal = { x:1, y:0, z:1 };
|
pickNormal = { x: 1, y: 0, z: 1 };
|
||||||
} else if (direction === TRANSLATE_DIRECTION.Z) {
|
} else if (direction === TRANSLATE_DIRECTION.Z) {
|
||||||
pickNormal = { x:1, y:1, z:0 };
|
pickNormal = { x: 1, y: 1, z: 0 };
|
||||||
}
|
}
|
||||||
|
|
||||||
var rotation = spaceMode === SPACE_LOCAL ? SelectionManager.localRotation : SelectionManager.worldRotation;
|
var rotation = spaceMode === SPACE_LOCAL ? SelectionManager.localRotation : SelectionManager.worldRotation;
|
||||||
|
@ -1794,7 +1799,7 @@ SelectionDisplay = (function() {
|
||||||
pushCommandForSelections(duplicatedEntityIDs);
|
pushCommandForSelections(duplicatedEntityIDs);
|
||||||
},
|
},
|
||||||
onMove: function(event) {
|
onMove: function(event) {
|
||||||
pickRay = generalComputePickRay(event.x, event.y);
|
var pickRay = generalComputePickRay(event.x, event.y);
|
||||||
|
|
||||||
// Use previousPickRay if new pickRay will cause resulting rayPlaneIntersection values to wrap around
|
// Use previousPickRay if new pickRay will cause resulting rayPlaneIntersection values to wrap around
|
||||||
if (usePreviousPickRay(pickRay.direction, previousPickRay.direction, pickNormal)) {
|
if (usePreviousPickRay(pickRay.direction, previousPickRay.direction, pickNormal)) {
|
||||||
|
@ -1805,11 +1810,11 @@ SelectionDisplay = (function() {
|
||||||
var vector = Vec3.subtract(newIntersection, lastPick);
|
var vector = Vec3.subtract(newIntersection, lastPick);
|
||||||
|
|
||||||
if (direction === TRANSLATE_DIRECTION.X) {
|
if (direction === TRANSLATE_DIRECTION.X) {
|
||||||
projectionVector = { x:1, y:0, z:0 };
|
projectionVector = { x: 1, y: 0, z: 0 };
|
||||||
} else if (direction === TRANSLATE_DIRECTION.Y) {
|
} else if (direction === TRANSLATE_DIRECTION.Y) {
|
||||||
projectionVector = { x:0, y:1, z:0 };
|
projectionVector = { x: 0, y: 1, z: 0 };
|
||||||
} else if (direction === TRANSLATE_DIRECTION.Z) {
|
} else if (direction === TRANSLATE_DIRECTION.Z) {
|
||||||
projectionVector = { x:0, y:0, z:1 };
|
projectionVector = { x: 0, y: 0, z: 1 };
|
||||||
}
|
}
|
||||||
|
|
||||||
var rotation = spaceMode === SPACE_LOCAL ? SelectionManager.localRotation : SelectionManager.worldRotation;
|
var rotation = spaceMode === SPACE_LOCAL ? SelectionManager.localRotation : SelectionManager.worldRotation;
|
||||||
|
@ -1865,7 +1870,7 @@ SelectionDisplay = (function() {
|
||||||
Menu.setIsOptionChecked(AVATAR_COLLISIONS_OPTION, true);
|
Menu.setIsOptionChecked(AVATAR_COLLISIONS_OPTION, true);
|
||||||
handleStretchCollisionOverride = false;
|
handleStretchCollisionOverride = false;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
// TOOL DEFINITION: HANDLE STRETCH TOOL
|
// TOOL DEFINITION: HANDLE STRETCH TOOL
|
||||||
function makeStretchTool(stretchMode, directionEnum, directionVec, pivot, offset, stretchPanel, scaleHandle) {
|
function makeStretchTool(stretchMode, directionEnum, directionVec, pivot, offset, stretchPanel, scaleHandle) {
|
||||||
|
@ -1892,7 +1897,6 @@ SelectionDisplay = (function() {
|
||||||
var lastPick3D = null;
|
var lastPick3D = null;
|
||||||
var initialPosition = null;
|
var initialPosition = null;
|
||||||
var initialDimensions = null;
|
var initialDimensions = null;
|
||||||
var initialIntersection = null;
|
|
||||||
var initialProperties = null;
|
var initialProperties = null;
|
||||||
var registrationPoint = null;
|
var registrationPoint = null;
|
||||||
var deltaPivot = null;
|
var deltaPivot = null;
|
||||||
|
@ -1933,7 +1937,7 @@ SelectionDisplay = (function() {
|
||||||
var scaledOffset = Vec3.multiply(0.5, offset);
|
var scaledOffset = Vec3.multiply(0.5, offset);
|
||||||
|
|
||||||
// Offset from the registration point
|
// Offset from the registration point
|
||||||
offsetRP = Vec3.subtract(scaledOffset, centeredRP);
|
var offsetRP = Vec3.subtract(scaledOffset, centeredRP);
|
||||||
|
|
||||||
// Scaled offset in world coordinates
|
// Scaled offset in world coordinates
|
||||||
var scaledOffsetWorld = vec3Mult(initialDimensions, offsetRP);
|
var scaledOffsetWorld = vec3Mult(initialDimensions, offsetRP);
|
||||||
|
@ -1943,57 +1947,10 @@ SelectionDisplay = (function() {
|
||||||
if (directionFor3DStretch) {
|
if (directionFor3DStretch) {
|
||||||
// pivot, offset and pickPlanePosition for 3D manipulation
|
// pivot, offset and pickPlanePosition for 3D manipulation
|
||||||
var scaledPivot3D = Vec3.multiply(0.5, Vec3.multiply(1.0, directionFor3DStretch));
|
var scaledPivot3D = Vec3.multiply(0.5, Vec3.multiply(1.0, directionFor3DStretch));
|
||||||
deltaPivot3D = Vec3.subtract(centeredRP, scaledPivot3D);
|
deltaPivot3D = Vec3.subtract(centeredRP, scaledPivot3D);
|
||||||
|
|
||||||
var scaledOffsetWorld3D = vec3Mult(initialDimensions,
|
|
||||||
Vec3.subtract(Vec3.multiply(0.5, Vec3.multiply(-1.0, directionFor3DStretch)), centeredRP));
|
|
||||||
|
|
||||||
pickRayPosition3D = Vec3.sum(initialPosition, Vec3.multiplyQbyV(rotation, scaledOffsetWorld));
|
pickRayPosition3D = Vec3.sum(initialPosition, Vec3.multiplyQbyV(rotation, scaledOffsetWorld));
|
||||||
}
|
}
|
||||||
var start = null;
|
|
||||||
var end = null;
|
|
||||||
if ((numDimensions === 1) && mask.x) {
|
|
||||||
start = Vec3.multiplyQbyV(rotation, {
|
|
||||||
x: -10000,
|
|
||||||
y: 0,
|
|
||||||
z: 0
|
|
||||||
});
|
|
||||||
start = Vec3.sum(start, properties.position);
|
|
||||||
end = Vec3.multiplyQbyV(rotation, {
|
|
||||||
x: 10000,
|
|
||||||
y: 0,
|
|
||||||
z: 0
|
|
||||||
});
|
|
||||||
end = Vec3.sum(end, properties.position);
|
|
||||||
}
|
|
||||||
if ((numDimensions === 1) && mask.y) {
|
|
||||||
start = Vec3.multiplyQbyV(rotation, {
|
|
||||||
x: 0,
|
|
||||||
y: -10000,
|
|
||||||
z: 0
|
|
||||||
});
|
|
||||||
start = Vec3.sum(start, properties.position);
|
|
||||||
end = Vec3.multiplyQbyV(rotation, {
|
|
||||||
x: 0,
|
|
||||||
y: 10000,
|
|
||||||
z: 0
|
|
||||||
});
|
|
||||||
end = Vec3.sum(end, properties.position);
|
|
||||||
}
|
|
||||||
if ((numDimensions === 1) && mask.z) {
|
|
||||||
start = Vec3.multiplyQbyV(rotation, {
|
|
||||||
x: 0,
|
|
||||||
y: 0,
|
|
||||||
z: -10000
|
|
||||||
});
|
|
||||||
start = Vec3.sum(start, properties.position);
|
|
||||||
end = Vec3.multiplyQbyV(rotation, {
|
|
||||||
x: 0,
|
|
||||||
y: 0,
|
|
||||||
z: 10000
|
|
||||||
});
|
|
||||||
end = Vec3.sum(end, properties.position);
|
|
||||||
}
|
|
||||||
if (numDimensions === 1) {
|
if (numDimensions === 1) {
|
||||||
if (mask.x === 1) {
|
if (mask.x === 1) {
|
||||||
planeNormal = {
|
planeNormal = {
|
||||||
|
@ -2064,10 +2021,10 @@ SelectionDisplay = (function() {
|
||||||
SelectionManager.saveProperties();
|
SelectionManager.saveProperties();
|
||||||
that.resetPreviousHandleColor();
|
that.resetPreviousHandleColor();
|
||||||
|
|
||||||
if (stretchPanel != null) {
|
if (stretchPanel !== null) {
|
||||||
Overlays.editOverlay(stretchPanel, { visible: true });
|
Overlays.editOverlay(stretchPanel, { visible: true });
|
||||||
}
|
}
|
||||||
if (scaleHandle != null) {
|
if (scaleHandle !== null) {
|
||||||
Overlays.editOverlay(scaleHandle, { color: COLOR_SCALE_CUBE_SELECTED });
|
Overlays.editOverlay(scaleHandle, { color: COLOR_SCALE_CUBE_SELECTED });
|
||||||
}
|
}
|
||||||
if (Menu.isOptionChecked(AVATAR_COLLISIONS_OPTION)) {
|
if (Menu.isOptionChecked(AVATAR_COLLISIONS_OPTION)) {
|
||||||
|
@ -2079,10 +2036,10 @@ SelectionDisplay = (function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
var onEnd = function(event, reason) {
|
var onEnd = function(event, reason) {
|
||||||
if (stretchPanel != null) {
|
if (stretchPanel !== null) {
|
||||||
Overlays.editOverlay(stretchPanel, { visible: false });
|
Overlays.editOverlay(stretchPanel, { visible: false });
|
||||||
}
|
}
|
||||||
if (scaleHandle != null) {
|
if (scaleHandle !== null) {
|
||||||
Overlays.editOverlay(scaleHandle, { color: COLOR_SCALE_CUBE });
|
Overlays.editOverlay(scaleHandle, { color: COLOR_SCALE_CUBE });
|
||||||
}
|
}
|
||||||
that.restoreAvatarCollisionsFromStretch();
|
that.restoreAvatarCollisionsFromStretch();
|
||||||
|
@ -2092,14 +2049,12 @@ SelectionDisplay = (function() {
|
||||||
var onMove = function(event) {
|
var onMove = function(event) {
|
||||||
var proportional = (spaceMode === SPACE_WORLD) || directionEnum === STRETCH_DIRECTION.ALL;
|
var proportional = (spaceMode === SPACE_WORLD) || directionEnum === STRETCH_DIRECTION.ALL;
|
||||||
|
|
||||||
var position, dimensions, rotation;
|
var position, rotation;
|
||||||
if (spaceMode === SPACE_LOCAL) {
|
if (spaceMode === SPACE_LOCAL) {
|
||||||
position = SelectionManager.localPosition;
|
position = SelectionManager.localPosition;
|
||||||
dimensions = SelectionManager.localDimensions;
|
|
||||||
rotation = SelectionManager.localRotation;
|
rotation = SelectionManager.localRotation;
|
||||||
} else {
|
} else {
|
||||||
position = SelectionManager.worldPosition;
|
position = SelectionManager.worldPosition;
|
||||||
dimensions = SelectionManager.worldDimensions;
|
|
||||||
rotation = SelectionManager.worldRotation;
|
rotation = SelectionManager.worldRotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2115,6 +2070,7 @@ SelectionDisplay = (function() {
|
||||||
// Are we using handControllers or Mouse - only relevant for 3D tools
|
// Are we using handControllers or Mouse - only relevant for 3D tools
|
||||||
var controllerPose = getControllerWorldLocation(activeHand, true);
|
var controllerPose = getControllerWorldLocation(activeHand, true);
|
||||||
var vector = null;
|
var vector = null;
|
||||||
|
var newPick = null;
|
||||||
if (HMD.isHMDAvailable() && HMD.isHandControllerAvailable() &&
|
if (HMD.isHMDAvailable() && HMD.isHandControllerAvailable() &&
|
||||||
controllerPose.valid && that.triggered && directionFor3DStretch) {
|
controllerPose.valid && that.triggered && directionFor3DStretch) {
|
||||||
localDeltaPivot = deltaPivot3D;
|
localDeltaPivot = deltaPivot3D;
|
||||||
|
@ -2166,22 +2122,22 @@ SelectionDisplay = (function() {
|
||||||
|
|
||||||
var minimumDimension = directionEnum === STRETCH_DIRECTION.ALL ? STRETCH_ALL_MINIMUM_DIMENSION :
|
var minimumDimension = directionEnum === STRETCH_DIRECTION.ALL ? STRETCH_ALL_MINIMUM_DIMENSION :
|
||||||
STRETCH_MINIMUM_DIMENSION;
|
STRETCH_MINIMUM_DIMENSION;
|
||||||
if (newDimensions.x <= minimumDimension) {
|
if (newDimensions.x < minimumDimension) {
|
||||||
newDimensions.x = minimumDimension;
|
newDimensions.x = minimumDimension;
|
||||||
changeInDimensions.x = minimumDimension - initialDimensions.x;
|
changeInDimensions.x = minimumDimension - initialDimensions.x;
|
||||||
}
|
}
|
||||||
if (newDimensions.y <= minimumDimension) {
|
if (newDimensions.y < minimumDimension) {
|
||||||
newDimensions.y = minimumDimension;
|
newDimensions.y = minimumDimension;
|
||||||
changeInDimensions.y = minimumDimension - initialDimensions.y;
|
changeInDimensions.y = minimumDimension - initialDimensions.y;
|
||||||
}
|
}
|
||||||
if (newDimensions.z <= minimumDimension) {
|
if (newDimensions.z < minimumDimension) {
|
||||||
newDimensions.z = minimumDimension;
|
newDimensions.z = minimumDimension;
|
||||||
changeInDimensions.z = minimumDimension - initialDimensions.z;
|
changeInDimensions.z = minimumDimension - initialDimensions.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
var changeInPosition = Vec3.multiplyQbyV(rotation, vec3Mult(localDeltaPivot, changeInDimensions));
|
var changeInPosition = Vec3.multiplyQbyV(rotation, vec3Mult(localDeltaPivot, changeInDimensions));
|
||||||
if (directionEnum === STRETCH_DIRECTION.ALL) {
|
if (directionEnum === STRETCH_DIRECTION.ALL) {
|
||||||
changeInPosition = { x:0, y:0, z:0 };
|
changeInPosition = { x: 0, y: 0, z: 0 };
|
||||||
}
|
}
|
||||||
var newPosition = Vec3.sum(initialPosition, changeInPosition);
|
var newPosition = Vec3.sum(initialPosition, changeInPosition);
|
||||||
|
|
||||||
|
@ -2219,13 +2175,13 @@ SelectionDisplay = (function() {
|
||||||
var directionVector, offset, stretchPanel;
|
var directionVector, offset, stretchPanel;
|
||||||
if (directionEnum === STRETCH_DIRECTION.X) {
|
if (directionEnum === STRETCH_DIRECTION.X) {
|
||||||
stretchPanel = handleStretchXPanel;
|
stretchPanel = handleStretchXPanel;
|
||||||
directionVector = { x:-1, y:0, z:0 };
|
directionVector = { x: -1, y: 0, z: 0 };
|
||||||
} else if (directionEnum === STRETCH_DIRECTION.Y) {
|
} else if (directionEnum === STRETCH_DIRECTION.Y) {
|
||||||
stretchPanel = handleStretchYPanel;
|
stretchPanel = handleStretchYPanel;
|
||||||
directionVector = { x:0, y:-1, z:0 };
|
directionVector = { x: 0, y: -1, z: 0 };
|
||||||
} else if (directionEnum === STRETCH_DIRECTION.Z) {
|
} else if (directionEnum === STRETCH_DIRECTION.Z) {
|
||||||
stretchPanel = handleStretchZPanel
|
stretchPanel = handleStretchZPanel;
|
||||||
directionVector = { x:0, y:0, z:-1 };
|
directionVector = { x: 0, y: 0, z: -1 };
|
||||||
}
|
}
|
||||||
offset = Vec3.multiply(directionVector, NEGATE_VECTOR);
|
offset = Vec3.multiply(directionVector, NEGATE_VECTOR);
|
||||||
var tool = makeStretchTool(mode, directionEnum, directionVector, directionVector, offset, stretchPanel, null);
|
var tool = makeStretchTool(mode, directionEnum, directionVector, directionVector, offset, stretchPanel, null);
|
||||||
|
@ -2236,28 +2192,28 @@ SelectionDisplay = (function() {
|
||||||
function addHandleScaleTool(overlay, mode, directionEnum) {
|
function addHandleScaleTool(overlay, mode, directionEnum) {
|
||||||
var directionVector, offset, selectedHandle;
|
var directionVector, offset, selectedHandle;
|
||||||
if (directionEnum === SCALE_DIRECTION.LBN) {
|
if (directionEnum === SCALE_DIRECTION.LBN) {
|
||||||
directionVector = { x:1, y:1, z:1 };
|
directionVector = { x: 1, y: 1, z: 1 };
|
||||||
selectedHandle = handleScaleLBNCube;
|
selectedHandle = handleScaleLBNCube;
|
||||||
} else if (directionEnum === SCALE_DIRECTION.RBN) {
|
} else if (directionEnum === SCALE_DIRECTION.RBN) {
|
||||||
directionVector = { x:-1, y:1, z:1 };
|
directionVector = { x: -1, y: 1, z: 1 };
|
||||||
selectedHandle = handleScaleRBNCube;
|
selectedHandle = handleScaleRBNCube;
|
||||||
} else if (directionEnum === SCALE_DIRECTION.LBF) {
|
} else if (directionEnum === SCALE_DIRECTION.LBF) {
|
||||||
directionVector = { x:1, y:1, z:-1 };
|
directionVector = { x: 1, y: 1, z: -1 };
|
||||||
selectedHandle = handleScaleLBFCube;
|
selectedHandle = handleScaleLBFCube;
|
||||||
} else if (directionEnum === SCALE_DIRECTION.RBF) {
|
} else if (directionEnum === SCALE_DIRECTION.RBF) {
|
||||||
directionVector = { x:-1, y:1, z:-1 };
|
directionVector = { x: -1, y: 1, z: -1 };
|
||||||
selectedHandle = handleScaleRBFCube;
|
selectedHandle = handleScaleRBFCube;
|
||||||
} else if (directionEnum === SCALE_DIRECTION.LTN) {
|
} else if (directionEnum === SCALE_DIRECTION.LTN) {
|
||||||
directionVector = { x:1, y:-1, z:1 };
|
directionVector = { x: 1, y: -1, z: 1 };
|
||||||
selectedHandle = handleScaleLTNCube;
|
selectedHandle = handleScaleLTNCube;
|
||||||
} else if (directionEnum === SCALE_DIRECTION.RTN) {
|
} else if (directionEnum === SCALE_DIRECTION.RTN) {
|
||||||
directionVector = { x:-1, y:-1, z:1 };
|
directionVector = { x: -1, y: -1, z: 1 };
|
||||||
selectedHandle = handleScaleRTNCube;
|
selectedHandle = handleScaleRTNCube;
|
||||||
} else if (directionEnum === SCALE_DIRECTION.LTF) {
|
} else if (directionEnum === SCALE_DIRECTION.LTF) {
|
||||||
directionVector = { x:1, y:-1, z:-1 };
|
directionVector = { x: 1, y: -1, z: -1 };
|
||||||
selectedHandle = handleScaleLTFCube;
|
selectedHandle = handleScaleLTFCube;
|
||||||
} else if (directionEnum === SCALE_DIRECTION.RTF) {
|
} else if (directionEnum === SCALE_DIRECTION.RTF) {
|
||||||
directionVector = { x:-1, y:-1, z:-1 };
|
directionVector = { x: -1, y: -1, z: -1 };
|
||||||
selectedHandle = handleScaleRTFCube;
|
selectedHandle = handleScaleRTFCube;
|
||||||
}
|
}
|
||||||
offset = Vec3.multiply(directionVector, NEGATE_VECTOR);
|
offset = Vec3.multiply(directionVector, NEGATE_VECTOR);
|
||||||
|
@ -2268,7 +2224,6 @@ SelectionDisplay = (function() {
|
||||||
|
|
||||||
// FUNCTION: UPDATE ROTATION DEGREES OVERLAY
|
// FUNCTION: UPDATE ROTATION DEGREES OVERLAY
|
||||||
function updateRotationDegreesOverlay(angleFromZero, position) {
|
function updateRotationDegreesOverlay(angleFromZero, position) {
|
||||||
var angle = angleFromZero * (Math.PI / 180);
|
|
||||||
var toCameraDistance = getDistanceToCamera(position);
|
var toCameraDistance = getDistanceToCamera(position);
|
||||||
var overlayProps = {
|
var overlayProps = {
|
||||||
position: position,
|
position: position,
|
||||||
|
@ -2459,9 +2414,10 @@ SelectionDisplay = (function() {
|
||||||
|
|
||||||
var startAtCurrent = 0;
|
var startAtCurrent = 0;
|
||||||
var endAtCurrent = angleFromZero;
|
var endAtCurrent = angleFromZero;
|
||||||
|
var maxDegrees = 360;
|
||||||
if (angleFromZero < 0) {
|
if (angleFromZero < 0) {
|
||||||
startAtCurrent = 360 + angleFromZero;
|
startAtCurrent = maxDegrees + angleFromZero;
|
||||||
endAtCurrent = 360;
|
endAtCurrent = maxDegrees;
|
||||||
}
|
}
|
||||||
Overlays.editOverlay(handleRotateCurrentRing, {
|
Overlays.editOverlay(handleRotateCurrentRing, {
|
||||||
startAt: startAtCurrent,
|
startAt: startAtCurrent,
|
||||||
|
@ -2473,8 +2429,9 @@ SelectionDisplay = (function() {
|
||||||
if (spaceMode === SPACE_LOCAL) {
|
if (spaceMode === SPACE_LOCAL) {
|
||||||
Overlays.editOverlay(handleRotateCurrentRing, { rotation: worldRotationZ });
|
Overlays.editOverlay(handleRotateCurrentRing, { rotation: worldRotationZ });
|
||||||
} else {
|
} else {
|
||||||
|
var rotationDegrees = 90;
|
||||||
Overlays.editOverlay(handleRotateCurrentRing, {
|
Overlays.editOverlay(handleRotateCurrentRing, {
|
||||||
rotation: Quat.fromPitchYawRollDegrees(-90, 0, 0)
|
rotation: Quat.fromPitchYawRollDegrees(-rotationDegrees, 0, 0)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue