Peter Irving
Peter Irving

Reputation: 405

Limit Scene Kit Camera Rotation around a single (y) axis in iOS

So I have a sphere in scene kit and currently, I am orbiting the sphere with the default .allowsCameraControl = true. I want to limit the orbit of the camera to only orbit the Y-axis (basically it will look like a globe spinning).

I have tried messing around with spinning the actual sphere with pan gestures, but that seemed to complicate things rather quickly and I would like to keep the default physics and gestures involved with .allowsCameraControl = true if at all possible.

Below is what I have currently. Thanks!

    private func createSceneHelpers() {
        scnView.allowsCameraControl = true
    }

    private func createCamera() {
        cameraNode = SCNNode()
        cameraNode.camera = SCNCamera()
        cameraNode.position = SCNVector3(x: 0, y: 0, z: 5)
        myScene.rootNode.addChildNode(cameraNode)
    }

Upvotes: 0

Views: 965

Answers (1)

mnuages
mnuages

Reputation: 13462

You can take a look at the SCNCameraController class and its maximumVerticalAngle property. The SCNInteractionModeOrbitTurntable interaction mode is also of interest. Note that if the online documentation is lacking, the documentation in SceneKit's header file as more often up-to-date.

Upvotes: 2

Related Questions