From e9b19f1e6c3e2cb232682a7affec645526f39648 Mon Sep 17 00:00:00 2001 From: Justin Georgi Date: Fri, 8 Nov 2024 16:55:43 -0700 Subject: [PATCH] Add set camera limit buttons Signed-off-by: Justin Georgi --- modules/glmv-prev.js | 64 +++++++++++++++++++++++++++++++++++++++----- modules/glmv.js | 1 + 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/modules/glmv-prev.js b/modules/glmv-prev.js index 9f5552f..bf0380e 100644 --- a/modules/glmv-prev.js +++ b/modules/glmv-prev.js @@ -49,30 +49,80 @@ setView.setDisabled(true) //View Limit Controls const setMinYaw = new OO.ui.ButtonWidget({ - label: 'Yaw' + label: 'Min' }) setMinYaw.on('click', () => { limitCameraOrbit('yaw','min') }) -const minLimitButtons = new OO.ui.ButtonGroupWidget({ - items: [ setMinYaw ] +const setMaxYaw = new OO.ui.ButtonWidget({ + label: 'Max' +}) +setMaxYaw.on('click', () => { + limitCameraOrbit('yaw','max') }) +const yawLimitButtons = new OO.ui.ButtonGroupWidget({ + items: [ setMinYaw, setMaxYaw ] +}) +const labelYaw = new OO.ui.LabelWidget({ + label: "Yaw:" +}) + +const yawButtons = new OO.ui.HorizontalLayout({ + items: [ + labelYaw, + yawLimitButtons + ], + id: 'yaw-limits' +}) + +const setMinPitch = new OO.ui.ButtonWidget({ + label: 'Min' +}) +setMinPitch.on('click', () => { + limitCameraOrbit('pitch','min') +}) + +const setMaxPitch = new OO.ui.ButtonWidget({ + label: 'Max' +}) +setMaxPitch.on('click', () => { + limitCameraOrbit('pitch','max') +}) + +const pitchLimitButtons = new OO.ui.ButtonGroupWidget({ + items: [ setMinPitch, setMaxPitch ] +}) + +const labelPitch = new OO.ui.LabelWidget({ + label: "Pitch:" +}) + +const pitchButtons = new OO.ui.HorizontalLayout({ + items: [ + labelPitch, + pitchLimitButtons + ], + id: 'pitch-limits' +}) const setLims = new OO.ui.PopupButtonWidget({ label: 'Set View Limits', + invisibleLabel: true, icon: 'tableMergeCells', popup: { - $content: $( '

Additional options here.

' ), + $content: yawButtons.$element.add(pitchButtons.$element), padded: true, - align: 'force-left' - } + position: 'above' + }, + $overlay: $('#bodyContent') }) +setLims.setDisabled(true) const cameraButtons = new OO.ui.ButtonGroupWidget({ - items: [ downloadViewerImage, setView ] + items: [ downloadViewerImage, setView, setLims ] }) //Main Menu diff --git a/modules/glmv.js b/modules/glmv.js index 4caf143..f31df8e 100644 --- a/modules/glmv.js +++ b/modules/glmv.js @@ -454,6 +454,7 @@ limitCameraOrbit = function(axis, limit) { let oldOrbitVals = (oldOrbit) ? oldOrbit.split(' ') : Array(3).fill('auto') oldOrbitVals[valueIndex] = newOrbitVals[valueIndex] metadata.viewerConfig.default[`${limit}-camera-orbit`] = oldOrbitVals.join(' ') + mView.setAttribute(`${limit}-camera-orbit`, oldOrbitVals.join(' ')) const newText = currentText.replace(/(.*?
)[\S\s]*?(<\/pre>.*)/,`$1\n${JSON.stringify(metadata, null, 2)}\n$2`)
     $('#wpTextbox1').val(newText)
 }