Search code examples
scenekit

Get size of dae node


Suppose I have a collada file which has a box in it and I import the dae file into the scene. Now after importing in the scene I know the dae object is a box. How can I get the dimensions of the box in scenekit after adding it to the scene

If I import the node as a SCNBox i get errors saying that SNCBox is not a subtype of SCNNode.

    floorNode = scene.rootNode.childNodeWithName("floor", recursively: false) as SCNBox
    floorNode?.physicsBody = SCNPhysicsBody.staticBody()
    floorNode?.physicsBody?.categoryBitMask = 2

    let floorGeo: SCNBox  = floorNode.geometry! as SCNBox

How do I get the dimensions if SCNNode is the only way to import nodes?


Solution

  • Example Swift code on how to use boundingBox:

    var min = shipNode.boundingBox.min
    var max = shipNode.boundingBox.max
    let w = CGFloat(max.x - min.x)
    let h = CGFloat(max.y - min.y)
    let l = CGFloat(max.z - min.z)
    let boxShape = SCNBox (width: w , height: h , length: l, chamferRadius: 0.0)
    let shape = SCNPhysicsShape(geometry: boxShape, options: nil)
    
    shipNode.physicsBody!.physicsShape = SCNPhysicsShape(geometry: boxShape, options: nil)
    shipNode.physicsBody = SCNPhysicsBody.dynamic()