Skip to content

Commit

Permalink
Undeprecate camera controller
Browse files Browse the repository at this point in the history
  • Loading branch information
DJBen committed Feb 5, 2018
1 parent 7686285 commit 0a423a5
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ class CelestialBodyViewController: SceneController {
scnView.isPlaying = true

cameraModifier = cbScene
legacyCameraController?.viewSlideDivisor = 8000
legacyCameraController?.viewSlideVelocityCap = 800
legacyCameraController?.viewSlideInertiaDuration = 1.5
cameraController?.viewSlideDivisor = 8000
cameraController?.viewSlideVelocityCap = 800
cameraController?.viewSlideInertiaDuration = 1.5
}

deinit {
Expand Down
3 changes: 0 additions & 3 deletions Graviton/Common/Utils/Settings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ struct Settings {
case enableTimeWarp
case useUtcTime
case useAlphaInsteadOfBlurInSettings
case useCameraControllerV2

var `default`: Bool {
switch self {
Expand Down Expand Up @@ -128,8 +127,6 @@ struct Settings {
return useUtcTimeDefault
case .useAlphaInsteadOfBlurInSettings:
return false
case .useCameraControllerV2:
return false
default:
return false
}
Expand Down
24 changes: 11 additions & 13 deletions Graviton/Common/ViewControllers/SceneController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ class SceneController: UIViewController, SCNSceneRendererDelegate {

lazy var rotationGR: UIRotationGestureRecognizer = UIRotationGestureRecognizer(target: self, action: #selector(rotate(sender:)))

@available(*, deprecated, message: "use SCNCameraController")
var legacyCameraController: CameraController?
var cameraController: SCNCameraController?
var cameraController: CameraController?

override func viewDidLoad() {
super.viewDidLoad()
Expand All @@ -40,20 +38,20 @@ class SceneController: UIViewController, SCNSceneRendererDelegate {
}

@objc func recenter(sender: UIGestureRecognizer) {
legacyCameraController?.slideVelocity = CGPoint()
legacyCameraController?.referenceSlideVelocity = CGPoint()
cameraController?.slideVelocity = CGPoint()
cameraController?.referenceSlideVelocity = CGPoint()
SCNTransaction.begin()
SCNTransaction.animationDuration = 0.5
cameraModifier?.resetCamera()
SCNTransaction.commit()
}

func loadCameraController() {
legacyCameraController = CameraController()
cameraController = CameraController()
}

@objc func zoom(sender: UIPinchGestureRecognizer) {
guard let legacyCameraController = legacyCameraController else {
guard let legacyCameraController = cameraController else {
return
}
switch sender.state {
Expand All @@ -73,7 +71,7 @@ class SceneController: UIViewController, SCNSceneRendererDelegate {
}

@objc func pan(sender: UIPanGestureRecognizer) {
guard let legacyCameraController = legacyCameraController else {
guard let legacyCameraController = cameraController else {
return
}
legacyCameraController.slideVelocity = sender.velocity(in: view).cap(to: legacyCameraController.viewSlideVelocityCap)
Expand All @@ -84,9 +82,9 @@ class SceneController: UIViewController, SCNSceneRendererDelegate {
@objc func rotate(sender: UIRotationGestureRecognizer) {
switch sender.state {
case .began:
legacyCameraController?.previousRotation = cameraModifier?.cameraNode.rotation
cameraController?.previousRotation = cameraModifier?.cameraNode.rotation
case .ended:
legacyCameraController?.previousRotation = nil
cameraController?.previousRotation = nil
default:
break
}
Expand All @@ -95,9 +93,9 @@ class SceneController: UIViewController, SCNSceneRendererDelegate {
// MARK: - Scene Renderer Delegate

func renderer(_ renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: TimeInterval) {
legacyCameraController?.handleCameraPan(atTime: time)
legacyCameraController?.rotation = rotationGR.rotation
legacyCameraController?.handleCameraRotation(atTime: time)
cameraController?.handleCameraPan(atTime: time)
cameraController?.rotation = rotationGR.rotation
cameraController?.handleCameraRotation(atTime: time)
}
}

Expand Down
13 changes: 0 additions & 13 deletions Graviton/Observer/Resources/Settings/experiment_menu.plist
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,6 @@
</dict>
</array>
</dict>
<dict>
<key>content</key>
<array>
<dict>
<key>type</key>
<string>toggle</string>
<key>text</key>
<string>New Camera Controller</string>
<key>binding</key>
<string>useCameraControllerV2</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>
23 changes: 8 additions & 15 deletions Graviton/Observer/ViewControllers/ObserverViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class ObserverViewController: SceneController {
}

var observerCameraController: ObserverCameraController {
return legacyCameraController as! ObserverCameraController
return cameraController as! ObserverCameraController
}

override func viewDidLoad() {
Expand Down Expand Up @@ -127,18 +127,11 @@ class ObserverViewController: SceneController {
}

override func loadCameraController() {
if Settings.default[.useCameraControllerV2] {
cameraController = SCNCameraController()
cameraController?.interactionMode = .orbitAngleMapping
cameraController?.inertiaEnabled = true
cameraController?.pointOfView = observerScene.cameraNode
} else {
legacyCameraController = ObserverCameraController()
legacyCameraController?.viewSlideVelocityCap = 500
legacyCameraController?.cameraNode = observerScene.cameraNode
legacyCameraController?.cameraInversion = .invertAll
configurePanSpeed()
}
cameraController = ObserverCameraController()
cameraController?.viewSlideVelocityCap = 500
cameraController?.cameraNode = observerScene.cameraNode
cameraController?.cameraInversion = .invertAll
configurePanSpeed()
}

private func setupViewElements() {
Expand Down Expand Up @@ -318,7 +311,7 @@ class ObserverViewController: SceneController {

private func configurePanSpeed() {
let factor = CGFloat(ObserverScene.defaultFov / observerScene.fov)
legacyCameraController?.viewSlideDivisor = factor * 25000
cameraController?.viewSlideDivisor = factor * 25000
}

@objc func updateTimestampLabel() {
Expand Down Expand Up @@ -347,7 +340,7 @@ class ObserverViewController: SceneController {
return
}
if Timekeeper.default.isWarpActive {
legacyCameraController?.slideVelocity = CGPoint.zero
cameraController?.slideVelocity = CGPoint.zero
} else {
super.renderer(renderer, didRenderScene: scene, atTime: time)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ class SolarSystemViewController: SceneController {
scnView.antialiasingMode = .none
scnView.overlaySKScene = SolarSystemOverlayScene(size: scnView.frame.size)
scnView.backgroundColor = UIColor.black
legacyCameraController?.cameraNode = solarSystemScene.cameraNode
cameraController?.cameraNode = solarSystemScene.cameraNode
}

private func updateForFocusedNode(_ focusedNode: SCNNode, representingBody focusedBody: Body) {
Expand Down

0 comments on commit 0a423a5

Please sign in to comment.