diff --git a/scripts/system/libraries/gridTool.js b/scripts/system/libraries/gridTool.js index 19d4417a12..3968c9376c 100644 --- a/scripts/system/libraries/gridTool.js +++ b/scripts/system/libraries/gridTool.js @@ -1,16 +1,8 @@ var GRID_CONTROLS_HTML_URL = Script.resolvePath('../html/gridControls.html'); -Grid = function(opts) { +Grid = function (opts) { var that = {}; - - var colors = [ - { red: 0, green: 0, blue: 0 }, - { red: 255, green: 255, blue: 255 }, - { red: 255, green: 0, blue: 0 }, - { red: 0, green: 255, blue: 0 }, - { red: 0, green: 0, blue: 255 }, - ]; - var colorIndex = 0; + var gridColor = { red: 0, green: 0, blue: 0 }; var gridAlpha = 0.6; var origin = { x: 0, y: +MyAvatar.getJointPosition('LeftToeBase').y.toFixed(1) + 0.1, z: 0 }; var scale = 500; @@ -28,58 +20,70 @@ Grid = function(opts) { position: origin, visible: false, drawInFront: false, - color: colors[0], + color: gridColor, alpha: gridAlpha, minorGridEvery: minorGridEvery, - majorGridEvery: majorGridEvery, + majorGridEvery: majorGridEvery }); that.visible = false; that.enabled = false; - that.getOrigin = function() { + that.getOrigin = function () { return origin; - } + }; - that.getMinorIncrement = function() { return minorGridEvery; }; - that.setMinorIncrement = function(value) { + that.getMinorIncrement = function () { + return minorGridEvery; + }; + + that.setMinorIncrement = function (value) { minorGridEvery = value; updateGrid(); - } - that.getMajorIncrement = function() { return majorGridEvery; }; - that.setMajorIncrement = function(value) { + }; + + that.getMajorIncrement = function () { + return majorGridEvery; + }; + + that.setMajorIncrement = function (value) { majorGridEvery = value; updateGrid(); }; - that.getColorIndex = function() { return colorIndex; }; - that.setColorIndex = function(value) { - colorIndex = value; + that.getColor = function () { + return gridColor; + }; + + that.setColor = function (value) { + gridColor = value; updateGrid(); }; - that.getSnapToGrid = function() { return snapToGrid; }; - that.setSnapToGrid = function(value) { + that.getSnapToGrid = function () { + return snapToGrid; + }; + that.setSnapToGrid = function (value) { snapToGrid = value; that.emitUpdate(); }; - that.setEnabled = function(enabled) { + that.setEnabled = function (enabled) { that.enabled = enabled; updateGrid(); - } + }; - that.getVisible = function() { return that.visible; }; - that.setVisible = function(visible, noUpdate) { + that.getVisible = function () { return that.visible; }; + that.setVisible = function (visible, noUpdate) { that.visible = visible; updateGrid(); if (!noUpdate) { that.emitUpdate(); } - } + }; - that.snapToSurface = function(position, dimensions, registration) { + that.snapToSurface = function (position, dimensions, registration) { if (!snapToGrid) { return position; } @@ -97,9 +101,9 @@ Grid = function(opts) { y: origin.y + (registration.y * dimensions.y), z: position.z }; - } + }; - that.snapToGrid = function(position, majorOnly, dimensions, registration) { + that.snapToGrid = function (position, majorOnly, dimensions, registration) { if (!snapToGrid) { return position; } @@ -123,7 +127,7 @@ Grid = function(opts) { return Vec3.sum(Vec3.sum(position, Vec3.multiplyVbyV(registration, dimensions)), origin); } - that.snapToSpacing = function(delta, majorOnly) { + that.snapToSpacing = function (delta, majorOnly) { if (!snapToGrid) { return delta; } @@ -133,14 +137,14 @@ Grid = function(opts) { var snappedDelta = { x: Math.round(delta.x / spacing) * spacing, y: Math.round(delta.y / spacing) * spacing, - z: Math.round(delta.z / spacing) * spacing, + z: Math.round(delta.z / spacing) * spacing }; return snappedDelta; - } + }; - that.setPosition = function(newPosition, noUpdate) { + that.setPosition = function (newPosition, noUpdate) { origin = { x: 0, y: newPosition.y, z: 0 }; updateGrid(); @@ -149,7 +153,7 @@ Grid = function(opts) { } }; - that.emitUpdate = function() { + that.emitUpdate = function () { if (that.onUpdate) { that.onUpdate({ origin: origin, @@ -157,12 +161,12 @@ Grid = function(opts) { majorGridEvery: majorGridEvery, gridSize: halfSize, visible: that.visible, - snapToGrid: snapToGrid, + snapToGrid: snapToGrid }); } }; - that.update = function(data) { + that.update = function (data) { if (data.snapToGrid !== undefined) { snapToGrid = data.snapToGrid; } @@ -183,8 +187,8 @@ Grid = function(opts) { majorGridEvery = data.majorGridEvery; } - if (data.colorIndex !== undefined) { - colorIndex = data.colorIndex; + if (data.gridColor) { + gridColor = data.gridColor; } if (data.gridSize) { @@ -196,7 +200,7 @@ Grid = function(opts) { } updateGrid(true); - } + }; function updateGrid(noUpdate) { Overlays.editOverlay(gridOverlay, { @@ -204,8 +208,8 @@ Grid = function(opts) { visible: that.visible && that.enabled, minorGridEvery: minorGridEvery, majorGridEvery: majorGridEvery, - color: colors[colorIndex], - alpha: gridAlpha, + color: gridColor, + alpha: gridAlpha }); if (!noUpdate) { @@ -217,7 +221,7 @@ Grid = function(opts) { Overlays.deleteOverlay(gridOverlay); } - that.addListener = function(callback) { + that.addListener = function (callback) { that.onUpdate = callback; } @@ -229,7 +233,7 @@ Grid = function(opts) { return that; }; -GridTool = function(opts) { +GridTool = function (opts) { var that = {}; var horizontalGrid = opts.horizontalGrid; @@ -238,19 +242,19 @@ GridTool = function(opts) { var webView = null; webView = Tablet.getTablet("com.highfidelity.interface.tablet.system"); - webView.setVisible = function(value) {}; + webView.setVisible = function (value) { }; - horizontalGrid.addListener(function(data) { + horizontalGrid.addListener(function (data) { webView.emitScriptEvent(JSON.stringify(data)); if (selectionDisplay) { selectionDisplay.updateHandles(); } }); - webView.webEventReceived.connect(function(data) { + webView.webEventReceived.connect(function (data) { try { data = JSON.parse(data); - } catch(e) { + } catch (e) { print("gridTool.js: Error parsing JSON: " + e.name + " data " + data) return; } @@ -260,7 +264,7 @@ GridTool = function(opts) { } else if (data.type == "update") { horizontalGrid.update(data); for (var i = 0; i < listeners.length; i++) { - listeners[i] && listeners[i](data); + [i] && listeners[i](data); } } else if (data.type == "action") { var action = data.action; @@ -278,11 +282,11 @@ GridTool = function(opts) { } }); - that.addListener = function(callback) { + that.addListener = function (callback) { listeners.push(callback); } - that.setVisible = function(visible) { + that.setVisible = function (visible) { webView.setVisible(visible); }