Files
swift-mirror/stdlib/public/SDK/SceneKit/SceneKit.swift
Ted Kremenek 62feb5c949 Change @availability to @available.
This came out of today's language review meeting.
The intent is to match #available with the attribute
that describes availability.

This is a divergence from Objective-C.

Swift SVN r28484
2015-05-12 20:06:13 +00:00

56 lines
1.8 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
@exported import SceneKit // Clang module
@available(iOS, introduced=8.0)
@available(OSX, introduced=10.8)
extension SCNGeometryElement {
public convenience init<IndexType : IntegerType>(
indices: [IndexType], primitiveType: SCNGeometryPrimitiveType
) {
let indexCount = indices.count
let primitiveCount: Int
switch primitiveType {
case .Triangles:
primitiveCount = indexCount / 3
case .TriangleStrip:
primitiveCount = indexCount - 2
case .Line:
primitiveCount = indexCount / 2
case .Point:
primitiveCount = indexCount
}
self.init(
data: NSData(bytes: indices, length: indexCount * sizeof(IndexType)),
primitiveType: primitiveType,
primitiveCount: primitiveCount,
bytesPerIndex: sizeof(IndexType))
}
}
@asmname("SCN_Swift_SCNSceneSource_entryWithIdentifier")
internal func SCN_Swift_SCNSceneSource_entryWithIdentifier(
self_: AnyObject,
_ uid: NSString,
_ entryClass: AnyClass) -> AnyObject?
@available(iOS, introduced=8.0)
@available(OSX, introduced=10.8)
extension SCNSceneSource {
public func entryWithIdentifier<T>(uid: String, withClass entryClass: T.Type) -> T? {
return SCN_Swift_SCNSceneSource_entryWithIdentifier(
self, uid, entryClass as! AnyClass) as! T?
}
}