swift - Exit ARSCNView to rotate objects with allowsCameraControl -


with arkit create boxes in room , want able exit ar scene see boxes , rotate around it.
tried allowscameracontrol = true , i'm able zoom , drag objects camera turn around them while object turns around me. i've looked 604's video of wwdc explains option self.sceneview.defaultcameracontroller.interactionmode = .orbitturntable can't manage make work...
'box' on horizontal plane , have topbox @ ceiling.

what i've tried:

func getcenterbox() -> scnnode? {     guard let _ = self.sceneview.scene.rootnode.childnode(withname: "box", recursively: true) else {         return nil     }      let edges = self.sceneview.scene.rootnode.childnodes.filter { $0.name == "box" }     let edgesbyx = edges.sorted { $0.position.x < $1.position.x }     let minx = edgesbyx.first?.position.x     let maxx = edgesbyx.last?.position.x      let edgesbyz = edges.sorted { $0.position.z < $1.position.z }     let minz = edgesbyz.first?.position.z     let maxz = edgesbyz.last?.position.z      let centerbox = scnbox(width: 1, height: 1, length: 1, chamferradius: 0.5)     let centernode = scnnode(geometry: centerbox)     let centernodeposition = scnvector3make((maxx! - minx!)/2 + minx!, ((topbox?.position.y)! - (edges.first?.position.y)!)/2 + (edges.first?.position.y)!, (maxz! - minz!)/2 + minz!)     centernode.position = centernodeposition     return scnnode(geometry: scngeometry()) }  @ibaction func stopartapped(_ sender: uibutton) {     self.sceneview.allowscameracontrol = true     self.sceneview.defaultcameracontroller.interactionmode = .orbitturntable     self.sceneview.defaultcameracontroller.inertiaenabled = true     self.sceneview.defaultcameracontroller.maximumhorizontalangle = 0     self.sceneview.defaultcameracontroller.maximumverticalangle = 0     self.sceneview.defaultcameracontroller.minimumhorizontalangle = 0     self.sceneview.defaultcameracontroller.minimumverticalangle = 0      guard let centernode = getcenterbox() else {         return     }     self.sceneview.scene.rootnode.addchildnode(centernode)      let lookatconstraint = scnlookatconstraint(target: centernode)      if self.sceneview.pointofview?.constraints == nil {         self.sceneview.pointofview?.constraints = [lookatconstraint]     } else {         self.sceneview.pointofview?.constraints?.append(lookatconstraint)     } } 


Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -