From b908ba350f7ba66ebf488c10044bfdc9c6316efa Mon Sep 17 00:00:00 2001 From: archmoj Date: Sun, 25 Nov 2018 13:06:17 -0500 Subject: [PATCH 01/19] ortho zoom --- src/plots/gl3d/camera.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plots/gl3d/camera.js b/src/plots/gl3d/camera.js index 3fe1f4ea570..1474d9b17ff 100644 --- a/src/plots/gl3d/camera.js +++ b/src/plots/gl3d/camera.js @@ -243,8 +243,13 @@ function createCamera(element, options) { if((zoom && left && !ctrl && !alt && !shift) || middle || (left && !ctrl && alt && !shift)) { // Zoom - var kzoom = -camera.zoomSpeed * dy / window.innerHeight * (t - view.lastT()) * 100; - view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1)); + var orthographic = true; + if(orthographic) { + view.setDistance(t, camera.translateSpeed * dy * distance); + } else { + var kzoom = -camera.zoomSpeed * dy / window.innerHeight * (t - view.lastT()) * 100; + view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1)); + } } lastX = x; From 7c8e830b6d562d52ac84512258efe26301003a92 Mon Sep 17 00:00:00 2001 From: archmoj Date: Sun, 25 Nov 2018 21:11:02 -0500 Subject: [PATCH 02/19] prep for ortho camera --- src/plots/gl3d/camera.js | 1 + src/plots/gl3d/scene.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/plots/gl3d/camera.js b/src/plots/gl3d/camera.js index 1474d9b17ff..a9a186b9cfe 100644 --- a/src/plots/gl3d/camera.js +++ b/src/plots/gl3d/camera.js @@ -38,6 +38,7 @@ function createCamera(element, options) { up: options.up || [0, 1, 0], eye: options.eye || [0, 0, 10], mode: options.mode || 'orbit', + ortho: options.ortho || false, distanceLimits: limits }); diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index 59ba7a4446e..3b0e9dda72b 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -241,6 +241,9 @@ function initializeGLPlot(scene, canvas, gl) { } if(!scene.camera) { + +console.log("Hello!"); + var cameraData = scene.fullSceneLayout.camera; scene.camera = createCamera(scene.container, { center: [cameraData.center.x, cameraData.center.y, cameraData.center.z], @@ -248,6 +251,7 @@ function initializeGLPlot(scene, canvas, gl) { up: [cameraData.up.x, cameraData.up.y, cameraData.up.z], zoomMin: 0.1, zoomMax: 100, + ortho: cameraData.ortho, mode: 'orbit' }); } @@ -682,6 +686,7 @@ function getOrbitCamera(camera) { // inverse of getOrbitCamera function getLayoutCamera(camera) { return { + ortho: camera.ortho, up: {x: camera.up[0], y: camera.up[1], z: camera.up[2]}, center: {x: camera.center[0], y: camera.center[1], z: camera.center[2]}, eye: {x: camera.eye[0], y: camera.eye[1], z: camera.eye[2]} From 99bc241ba7061ae1e22259deb2e6f89540842a05 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 26 Nov 2018 09:53:33 -0500 Subject: [PATCH 03/19] test if we could remove 3d-view dep here --- package.json | 1 - src/plots/gl3d/camera.js | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b1678767e9..9ba7a51f3cf 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,6 @@ ] }, "dependencies": { - "3d-view": "^2.0.0", "@plotly/d3-sankey": "^0.5.1", "alpha-shape": "^1.0.0", "array-range": "^1.0.1", diff --git a/src/plots/gl3d/camera.js b/src/plots/gl3d/camera.js index a9a186b9cfe..9d631dbf35b 100644 --- a/src/plots/gl3d/camera.js +++ b/src/plots/gl3d/camera.js @@ -33,6 +33,8 @@ function createCamera(element, options) { limits[1] = options.zoomMax; } + console.log("call createView..."); + var view = createView({ center: options.center || [0, 0, 0], up: options.up || [0, 1, 0], @@ -42,6 +44,8 @@ function createCamera(element, options) { distanceLimits: limits }); + console.log("view=", view); + var pmatrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; var distance = 0.0; var width = element.clientWidth; From c81cc730cbea5268a1aac29a455356ee604a2cc1 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 10 Dec 2018 12:33:29 -0500 Subject: [PATCH 04/19] ortho camera --- package-lock.json | 18 ++++++++---------- package.json | 2 +- src/plots/gl3d/camera.js | 4 ---- src/plots/gl3d/scene.js | 3 --- 4 files changed, 9 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f11af4a333..8c8aefb9c21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4524,9 +4524,8 @@ } }, "gl-axes3d": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gl-axes3d/-/gl-axes3d-1.4.0.tgz", - "integrity": "sha512-aakup65ywK7Bo0k/2IAq8AdvtZYHJANskePJpElcmuC1vm0l+4sRKmXevdR9AYBDNh5KEULFSnTe9RHVPvBtxQ==", + "version": "git://github.com/gl-vis/gl-axes3d.git#f191d1ce0718553653d76f3a21df8ab8642e2188", + "from": "git://github.com/gl-vis/gl-axes3d.git#f191d1ce0718553653d76f3a21df8ab8642e2188", "requires": { "bit-twiddle": "^1.0.0", "dup": "^1.0.0", @@ -4730,13 +4729,12 @@ } }, "gl-plot3d": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-1.6.0.tgz", - "integrity": "sha512-SWUXVuWlBE+GIQWysB5HmoqBDkkaCydT8JJl5CWyApau3bTtHzEEafMEBBfkc4THmk/3YXgmjmSlXF5vefTo/g==", + "version": "git://github.com/gl-vis/gl-plot3d.git#cf3f955e716eb9f476ca5e635f8087a60f34292d", + "from": "git://github.com/gl-vis/gl-plot3d.git#cf3f955e716eb9f476ca5e635f8087a60f34292d", "requires": { "3d-view-controls": "^2.2.0", "a-big-triangle": "^1.0.0", - "gl-axes3d": "^1.4.0", + "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#f191d1ce0718553653d76f3a21df8ab8642e2188", "gl-fbo": "^2.0.3", "gl-mat4": "^1.1.2", "gl-select-static": "^2.0.2", @@ -4829,9 +4827,9 @@ "integrity": "sha1-ys2y09vNICuFNFLoUAqLB3lJzAM=" }, "gl-spikes3d": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.6.tgz", - "integrity": "sha512-mXRG+3iCs4bDH7if2aOr1G5UpbNqKxfWpy7GR/afOHDSNsrq2ZjnWAwPmIJG7KdClPNPgiK30cVo7XisLt8PCQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.7.tgz", + "integrity": "sha512-i/JW5kqAGUSSvPhypDpCc5dBBaT2NkgqEmNAjpaepQrBvxQ9qKBn3jpywGMsPhVBUbEWb626BDSfmoe84bE0TQ==", "requires": { "gl-buffer": "^2.1.2", "gl-shader": "^4.0.4", diff --git a/package.json b/package.json index 9ba7a51f3cf..b605ca74a1b 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.2", "gl-plot2d": "^1.4.0", - "gl-plot3d": "^1.6.0", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#cf3f955e716eb9f476ca5e635f8087a60f34292d", "gl-pointcloud2d": "^1.0.1", "gl-scatter3d": "^1.1.0", "gl-select-box": "^1.0.2", diff --git a/src/plots/gl3d/camera.js b/src/plots/gl3d/camera.js index 9d631dbf35b..a9a186b9cfe 100644 --- a/src/plots/gl3d/camera.js +++ b/src/plots/gl3d/camera.js @@ -33,8 +33,6 @@ function createCamera(element, options) { limits[1] = options.zoomMax; } - console.log("call createView..."); - var view = createView({ center: options.center || [0, 0, 0], up: options.up || [0, 1, 0], @@ -44,8 +42,6 @@ function createCamera(element, options) { distanceLimits: limits }); - console.log("view=", view); - var pmatrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; var distance = 0.0; var width = element.clientWidth; diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index 3b0e9dda72b..80e5e33a07c 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -241,9 +241,6 @@ function initializeGLPlot(scene, canvas, gl) { } if(!scene.camera) { - -console.log("Hello!"); - var cameraData = scene.fullSceneLayout.camera; scene.camera = createCamera(scene.container, { center: [cameraData.center.x, cameraData.center.y, cameraData.center.z], From 6832bc26ddf41c8e40b357539cf36a142b7c4add Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 10 Dec 2018 16:07:02 -0500 Subject: [PATCH 05/19] working prototype --- package-lock.json | 10 +++++----- package.json | 2 +- src/plots/gl3d/camera.js | 14 +++++++++++++- src/plots/gl3d/layout/defaults.js | 1 + src/plots/gl3d/layout/layout_attributes.js | 10 ++++++++++ src/plots/gl3d/scene.js | 8 ++++---- 6 files changed, 34 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c8aefb9c21..11c67452b01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4524,8 +4524,8 @@ } }, "gl-axes3d": { - "version": "git://github.com/gl-vis/gl-axes3d.git#f191d1ce0718553653d76f3a21df8ab8642e2188", - "from": "git://github.com/gl-vis/gl-axes3d.git#f191d1ce0718553653d76f3a21df8ab8642e2188", + "version": "git://github.com/gl-vis/gl-axes3d.git#35b336df3befe40fd22b036aa3fa7f4c388ef2b5", + "from": "git://github.com/gl-vis/gl-axes3d.git#35b336df3befe40fd22b036aa3fa7f4c388ef2b5", "requires": { "bit-twiddle": "^1.0.0", "dup": "^1.0.0", @@ -4729,12 +4729,12 @@ } }, "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#cf3f955e716eb9f476ca5e635f8087a60f34292d", - "from": "git://github.com/gl-vis/gl-plot3d.git#cf3f955e716eb9f476ca5e635f8087a60f34292d", + "version": "git://github.com/gl-vis/gl-plot3d.git#479eef4c83dc7fc26bd909023ee977ab04cefa00", + "from": "git://github.com/gl-vis/gl-plot3d.git#479eef4c83dc7fc26bd909023ee977ab04cefa00", "requires": { "3d-view-controls": "^2.2.0", "a-big-triangle": "^1.0.0", - "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#f191d1ce0718553653d76f3a21df8ab8642e2188", + "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#35b336df3befe40fd22b036aa3fa7f4c388ef2b5", "gl-fbo": "^2.0.3", "gl-mat4": "^1.1.2", "gl-select-static": "^2.0.2", diff --git a/package.json b/package.json index b605ca74a1b..97cd78148ab 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.2", "gl-plot2d": "^1.4.0", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#cf3f955e716eb9f476ca5e635f8087a60f34292d", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#479eef4c83dc7fc26bd909023ee977ab04cefa00", "gl-pointcloud2d": "^1.0.1", "gl-scatter3d": "^1.1.0", "gl-select-box": "^1.0.2", diff --git a/src/plots/gl3d/camera.js b/src/plots/gl3d/camera.js index a9a186b9cfe..9530ad333b1 100644 --- a/src/plots/gl3d/camera.js +++ b/src/plots/gl3d/camera.js @@ -37,8 +37,8 @@ function createCamera(element, options) { center: options.center || [0, 0, 0], up: options.up || [0, 1, 0], eye: options.eye || [0, 0, 10], - mode: options.mode || 'orbit', ortho: options.ortho || false, + mode: options.mode || 'orbit', distanceLimits: limits }); @@ -155,6 +155,18 @@ function createCamera(element, options) { }, enumerable: true }, + /* + ortho: { + get: function() { + return view.computedOrtho; + }, + set: function(northo) { + // do nothing (i.e. for the moment)... + return view.computedOrtho; + }, + enumerable: true + }, + */ distance: { get: function() { return distance; diff --git a/src/plots/gl3d/layout/defaults.js b/src/plots/gl3d/layout/defaults.js index 3d208a09d04..d236ed2dfc6 100644 --- a/src/plots/gl3d/layout/defaults.js +++ b/src/plots/gl3d/layout/defaults.js @@ -66,6 +66,7 @@ function handleGl3dDefaults(sceneLayoutIn, sceneLayoutOut, coerce, opts) { coerce('camera.' + cameraKeys[j] + '.y'); coerce('camera.' + cameraKeys[j] + '.z'); } + coerce('camera.ortho'); /* * coerce to positive number (min 0) but also do not accept 0 (>0 not >=0) diff --git a/src/plots/gl3d/layout/layout_attributes.js b/src/plots/gl3d/layout/layout_attributes.js index 00b940885c4..5dc90479ada 100644 --- a/src/plots/gl3d/layout/layout_attributes.js +++ b/src/plots/gl3d/layout/layout_attributes.js @@ -72,6 +72,16 @@ module.exports = { 'of this scene.' ].join(' ') }), + ortho: extendFlat({ + valType: 'boolean', + role: 'info', + dflt: false, + editType: 'camera', + description: [ + 'Enable/disable orthographic camera.', + 'Default is perspective.' + ].join(' ') + }), editType: 'camera' }, domain: domainAttrs({name: 'scene', editType: 'plot'}), diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index 80e5e33a07c..319533ef014 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -246,9 +246,9 @@ function initializeGLPlot(scene, canvas, gl) { center: [cameraData.center.x, cameraData.center.y, cameraData.center.z], eye: [cameraData.eye.x, cameraData.eye.y, cameraData.eye.z], up: [cameraData.up.x, cameraData.up.y, cameraData.up.z], + ortho: cameraData.ortho, zoomMin: 0.1, zoomMax: 100, - ortho: cameraData.ortho, mode: 'orbit' }); } @@ -675,7 +675,7 @@ function getOrbitCamera(camera) { return [ [camera.eye.x, camera.eye.y, camera.eye.z], [camera.center.x, camera.center.y, camera.center.z], - [camera.up.x, camera.up.y, camera.up.z] + [camera.up.x, camera.up.y, camera.up.z] // , camera.ortho // ? ]; } @@ -683,10 +683,10 @@ function getOrbitCamera(camera) { // inverse of getOrbitCamera function getLayoutCamera(camera) { return { - ortho: camera.ortho, up: {x: camera.up[0], y: camera.up[1], z: camera.up[2]}, center: {x: camera.center[0], y: camera.center[1], z: camera.center[2]}, - eye: {x: camera.eye[0], y: camera.eye[1], z: camera.eye[2]} + eye: {x: camera.eye[0], y: camera.eye[1], z: camera.eye[2]}, + ortho: camera.ortho }; } From 03c4125521e942ab66f9657c46232bd35d068e8c Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 10 Dec 2018 16:32:25 -0500 Subject: [PATCH 06/19] correct ortho scale --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11c67452b01..a16f4753758 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4729,8 +4729,8 @@ } }, "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#479eef4c83dc7fc26bd909023ee977ab04cefa00", - "from": "git://github.com/gl-vis/gl-plot3d.git#479eef4c83dc7fc26bd909023ee977ab04cefa00", + "version": "git://github.com/gl-vis/gl-plot3d.git#7a3e12137c292ca2982d40844bb7b3d9764d3505", + "from": "git://github.com/gl-vis/gl-plot3d.git#7a3e12137c292ca2982d40844bb7b3d9764d3505", "requires": { "3d-view-controls": "^2.2.0", "a-big-triangle": "^1.0.0", diff --git a/package.json b/package.json index 97cd78148ab..a9c605747c3 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.2", "gl-plot2d": "^1.4.0", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#479eef4c83dc7fc26bd909023ee977ab04cefa00", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#7a3e12137c292ca2982d40844bb7b3d9764d3505", "gl-pointcloud2d": "^1.0.1", "gl-scatter3d": "^1.1.0", "gl-select-box": "^1.0.2", From 4439cfa948befbd290ebc7fc250a1161beedf2a1 Mon Sep 17 00:00:00 2001 From: archmoj Date: Mon, 10 Dec 2018 17:14:40 -0500 Subject: [PATCH 07/19] increase field of view for wide viewports --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a16f4753758..c31a6b96312 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4729,8 +4729,8 @@ } }, "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#7a3e12137c292ca2982d40844bb7b3d9764d3505", - "from": "git://github.com/gl-vis/gl-plot3d.git#7a3e12137c292ca2982d40844bb7b3d9764d3505", + "version": "git://github.com/gl-vis/gl-plot3d.git#9c8a1bce7a4559587e905e12f5fa1f7bc0dec01c", + "from": "git://github.com/gl-vis/gl-plot3d.git#9c8a1bce7a4559587e905e12f5fa1f7bc0dec01c", "requires": { "3d-view-controls": "^2.2.0", "a-big-triangle": "^1.0.0", diff --git a/package.json b/package.json index a9c605747c3..16f8b6c54b4 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.2", "gl-plot2d": "^1.4.0", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#7a3e12137c292ca2982d40844bb7b3d9764d3505", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#9c8a1bce7a4559587e905e12f5fa1f7bc0dec01c", "gl-pointcloud2d": "^1.0.1", "gl-scatter3d": "^1.1.0", "gl-select-box": "^1.0.2", From 586b109c9cfbd10ff6ce2d90a10db8803eb89567 Mon Sep 17 00:00:00 2001 From: archmoj Date: Tue, 11 Dec 2018 14:41:37 -0500 Subject: [PATCH 08/19] prep for orthographic camera --- package-lock.json | 29 ++++++++++++++++++++++++++--- package.json | 3 ++- src/plots/gl3d/camera.js | 12 +++++------- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index c31a6b96312..847be95a167 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4729,10 +4729,10 @@ } }, "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#9c8a1bce7a4559587e905e12f5fa1f7bc0dec01c", - "from": "git://github.com/gl-vis/gl-plot3d.git#9c8a1bce7a4559587e905e12f5fa1f7bc0dec01c", + "version": "git://github.com/gl-vis/gl-plot3d.git#8a7428d490a005937cbfed7bc368cebf5b0d4361", + "from": "git://github.com/gl-vis/gl-plot3d.git#8a7428d490a005937cbfed7bc368cebf5b0d4361", "requires": { - "3d-view-controls": "^2.2.0", + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", "a-big-triangle": "^1.0.0", "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#35b336df3befe40fd22b036aa3fa7f4c388ef2b5", "gl-fbo": "^2.0.3", @@ -4744,6 +4744,29 @@ "is-mobile": "^2.0.0", "mouse-change": "^1.1.1", "ndarray": "^1.0.16" + }, + "dependencies": { + "3d-view": { + "version": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", + "from": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", + "requires": { + "matrix-camera-controller": "^2.1.1", + "orbit-camera-controller": "^4.0.0", + "turntable-camera-controller": "^3.0.0" + } + }, + "3d-view-controls": { + "version": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", + "from": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", + "requires": { + "3d-view": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", + "has-passive-events": "^1.0.0", + "mouse-change": "^1.4.0", + "mouse-event-offset": "^3.0.2", + "mouse-wheel": "^1.0.2", + "right-now": "^1.0.0" + } + } } }, "gl-pointcloud2d": { diff --git a/package.json b/package.json index 16f8b6c54b4..83d7cdbef19 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ }, "dependencies": { "@plotly/d3-sankey": "^0.5.1", + "3d-view-controls": "^2.2.0", "alpha-shape": "^1.0.0", "array-range": "^1.0.1", "canvas-fit": "^1.5.0", @@ -77,7 +78,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.2", "gl-plot2d": "^1.4.0", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#9c8a1bce7a4559587e905e12f5fa1f7bc0dec01c", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#8a7428d490a005937cbfed7bc368cebf5b0d4361", "gl-pointcloud2d": "^1.0.1", "gl-scatter3d": "^1.1.0", "gl-select-box": "^1.0.2", diff --git a/src/plots/gl3d/camera.js b/src/plots/gl3d/camera.js index 9530ad333b1..78974a53bd0 100644 --- a/src/plots/gl3d/camera.js +++ b/src/plots/gl3d/camera.js @@ -80,8 +80,8 @@ function createCamera(element, options) { distance = Math.exp(view.computedRadius[0]); return true; }, - lookAt: function(center, eye, up) { - view.lookAt(view.lastT(), center, eye, up); + lookAt: function(eye, center, up) { + view.lookAt(view.lastT(), eye, center, up); }, rotate: function(pitch, yaw, roll) { view.rotate(view.lastT(), pitch, yaw, roll); @@ -155,18 +155,16 @@ function createCamera(element, options) { }, enumerable: true }, - /* ortho: { get: function() { - return view.computedOrtho; + return view.getOrtho(); }, set: function(northo) { - // do nothing (i.e. for the moment)... - return view.computedOrtho; + view.setOrtho(northo); + return view.getOrtho(); }, enumerable: true }, - */ distance: { get: function() { return distance; From 5ffc0c50cf425c1422c7cc2482281de6bf4678ba Mon Sep 17 00:00:00 2001 From: archmoj Date: Tue, 11 Dec 2018 18:43:33 -0500 Subject: [PATCH 09/19] removed kind of duplicate code for camera controls now pointing to latest 3d-view-controls fork --- package-lock.json | 14 +- package.json | 2 +- src/plots/gl3d/camera.js | 288 --------------------------------------- src/plots/gl3d/scene.js | 2 +- 4 files changed, 8 insertions(+), 298 deletions(-) delete mode 100644 src/plots/gl3d/camera.js diff --git a/package-lock.json b/package-lock.json index 847be95a167..2beaf433782 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,8 @@ "requires": true, "dependencies": { "3d-view": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.0.tgz", - "integrity": "sha1-gxrpQtdQjFCAHj4G+v4ejFdOF74=", + "version": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", + "from": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", "requires": { "matrix-camera-controller": "^2.1.1", "orbit-camera-controller": "^4.0.0", @@ -15,13 +14,12 @@ } }, "3d-view-controls": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/3d-view-controls/-/3d-view-controls-2.2.2.tgz", - "integrity": "sha512-WL0u3PN41lEx/4qvKqV6bJlweUYoW18FXMshW/qHb41AVdZxDReLoJNGYsI7x6jf9bYelEF62BJPQmO7yEnG2w==", + "version": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", + "from": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", "requires": { - "3d-view": "^2.0.0", + "3d-view": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", "has-passive-events": "^1.0.0", - "mouse-change": "^1.1.1", + "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", "mouse-wheel": "^1.0.2", "right-now": "^1.0.0" diff --git a/package.json b/package.json index 83d7cdbef19..19a9fc743b3 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ }, "dependencies": { "@plotly/d3-sankey": "^0.5.1", - "3d-view-controls": "^2.2.0", + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", "alpha-shape": "^1.0.0", "array-range": "^1.0.1", "canvas-fit": "^1.5.0", diff --git a/src/plots/gl3d/camera.js b/src/plots/gl3d/camera.js deleted file mode 100644 index 78974a53bd0..00000000000 --- a/src/plots/gl3d/camera.js +++ /dev/null @@ -1,288 +0,0 @@ -/** -* Copyright 2012-2018, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -'use strict'; - -module.exports = createCamera; - -var now = require('right-now'); -var createView = require('3d-view'); -var mouseChange = require('mouse-change'); -var mouseWheel = require('mouse-wheel'); -var mouseOffset = require('mouse-event-offset'); -var supportsPassive = require('has-passive-events'); - -function createCamera(element, options) { - element = element || document.body; - options = options || {}; - - var limits = [ 0.01, Infinity ]; - if('distanceLimits' in options) { - limits[0] = options.distanceLimits[0]; - limits[1] = options.distanceLimits[1]; - } - if('zoomMin' in options) { - limits[0] = options.zoomMin; - } - if('zoomMax' in options) { - limits[1] = options.zoomMax; - } - - var view = createView({ - center: options.center || [0, 0, 0], - up: options.up || [0, 1, 0], - eye: options.eye || [0, 0, 10], - ortho: options.ortho || false, - mode: options.mode || 'orbit', - distanceLimits: limits - }); - - var pmatrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - var distance = 0.0; - var width = element.clientWidth; - var height = element.clientHeight; - - var camera = { - keyBindingMode: 'rotate', - view: view, - element: element, - delay: options.delay || 16, - rotateSpeed: options.rotateSpeed || 1, - zoomSpeed: options.zoomSpeed || 1, - translateSpeed: options.translateSpeed || 1, - flipX: !!options.flipX, - flipY: !!options.flipY, - modes: view.modes, - tick: function() { - var t = now(); - var delay = this.delay; - var ctime = t - 2 * delay; - view.idle(t - delay); - view.recalcMatrix(ctime); - view.flush(t - (100 + delay * 2)); - var allEqual = true; - var matrix = view.computedMatrix; - for(var i = 0; i < 16; ++i) { - allEqual = allEqual && (pmatrix[i] === matrix[i]); - pmatrix[i] = matrix[i]; - } - var sizeChanged = - element.clientWidth === width && - element.clientHeight === height; - width = element.clientWidth; - height = element.clientHeight; - if(allEqual) return !sizeChanged; - distance = Math.exp(view.computedRadius[0]); - return true; - }, - lookAt: function(eye, center, up) { - view.lookAt(view.lastT(), eye, center, up); - }, - rotate: function(pitch, yaw, roll) { - view.rotate(view.lastT(), pitch, yaw, roll); - }, - pan: function(dx, dy, dz) { - view.pan(view.lastT(), dx, dy, dz); - }, - translate: function(dx, dy, dz) { - view.translate(view.lastT(), dx, dy, dz); - } - }; - - Object.defineProperties(camera, { - matrix: { - get: function() { - return view.computedMatrix; - }, - set: function(mat) { - view.setMatrix(view.lastT(), mat); - return view.computedMatrix; - }, - enumerable: true - }, - mode: { - get: function() { - return view.getMode(); - }, - set: function(mode) { - var curUp = view.computedUp.slice(); - var curEye = view.computedEye.slice(); - var curCenter = view.computedCenter.slice(); - view.setMode(mode); - if(mode === 'turntable') { - // Hacky time warping stuff to generate smooth animation - var t0 = now(); - view._active.lookAt(t0, curEye, curCenter, curUp); - view._active.lookAt(t0 + 500, curEye, curCenter, [0, 0, 1]); - view._active.flush(t0); - } - return view.getMode(); - }, - enumerable: true - }, - center: { - get: function() { - return view.computedCenter; - }, - set: function(ncenter) { - view.lookAt(view.lastT(), null, ncenter); - return view.computedCenter; - }, - enumerable: true - }, - eye: { - get: function() { - return view.computedEye; - }, - set: function(neye) { - view.lookAt(view.lastT(), neye); - return view.computedEye; - }, - enumerable: true - }, - up: { - get: function() { - return view.computedUp; - }, - set: function(nup) { - view.lookAt(view.lastT(), null, null, nup); - return view.computedUp; - }, - enumerable: true - }, - ortho: { - get: function() { - return view.getOrtho(); - }, - set: function(northo) { - view.setOrtho(northo); - return view.getOrtho(); - }, - enumerable: true - }, - distance: { - get: function() { - return distance; - }, - set: function(d) { - view.setDistance(view.lastT(), d); - return d; - }, - enumerable: true - }, - distanceLimits: { - get: function() { - return view.getDistanceLimits(limits); - }, - set: function(v) { - view.setDistanceLimits(v); - return v; - }, - enumerable: true - } - }); - - element.addEventListener('contextmenu', function(ev) { - ev.preventDefault(); - return false; - }); - - var lastX = 0, lastY = 0, lastMods = {shift: false, control: false, alt: false, meta: false}; - camera.mouseListener = mouseChange(element, handleInteraction); - - // enable simple touch interactions - element.addEventListener('touchstart', function(ev) { - var xy = mouseOffset(ev.changedTouches[0], element); - handleInteraction(0, xy[0], xy[1], lastMods); - handleInteraction(1, xy[0], xy[1], lastMods); - - ev.preventDefault(); - }, supportsPassive ? {passive: false} : false); - element.addEventListener('touchmove', function(ev) { - var xy = mouseOffset(ev.changedTouches[0], element); - handleInteraction(1, xy[0], xy[1], lastMods); - - ev.preventDefault(); - }, supportsPassive ? {passive: false} : false); - element.addEventListener('touchend', function(ev) { - handleInteraction(0, lastX, lastY, lastMods); - - ev.preventDefault(); - }, supportsPassive ? {passive: false} : false); - - function handleInteraction(buttons, x, y, mods) { - var keyBindingMode = camera.keyBindingMode; - - if(keyBindingMode === false) return; - - var rotate = keyBindingMode === 'rotate'; - var pan = keyBindingMode === 'pan'; - var zoom = keyBindingMode === 'zoom'; - - var ctrl = !!mods.control; - var alt = !!mods.alt; - var shift = !!mods.shift; - var left = !!(buttons & 1); - var right = !!(buttons & 2); - var middle = !!(buttons & 4); - - var scale = 1.0 / element.clientHeight; - var dx = scale * (x - lastX); - var dy = scale * (y - lastY); - - var flipX = camera.flipX ? 1 : -1; - var flipY = camera.flipY ? 1 : -1; - - var t = now(); - - var drot = Math.PI * camera.rotateSpeed; - - if((rotate && left && !ctrl && !alt && !shift) || (left && !ctrl && !alt && shift)) { - // Rotate - view.rotate(t, flipX * drot * dx, -flipY * drot * dy, 0); - } - - if((pan && left && !ctrl && !alt && !shift) || right || (left && ctrl && !alt && !shift)) { - // Pan - view.pan(t, -camera.translateSpeed * dx * distance, camera.translateSpeed * dy * distance, 0); - } - - if((zoom && left && !ctrl && !alt && !shift) || middle || (left && !ctrl && alt && !shift)) { - // Zoom - var orthographic = true; - if(orthographic) { - view.setDistance(t, camera.translateSpeed * dy * distance); - } else { - var kzoom = -camera.zoomSpeed * dy / window.innerHeight * (t - view.lastT()) * 100; - view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1)); - } - } - - lastX = x; - lastY = y; - lastMods = mods; - - return true; - } - - camera.wheelListener = mouseWheel(element, function(dx, dy) { - if(camera.keyBindingMode === false) return; - - var flipX = camera.flipX ? 1 : -1; - var flipY = camera.flipY ? 1 : -1; - var t = now(); - if(Math.abs(dx) > Math.abs(dy)) { - view.rotate(t, 0, 0, -dx * flipX * Math.PI * camera.rotateSpeed / window.innerWidth); - } else { - var kzoom = -camera.zoomSpeed * flipY * dy / window.innerHeight * (t - view.lastT()) / 20.0; - view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1)); - } - }, true); - - return camera; -} diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index 319533ef014..08c5f8b5d89 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -9,6 +9,7 @@ 'use strict'; +var createCamera = require('3d-view-controls'); var createPlot = require('gl-plot3d'); var getContext = require('webgl-context'); var passiveSupported = require('has-passive-events'); @@ -22,7 +23,6 @@ var Fx = require('../../components/fx'); var str2RGBAarray = require('../../lib/str2rgbarray'); var showNoWebGlMsg = require('../../lib/show_no_webgl_msg'); -var createCamera = require('./camera'); var project = require('./project'); var createAxesOptions = require('./layout/convert'); var createSpikeOptions = require('./layout/spikes'); From 190a9c7c89c2676479b5165f37afd9fe8ec12c1b Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 12 Dec 2018 09:50:07 -0500 Subject: [PATCH 10/19] using new gl-plot3d interface to set ortho --- package-lock.json | 27 ++------------------------- package.json | 2 +- src/plots/gl3d/scene.js | 13 +++++++++---- 3 files changed, 12 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2beaf433782..3f690da7871 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4727,8 +4727,8 @@ } }, "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#8a7428d490a005937cbfed7bc368cebf5b0d4361", - "from": "git://github.com/gl-vis/gl-plot3d.git#8a7428d490a005937cbfed7bc368cebf5b0d4361", + "version": "git://github.com/gl-vis/gl-plot3d.git#a1a63fe8b4756b08983240f4fd4fcfc6bda995f4", + "from": "git://github.com/gl-vis/gl-plot3d.git#a1a63fe8b4756b08983240f4fd4fcfc6bda995f4", "requires": { "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", "a-big-triangle": "^1.0.0", @@ -4742,29 +4742,6 @@ "is-mobile": "^2.0.0", "mouse-change": "^1.1.1", "ndarray": "^1.0.16" - }, - "dependencies": { - "3d-view": { - "version": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", - "from": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", - "requires": { - "matrix-camera-controller": "^2.1.1", - "orbit-camera-controller": "^4.0.0", - "turntable-camera-controller": "^3.0.0" - } - }, - "3d-view-controls": { - "version": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", - "from": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", - "requires": { - "3d-view": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", - "has-passive-events": "^1.0.0", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.0.2", - "right-now": "^1.0.0" - } - } } }, "gl-pointcloud2d": { diff --git a/package.json b/package.json index 19a9fc743b3..aedb79ee1d8 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.2", "gl-plot2d": "^1.4.0", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#8a7428d490a005937cbfed7bc368cebf5b0d4361", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#a1a63fe8b4756b08983240f4fd4fcfc6bda995f4", "gl-pointcloud2d": "^1.0.1", "gl-scatter3d": "^1.1.0", "gl-select-box": "^1.0.2", diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index 08c5f8b5d89..e5adae21b70 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -169,7 +169,7 @@ function render(scene) { scene.drawAnnotations(scene); } -function initializeGLPlot(scene, canvas, gl) { +function initializeGLPlot(scene, camera, canvas, gl) { var gd = scene.graphDiv; var glplotOptions = { @@ -181,7 +181,10 @@ function initializeGLPlot(scene, canvas, gl) { pickRadius: 10, snapToData: true, autoScale: true, - autoBounds: false + autoBounds: false, + camera: { + ortho: (camera && camera.ortho) || false + } }; // for static plots, we reuse the WebGL context @@ -319,7 +322,7 @@ function Scene(options, fullLayout) { this.convertAnnotations = Registry.getComponentMethod('annotations3d', 'convert'); this.drawAnnotations = Registry.getComponentMethod('annotations3d', 'draw'); - if(!initializeGLPlot(this)) return; // todo check the necessity for this line + initializeGLPlot(this, {ortho: false}); } var proto = Scene.prototype; @@ -328,6 +331,7 @@ proto.recoverContext = function() { var scene = this; var gl = this.glplot.gl; var canvas = this.glplot.canvas; + var camera = this.glplot.camera; this.glplot.dispose(); function tryRecover() { @@ -335,7 +339,7 @@ proto.recoverContext = function() { requestAnimationFrame(tryRecover); return; } - if(!initializeGLPlot(scene, canvas, gl)) { + if(!initializeGLPlot(scene, camera, canvas, gl)) { Lib.error('Catastrophic and unrecoverable WebGL error. Context lost.'); return; } @@ -724,6 +728,7 @@ proto.saveCamera = function saveCamera(layout) { } } } + if(cameraData.ortho !== cameraDataLastSave.ortho) hasChanged = true; } if(hasChanged) cameraNestedProp.set(cameraData); From 205670e99bc3991040b1d9e0f0f1fac832e7e701 Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 12 Dec 2018 10:11:08 -0500 Subject: [PATCH 11/19] pass camera info at gl3d init func --- src/plots/gl3d/scene.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index e5adae21b70..2b2e2a26686 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -182,9 +182,7 @@ function initializeGLPlot(scene, camera, canvas, gl) { snapToData: true, autoScale: true, autoBounds: false, - camera: { - ortho: (camera && camera.ortho) || false - } + camera: camera }; // for static plots, we reuse the WebGL context @@ -322,7 +320,8 @@ function Scene(options, fullLayout) { this.convertAnnotations = Registry.getComponentMethod('annotations3d', 'convert'); this.drawAnnotations = Registry.getComponentMethod('annotations3d', 'draw'); - initializeGLPlot(this, {ortho: false}); + var camera = fullLayout.scene.camera; + initializeGLPlot(this, camera); } var proto = Scene.prototype; From ebc90ea01a86cec192ce842af674d044cd7c9a44 Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 12 Dec 2018 10:34:37 -0500 Subject: [PATCH 12/19] using camera ortho and other attributes at scene init time --- src/plots/gl3d/index.js | 4 +++- src/plots/gl3d/scene.js | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plots/gl3d/index.js b/src/plots/gl3d/index.js index 3c4dccbfa2e..8dc6ccf2fbc 100644 --- a/src/plots/gl3d/index.js +++ b/src/plots/gl3d/index.js @@ -48,6 +48,7 @@ exports.plot = function plotGl3d(gd) { var sceneId = sceneIds[i], fullSceneData = getSubplotData(fullData, GL3D, sceneId), sceneLayout = fullLayout[sceneId], + camera = sceneLayout.camera, scene = sceneLayout._scene; if(!scene) { @@ -56,7 +57,8 @@ exports.plot = function plotGl3d(gd) { graphDiv: gd, container: gd.querySelector('.gl-container'), staticPlot: gd._context.staticPlot, - plotGlPixelRatio: gd._context.plotGlPixelRatio + plotGlPixelRatio: gd._context.plotGlPixelRatio, + camera: camera }, fullLayout ); diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index 2b2e2a26686..2d842f46c6d 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -678,7 +678,7 @@ function getOrbitCamera(camera) { return [ [camera.eye.x, camera.eye.y, camera.eye.z], [camera.center.x, camera.center.y, camera.center.z], - [camera.up.x, camera.up.y, camera.up.z] // , camera.ortho // ? + [camera.up.x, camera.up.y, camera.up.z] ]; } From 94c7404c7ccd35dc28619f70b335d80f0ec78779 Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 12 Dec 2018 20:57:01 -0500 Subject: [PATCH 13/19] fixed jasmine test to include camera ortho attribute --- test/jasmine/tests/gl_plot_interact_basic_test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/jasmine/tests/gl_plot_interact_basic_test.js b/test/jasmine/tests/gl_plot_interact_basic_test.js index 9826f871085..951f68a4dae 100644 --- a/test/jasmine/tests/gl_plot_interact_basic_test.js +++ b/test/jasmine/tests/gl_plot_interact_basic_test.js @@ -13,7 +13,8 @@ var failTest = require('../assets/fail_test'); var cameraStructure = { up: {x: jasmine.any(Number), y: jasmine.any(Number), z: jasmine.any(Number)}, center: {x: jasmine.any(Number), y: jasmine.any(Number), z: jasmine.any(Number)}, - eye: {x: jasmine.any(Number), y: jasmine.any(Number), z: jasmine.any(Number)} + eye: {x: jasmine.any(Number), y: jasmine.any(Number), z: jasmine.any(Number)}, + ortho: jasmine.any(Boolean) }; function makePlot(gd, mock) { From a0a524f8f15ec424ebb926410a243c33eb06d041 Mon Sep 17 00:00:00 2001 From: archmoj Date: Tue, 22 Jan 2019 12:05:52 -0500 Subject: [PATCH 14/19] added enableWheel attribute to 3d-view-controls --- package-lock.json | 20 +++++++++++++++++--- package.json | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ff44683f76..f9e79cff94b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4894,10 +4894,10 @@ } }, "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#73a6c2edecbfc34ae9366060ffc060b693cb36d6", - "from": "git://github.com/gl-vis/gl-plot3d.git#73a6c2edecbfc34ae9366060ffc060b693cb36d6", + "version": "git://github.com/gl-vis/gl-plot3d.git#be4631d689c5fe06b31dbaee9b1f5abc3dc2376e", + "from": "git://github.com/gl-vis/gl-plot3d.git#be4631d689c5fe06b31dbaee9b1f5abc3dc2376e", "requires": { - "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#3188a09056b90db16a589232014305abd6f61ea9", "a-big-triangle": "^1.0.3", "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#644cfafe5b769bb6168059d29d618dcb7451f7d9", "gl-fbo": "^2.0.5", @@ -4909,6 +4909,20 @@ "is-mobile": "^2.0.0", "mouse-change": "^1.4.0", "ndarray": "^1.0.18" + }, + "dependencies": { + "3d-view-controls": { + "version": "git://github.com/archmoj/3d-view-controls.git#3188a09056b90db16a589232014305abd6f61ea9", + "from": "git://github.com/archmoj/3d-view-controls.git#3188a09056b90db16a589232014305abd6f61ea9", + "requires": { + "3d-view": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", + "has-passive-events": "^1.0.0", + "mouse-change": "^1.4.0", + "mouse-event-offset": "^3.0.2", + "mouse-wheel": "^1.0.2", + "right-now": "^1.0.0" + } + } } }, "gl-pointcloud2d": { diff --git a/package.json b/package.json index f45aef3d9b8..11356da3a65 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.5", "gl-plot2d": "^1.4.1", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#73a6c2edecbfc34ae9366060ffc060b693cb36d6", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#be4631d689c5fe06b31dbaee9b1f5abc3dc2376e", "gl-pointcloud2d": "^1.0.2", "gl-scatter3d": "^1.1.3", "gl-select-box": "^1.0.3", From 6ccadf4feb037416bbd8d76d5b502b8064af7fc7 Mon Sep 17 00:00:00 2001 From: archmoj Date: Tue, 22 Jan 2019 14:53:23 -0500 Subject: [PATCH 15/19] updated modules --- package-lock.json | 167 ---------------------------------------------- package.json | 2 - 2 files changed, 169 deletions(-) diff --git a/package-lock.json b/package-lock.json index f9e79cff94b..5bf59f69f78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,27 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "3d-view": { - "version": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", - "from": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", - "requires": { - "matrix-camera-controller": "^2.1.1", - "orbit-camera-controller": "^4.0.0", - "turntable-camera-controller": "^3.0.0" - } - }, - "3d-view-controls": { - "version": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", - "from": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", - "requires": { - "3d-view": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", - "has-passive-events": "^1.0.0", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.0.2", - "right-now": "^1.0.0" - } - }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -157,16 +136,6 @@ "through": ">=2.2.7 <3" } }, - "a-big-triangle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz", - "integrity": "sha1-7v0wsCqPUl6LH3K7a7GwwWdRx5Q=", - "requires": { - "gl-buffer": "^2.1.1", - "gl-vao": "^1.2.0", - "weak-map": "^1.0.5" - } - }, "abab": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", @@ -2218,11 +2187,6 @@ "cssom": "0.3.x" } }, - "cubic-hermite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz", - "integrity": "sha1-hOOy8nKzFFToOTuZu2rtRRaMFOU=" - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -3659,11 +3623,6 @@ } } }, - "extract-frustum-planes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extract-frustum-planes/-/extract-frustum-planes-1.0.0.tgz", - "integrity": "sha1-l9VwP/BWTIw8aDjKxF+ee8UsnvU=" - }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -3769,15 +3728,6 @@ "to-regex-range": "^2.1.0" } }, - "filtered-vector": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/filtered-vector/-/filtered-vector-1.2.4.tgz", - "integrity": "sha1-VkU8A030MC0pPKjs3qw/kKvGeNM=", - "requires": { - "binary-search-bounds": "^1.0.0", - "cubic-hermite": "^1.0.0" - } - }, "finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", @@ -4682,25 +4632,6 @@ "assert-plus": "^1.0.0" } }, - "gl-axes3d": { - "version": "git://github.com/gl-vis/gl-axes3d.git#644cfafe5b769bb6168059d29d618dcb7451f7d9", - "from": "git://github.com/gl-vis/gl-axes3d.git#644cfafe5b769bb6168059d29d618dcb7451f7d9", - "requires": { - "bit-twiddle": "^1.0.2", - "dup": "^1.0.0", - "extract-frustum-planes": "^1.0.0", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-state": "^1.0.0", - "gl-vao": "^1.3.0", - "gl-vec4": "^1.0.1", - "glslify": "^7.0.0", - "robust-orientation": "^1.1.3", - "split-polygon": "^1.0.0", - "vectorize-text": "^3.2.0" - } - }, "gl-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/gl-buffer/-/gl-buffer-2.1.2.tgz", @@ -4893,38 +4824,6 @@ } } }, - "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#be4631d689c5fe06b31dbaee9b1f5abc3dc2376e", - "from": "git://github.com/gl-vis/gl-plot3d.git#be4631d689c5fe06b31dbaee9b1f5abc3dc2376e", - "requires": { - "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#3188a09056b90db16a589232014305abd6f61ea9", - "a-big-triangle": "^1.0.3", - "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#644cfafe5b769bb6168059d29d618dcb7451f7d9", - "gl-fbo": "^2.0.5", - "gl-mat4": "^1.2.0", - "gl-select-static": "^2.0.4", - "gl-shader": "^4.2.1", - "gl-spikes3d": "^1.0.8", - "glslify": "^7.0.0", - "is-mobile": "^2.0.0", - "mouse-change": "^1.4.0", - "ndarray": "^1.0.18" - }, - "dependencies": { - "3d-view-controls": { - "version": "git://github.com/archmoj/3d-view-controls.git#3188a09056b90db16a589232014305abd6f61ea9", - "from": "git://github.com/archmoj/3d-view-controls.git#3188a09056b90db16a589232014305abd6f61ea9", - "requires": { - "3d-view": "git://github.com/archmoj/3d-view.git#7894f467a8eaa6606faa001ffa325d13baa04b5b", - "has-passive-events": "^1.0.0", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.0.2", - "right-now": "^1.0.0" - } - } - } - }, "gl-pointcloud2d": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/gl-pointcloud2d/-/gl-pointcloud2d-1.0.2.tgz", @@ -4998,25 +4897,6 @@ "resolved": "https://registry.npmjs.org/gl-spikes2d/-/gl-spikes2d-1.0.2.tgz", "integrity": "sha512-QVeOZsi9nQuJJl7NB3132CCv5KA10BWxAY2QgJNsKqbLsG53B/TrGJpjIAohnJftdZ4fT6b3ZojWgeaXk8bOOA==" }, - "gl-spikes3d": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.8.tgz", - "integrity": "sha512-C9Ij2/vpyjFGQBO2dDG4WsS8ZLWbFdL+nnqBeWqYe8SER96R+ZBMH/wddwZsxPV2iKlK9x2a8z3fSohw6V8Ayg==", - "requires": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "gl-vao": "^1.3.0", - "glslify": "^7.0.0" - } - }, - "gl-state": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-state/-/gl-state-1.0.0.tgz", - "integrity": "sha1-Ji+qdYNbC5xTLBLzitxCXR0wzRc=", - "requires": { - "uniq": "^1.0.0" - } - }, "gl-streamtube3d": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/gl-streamtube3d/-/gl-streamtube3d-1.1.2.tgz", @@ -6212,11 +6092,6 @@ "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", "integrity": "sha1-HXK8ZtP+Iur2Fw3ajPEJQySM/HY=" }, - "is-mobile": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.0.0.tgz", - "integrity": "sha512-k2+p7BBCzhqHMdYJwGUNNo+6zegGiMIVbM6bEPzxWXpQV6BUzV892UW0oDFgqxT6DygO7LdxRbwC0xmOhJdbew==" - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -8128,15 +8003,6 @@ } } }, - "orbit-camera-controller": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/orbit-camera-controller/-/orbit-camera-controller-4.0.0.tgz", - "integrity": "sha1-bis28OeHhmPDMPUNqbfOaGwncAU=", - "requires": { - "filtered-vector": "^1.2.1", - "gl-mat4": "^1.0.3" - } - }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -9452,15 +9318,6 @@ "two-product": "^1.0.0" } }, - "robust-dot-product": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-dot-product/-/robust-dot-product-1.0.0.tgz", - "integrity": "sha1-yboBeL0sMEv9cl9Y6Inx2UYARVM=", - "requires": { - "robust-sum": "^1.0.0", - "two-product": "^1.0.0" - } - }, "robust-in-sphere": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/robust-in-sphere/-/robust-in-sphere-1.1.3.tgz", @@ -10186,15 +10043,6 @@ "through": "2" } }, - "split-polygon": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz", - "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=", - "requires": { - "robust-dot-product": "^1.0.0", - "robust-sum": "^1.0.0" - } - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -11312,16 +11160,6 @@ "safe-buffer": "^5.0.1" } }, - "turntable-camera-controller": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/turntable-camera-controller/-/turntable-camera-controller-3.0.1.tgz", - "integrity": "sha1-jb0/4AVQGRxlFky4iJcQSVeK/Zk=", - "requires": { - "filtered-vector": "^1.2.1", - "gl-mat4": "^1.0.2", - "gl-vec3": "^1.0.2" - } - }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -12064,11 +11902,6 @@ "defaults": "^1.0.3" } }, - "weak-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", - "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" - }, "weakmap-shim": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/weakmap-shim/-/weakmap-shim-1.1.1.tgz", diff --git a/package.json b/package.json index 11356da3a65..c9a74b18754 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,6 @@ }, "dependencies": { "@plotly/d3-sankey": "^0.5.1", - "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#dd8f55edc9d240a7ca6fcc4dc75099c5dc824947", "alpha-shape": "^1.0.0", "array-range": "^1.0.1", "canvas-fit": "^1.5.0", @@ -79,7 +78,6 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.5", "gl-plot2d": "^1.4.1", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#be4631d689c5fe06b31dbaee9b1f5abc3dc2376e", "gl-pointcloud2d": "^1.0.2", "gl-scatter3d": "^1.1.3", "gl-select-box": "^1.0.3", From c14fc6677e69a7e6613eb5190d827888aa5da4b4 Mon Sep 17 00:00:00 2001 From: archmoj Date: Tue, 22 Jan 2019 15:34:57 -0500 Subject: [PATCH 16/19] fixup gl-plot3d and 3d-view-controls --- package-lock.json | 153 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 + 2 files changed, 155 insertions(+) diff --git a/package-lock.json b/package-lock.json index 5bf59f69f78..93e63297922 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,27 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "3d-view": { + "version": "git://github.com/archmoj/3d-view.git#b1fdb8d988dde53272ba44073f8fa5751b9d46cd", + "from": "git://github.com/archmoj/3d-view.git#b1fdb8d988dde53272ba44073f8fa5751b9d46cd", + "requires": { + "matrix-camera-controller": "^2.1.1", + "orbit-camera-controller": "^4.0.0", + "turntable-camera-controller": "^3.0.0" + } + }, + "3d-view-controls": { + "version": "git://github.com/archmoj/3d-view-controls.git#880304b9e0d7333fcaa5ae083353d2e22d8b9da0", + "from": "git://github.com/archmoj/3d-view-controls.git#880304b9e0d7333fcaa5ae083353d2e22d8b9da0", + "requires": { + "3d-view": "git://github.com/archmoj/3d-view.git#b1fdb8d988dde53272ba44073f8fa5751b9d46cd", + "has-passive-events": "^1.0.0", + "mouse-change": "^1.4.0", + "mouse-event-offset": "^3.0.2", + "mouse-wheel": "^1.0.2", + "right-now": "^1.0.0" + } + }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -136,6 +157,16 @@ "through": ">=2.2.7 <3" } }, + "a-big-triangle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz", + "integrity": "sha1-7v0wsCqPUl6LH3K7a7GwwWdRx5Q=", + "requires": { + "gl-buffer": "^2.1.1", + "gl-vao": "^1.2.0", + "weak-map": "^1.0.5" + } + }, "abab": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", @@ -2187,6 +2218,11 @@ "cssom": "0.3.x" } }, + "cubic-hermite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz", + "integrity": "sha1-hOOy8nKzFFToOTuZu2rtRRaMFOU=" + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -3623,6 +3659,11 @@ } } }, + "extract-frustum-planes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/extract-frustum-planes/-/extract-frustum-planes-1.0.0.tgz", + "integrity": "sha1-l9VwP/BWTIw8aDjKxF+ee8UsnvU=" + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -3728,6 +3769,15 @@ "to-regex-range": "^2.1.0" } }, + "filtered-vector": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/filtered-vector/-/filtered-vector-1.2.4.tgz", + "integrity": "sha1-VkU8A030MC0pPKjs3qw/kKvGeNM=", + "requires": { + "binary-search-bounds": "^1.0.0", + "cubic-hermite": "^1.0.0" + } + }, "finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", @@ -4632,6 +4682,25 @@ "assert-plus": "^1.0.0" } }, + "gl-axes3d": { + "version": "git://github.com/gl-vis/gl-axes3d.git#644cfafe5b769bb6168059d29d618dcb7451f7d9", + "from": "git://github.com/gl-vis/gl-axes3d.git#644cfafe5b769bb6168059d29d618dcb7451f7d9", + "requires": { + "bit-twiddle": "^1.0.2", + "dup": "^1.0.0", + "extract-frustum-planes": "^1.0.0", + "gl-buffer": "^2.1.2", + "gl-mat4": "^1.2.0", + "gl-shader": "^4.2.1", + "gl-state": "^1.0.0", + "gl-vao": "^1.3.0", + "gl-vec4": "^1.0.1", + "glslify": "^7.0.0", + "robust-orientation": "^1.1.3", + "split-polygon": "^1.0.0", + "vectorize-text": "^3.2.0" + } + }, "gl-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/gl-buffer/-/gl-buffer-2.1.2.tgz", @@ -4824,6 +4893,24 @@ } } }, + "gl-plot3d": { + "version": "git://github.com/gl-vis/gl-plot3d.git#d9cb863d3f16dbf3eb572b854bf2cd66a6523b01", + "from": "git://github.com/gl-vis/gl-plot3d.git#d9cb863d3f16dbf3eb572b854bf2cd66a6523b01", + "requires": { + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#880304b9e0d7333fcaa5ae083353d2e22d8b9da0", + "a-big-triangle": "^1.0.3", + "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#644cfafe5b769bb6168059d29d618dcb7451f7d9", + "gl-fbo": "^2.0.5", + "gl-mat4": "^1.2.0", + "gl-select-static": "^2.0.4", + "gl-shader": "^4.2.1", + "gl-spikes3d": "^1.0.8", + "glslify": "^7.0.0", + "is-mobile": "^2.0.0", + "mouse-change": "^1.4.0", + "ndarray": "^1.0.18" + } + }, "gl-pointcloud2d": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/gl-pointcloud2d/-/gl-pointcloud2d-1.0.2.tgz", @@ -4897,6 +4984,25 @@ "resolved": "https://registry.npmjs.org/gl-spikes2d/-/gl-spikes2d-1.0.2.tgz", "integrity": "sha512-QVeOZsi9nQuJJl7NB3132CCv5KA10BWxAY2QgJNsKqbLsG53B/TrGJpjIAohnJftdZ4fT6b3ZojWgeaXk8bOOA==" }, + "gl-spikes3d": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.8.tgz", + "integrity": "sha512-C9Ij2/vpyjFGQBO2dDG4WsS8ZLWbFdL+nnqBeWqYe8SER96R+ZBMH/wddwZsxPV2iKlK9x2a8z3fSohw6V8Ayg==", + "requires": { + "gl-buffer": "^2.1.2", + "gl-shader": "^4.2.1", + "gl-vao": "^1.3.0", + "glslify": "^7.0.0" + } + }, + "gl-state": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-state/-/gl-state-1.0.0.tgz", + "integrity": "sha1-Ji+qdYNbC5xTLBLzitxCXR0wzRc=", + "requires": { + "uniq": "^1.0.0" + } + }, "gl-streamtube3d": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/gl-streamtube3d/-/gl-streamtube3d-1.1.2.tgz", @@ -6092,6 +6198,11 @@ "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", "integrity": "sha1-HXK8ZtP+Iur2Fw3ajPEJQySM/HY=" }, + "is-mobile": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.0.0.tgz", + "integrity": "sha512-k2+p7BBCzhqHMdYJwGUNNo+6zegGiMIVbM6bEPzxWXpQV6BUzV892UW0oDFgqxT6DygO7LdxRbwC0xmOhJdbew==" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -8003,6 +8114,15 @@ } } }, + "orbit-camera-controller": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/orbit-camera-controller/-/orbit-camera-controller-4.0.0.tgz", + "integrity": "sha1-bis28OeHhmPDMPUNqbfOaGwncAU=", + "requires": { + "filtered-vector": "^1.2.1", + "gl-mat4": "^1.0.3" + } + }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -9318,6 +9438,15 @@ "two-product": "^1.0.0" } }, + "robust-dot-product": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-dot-product/-/robust-dot-product-1.0.0.tgz", + "integrity": "sha1-yboBeL0sMEv9cl9Y6Inx2UYARVM=", + "requires": { + "robust-sum": "^1.0.0", + "two-product": "^1.0.0" + } + }, "robust-in-sphere": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/robust-in-sphere/-/robust-in-sphere-1.1.3.tgz", @@ -10043,6 +10172,15 @@ "through": "2" } }, + "split-polygon": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz", + "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=", + "requires": { + "robust-dot-product": "^1.0.0", + "robust-sum": "^1.0.0" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -11160,6 +11298,16 @@ "safe-buffer": "^5.0.1" } }, + "turntable-camera-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/turntable-camera-controller/-/turntable-camera-controller-3.0.1.tgz", + "integrity": "sha1-jb0/4AVQGRxlFky4iJcQSVeK/Zk=", + "requires": { + "filtered-vector": "^1.2.1", + "gl-mat4": "^1.0.2", + "gl-vec3": "^1.0.2" + } + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -11902,6 +12050,11 @@ "defaults": "^1.0.3" } }, + "weak-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", + "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" + }, "weakmap-shim": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/weakmap-shim/-/weakmap-shim-1.1.1.tgz", diff --git a/package.json b/package.json index c9a74b18754..474a79569ed 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ }, "dependencies": { "@plotly/d3-sankey": "^0.5.1", + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#880304b9e0d7333fcaa5ae083353d2e22d8b9da0", "alpha-shape": "^1.0.0", "array-range": "^1.0.1", "canvas-fit": "^1.5.0", @@ -78,6 +79,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.5", "gl-plot2d": "^1.4.1", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#d9cb863d3f16dbf3eb572b854bf2cd66a6523b01", "gl-pointcloud2d": "^1.0.2", "gl-scatter3d": "^1.1.3", "gl-select-box": "^1.0.3", From 3aebb991ab12d676f387c88d893ffda91b14e988 Mon Sep 17 00:00:00 2001 From: archmoj Date: Tue, 22 Jan 2019 17:40:12 -0500 Subject: [PATCH 17/19] updated 3d-view --- package-lock.json | 16 +++---- package.json | 4 +- src/plots/gl3d/layout/layout_attributes.js | 2 +- src/plots/gl3d/scene.js | 52 ++++++++++++++++------ 4 files changed, 50 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 93e63297922..817823e6c64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,8 +5,8 @@ "requires": true, "dependencies": { "3d-view": { - "version": "git://github.com/archmoj/3d-view.git#b1fdb8d988dde53272ba44073f8fa5751b9d46cd", - "from": "git://github.com/archmoj/3d-view.git#b1fdb8d988dde53272ba44073f8fa5751b9d46cd", + "version": "git://github.com/archmoj/3d-view.git#d61f0e2a81db34c59b6416d072d909370ddce5a1", + "from": "git://github.com/archmoj/3d-view.git#d61f0e2a81db34c59b6416d072d909370ddce5a1", "requires": { "matrix-camera-controller": "^2.1.1", "orbit-camera-controller": "^4.0.0", @@ -14,10 +14,10 @@ } }, "3d-view-controls": { - "version": "git://github.com/archmoj/3d-view-controls.git#880304b9e0d7333fcaa5ae083353d2e22d8b9da0", - "from": "git://github.com/archmoj/3d-view-controls.git#880304b9e0d7333fcaa5ae083353d2e22d8b9da0", + "version": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", + "from": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", "requires": { - "3d-view": "git://github.com/archmoj/3d-view.git#b1fdb8d988dde53272ba44073f8fa5751b9d46cd", + "3d-view": "git://github.com/archmoj/3d-view.git#d61f0e2a81db34c59b6416d072d909370ddce5a1", "has-passive-events": "^1.0.0", "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", @@ -4894,10 +4894,10 @@ } }, "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#d9cb863d3f16dbf3eb572b854bf2cd66a6523b01", - "from": "git://github.com/gl-vis/gl-plot3d.git#d9cb863d3f16dbf3eb572b854bf2cd66a6523b01", + "version": "git://github.com/gl-vis/gl-plot3d.git#786e95873e6c7ea18c3cf00bde377677bd8bff71", + "from": "git://github.com/gl-vis/gl-plot3d.git#786e95873e6c7ea18c3cf00bde377677bd8bff71", "requires": { - "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#880304b9e0d7333fcaa5ae083353d2e22d8b9da0", + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", "a-big-triangle": "^1.0.3", "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#644cfafe5b769bb6168059d29d618dcb7451f7d9", "gl-fbo": "^2.0.5", diff --git a/package.json b/package.json index 474a79569ed..e05ef94d8e0 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ }, "dependencies": { "@plotly/d3-sankey": "^0.5.1", - "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#880304b9e0d7333fcaa5ae083353d2e22d8b9da0", + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", "alpha-shape": "^1.0.0", "array-range": "^1.0.1", "canvas-fit": "^1.5.0", @@ -79,7 +79,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.5", "gl-plot2d": "^1.4.1", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#d9cb863d3f16dbf3eb572b854bf2cd66a6523b01", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#786e95873e6c7ea18c3cf00bde377677bd8bff71", "gl-pointcloud2d": "^1.0.2", "gl-scatter3d": "^1.1.3", "gl-select-box": "^1.0.3", diff --git a/src/plots/gl3d/layout/layout_attributes.js b/src/plots/gl3d/layout/layout_attributes.js index 99f6662f189..5d5fc94e681 100644 --- a/src/plots/gl3d/layout/layout_attributes.js +++ b/src/plots/gl3d/layout/layout_attributes.js @@ -75,7 +75,7 @@ module.exports = { ortho: extendFlat({ valType: 'boolean', role: 'info', - dflt: false, + dflt: true, editType: 'camera', description: [ 'Enable/disable orthographic camera.', diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index b2eab4ca769..ac4b334c90a 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -255,18 +255,7 @@ function initializeGLPlot(scene, camera, canvas, gl) { }, false); } - if(!scene.camera) { - var cameraData = scene.fullSceneLayout.camera; - scene.camera = createCamera(scene.container, { - center: [cameraData.center.x, cameraData.center.y, cameraData.center.z], - eye: [cameraData.eye.x, cameraData.eye.y, cameraData.eye.z], - up: [cameraData.up.x, cameraData.up.y, cameraData.up.z], - ortho: cameraData.ortho, - zoomMin: 0.1, - zoomMax: 100, - mode: 'orbit' - }); - } + if(!scene.camera) scene.initializeGLCamera(); scene.glplot.camera = scene.camera; @@ -342,6 +331,21 @@ function Scene(options, fullLayout) { var proto = Scene.prototype; +proto.initializeGLCamera = function() { + + var cameraData = this.fullSceneLayout.camera; + + this.camera = createCamera(this.container, { + center: [cameraData.center.x, cameraData.center.y, cameraData.center.z], + eye: [cameraData.eye.x, cameraData.eye.y, cameraData.eye.z], + up: [cameraData.up.x, cameraData.up.y, cameraData.up.z], + ortho: cameraData.ortho, + zoomMin: 0.1, + zoomMax: 100, + mode: 'orbit' + }); +}; + proto.recoverContext = function() { var scene = this; var gl = this.glplot.gl; @@ -715,9 +719,31 @@ proto.getCamera = function getCamera() { return getLayoutCamera(this.glplot.camera); }; + +var prevOrtho = ''; + // set camera position with a set of plotly coords proto.setCamera = function setCamera(cameraData) { - this.glplot.camera.lookAt.apply(this, getOrbitCamera(cameraData)); + + console.log("cameraData.ortho=", cameraData.ortho); + + if(prevOrtho !== '' && prevOrtho !== cameraData.ortho) { + console.log("New ortho!"); + + //this.initializeGLCamera(this, cameraData); + + var scene = this; + var gl = this.glplot.gl; + var canvas = this.glplot.canvas; + //this.glplot.dispose(); + initializeGLPlot(scene, cameraData, canvas, gl); + + + } else { + this.glplot.camera.lookAt.apply(this, getOrbitCamera(cameraData)); + } + + prevOrtho = cameraData.ortho; }; // save camera to user layout (i.e. gd.layout) From ad3186ba28147c05630b61fc9dd33f13f292f176 Mon Sep 17 00:00:00 2001 From: archmoj Date: Fri, 15 Feb 2019 14:00:25 -0500 Subject: [PATCH 18/19] removed unused dependencies --- package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index e7f1924a831..bf9f0da7a12 100644 --- a/package.json +++ b/package.json @@ -57,8 +57,8 @@ ] }, "dependencies": { - "@plotly/d3-sankey": "^0.5.1", "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", + "@plotly/d3-sankey": "^0.5.1", "alpha-shape": "^1.0.0", "array-range": "^1.0.1", "canvas-fit": "^1.5.0", @@ -91,7 +91,6 @@ "has-hover": "^1.0.1", "has-passive-events": "^1.0.0", "mapbox-gl": "0.45.0", - "matrix-camera-controller": "^2.1.3", "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", "mouse-wheel": "^1.0.2", @@ -105,7 +104,6 @@ "regl-line2d": "3.0.13", "regl-scatter2d": "^3.1.3", "regl-splom": "^1.0.6", - "right-now": "^1.0.0", "robust-orientation": "^1.1.3", "sane-topojson": "^2.0.0", "strongly-connected-components": "^1.0.1", From 6c0724c65441cada0981ced47e5cc9def54d7010 Mon Sep 17 00:00:00 2001 From: archmoj Date: Sun, 17 Feb 2019 19:07:40 -0500 Subject: [PATCH 19/19] modules fixes --- package-lock.json | 25 +++++++++++----------- package.json | 4 ++-- src/plots/gl3d/layout/layout_attributes.js | 2 +- src/plots/gl3d/scene.js | 24 +-------------------- 4 files changed, 17 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97f95283d89..31b94d8c362 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,8 +5,9 @@ "requires": true, "dependencies": { "3d-view": { - "version": "git://github.com/archmoj/3d-view.git#d61f0e2a81db34c59b6416d072d909370ddce5a1", - "from": "git://github.com/archmoj/3d-view.git#d61f0e2a81db34c59b6416d072d909370ddce5a1", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.0.tgz", + "integrity": "sha1-gxrpQtdQjFCAHj4G+v4ejFdOF74=", "requires": { "matrix-camera-controller": "^2.1.1", "orbit-camera-controller": "^4.0.0", @@ -14,14 +15,14 @@ } }, "3d-view-controls": { - "version": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", - "from": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", + "version": "git://github.com/archmoj/3d-view-controls.git#fe3c77b807618c0d51f4c50a691e2af0486bfda9", + "from": "git://github.com/archmoj/3d-view-controls.git#fe3c77b807618c0d51f4c50a691e2af0486bfda9", "requires": { - "3d-view": "git://github.com/archmoj/3d-view.git#d61f0e2a81db34c59b6416d072d909370ddce5a1", + "3d-view": "^2.0.0", "has-passive-events": "^1.0.0", "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.0.2", + "mouse-wheel": "^1.2.0", "right-now": "^1.0.0" } }, @@ -4765,8 +4766,8 @@ } }, "gl-axes3d": { - "version": "git://github.com/gl-vis/gl-axes3d.git#638ccaf6fc290dd4d849b35d20f020c6855d4741", - "from": "git://github.com/gl-vis/gl-axes3d.git#638ccaf6fc290dd4d849b35d20f020c6855d4741", + "version": "git://github.com/gl-vis/gl-axes3d.git#7a57149812d2a0bae4283ca927d0df3723af688e", + "from": "git://github.com/gl-vis/gl-axes3d.git#7a57149812d2a0bae4283ca927d0df3723af688e", "requires": { "bit-twiddle": "^1.0.2", "dup": "^1.0.0", @@ -4976,12 +4977,12 @@ } }, "gl-plot3d": { - "version": "git://github.com/gl-vis/gl-plot3d.git#c95145910815a3bcaf8c684bbd7e53e9b7f5c845", - "from": "git://github.com/gl-vis/gl-plot3d.git#c95145910815a3bcaf8c684bbd7e53e9b7f5c845", + "version": "git://github.com/gl-vis/gl-plot3d.git#b040fcb93647eeb7f08b0ec631bccbf1cf836620", + "from": "git://github.com/gl-vis/gl-plot3d.git#b040fcb93647eeb7f08b0ec631bccbf1cf836620", "requires": { - "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#fe3c77b807618c0d51f4c50a691e2af0486bfda9", "a-big-triangle": "^1.0.3", - "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#638ccaf6fc290dd4d849b35d20f020c6855d4741", + "gl-axes3d": "git://github.com/gl-vis/gl-axes3d.git#7a57149812d2a0bae4283ca927d0df3723af688e", "gl-fbo": "^2.0.5", "gl-mat4": "^1.2.0", "gl-select-static": "^2.0.4", diff --git a/package.json b/package.json index bf9f0da7a12..e71001c4a5e 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ ] }, "dependencies": { - "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#2bbb52b60d26f0a16713e7c87f010b57b43cc36f", + "3d-view-controls": "git://github.com/archmoj/3d-view-controls.git#fe3c77b807618c0d51f4c50a691e2af0486bfda9", "@plotly/d3-sankey": "^0.5.1", "alpha-shape": "^1.0.0", "array-range": "^1.0.1", @@ -79,7 +79,7 @@ "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.0.7", "gl-plot2d": "^1.4.2", - "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#c95145910815a3bcaf8c684bbd7e53e9b7f5c845", + "gl-plot3d": "git://github.com/gl-vis/gl-plot3d.git#b040fcb93647eeb7f08b0ec631bccbf1cf836620", "gl-pointcloud2d": "^1.0.2", "gl-scatter3d": "^1.1.6", "gl-select-box": "^1.0.3", diff --git a/src/plots/gl3d/layout/layout_attributes.js b/src/plots/gl3d/layout/layout_attributes.js index 5d5fc94e681..99f6662f189 100644 --- a/src/plots/gl3d/layout/layout_attributes.js +++ b/src/plots/gl3d/layout/layout_attributes.js @@ -75,7 +75,7 @@ module.exports = { ortho: extendFlat({ valType: 'boolean', role: 'info', - dflt: true, + dflt: false, editType: 'camera', description: [ 'Enable/disable orthographic camera.', diff --git a/src/plots/gl3d/scene.js b/src/plots/gl3d/scene.js index b1079d59a6f..da367576df1 100644 --- a/src/plots/gl3d/scene.js +++ b/src/plots/gl3d/scene.js @@ -744,31 +744,9 @@ proto.getCamera = function getCamera() { return getLayoutCamera(this.glplot.camera); }; - -var prevOrtho = ''; - // set camera position with a set of plotly coords proto.setCamera = function setCamera(cameraData) { - - console.log("cameraData.ortho=", cameraData.ortho); - - if(prevOrtho !== '' && prevOrtho !== cameraData.ortho) { - console.log("New ortho!"); - - //this.initializeGLCamera(this, cameraData); - - var scene = this; - var gl = this.glplot.gl; - var canvas = this.glplot.canvas; - //this.glplot.dispose(); - initializeGLPlot(scene, cameraData, canvas, gl); - - - } else { - this.glplot.camera.lookAt.apply(this, getOrbitCamera(cameraData)); - } - - prevOrtho = cameraData.ortho; + this.glplot.camera.lookAt.apply(this, getOrbitCamera(cameraData)); }; // save camera to user layout (i.e. gd.layout)