diff --git a/Scanner/Extensions/ViewController+Types.swift b/Scanner/Extensions/ViewController+Types.swift index 2660c94..c7e0f63 100644 --- a/Scanner/Extensions/ViewController+Types.swift +++ b/Scanner/Extensions/ViewController+Types.swift @@ -45,7 +45,6 @@ struct DynamicOptions { var depthResolution: STCaptureSessionDepthFrameResolution = .resolution640x480 } -// Volume resolution in meters class Options { // The initial scanning volume size will be 0.5 x 0.5 x 0.5 meters // (X is left-right, Y is up-down, Z is forward-back) diff --git a/Scanner/MeshViewer/MeshViewController.swift b/Scanner/MeshViewer/MeshViewController.swift index 074b33c..0409acf 100644 --- a/Scanner/MeshViewer/MeshViewController.swift +++ b/Scanner/MeshViewer/MeshViewController.swift @@ -377,4 +377,8 @@ public class MeshViewController: UIViewController, UIGestureRecognizerDelegate { } present(activityViewController, animated: true) } + + @IBAction func openDeveloperPortal(_ sender: Any) { + UIApplication.shared.open(URL(string: "https://structure.io/developers")!) + } } diff --git a/Scanner/MetalRenderer.swift b/Scanner/MetalRenderer.swift index e722ab2..9009305 100644 --- a/Scanner/MetalRenderer.swift +++ b/Scanner/MetalRenderer.swift @@ -20,7 +20,7 @@ struct RenderingOptions: OptionSet { static let depthFrame = RenderingOptions(rawValue: 1 << 6) static let cubePlacement: RenderingOptions = [.colorFrame, .depthOverlay, .cube] - static let scanning: RenderingOptions = [.colorFrame, .depthOverlay, .mesh, .cube] + static let scanning: RenderingOptions = [.colorFrame, .mesh, .cube] static let viewing: RenderingOptions = [] } diff --git a/Scanner/SettingsPopupView.swift b/Scanner/SettingsPopupView.swift index 63ad98a..185e9d5 100644 --- a/Scanner/SettingsPopupView.swift +++ b/Scanner/SettingsPopupView.swift @@ -308,7 +308,7 @@ class SettingsListModal: UIScrollView { irManualExposureSlider?.isEnabled = !(irAutoExposureSwitch?.isOn ?? false) - irGainSegmentedControl?.selectedSegmentIndex = 3 + irGainSegmentedControl?.selectedSegmentIndex = 2 streamPresetDropControl?.selectedIndex = 0 diff --git a/Scanner/Supporting Files/Base.lproj/Main.storyboard b/Scanner/Supporting Files/Base.lproj/Main.storyboard index 6027574..9d12250 100644 --- a/Scanner/Supporting Files/Base.lproj/Main.storyboard +++ b/Scanner/Supporting Files/Base.lproj/Main.storyboard @@ -1,9 +1,9 @@ - + - + @@ -13,8 +13,8 @@ - - + + @@ -182,13 +182,20 @@ Try to re-align or press reset. - - + @@ -243,9 +250,7 @@ Try to re-align or press reset. - - @@ -275,6 +280,8 @@ Try to re-align or press reset. + + @@ -305,19 +312,14 @@ Try to re-align or press reset. - - - - - - + - + @@ -389,7 +391,7 @@ Try to re-align or press reset. - + @@ -399,13 +401,20 @@ Try to re-align or press reset. - - + @@ -413,13 +422,13 @@ Try to re-align or press reset. - - + + @@ -466,8 +475,8 @@ Try to re-align or press reset. - - + + diff --git a/Scanner/ViewController.swift b/Scanner/ViewController.swift index 405173b..8406c7a 100644 --- a/Scanner/ViewController.swift +++ b/Scanner/ViewController.swift @@ -348,13 +348,13 @@ class ViewController: UIViewController, STBackgroundTaskDelegate, MeshViewDelega } func adjustVolumeSize(_ volumeSize: vector_float3) { - var volume = vector_float3() + var volume = volumeSize // Make sure the volume size remains between 10 centimeters and 3 meters. - volume.x = keep(inRange: volumeSize.x, minValue: 0.1, maxValue: 3.0) - volume.y = keep(inRange: volumeSize.y, minValue: 0.1, maxValue: 3.0) - volume.z = keep(inRange: volumeSize.z, minValue: 0.1, maxValue: 3.0) + volume.x = keep(inRange: volume.x, minValue: 0.1, maxValue: 3.0) + volume.y = keep(inRange: volume.y, minValue: 0.1, maxValue: 3.0) + volume.z = keep(inRange: volume.z, minValue: 0.1, maxValue: 3.0) - boxSizeLabel.text = String.localizedStringWithFormat("Size %1.2f m", volumeSize.x) + boxSizeLabel.text = String.localizedStringWithFormat("Size %1.2f m", volume.x) options.volumeSizeInMeters = volume slamState.cameraPoseInitializer!.volumeSizeInMeters = volume.toGLK() @@ -423,7 +423,7 @@ class ViewController: UIViewController, STBackgroundTaskDelegate, MeshViewDelega launchStructureAppOrGoToAppStore() } - @IBAction func openDeveloperPortal(_ button: UIButton) { + @IBAction func openDeveloperPortal(_ sender: Any) { UIApplication.shared.open(URL(string: "https://structure.io/developers")!) } @@ -536,6 +536,8 @@ class ViewController: UIViewController, STBackgroundTaskDelegate, MeshViewDelega if needToConnectSensor { // If sensor is never connected before show sensor required banner if !UserDefaults.standard.hasConnectedSensorBefore { + // Bring the view to front otherwise it appears behind settings view + self.view.bringSubviewToFront(sensorRequiredImageView) sensorRequiredImageView.isHidden = false } else { showAppStatusMessage(appStatus.pleaseConnectSensorMessage) @@ -633,7 +635,7 @@ class ViewController: UIViewController, STBackgroundTaskDelegate, MeshViewDelega @IBAction func pinchGesture(_ gestureRecognizer: UIPinchGestureRecognizer) { if gestureRecognizer.state == .began { if slamState.scannerState == .cubePlacement { - volumeScale.initialPinchScale = volumeScale.currentScale / gestureRecognizer.scale + volumeScale.initialPinchScale = 1 } initialVolumeSize = options.volumeSizeInMeters } else if gestureRecognizer.state == .changed {