Documentation Archive Developer
Search

SceneKit Changes for Swift

SceneKit

Modified SCNActionable
Declaration
From
protocol SCNActionable : NSObjectProtocol {
    func runAction(_ action: SCNAction)
    func runAction(_ action: SCNAction, completionHandler block: (@escaping () -> Swift.Void)? = nil)
    func runAction(_ action: SCNAction, forKey key: String?)
    func runAction(_ action: SCNAction, forKey key: String?, completionHandler block: (@escaping () -> Swift.Void)? = nil)
    var hasActions: Bool { get }
    func action(forKey key: String) -> SCNAction?
    func removeAction(forKey key: String)
    func removeAllActions()
    var actionKeys: [String] { get }
}
To
protocol SCNActionable : NSObjectProtocol {
    func runAction(_ action: SCNAction)
    func runAction(_ action: SCNAction, completionHandler block: (() -> Swift.Void)? = nil)
    func runAction(_ action: SCNAction, forKey key: String?)
    func runAction(_ action: SCNAction, forKey key: String?, completionHandler block: (() -> Swift.Void)? = nil)
    var hasActions: Bool { get }
    func action(forKey key: String) -> SCNAction?
    func removeAction(forKey key: String)
    func removeAllActions()
    var actionKeys: [String] { get }
}

Declaration
From
func runAction(_ action: SCNAction, completionHandler block: (@escaping () -> Swift.Void)? = nil)
To
func runAction(_ action: SCNAction, completionHandler block: (() -> Swift.Void)? = nil)

Declaration
From
func runAction(_ action: SCNAction, forKey key: String?, completionHandler block: (@escaping () -> Swift.Void)? = nil)
To
func runAction(_ action: SCNAction, forKey key: String?, completionHandler block: (() -> Swift.Void)? = nil)

Declaration
From
class SCNAnimationEvent : NSObject {
    convenience init(keyTime time: CGFloat, block eventBlock: SceneKit.SCNAnimationEventBlock)
    class func withKeyTime(_ time: CGFloat, block eventBlock: SceneKit.SCNAnimationEventBlock) -> Self
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SCNAnimationEvent : CVarArg {
}
extension SCNAnimationEvent : Equatable, Hashable {
    var hashValue: Int { get }
}
To
class SCNAnimationEvent : NSObject {
    convenience init(keyTime time: CGFloat, block eventBlock: @escaping SceneKit.SCNAnimationEventBlock)
    class func withKeyTime(_ time: CGFloat, block eventBlock: @escaping SceneKit.SCNAnimationEventBlock) -> Self
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SCNAnimationEvent : CVarArg {
}
extension SCNAnimationEvent : Equatable, Hashable {
    var hashValue: Int { get }
}

Declaration
From
convenience init(keyTime time: CGFloat, block eventBlock: SceneKit.SCNAnimationEventBlock)
To
convenience init(keyTime time: CGFloat, block eventBlock: @escaping SceneKit.SCNAnimationEventBlock)

Declaration
From
struct SCNMatrix4 {
    var m11: Float
    var m12: Float
    var m13: Float
    var m14: Float
    var m21: Float
    var m22: Float
    var m23: Float
    var m24: Float
    var m31: Float
    var m32: Float
    var m33: Float
    var m34: Float
    var m41: Float
    var m42: Float
    var m43: Float
    var m44: Float
    init()
    init(m11 m11: Float, m12 m12: Float, m13 m13: Float, m14 m14: Float, m21 m21: Float, m22 m22: Float, m23 m23: Float, m24 m24: Float, m31 m31: Float, m32 m32: Float, m33 m33: Float, m34 m34: Float, m41 m41: Float, m42 m42: Float, m43 m43: Float, m44 m44: Float)
    init(_ m: float4x4)
    init(_ m: double4x4)
}
extension SCNMatrix4 {
    init(_ m: float4x4)
    init(_ m: double4x4)
}
To
struct SCNMatrix4 {
    var m11: Float
    var m12: Float
    var m13: Float
    var m14: Float
    var m21: Float
    var m22: Float
    var m23: Float
    var m24: Float
    var m31: Float
    var m32: Float
    var m33: Float
    var m34: Float
    var m41: Float
    var m42: Float
    var m43: Float
    var m44: Float
    init()
    init(m11 m11: Float, m12 m12: Float, m13 m13: Float, m14 m14: Float, m21 m21: Float, m22 m22: Float, m23 m23: Float, m24 m24: Float, m31 m31: Float, m32 m32: Float, m33 m33: Float, m34 m34: Float, m41 m41: Float, m42 m42: Float, m43 m43: Float, m44 m44: Float)
    init(_ m: float4x4)
    init(_ m: double4x4)
}
extension SCNMatrix4 {
    init(_ m: float4x4)
    init(_ m: double4x4)
}
extension SCNMatrix4 {
}

Declaration
From
class SCNParticleSystem : NSObject, NSCopying, NSSecureCoding, SCNAnimatable {
    convenience init()
    class func particleSystem() -> Self
    convenience init?(named name: String, inDirectory directory: String?)
    class func particleSystemNamed(_ name: String, inDirectory directory: String?) -> Self?
    var emissionDuration: CGFloat
    var emissionDurationVariation: CGFloat
    var idleDuration: CGFloat
    var idleDurationVariation: CGFloat
    var loops: Bool
    var birthRate: CGFloat
    var birthRateVariation: CGFloat
    var warmupDuration: CGFloat
    var emitterShape: SCNGeometry?
    var birthLocation: SCNParticleBirthLocation
    var birthDirection: SCNParticleBirthDirection
    var spreadingAngle: CGFloat
    var emittingDirection: SCNVector3
    var acceleration: SCNVector3
    var isLocal: Bool
    var particleAngle: CGFloat
    var particleAngleVariation: CGFloat
    var particleVelocity: CGFloat
    var particleVelocityVariation: CGFloat
    var particleAngularVelocity: CGFloat
    var particleAngularVelocityVariation: CGFloat
    var particleLifeSpan: CGFloat
    var particleLifeSpanVariation: CGFloat
    var systemSpawnedOnDying: SCNParticleSystem?
    var systemSpawnedOnCollision: SCNParticleSystem?
    var systemSpawnedOnLiving: SCNParticleSystem?
    var particleImage: Any?
    var imageSequenceColumnCount: Int
    var imageSequenceRowCount: Int
    var imageSequenceInitialFrame: CGFloat
    var imageSequenceInitialFrameVariation: CGFloat
    var imageSequenceFrameRate: CGFloat
    var imageSequenceFrameRateVariation: CGFloat
    var imageSequenceAnimationMode: SCNParticleImageSequenceAnimationMode
    var particleColor: UIColor
    var particleColorVariation: SCNVector4
    var particleSize: CGFloat
    var particleSizeVariation: CGFloat
    var blendMode: SCNParticleBlendMode
    var isBlackPassEnabled: Bool
    var orientationMode: SCNParticleOrientationMode
    var sortingMode: SCNParticleSortingMode
    var isLightingEnabled: Bool
    var isAffectedByGravity: Bool
    var isAffectedByPhysicsFields: Bool
    var particleDiesOnCollision: Bool
    var colliderNodes: [SCNNode]?
    var particleMass: CGFloat
    var particleMassVariation: CGFloat
    var particleBounce: CGFloat
    var particleBounceVariation: CGFloat
    var particleFriction: CGFloat
    var particleFrictionVariation: CGFloat
    var particleCharge: CGFloat
    var particleChargeVariation: CGFloat
    var dampingFactor: CGFloat
    var speedFactor: CGFloat
    var stretchFactor: CGFloat
    var fresnelExponent: CGFloat
    var propertyControllers: [SCNParticleSystem.ParticleProperty : SCNParticlePropertyController]?
    func reset()
    func handle(_ event: SCNParticleEvent, forProperties properties: [SCNParticleSystem.ParticleProperty], handler block: SceneKit.SCNParticleEventBlock)
    func addModifier(forProperties properties: [SCNParticleSystem.ParticleProperty], at stage: SCNParticleModifierStage, modifier block: SceneKit.SCNParticleModifierBlock)
    func removeModifiers(at stage: SCNParticleModifierStage)
    func removeAllModifiers()
    struct ParticleProperty : RawRepresentable, Equatable, Hashable, Comparable {
        init(rawValue rawValue: String)
    }
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SCNParticleSystem {
    struct ParticleProperty : RawRepresentable, Equatable, Hashable, Comparable {
        init(rawValue rawValue: String)
    }
}
extension SCNParticleSystem : CVarArg {
}
extension SCNParticleSystem : Equatable, Hashable {
    var hashValue: Int { get }
}
To
class SCNParticleSystem : NSObject, NSCopying, NSSecureCoding, SCNAnimatable {
    convenience init()
    class func particleSystem() -> Self
    convenience init?(named name: String, inDirectory directory: String?)
    class func particleSystemNamed(_ name: String, inDirectory directory: String?) -> Self?
    var emissionDuration: CGFloat
    var emissionDurationVariation: CGFloat
    var idleDuration: CGFloat
    var idleDurationVariation: CGFloat
    var loops: Bool
    var birthRate: CGFloat
    var birthRateVariation: CGFloat
    var warmupDuration: CGFloat
    var emitterShape: SCNGeometry?
    var birthLocation: SCNParticleBirthLocation
    var birthDirection: SCNParticleBirthDirection
    var spreadingAngle: CGFloat
    var emittingDirection: SCNVector3
    var acceleration: SCNVector3
    var isLocal: Bool
    var particleAngle: CGFloat
    var particleAngleVariation: CGFloat
    var particleVelocity: CGFloat
    var particleVelocityVariation: CGFloat
    var particleAngularVelocity: CGFloat
    var particleAngularVelocityVariation: CGFloat
    var particleLifeSpan: CGFloat
    var particleLifeSpanVariation: CGFloat
    var systemSpawnedOnDying: SCNParticleSystem?
    var systemSpawnedOnCollision: SCNParticleSystem?
    var systemSpawnedOnLiving: SCNParticleSystem?
    var particleImage: Any?
    var imageSequenceColumnCount: Int
    var imageSequenceRowCount: Int
    var imageSequenceInitialFrame: CGFloat
    var imageSequenceInitialFrameVariation: CGFloat
    var imageSequenceFrameRate: CGFloat
    var imageSequenceFrameRateVariation: CGFloat
    var imageSequenceAnimationMode: SCNParticleImageSequenceAnimationMode
    var particleColor: UIColor
    var particleColorVariation: SCNVector4
    var particleSize: CGFloat
    var particleSizeVariation: CGFloat
    var blendMode: SCNParticleBlendMode
    var isBlackPassEnabled: Bool
    var orientationMode: SCNParticleOrientationMode
    var sortingMode: SCNParticleSortingMode
    var isLightingEnabled: Bool
    var isAffectedByGravity: Bool
    var isAffectedByPhysicsFields: Bool
    var particleDiesOnCollision: Bool
    var colliderNodes: [SCNNode]?
    var particleMass: CGFloat
    var particleMassVariation: CGFloat
    var particleBounce: CGFloat
    var particleBounceVariation: CGFloat
    var particleFriction: CGFloat
    var particleFrictionVariation: CGFloat
    var particleCharge: CGFloat
    var particleChargeVariation: CGFloat
    var dampingFactor: CGFloat
    var speedFactor: CGFloat
    var stretchFactor: CGFloat
    var fresnelExponent: CGFloat
    var propertyControllers: [SCNParticleSystem.ParticleProperty : SCNParticlePropertyController]?
    func reset()
    func handle(_ event: SCNParticleEvent, forProperties properties: [SCNParticleSystem.ParticleProperty], handler block: @escaping SceneKit.SCNParticleEventBlock)
    func addModifier(forProperties properties: [SCNParticleSystem.ParticleProperty], at stage: SCNParticleModifierStage, modifier block: @escaping SceneKit.SCNParticleModifierBlock)
    func removeModifiers(at stage: SCNParticleModifierStage)
    func removeAllModifiers()
    struct ParticleProperty : RawRepresentable, Equatable, Hashable, Comparable {
        init(rawValue rawValue: String)
    }
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SCNParticleSystem {
    struct ParticleProperty : RawRepresentable, Equatable, Hashable, Comparable {
        init(rawValue rawValue: String)
    }
}
extension SCNParticleSystem : CVarArg {
}
extension SCNParticleSystem : Equatable, Hashable {
    var hashValue: Int { get }
}

Declaration
From
func addModifier(forProperties properties: [SCNParticleSystem.ParticleProperty], at stage: SCNParticleModifierStage, modifier block: SceneKit.SCNParticleModifierBlock)
To
func addModifier(forProperties properties: [SCNParticleSystem.ParticleProperty], at stage: SCNParticleModifierStage, modifier block: @escaping SceneKit.SCNParticleModifierBlock)

Declaration
From
func handle(_ event: SCNParticleEvent, forProperties properties: [SCNParticleSystem.ParticleProperty], handler block: SceneKit.SCNParticleEventBlock)
To
func handle(_ event: SCNParticleEvent, forProperties properties: [SCNParticleSystem.ParticleProperty], handler block: @escaping SceneKit.SCNParticleEventBlock)

Declaration
From
class SCNPhysicsField : NSObject, NSCopying, NSSecureCoding {
    var strength: CGFloat
    var falloffExponent: CGFloat
    var minimumDistance: CGFloat
    var isActive: Bool
    var isExclusive: Bool
    var halfExtent: SCNVector3
    var usesEllipsoidalExtent: Bool
    var scope: SCNPhysicsFieldScope
    var offset: SCNVector3
    var direction: SCNVector3
    var categoryBitMask: Int
    class func drag() -> SCNPhysicsField
    class func vortex() -> SCNPhysicsField
    class func radialGravity() -> SCNPhysicsField
    class func linearGravity() -> SCNPhysicsField
    class func noiseField(smoothness smoothness: CGFloat, animationSpeed speed: CGFloat) -> SCNPhysicsField
    class func turbulenceField(smoothness smoothness: CGFloat, animationSpeed speed: CGFloat) -> SCNPhysicsField
    class func spring() -> SCNPhysicsField
    class func electric() -> SCNPhysicsField
    class func magnetic() -> SCNPhysicsField
    class func customField(evaluationBlock block: SceneKit.SCNFieldForceEvaluator) -> SCNPhysicsField
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SCNPhysicsField : CVarArg {
}
extension SCNPhysicsField : Equatable, Hashable {
    var hashValue: Int { get }
}
To
class SCNPhysicsField : NSObject, NSCopying, NSSecureCoding {
    var strength: CGFloat
    var falloffExponent: CGFloat
    var minimumDistance: CGFloat
    var isActive: Bool
    var isExclusive: Bool
    var halfExtent: SCNVector3
    var usesEllipsoidalExtent: Bool
    var scope: SCNPhysicsFieldScope
    var offset: SCNVector3
    var direction: SCNVector3
    var categoryBitMask: Int
    class func drag() -> SCNPhysicsField
    class func vortex() -> SCNPhysicsField
    class func radialGravity() -> SCNPhysicsField
    class func linearGravity() -> SCNPhysicsField
    class func noiseField(smoothness smoothness: CGFloat, animationSpeed speed: CGFloat) -> SCNPhysicsField
    class func turbulenceField(smoothness smoothness: CGFloat, animationSpeed speed: CGFloat) -> SCNPhysicsField
    class func spring() -> SCNPhysicsField
    class func electric() -> SCNPhysicsField
    class func magnetic() -> SCNPhysicsField
    class func customField(evaluationBlock block: @escaping SceneKit.SCNFieldForceEvaluator) -> SCNPhysicsField
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SCNPhysicsField : CVarArg {
}
extension SCNPhysicsField : Equatable, Hashable {
    var hashValue: Int { get }
}

Declaration
From
class func customField(evaluationBlock block: SceneKit.SCNFieldForceEvaluator) -> SCNPhysicsField
To
class func customField(evaluationBlock block: @escaping SceneKit.SCNFieldForceEvaluator) -> SCNPhysicsField

Declaration
From
protocol SCNSceneRenderer : NSObjectProtocol {
    var scene: SCNScene? { get set }
    func present(_ scene: SCNScene, with transition: SKTransition, incomingPointOfView pointOfView: SCNNode?, completionHandler completionHandler: (@escaping () -> Swift.Void)? = nil)
    var sceneTime: TimeInterval { get set }
    unowned(unsafe) var delegate: SCNSceneRendererDelegate? { get set }
    func hitTest(_ point: CGPoint, options options: [SCNHitTestOption : Any]? = nil) -> [SCNHitTestResult]
    func isNode(_ node: SCNNode, insideFrustumOf pointOfView: SCNNode) -> Bool
    func nodesInsideFrustum(of pointOfView: SCNNode) -> [SCNNode]
    func projectPoint(_ point: SCNVector3) -> SCNVector3
    func unprojectPoint(_ point: SCNVector3) -> SCNVector3
    var isPlaying: Bool { get set }
    var loops: Bool { get set }
    var pointOfView: SCNNode? { get set }
    var autoenablesDefaultLighting: Bool { get set }
    var isJitteringEnabled: Bool { get set }
    func prepare(_ object: Any, shouldAbortBlock block: (() -> Bool)? = nil) -> Bool
    func prepare(_ objects: [Any], completionHandler completionHandler: (@escaping (Bool) -> Swift.Void)? = nil)
    var showsStatistics: Bool { get set }
    var debugOptions: SCNDebugOptions { get set }
    var overlaySKScene: SKScene? { get set }
    var renderingAPI: SCNRenderingAPI { get }
    var context: UnsafeMutableRawPointer? { get }
    var audioEngine: AVAudioEngine { get }
    var audioEnvironmentNode: AVAudioEnvironmentNode { get }
    var audioListener: SCNNode? { get set }
}
To
protocol SCNSceneRenderer : NSObjectProtocol {
    var scene: SCNScene? { get set }
    func present(_ scene: SCNScene, with transition: SKTransition, incomingPointOfView pointOfView: SCNNode?, completionHandler completionHandler: (() -> Swift.Void)? = nil)
    var sceneTime: TimeInterval { get set }
    unowned(unsafe) var delegate: SCNSceneRendererDelegate? { get set }
    func hitTest(_ point: CGPoint, options options: [SCNHitTestOption : Any]? = nil) -> [SCNHitTestResult]
    func isNode(_ node: SCNNode, insideFrustumOf pointOfView: SCNNode) -> Bool
    func nodesInsideFrustum(of pointOfView: SCNNode) -> [SCNNode]
    func projectPoint(_ point: SCNVector3) -> SCNVector3
    func unprojectPoint(_ point: SCNVector3) -> SCNVector3
    var isPlaying: Bool { get set }
    var loops: Bool { get set }
    var pointOfView: SCNNode? { get set }
    var autoenablesDefaultLighting: Bool { get set }
    var isJitteringEnabled: Bool { get set }
    func prepare(_ object: Any, shouldAbortBlock block: (() -> Bool)? = nil) -> Bool
    func prepare(_ objects: [Any], completionHandler completionHandler: ((Bool) -> Swift.Void)? = nil)
    var showsStatistics: Bool { get set }
    var debugOptions: SCNDebugOptions { get set }
    var overlaySKScene: SKScene? { get set }
    var renderingAPI: SCNRenderingAPI { get }
    var context: UnsafeMutableRawPointer? { get }
    var audioEngine: AVAudioEngine { get }
    var audioEnvironmentNode: AVAudioEnvironmentNode { get }
    var audioListener: SCNNode? { get set }
}

Declaration
From
func prepare(_ objects: [Any], completionHandler completionHandler: (@escaping (Bool) -> Swift.Void)? = nil)
To
func prepare(_ objects: [Any], completionHandler completionHandler: ((Bool) -> Swift.Void)? = nil)

Declaration
From
func present(_ scene: SCNScene, with transition: SKTransition, incomingPointOfView pointOfView: SCNNode?, completionHandler completionHandler: (@escaping () -> Swift.Void)? = nil)
To
func present(_ scene: SCNScene, with transition: SKTransition, incomingPointOfView pointOfView: SCNNode?, completionHandler completionHandler: (() -> Swift.Void)? = nil)

Declaration
From
struct SCNVector3 {
    var x: Float
    var y: Float
    var z: Float
    init()
    init(x x: Float, y y: Float, z z: Float)
    init(_ x: Float, _ y: Float, _ z: Float)
    init(_ x: CGFloat, _ y: CGFloat, _ z: CGFloat)
    init(_ x: Double, _ y: Double, _ z: Double)
    init(_ x: Int, _ y: Int, _ z: Int)
    init(_ v: float3)
    init(_ v: double3)
}
extension SCNVector3 {
    init(_ x: Float, _ y: Float, _ z: Float)
    init(_ x: CGFloat, _ y: CGFloat, _ z: CGFloat)
    init(_ x: Double, _ y: Double, _ z: Double)
    init(_ x: Int, _ y: Int, _ z: Int)
    init(_ v: float3)
    init(_ v: double3)
}
To
struct SCNVector3 {
    var x: Float
    var y: Float
    var z: Float
    init()
    init(x x: Float, y y: Float, z z: Float)
    init(_ x: Float, _ y: Float, _ z: Float)
    init(_ x: CGFloat, _ y: CGFloat, _ z: CGFloat)
    init(_ x: Double, _ y: Double, _ z: Double)
    init(_ x: Int, _ y: Int, _ z: Int)
    init(_ v: float3)
    init(_ v: double3)
}
extension SCNVector3 {
    init(_ x: Float, _ y: Float, _ z: Float)
    init(_ x: CGFloat, _ y: CGFloat, _ z: CGFloat)
    init(_ x: Double, _ y: Double, _ z: Double)
    init(_ x: Int, _ y: Int, _ z: Int)
    init(_ v: float3)
    init(_ v: double3)
}
extension SCNVector3 {
}

Declaration
From
struct SCNVector4 {
    var x: Float
    var y: Float
    var z: Float
    var w: Float
    init()
    init(x x: Float, y y: Float, z z: Float, w w: Float)
    init(_ x: Float, _ y: Float, _ z: Float, _ w: Float)
    init(_ x: CGFloat, _ y: CGFloat, _ z: CGFloat, _ w: CGFloat)
    init(_ x: Double, _ y: Double, _ z: Double, _ w: Double)
    init(_ x: Int, _ y: Int, _ z: Int, _ w: Int)
    init(_ v: float4)
    init(_ v: double4)
}
extension SCNVector4 {
    init(_ x: Float, _ y: Float, _ z: Float, _ w: Float)
    init(_ x: CGFloat, _ y: CGFloat, _ z: CGFloat, _ w: CGFloat)
    init(_ x: Double, _ y: Double, _ z: Double, _ w: Double)
    init(_ x: Int, _ y: Int, _ z: Int, _ w: Int)
    init(_ v: float4)
    init(_ v: double4)
}
To
struct SCNVector4 {
    var x: Float
    var y: Float
    var z: Float
    var w: Float
    init()
    init(x x: Float, y y: Float, z z: Float, w w: Float)
    init(_ x: Float, _ y: Float, _ z: Float, _ w: Float)
    init(_ x: CGFloat, _ y: CGFloat, _ z: CGFloat, _ w: CGFloat)
    init(_ x: Double, _ y: Double, _ z: Double, _ w: Double)
    init(_ x: Int, _ y: Int, _ z: Int, _ w: Int)
    init(_ v: float4)
    init(_ v: double4)
}
extension SCNVector4 {
    init(_ x: Float, _ y: Float, _ z: Float, _ w: Float)
    init(_ x: CGFloat, _ y: CGFloat, _ z: CGFloat, _ w: CGFloat)
    init(_ x: Double, _ y: Double, _ z: Double, _ w: Double)
    init(_ x: Int, _ y: Int, _ z: Int, _ w: Int)
    init(_ v: float4)
    init(_ v: double4)
}
extension SCNVector4 {
}