Skip to content
This repository was archived by the owner on Dec 3, 2021. It is now read-only.

Ui tinker #24

Open
wants to merge 30 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
1e96334
Branch for UI Development
gwm762 Oct 21, 2018
79f548c
Added TEst Button to GUI
gwm762 Oct 25, 2018
d74c1b4
Add sample checkbox and drop-down
MaxInertia Oct 26, 2018
a1d4134
Creating second menu. Can't get title to change.
gwm762 Nov 1, 2018
2fbce59
Working on Initial Menu
gwm762 Nov 1, 2018
7c927f5
Initial Menu Spawns Graphs, Added some test listeners for Oculus Cont…
gwm762 Nov 2, 2018
1c1074c
Tweaking GUI position with multiple graphs
gwm762 Nov 2, 2018
a54965e
Button Event Handlers Working
gwm762 Nov 3, 2018
2c6a980
More touch event handlers
gwm762 Nov 3, 2018
4eab720
Added events to controls for toggle ray, clear selection, toggle GUIs.
gwm762 Nov 3, 2018
85e3c6e
Tinkering with thumbrest for ray.
gwm762 Nov 4, 2018
862294b
Change to eventlisteners for thumbrest
gwm762 Nov 6, 2018
358d7f6
Binding checkbox to variable
gwm762 Nov 7, 2018
6fd3dc7
tinkering
gwm762 Nov 7, 2018
71ed394
Working on new SettingsGui
gwm762 Nov 8, 2018
4a3ee75
Tinkering with getting UI to reposition
gwm762 Nov 8, 2018
934c538
Merge branch 'UI-tinker' of https://github.com/MaxInertia/VRDataVisua…
gwm762 Nov 8, 2018
99d4d8d
Merge branch 'UI-tinker' of https://github.com/MaxInertia/VRDataVisua…
gwm762 Nov 8, 2018
34f7f6a
Thumb rest ray control working
gwm762 Nov 8, 2018
c5e5db2
Callback working on Dropdown
gwm762 Nov 8, 2018
21d5485
Progress on switching graph types
gwm762 Nov 9, 2018
5fea0c0
Switching between 3D and 2D Scatter Plots works
gwm762 Nov 9, 2018
21be3fd
Three plots spawn, time filter needs work
gwm762 Nov 9, 2018
e7446a1
Three plots mostly working, shadow manifolds not changing axes correctly
gwm762 Nov 9, 2018
8950ce6
For Demo to Team
gwm762 Nov 9, 2018
c68e060
Corrected Bug introduced previously
gwm762 Nov 9, 2018
6a4f27f
Functionality ready for demo, some work needed on ui
gwm762 Nov 11, 2018
b641b26
Switching folders but UI is unresponsive after change.
gwm762 Nov 19, 2018
5bedf57
Ready for demo?
gwm762 Nov 20, 2018
3c6445a
Ready for Testing
gwm762 Nov 26, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ skip in packageJSDependencies := false
libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.5"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % "test"

/*
// sbt ghpagesPushSite
enablePlugins(GhpagesPlugin)
enablePlugins(SiteScaladocPlugin)
Expand All @@ -46,3 +47,4 @@ mappings in makeSite ++= Seq(
file(s"${Paths.www}/js/lib/webvr-polyfill.min.js") -> "js/lib/webvr-polyfill.min.js",
file("target/scala-2.12/vrdatavisualization-opt.js") -> "js/vrdatavisualization-opt.js"
)
*/
1 change: 1 addition & 0 deletions project/build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
sbt.version=1.1.2
2 changes: 1 addition & 1 deletion project/build.sbt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "1.0.0")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.22")
addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.3.2")
/*addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.3.2")*/
2 changes: 1 addition & 1 deletion project/ghpages.sbt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.6.2")
/*addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.6.2")*/
15 changes: 13 additions & 2 deletions src/main/scala/facade/Dat.scala
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,15 @@ object Dat {
}
@js.native
trait GUI extends Object3D {
def add(something: js.Object): Unit = js.native
def add(something: js.Object, id: String): Unit = js.native
def add(something: js.Object): GuiComponent = js.native
def add(something: js.Object, id: String): GuiComponent = js.native
def add(something: js.Object, id: String, options: js.Array[String]): GuiComponent = js.native // For drop-downs
def add(something: js.Object, id: String, min: Double, max: Double): GuiSlider = js.native
def addFolder(folder: GUI): GUI = js.native
def addCheckbox(something: js.Object, id: String): GuiComponent = js.native
def addButton(fn: js.Function, id: String = "Button"): Unit = js.native
def addButton(id: String, fn: js.Function): Unit = js.native
def addDropdown(something: js.Object, id: String, options: js.Array[String]): GuiComponent = js.native
def open(): Unit = js.native
def close(): Unit = js.native
def removeFolder(gui: GUI): Unit = js.native
Expand All @@ -43,14 +46,22 @@ object Dat {
def step(n: Double): GuiSlider = js.native
def updateValueLabel(label: String): Unit = js.native
def updateObject(obj: js.Any): Unit = js.native
def updateSlider():Unit = js.native
}

@js.native
trait GuiCheckbox extends GuiComponent {}

@js.native
trait GuiButton extends GuiComponent {}

@js.native
trait GuiDropdown extends GuiComponent {}

@js.native
trait GuiComponent extends Object3D {
def name(name: String): GuiSlider = js.native
def onChange(callback: js.Function): GuiComponent = js.native
}

@js.native
Expand Down
29 changes: 19 additions & 10 deletions src/main/scala/vrdv/input/oculus/OculusController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,12 @@ abstract class OculusController(vrc: VRController) extends input.Device {
setEventListener(Input.Primary_ValueChanged, (event: Event) => {
Log("Primary Value Changed")//; Log(event)
val value = primaryValue(event.target)

if(value > 0.05) {
inputDetails.arrow.visible = true
//inputDetails.arrow.visible = true
inputDevice.pressed(true)
} else {
inputDetails.arrow.visible = false
//inputDetails.arrow.visible = false
inputDevice.pressed(false)
}

Expand Down Expand Up @@ -156,6 +157,22 @@ abstract class OculusController(vrc: VRController) extends input.Device {
}
})

setEventListener(Input.ThumbRest_TouchBegan, (event: Event) => {
inputDetails.arrow.visible = true
inputParser.passInput(new Point(Some(vrc), myCID) {
rc = inputDetails
persist = true
})
})

setEventListener(Input.ThumbRest_TouchEnded, (event: Event) => {
inputDetails.arrow.visible = false
inputParser.passInput(new Point(Some(vrc), myCID) {
rc = inputDetails
persist = false
})
})

setAxesEventListener(Input.Axes_Changed, (event: AxesChangedEvent) => {
Log("Axes Changed!")
if(captured.nonEmpty) {
Expand Down Expand Up @@ -202,14 +219,6 @@ abstract class OculusController(vrc: VRController) extends input.Device {
Log("Grip Press Ended")
})

setEventListener(Input.ThumbRest_TouchBegan, (event: Event) => {
Log("Thumbrest Touch Began")
})

setEventListener(Input.ThumbRest_TouchEnded, (event: Event) => {
Log("Thumbrest Touch Ended")
})

*/

} // end of initCommonEventListeners
Expand Down
63 changes: 56 additions & 7 deletions src/main/scala/vrdv/input/oculus/OculusControllerLeft.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package vrdv.input.oculus

import facade.Dat
import facade.IFThree.VRController
import org.scalajs.dom.raw.Event
import util.Log
import vrdv.model.PlotterModelManager

Expand Down Expand Up @@ -35,22 +36,70 @@ class OculusControllerLeft(vrc: VRController, val mc: PlotterModelManager) exten

// Setup events unique for this controller

setEventListener(Input.Left.Y_PressEnded, (event: Event) => {
mc.plotter.clearSelections()
})

setEventListener(Input.Left.X_PressEnded, (event: Event) => {
mc.plotter.toggleGuiVisibility
})

/* -- Unused inputs

setEventListener(Input.Left.X_PressBegan, (event: Event) => {
Log("X Press Began")
Log.show("X Press Began")
})

setEventListener(Input.Left.X_PressEnded, (event: Event) => {
Log("X Press Ended")
setEventListener(Input.Left.Y_PressBegan, (event: Event) => {
Log.show("Y Press Began")
})

setEventListener(Input.Left.Y_PressBegan, (event: Event) => {
Log("Y Press Began")
setEventListener(Input.Left.Menu_PressBegan, (event: Event) => {
Log.show("Home Button Pressed - event: " + event.`type`)
})

setEventListener(Input.Left.Y_PressEnded, (event: Event) => {
Log("Y Press Ended")
setEventListener(Input.Left.Menu_PressEnded, (event: Event) => {
Log.show("Home Button Pressed - event: " + event.`type`)
})

setEventListener(Input.Left.Thumbstick_PressBegan, (event: Event) => {
Log.show("Left Thumbstick Button Pressed - event: " + event.`type`)
})

setEventListener(Input.Left.Thumbstick_PressEnded, (event: Event) => {
Log.show("Left Thumbstick Button Pressed - event: " + event.`type`)
})

setEventListener(Input.Left.Thumbstick_TouchBegan, (event: Event) => {
Log.show("Left Thumbstick Touch Began - event: " + event.`type`)
})

setEventListener(Input.Left.Thumbstick_TouchEnded, (event: Event) => {
Log.show("Left Thumbstick Touch Ended - event: " + event.`type`)
})

setEventListener(Input.Left.ThumbRest_TouchBegan, (event: Event) => {
Log.show("Left Thumbrest Touch Began - event: " + event.`type`)
})

setEventListener(Input.Left.ThumbRest_TouchEnded, (event: Event) => {
Log.show("Left Thumbrest Touch Ended - event: " + event.`type`)
})

setEventListener(Input.Left.X_TouchBegan, (event: Event) => {
Log.show("X Touch Began - event: " + event.`type`)
})

setEventListener(Input.Left.X_TouchEnded, (event: Event) => {
Log.show("X Touch Ended - event: " + event.`type`)
})

setEventListener(Input.Left.Y_TouchBegan, (event: Event) => {
Log.show("Y Touch Began - event: " + event.`type`)
})

setEventListener(Input.Left.Y_TouchEnded, (event: Event) => {
Log.show("Y Touch Ended - event: " + event.`type`)
})

*/
Expand Down
55 changes: 48 additions & 7 deletions src/main/scala/vrdv/input/oculus/OculusControllerRight.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package vrdv.input.oculus

import facade.Dat
import facade.IFThree.VRController
import org.scalajs.dom.raw.Event
import util.Log
import vrdv.model.PlotterModelManager

Expand Down Expand Up @@ -34,22 +35,62 @@ class OculusControllerRight(vrc: VRController, val mc: PlotterModelManager) exte

// Setup events unique for this controller

setEventListener(Input.Right.B_PressEnded, (event: Event) => {
mc.plotter.clearSelections()
})

setEventListener(Input.Right.A_PressEnded, (event: Event) => {
mc.plotter.toggleGuiVisibility
})

/* -- Unused inputs

setEventListener(Input.Right.A_PressBegan, (event: Event) => {
Log("A Press Began")
Log.show("A Press Began")
})

setEventListener(Input.Right.A_PressEnded, (event: Event) => {
Log("A Press Ended")
setEventListener(Input.Right.B_PressBegan, (event: Event) => {
Log.show("B Press Began")
})

setEventListener(Input.Right.B_PressBegan, (event: Event) => {
Log("B Press Began")
setEventListener(Input.Right.Thumbstick_PressBegan, (event: Event) => {
Log.show("Right Thumbstick Button Pressed - event: " + event.`type`)
})

setEventListener(Input.Right.B_PressEnded, (event: Event) => {
Log("B Press Ended")
setEventListener(Input.Right.Thumbstick_PressEnded, (event: Event) => {
Log.show("Right Thumbstick Button Pressed - event: " + event.`type`)
})

setEventListener(Input.Right.ThumbRest_TouchBegan, (event: Event) => {
Log.show("Right Thumbrest Touch Began - event: " + event.`type`)
})

setEventListener(Input.Right.Thumbstick_PressBegan, (event: Event) => {
Log.show("Right Thumbstick Button Pressed - event: " + event.`type`)
})

setEventListener(Input.Right.Thumbstick_PressEnded, (event: Event) => {
Log.show("Right Thumbstick Button Pressed - event: " + event.`type`)
})

setEventListener(Input.Right.ThumbRest_TouchEnded, (event: Event) => {
Log.show("Right Thumbrest Touch Ended - event: " + event.`type`)
})

setEventListener(Input.Right.A_TouchBegan, (event: Event) => {
Log.show("A Touch Began - event: " + event.`type`)
})

setEventListener(Input.Right.A_TouchEnded, (event: Event) => {
Log.show("A Touch Ended - event: " + event.`type`)
})

setEventListener(Input.Right.B_TouchBegan, (event: Event) => {
Log.show("B Touch Began - event: " + event.`type`)
})

setEventListener(Input.Right.B_TouchEnded, (event: Event) => {
Log.show("B Touch Ended - event: " + event.`type`)
})

*/
Expand Down
25 changes: 25 additions & 0 deletions src/main/scala/vrdv/input/oculus/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,18 @@ package object oculus {
val X_PressEnded: String = "X press ended"
val Y_PressBegan: String = "Y press began"
val Y_PressEnded: String = "Y press ended"
val X_TouchBegan: String = "X touch began"
val X_TouchEnded: String = "X touch ended"
val Y_TouchBegan: String = "Y touch began"
val Y_TouchEnded: String = "Y touch ended"
val Thumbstick_PressBegan: String = "thumbstick press began"
val Thumbstick_PressEnded: String = "thumbstick press ended"
val Thumbstick_TouchBegan: String = "thumbstick touch began"
val Thumbstick_TouchEnded: String = "thumbstick touch ended"
//val ThumbRest_TouchBegan: String = "thumbrest touch began"
//val ThumbRest_TouchEnded: String = "thumbrest touch ended"
//val Menu_PressBegan: String = "menu press began"
//val Menu_PressEnded: String = "menu press ended"
}

object Right {
Expand All @@ -38,6 +50,16 @@ package object oculus {
val A_PressEnded: String = "A press ended"
val B_PressBegan: String = "B press began"
val B_PressEnded: String = "B press ended"
val A_TouchBegan: String = "A touch began"
val A_TouchEnded: String = "A touch ended"
val B_TouchBegan: String = "B touch began"
val B_TouchEnded: String = "B touch ended"
val Thumbstick_PressBegan: String = "thumbstick press began"
val Thumbstick_PressEnded: String = "thumbstick press ended"
val Thumbstick_TouchBegan: String = "thumbstick touch began"
val Thumbstick_TouchEnded: String = "thumbstick touch ended"
//val ThumbRest_TouchBegan: String = "thumbrest touch began"
//val ThumbRest_TouchEnded: String = "thumbrest touch ended"
}

// These touch events for Oculus Controls are not registering. (Firefox 61.0.1)
Expand All @@ -50,4 +72,7 @@ package object oculus {
def primaryValue(target: Any): Double = target
.asInstanceOf[js.Dynamic].getButton(1).value.asInstanceOf[Double]

def isTouched(target: Any): Boolean = target
.asInstanceOf[js.Dynamic].getButton(1).isTouched.asInstanceOf[Boolean]

}
Loading