なるたるなるなる

メモと日記代わり(私用)

SceneKit で 線を描く line

正月に一度やって, 今, 忘れて出来ずにイラついたのでメモることにした.

    class func line(from : SCNVector3, to : SCNVector3) -> SCNNode
    {
        
        let source = SCNGeometrySource.init(vertices: [from, to])
        let indices : [UInt8] = [0, 1]
        let data = Data.init(bytes: indices)
        /**
         not works.
         let element = SCNGeometryElement.init(indices: [0, 1], primitiveType: .line)
        */
        let element = SCNGeometryElement.init(data: data, primitiveType: .line, primitiveCount: 1, bytesPerIndex: 1)
        
        let geometry = SCNGeometry.init(sources: [source], elements: [element])
        let node = SCNNode.init(geometry: geometry)

        let material = SCNMaterial.init()
        material.diffuse.contents = NSColor.white.cgColor
        node.geometry!.insertMaterial(material, at: 0)        

        return node
    }