Skip to content

ModelIO macOS xcode9 beta4

Sebastien Pouliot edited this page Jul 24, 2017 · 1 revision

#ModelIO.framework

diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimatedValue.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimatedValue.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimatedValue.h	2017-06-29 02:44:33.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimatedValue.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,171 +0,0 @@
-/*!
- @header MDLAnimatedValue.h
- @framework ModelIO
- @abstract Time sampled transformation of elements in 3d assets
- @copyright Copyright © 2015 Apple, Inc. All rights reserved.
- */
-
-
-#import <Foundation/Foundation.h>
-#import <simd/simd.h>
-#import <ModelIO/MDLTypes.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-typedef NS_ENUM(NSUInteger, MDLAnimatedValueInterpolation) {
-    MDLAnimatedValueInterpolationConstant,
-    MDLAnimatedValueInterpolationLinear
-};
-
-typedef NS_ENUM(NSUInteger, MDLDataPrecision) {
-    MDLDataPrecisionUndefined,
-    MDLDataPrecisionFloat,
-    MDLDataPrecisionDouble
-};
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLAnimatedValue : NSObject<MDLNamed, NSCopying>
--(BOOL)isAnimated;
-@property (nonatomic, readonly) MDLDataPrecision precision;
-@property (nonatomic, readonly) NSUInteger timeSampleCount;
-@property (nonatomic, readonly) NSTimeInterval minimumTime;
-@property (nonatomic, readonly) NSTimeInterval maximumTime;
-@property (nonatomic) MDLAnimatedValueInterpolation interpolation;
-@property (nonatomic, copy) NSString *name;
-
-@property (nonatomic, readonly) NSArray<NSNumber *> *keyTimes;
-
--(void)clear;
--(NSUInteger)copyTimesInto:(NSTimeInterval *)timesArray maxCount:(NSUInteger)maxCount;
-@end
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLAnimatedScalarArray : MDLAnimatedValue
-
-@property (nonatomic, readonly) NSUInteger elementsCount;
-
--(id)initWithName:(NSString*)name
-    elementsCount:(NSUInteger)arrayElementCount;
-
--(void)setFloatArray:(const float *)array count:(NSUInteger)count atTime:(NSTimeInterval)time;
--(void)setDoubleArray:(const double *)array count:(NSUInteger)count atTime:(NSTimeInterval)time;
-
--(NSUInteger)copyFloatArrayInto:(float *)array maxCount:(NSUInteger)maxCount atTime:(NSTimeInterval)time;
--(NSUInteger)copyDoubleArrayInto:(double *)array maxCount:(NSUInteger)maxCount atTime:(NSTimeInterval)time;
-
--(void)resetWithFloatArray:(const float *)valuesArray count:(NSUInteger)valuesCount atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)timesCount;
--(void)resetWithDoubleArray:(const double *)valuesArray count:(NSUInteger)valuesCount atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)timesCount;
-
--(NSUInteger)copyFloatArrayInto:(float *)valuesArray maxCount:(NSUInteger)maxCount;
--(NSUInteger)copyDoubleArrayInto:(double *)valuesArray maxCount:(NSUInteger)maxCount;
-
-@end
-
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLAnimatedScalar : MDLAnimatedValue
-
--(id)initWithName:(NSString*)name;
-
--(void)setFloat:(float)value atTime:(NSTimeInterval)time;
--(void)setDouble:(double)value atTime:(NSTimeInterval)time;
-
--(float)floatAtTime:(NSTimeInterval)time;
--(double)doubleAtTime:(NSTimeInterval)time;
-
--(void)resetWithFloatArray:(const float *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
--(void)resetWithDoubleArray:(const double *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
-
--(NSUInteger)copyFloatArrayInto:(float *)valuesArray maxCount:(NSUInteger)maxCount;
--(NSUInteger)copyDoubleArrayInto:(double *)valuesArray maxCount:(NSUInteger)maxCount;
-
-@end
-
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLAnimatedVector2 : MDLAnimatedValue
-
--(id)initWithName:(NSString*)name;
-
--(void)setFloat2:(vector_float2)value atTime:(NSTimeInterval)time;
--(void)setDouble2:(vector_double2)value atTime:(NSTimeInterval)time;
-
--(vector_float2)float2AtTime:(NSTimeInterval)time;
--(vector_double2)double2AtTime:(NSTimeInterval)time;
-
--(void)resetWithFloat2Array:(const vector_float2 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
--(void)resetWithDouble2Array:(const vector_double2 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
-
--(NSUInteger)copyFloat2ArrayInto:(vector_float2 *)valuesArray maxCount:(NSUInteger)maxCount;
--(NSUInteger)copyDouble2ArrayInto:(vector_double2 *)valuesArray maxCount:(NSUInteger)maxCount;
-
-@end
-
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLAnimatedVector3 : MDLAnimatedValue
-
--(id)initWithName:(NSString*)name;
-
--(void)setFloat3:(vector_float3)value atTime:(NSTimeInterval)time;
--(void)setDouble3:(vector_double3)value atTime:(NSTimeInterval)time;
-
--(vector_float3)float3AtTime:(NSTimeInterval)time;
--(vector_double3)double3AtTime:(NSTimeInterval)time;
-
--(void)resetWithFloat3Array:(const vector_float3 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
--(void)resetWithDouble3Array:(const vector_double3 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
-
--(NSUInteger)copyFloat3ArrayInto:(vector_float3 *)valuesArray maxCount:(NSUInteger)maxCount;
--(NSUInteger)copyDouble3ArrayInto:(vector_double3 *)valuesArray maxCount:(NSUInteger)maxCount;
-
-@end
-
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLAnimatedVector4 : MDLAnimatedValue
-
--(id)initWithName:(NSString*)name;
-
--(void)setFloat4:(vector_float4)value atTime:(NSTimeInterval)time;
--(void)setDouble4:(vector_double4)value atTime:(NSTimeInterval)time;
-
--(vector_float4)float4AtTime:(NSTimeInterval)time;
--(vector_double4)double4AtTime:(NSTimeInterval)time;
-
--(void)resetWithFloat4Array:(const vector_float4 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
--(void)resetWithDouble4Array:(const vector_double4 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
-
--(NSUInteger)copyFloat4ArrayInto:(vector_float4 *)valuesArray maxCount:(NSUInteger)maxCount;
--(NSUInteger)copyDouble4ArrayInto:(vector_double4 *)valuesArray maxCount:(NSUInteger)maxCount;
-
-@end
-
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLAnimatedMatrix4x4 : MDLAnimatedValue
-
--(id)initWithName:(NSString*)name;
-
--(void)setFloat4x4:(matrix_float4x4)value atTime:(NSTimeInterval)time;
--(void)setDouble4x4:(matrix_double4x4)value atTime:(NSTimeInterval)time;
-
--(matrix_float4x4)float4x4AtTime:(NSTimeInterval)time;
--(matrix_double4x4)double4x4AtTime:(NSTimeInterval)time;
-
--(void)resetWithFloat4x4Array:(const matrix_float4x4 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
--(void)resetWithDouble4x4Array:(const matrix_double4x4 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count;
-
--(NSUInteger)copyFloat4x4ArrayInto:(matrix_float4x4 *)valuesArray maxCount:(NSUInteger)maxCount;
--(NSUInteger)copyDouble4x4ArrayInto:(matrix_double4x4 *)valuesArray maxCount:(NSUInteger)maxCount;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimatedValueTypes.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimatedValueTypes.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimatedValueTypes.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimatedValueTypes.h	2017-07-14 05:33:24.000000000 -0400
@@ -0,0 +1,198 @@
+/*!
+ @header MDLAnimatedValueTypes.h
+ @framework ModelIO
+ @abstract Time sampled animated value types
+ @copyright Copyright © 2015 Apple, Inc. All rights reserved.
+ */
+
+
+#import <Foundation/Foundation.h>
+#import <ModelIO/MDLTypes.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSUInteger, MDLAnimatedValueInterpolation) {
+    MDLAnimatedValueInterpolationConstant,
+    MDLAnimatedValueInterpolationLinear
+};
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedValue : NSObject<NSCopying>
+-(BOOL)isAnimated;
+@property (nonatomic, readonly) MDLDataPrecision precision;
+@property (nonatomic, readonly) NSUInteger timeSampleCount;
+@property (nonatomic, readonly) NSTimeInterval minimumTime;
+@property (nonatomic, readonly) NSTimeInterval maximumTime;
+@property (nonatomic) MDLAnimatedValueInterpolation interpolation;
+
+@property (nonatomic, readonly) NSArray<NSNumber *> *keyTimes;
+
+-(void)clear;
+-(NSUInteger)getTimes:(NSTimeInterval *)timesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+@end
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedScalarArray : MDLAnimatedValue
+
+@property (nonatomic, readonly) NSUInteger elementCount;
+
+-(id)initWithElementCount:(NSUInteger)arrayElementCount;
+
+-(void)setFloatArray:(const float *)array count:(NSUInteger)count atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+-(void)setDoubleArray:(const double *)array count:(NSUInteger)count atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloatArray:(float *)array maxCount:(NSUInteger)maxCount atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDoubleArray:(double *)array maxCount:(NSUInteger)maxCount atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+
+-(void)resetWithFloatArray:(const float *)valuesArray count:(NSUInteger)valuesCount atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)timesCount NS_REFINED_FOR_SWIFT;
+-(void)resetWithDoubleArray:(const double *)valuesArray count:(NSUInteger)valuesCount atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)timesCount NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloatArray:(float *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDoubleArray:(double *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+
+@end
+
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedVector3Array : MDLAnimatedValue
+
+@property (nonatomic, readonly) NSUInteger elementCount;
+
+-(id)initWithElementCount:(NSUInteger)arrayElementCount;
+
+-(void)setFloat3Array:(const vector_float3 *)array count:(NSUInteger)count atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+-(void)setDouble3Array:(const vector_double3 *)array count:(NSUInteger)count atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloat3Array:(vector_float3 *)array maxCount:(NSUInteger)maxCount atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDouble3Array:(vector_double3 *)array maxCount:(NSUInteger)maxCount atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+
+-(void)resetWithFloat3Array:(const vector_float3 *)valuesArray count:(NSUInteger)valuesCount atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)timesCount NS_REFINED_FOR_SWIFT;
+-(void)resetWithDouble3Array:(const vector_double3 *)valuesArray count:(NSUInteger)valuesCount atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)timesCount NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloat3Array:(vector_float3 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDouble3Array:(vector_double3 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+
+@end
+
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedQuaternionArray : MDLAnimatedValue
+
+@property (nonatomic, readonly) NSUInteger elementCount;
+
+-(id)initWithElementCount:(NSUInteger)arrayElementCount;
+
+-(void)setFloatQuaternionArray:(const simd_quatf *)array count:(NSUInteger)count atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+-(void)setDoubleQuaternionArray:(const simd_quatd *)array count:(NSUInteger)count atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloatQuaternionArray:(simd_quatf *)array maxCount:(NSUInteger)maxCount atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDoubleQuaternionArray:(simd_quatd *)array maxCount:(NSUInteger)maxCount atTime:(NSTimeInterval)time NS_REFINED_FOR_SWIFT;
+
+-(void)resetWithFloatQuaternionArray:(const simd_quatf *)valuesArray count:(NSUInteger)valuesCount atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)timesCount NS_REFINED_FOR_SWIFT;
+-(void)resetWithDoubleQuaternionArray:(const simd_quatd *)valuesArray count:(NSUInteger)valuesCount atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)timesCount NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloatQuaternionArray:(simd_quatf *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDoubleQuaternionArray:(simd_quatd *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+
+@end
+
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedScalar : MDLAnimatedValue
+
+-(void)setFloat:(float)value atTime:(NSTimeInterval)time;
+-(void)setDouble:(double)value atTime:(NSTimeInterval)time;
+
+-(float)floatAtTime:(NSTimeInterval)time;
+-(double)doubleAtTime:(NSTimeInterval)time;
+
+-(void)resetWithFloatArray:(const float *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+-(void)resetWithDoubleArray:(const double *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloatArray:(float *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDoubleArray:(double *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+
+@end
+
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedVector2 : MDLAnimatedValue
+
+-(void)setFloat2:(vector_float2)value atTime:(NSTimeInterval)time;
+-(void)setDouble2:(vector_double2)value atTime:(NSTimeInterval)time;
+
+-(vector_float2)float2AtTime:(NSTimeInterval)time;
+-(vector_double2)double2AtTime:(NSTimeInterval)time;
+
+-(void)resetWithFloat2Array:(const vector_float2 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+-(void)resetWithDouble2Array:(const vector_double2 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloat2Array:(vector_float2 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDouble2Array:(vector_double2 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+
+@end
+
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedVector3 : MDLAnimatedValue
+
+-(void)setFloat3:(vector_float3)value atTime:(NSTimeInterval)time;
+-(void)setDouble3:(vector_double3)value atTime:(NSTimeInterval)time;
+
+-(vector_float3)float3AtTime:(NSTimeInterval)time;
+-(vector_double3)double3AtTime:(NSTimeInterval)time;
+
+-(void)resetWithFloat3Array:(const vector_float3 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+-(void)resetWithDouble3Array:(const vector_double3 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloat3Array:(vector_float3 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDouble3Array:(vector_double3 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+
+@end
+
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedVector4 : MDLAnimatedValue
+
+-(void)setFloat4:(vector_float4)value atTime:(NSTimeInterval)time;
+-(void)setDouble4:(vector_double4)value atTime:(NSTimeInterval)time;
+
+-(vector_float4)float4AtTime:(NSTimeInterval)time;
+-(vector_double4)double4AtTime:(NSTimeInterval)time;
+
+-(void)resetWithFloat4Array:(const vector_float4 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+-(void)resetWithDouble4Array:(const vector_double4 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloat4Array:(vector_float4 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDouble4Array:(vector_double4 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+
+@end
+
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimatedMatrix4x4 : MDLAnimatedValue
+
+-(void)setFloat4x4:(matrix_float4x4)value atTime:(NSTimeInterval)time;
+-(void)setDouble4x4:(matrix_double4x4)value atTime:(NSTimeInterval)time;
+
+-(matrix_float4x4)float4x4AtTime:(NSTimeInterval)time;
+-(matrix_double4x4)double4x4AtTime:(NSTimeInterval)time;
+
+-(void)resetWithFloat4x4Array:(const matrix_float4x4 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+-(void)resetWithDouble4x4Array:(const matrix_double4x4 *)valuesArray atTimes:(const NSTimeInterval *)timesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloat4x4Array:(matrix_float4x4 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDouble4x4Array:(matrix_double4x4 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimation.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimation.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimation.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAnimation.h	2017-07-13 16:39:12.000000000 -0400
@@ -0,0 +1,59 @@
+/*!
+ @header MDLAnimation.h
+ @framework ModelIO
+ @abstract Support for time sampled animation of skeletal meshes
+ @copyright Copyright © 2016 Apple, Inc. All rights reserved.
+ */
+
+#import <Foundation/Foundation.h>
+#import <ModelIO/MDLValueTypes.h>
+#import <ModelIO/MDLAnimatedValueTypes.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLSkeleton : MDLObject<NSCopying>
+
+@property (nonatomic, readonly) NSArray<NSString *> *jointPaths;
+@property (nonatomic, readonly) MDLMatrix4x4Array *jointBindTransforms;
+
+-(instancetype) initWithName:(NSString *)name
+                  jointPaths:(NSArray<NSString *> *)jointPaths;
+@end
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@protocol MDLJointAnimation
+@end
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLPackedJointAnimation : MDLObject<NSCopying, MDLJointAnimation>
+@property (nonatomic, readonly) NSArray<NSString *> *jointPaths;
+
+@property (nonatomic, readonly) MDLAnimatedVector3Array *translations;
+@property (nonatomic, readonly) MDLAnimatedQuaternionArray *rotations;
+@property (nonatomic, readonly) MDLAnimatedVector3Array *scales;
+
+-(instancetype) initWithName:(NSString *)name
+                  jointPaths:(NSArray<NSString *> *)jointPaths;
+@end
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLAnimationBindComponent : NSObject<MDLNamed, NSCopying, MDLComponent>
+
+@property (nonatomic, nullable, retain) MDLSkeleton* skeleton;
+@property (nonatomic, nullable, retain) id<MDLJointAnimation> jointAnimation;
+
+@property (nonatomic) matrix_float4x4 geometryBindTransform;
+
+-(instancetype) initWithName:(NSString *)name
+                    skeleton:(MDLSkeleton *)skeleton
+              jointAnimation:(id<MDLJointAnimation>)jointAnimation
+       geometryBindTransform:(matrix_float4x4)geometryBindTransform;
+@end
+
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAsset.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAsset.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAsset.h	2017-06-29 01:27:28.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLAsset.h	2017-07-14 05:33:24.000000000 -0400
@@ -10,6 +10,7 @@
 #import <ModelIO/MDLObject.h>
 #import <ModelIO/MDLVertexDescriptor.h>
 #import <ModelIO/MDLMeshBuffer.h>
+#import <ModelIO/MDLAnimation.h>
 #import <Foundation/NSURL.h>
 #import <simd/simd.h>
 
@@ -164,42 +165,6 @@
 + (BOOL)canExportFileExtension:(NSString *)extension;
 
 /*!
- @property components
- @abstract Allows applications to introspect the components on the asset.
- */
-@property (nonatomic, readonly, copy) NSArray<id<MDLComponent>> *components;
-
-/*!
- @method setComponent:forProtocol:
- @abstract Extensible component support that allows user of ModelIO to customize
- MDLAssets to fit their format and workflow.
- */
-- (void)setComponent:(id<MDLComponent>)component forProtocol:(Protocol *)protocol;
-
-/*!
- @method componentConformingToProtocol:
- @abstract Extensible component support that allows user of ModelIO to customize
- MDLAssets to fit their format and workflow.
- */
-- (nullable id<MDLComponent>)componentConformingToProtocol:(Protocol *)protocol;
-
-/*!
- @method objectForKeyedSubscript:
- @abstract Allows shorthand [key] syntax for componentConformingToProtocol:.
- @param key The protocol that the component conforms to.
- @see componentConformingToProtocol:
- */
-- (nullable id<MDLComponent>)objectForKeyedSubscript:(Protocol *)key;
-
-/*!
- @method setObject:forKeyedSubscript:
- @abstract Allows shorthand [key] syntax for setComponent:forProtocol:.
- @param key The protocol that the component conforms to.
- @see setComponent:forProtocol:
- */
-- (void)setObject:(nullable id<MDLComponent>)obj forKeyedSubscript:(Protocol *)key;
-
-/*!
  @method childObjectsOfClass:
  @abstract Inspects an asset's hierarchy for objects of the specified class type
  @return returns an NSArray of all objects in the asset matching the requested class
@@ -328,11 +293,16 @@
 /*!
  @property masters
  @abstract Master objects that can be instanced into the asset's object hierarchy
- 
- @see MDLObjectContainerComponent
+ @discussion @see MDLObjectContainerComponent
  */
 @property (nonatomic, retain) id<MDLObjectContainerComponent> masters;
 
+/*!
+ @property animations
+ @abstract Animations that can be bound to MDLObjects (@see MDLAnimationBindComponent)
+ @discussion @see MDLObjectContainerComponent
+ */
+@property (nonatomic, retain) id<MDLObjectContainerComponent> animations;
 
 @end
 
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLMesh.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLMesh.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLMesh.h	2017-06-29 02:44:33.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLMesh.h	2017-07-14 04:58:47.000000000 -0400
@@ -8,12 +8,9 @@
 #import <ModelIO/MDLTypes.h>
 #import <ModelIO/MDLLight.h>
 #import <ModelIO/MDLTransform.h>
-#import <ModelIO/MDLPrimitive.h>
 #import <ModelIO/MDLSubmesh.h>
 #import <ModelIO/MDLMeshBuffer.h>
 #import <ModelIO/MDLVertexDescriptor.h>
-#import <ModelIO/MDLSkinDeformer.h>
-#import <ModelIO/MDLMorphDeformer.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -144,8 +141,7 @@
  @discussion This value is valid only if the mesh was initialized
              with an explicit vertex count
  */
-@property (nonatomic, readwrite) NSUInteger vertexCount
-                                    NS_DEPRECATED(10.11,10.13,9.0,11.0);
+@property (nonatomic, readwrite) NSUInteger vertexCount;
 
 /*!
  @property vertexBuffers
@@ -224,7 +220,7 @@
 /*!
  @method addNormalsWithAttributeNamed:creaseThreshold:
  @abstract Calculate and add vertex normal data
- the first parameter attributeName is the attribute name of vertex normal attribute.  If nil, vertex normals
+ @param attributeName Name is the attribute name of vertex normal attribute.  If nil, vertex normals
         will be added with the MDLVertexAttributeNormal name string
  @param creaseThreshold Threshold of the dot product between the 2 triangles after which
                         their face normal will be smoothed out. Therefore, a threshold of 0 will
@@ -242,9 +238,9 @@
 /*!
  @method addTangentBasisForTextureCoordinateAttributeNamed:tangentAttributeNamed:bitangentAttributeNamed
  @abstract Create a shader basis where the tangent and bitangent span the uv -> object space transform
- the first parameter textureCoordinateAttributeNamed texture coordinates to use in calculations
- the second parameter tangentAttributeNamed is the name of vertex tangent attribute.
- the third parameter bitangentAttributeNamed is the name of vertex bitangent attribute.
+ @param textureCoordinateAttributeName Name of texture coordinates to use in calculations
+ @param tangentAttributeName Name of vertex tangent attribute.
+ @param bitangentAttributeName Name of vertex bitangent attribute.
  @discussion Uses the attribute named MDLVertexAttributePosition and
              textureCoordinateAttributeName to calculate tangent and bitangent
              attributes. The mesh's vertexDescriptor will be updated to reflect
@@ -483,7 +479,7 @@
 */
 - (instancetype)initCapsuleWithExtent:(vector_float3)extent
                      cylinderSegments:(vector_uint2)segments
-                   hemisphereSegments:(NSUInteger)hemisphereSegments
+                   hemisphereSegments:(int)hemisphereSegments
                         inwardNormals:(BOOL)inwardNormals
                          geometryType:(MDLGeometryType)geometryType
                             allocator:(nullable id<MDLMeshBufferAllocator>)allocator;
@@ -549,24 +545,6 @@
                                 allocator:(nullable id<MDLMeshBufferAllocator>)allocator;
 
 /*!
- @method initMeshByPrimitive:segments:inwardNormals:geometryType:allocator
- @abstract Factory method for generating a mesh from primitive
- @return MDLMesh primitive mesh with desired attributes
- @param segments Number of segements in the X, Y and Z dimensions
- @param geometryType Can be MDLGeometryTypeLines, MDLGeometryTypeQuads, or MDLGeometryTypeTriangles
- @param inwardNormals Generated normals will face towards the center of the mesh
- @param allocator A mesh buffer allocator used to allocate memory to back buffers
- for the returned mesh.  If nil, a default allocator will be used
- @discussion Creates an mesh with center at (0, 0, 0). The primitive's radius, height,
-             length will be used as extent for X Y Z dimension accordingly.
- */
-- (instancetype)initMeshWithPrimitive:(MDLPrimitive*)primitive
-                             segments:(vector_uint3)segments
-                        inwardNormals:(BOOL)inwardNormals
-                         geometryType:(MDLGeometryType)geometryType
-                            allocator:(nullable id<MDLMeshBufferAllocator>)allocator;
-
-/*!
  @method initMeshBySubdividingMesh:submeshIndex:subdivisionLevels:allocator
  @abstract Factory method that generates a subdivided mesh from a source mesh
  @param mesh Mesh from which to generate a subdivided mesh
@@ -631,11 +609,6 @@
 + (instancetype)newIcosahedronWithRadius:(float)radius
                            inwardNormals:(BOOL)inwardNormals
                                allocator:(nullable id<MDLMeshBufferAllocator>)allocator;
-+ (nullable instancetype)newMeshWithPrimitive:(MDLPrimitive*)primitive
-                                     segments:(vector_uint3)segments
-                                inwardNormals:(BOOL)inwardNormals
-                                 geometryType:(MDLGeometryType)geometryType
-                                  allocator:(nullable id<MDLMeshBufferAllocator>)allocator;
 + (nullable instancetype)newSubdividedMesh:(MDLMesh*)mesh
                               submeshIndex:(NSUInteger)submeshIndex
                          subdivisionLevels:(NSUInteger)subdivisionLevels;
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLMorphDeformer.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLMorphDeformer.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLMorphDeformer.h	2017-06-29 21:17:43.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLMorphDeformer.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,72 +0,0 @@
-/*!
- @header MDLSkinDeformer.h
- @framework ModelIO
- @abstract Structures for describing mesh blend shapes
- @copyright Copyright © 2016 Apple, Inc. All rights reserved.
- */
-
-#pragma once
-
-#import <ModelIO/MDLTransform.h>
-#import <ModelIO/MDLAnimatedValue.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@class MDLMesh;
-
-/*!
- @protocol MDLMorphDeformerComponent
- @abstract A blend shape deformer stores an array of shapeSets that contain the target shape(s),
- and an array of blend weights that control the final shape
- @discussion A blend shape deformer applies the difference between target shape and base geometry,
- scaled by the shapeSetWeight, on top of the base geometry.
- */
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@protocol MDLMorphDeformerComponent <MDLComponent>
-@required
-
-// these are target shapes to blend in-between
-@property (nonatomic, readonly) NSArray<MDLMesh *> *targetShapes;
-
-// the weights at which the (in-between) target shapes are placed (0..1).
-// Can be NULL if every shape set contains only one target shape.
-@property (nonatomic, readonly) NSArray<NSNumber *> *shapeSetTargetWeights;
-
-// the weights at which the target shapes are placed (0..1)
-// Can be NULL if every shape set contains only one target shape.
-@property (nonatomic, readonly) NSArray<NSNumber *> *shapeSetTargetCounts;
-
-// the effect of each target shape set can be controlled by a weight in the range 0..1. Animated property
-@property (nonatomic, readonly) MDLAnimatedScalarArray *weights;
-
-@end
-
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLMorphDeformer : NSObject<NSCopying, MDLMorphDeformerComponent>
-
-@property (nonatomic, readonly) NSArray<MDLMesh *> *targetShapes;
-
-@property (nonatomic, readonly) MDLAnimatedScalarArray *weights;
-
--(instancetype) initWithTargetShapes:(NSArray<MDLMesh *> *)targetShapes
-               shapeSetTargetWeights:(NSArray<NSNumber *> * _Nullable)shapeSetTargetWeights
-                shapeSetTargetCounts:(NSArray<NSNumber *> * _Nullable)targetCountsCount;
-
--(instancetype) initWithTargetShapes:(NSArray<MDLMesh *> *)targetShapes
-               shapeSetTargetWeights:(const float * _Nullable)shapeSetTargetWeights
-                               count:(NSUInteger)targetWeightsCount
-                shapeSetTargetCounts:(const unsigned int * _Nullable)targetCountsCount
-                               count:(NSUInteger)targetCountsCount;
-
--(NSUInteger)copyShapeSetTargetWeightsInto:(float *)array
-                                  maxCount:(NSUInteger)maxCount;
-
--(NSUInteger)copyShapeSetTargetCountsInto:(unsigned int *)array
-                                 maxCount:(NSUInteger)maxCount;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLObject.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLObject.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLObject.h	2017-06-29 21:17:43.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLObject.h	2017-07-13 16:39:12.000000000 -0400
@@ -8,12 +8,10 @@
 
 #import <ModelIO/MDLTypes.h>
 #import <ModelIO/MDLTransform.h>
-#import <ModelIO/MDLPrimitive.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
 @protocol MDLTransformComponent;
-@protocol MDLPrimitiveComponent;
 /*!
  @class MDLObject
  @abstract Base class for object in a ModelIO asset hierarchy
@@ -115,15 +113,6 @@
  */
 @property (nonatomic, nullable, retain) id<MDLTransformComponent> transform;
 
-/*!
- @property primitive
- @abstract Short hand property for the MDLPrimitiveComponent.
- @discussion The default value is nil
- 
- @see MDLPrimitiveComponent
- */
-@property (nonatomic, nullable, retain) id<MDLPrimitiveComponent> primitive;
-
 
 /*!
  @property children
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLPrimitive.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLPrimitive.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLPrimitive.h	2017-06-29 21:17:43.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLPrimitive.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,59 +0,0 @@
-/*!
- @header MDLPrimitive.h
- @framework ModelIO
- @abstract Primitives for Model IO
- @copyright Copyright © 2016 Apple, Inc. All rights reserved.
- */
-
-#import <ModelIO/MDLObject.h>
-#import <ModelIO/MDLTypes.h>
-#import <Foundation/Foundation.h>
-#include <simd/simd.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@class MDLObject;
-
-typedef NS_ENUM (NSUInteger, MDLPrimitiveType) {
-    MDLPrimitiveTypeCube,
-    MDLPrimitiveTypeSphere,
-    MDLPrimitiveTypeCone,
-    MDLPrimitiveTypeCapsule,
-    MDLPrimitiveTypeCylinder,
-    MDLPrimitiveTypeNone
-};
-
-/** MDLPrimitiveComponent
- @summary a container for different types of primitves supported by 3D softwares
- @discussion current primitives supports usd primitives
- */
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@protocol MDLPrimitiveComponent <MDLComponent>
-@required
-@property (nonatomic, readwrite) MDLPrimitiveType primitiveType;
-@end
-/**
- Concrete implementation of <MDLPrimitiveComponent>.
- @summary initialization for the MDLPrimitve 
- */
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLPrimitive : NSObject <NSCopying, MDLPrimitiveComponent>
-
-
-
-- (instancetype)initWithPrimitiveType:(MDLPrimitiveType) primitiveType NS_DESIGNATED_INITIALIZER;
-- (instancetype)initWithPrimitiveType:(MDLPrimitiveType) primitiveType
-                               radius:(float)radius
-                               height:(float)height
-                               length:(float)length;
-@property (nonatomic, readwrite) float radius;
-@property (nonatomic, readwrite) float height;
-@property (nonatomic, readwrite) float length;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLSkinDeformer.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLSkinDeformer.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLSkinDeformer.h	2017-06-29 21:17:43.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLSkinDeformer.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,55 +0,0 @@
-/*!
- @header MDLSkinDeformer.h
- @framework ModelIO
- @abstract Structure for describing mesh skinning
- @copyright Copyright © 2016 Apple, Inc. All rights reserved.
- */
-
-#pragma once
-
-#import <Foundation/Foundation.h>
-#import <ModelIO/MDLTransform.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@class MDLMesh;
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@protocol MDLSkinDeformerComponent <MDLComponent>
-@required
-
-// Path names of each joint the target mesh is bound to by the skin deformer
-@property (nonatomic, readonly) NSArray<NSString *> *jointPaths;
-
- // Type: NSData of matrix_float4x4
-@property (nonatomic, readonly) NSData *jointBindTransforms;
-
-// World space transform of the target mesh bound by the skin deformer
-@property (nonatomic, readonly) matrix_float4x4 meshBindTransform;
-
--(NSUInteger) copyJointBindTransformsInto:(matrix_float4x4 *)jointBindTransformsArray
-                                 maxCount:(NSUInteger)maxCount;
-@end
-
-
-API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
-MDL_EXPORT
-@interface MDLSkinDeformer : NSObject<NSCopying, MDLSkinDeformerComponent>
-
-@property (nonatomic, readonly) NSArray<NSString *> *jointPaths;
-@property (nonatomic, readonly) NSData *jointBindTransforms;
-@property (nonatomic, readonly) matrix_float4x4 meshBindTransform;
-
--(instancetype) initWithJointPaths:(NSArray<NSString *> *)jointPaths
-               jointBindTransforms:(const matrix_float4x4 *)jointBindTransforms
-                             count:(NSUInteger)jointBindTransformsCount
-                 meshBindTransform:(matrix_float4x4)meshBindTransform;
-
--(NSUInteger) copyJointBindTransformsInto:(matrix_float4x4 *)jointBindTransformsArray
-                                 maxCount:(NSUInteger)maxCount;
-@end
-
-
-NS_ASSUME_NONNULL_END
-
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLSubmesh.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLSubmesh.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLSubmesh.h	2017-06-29 01:11:56.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLSubmesh.h	2017-07-13 16:39:12.000000000 -0400
@@ -151,30 +151,6 @@
                     topology:(nullable MDLSubmeshTopology *)topology;
 
 /*!
- @method initWithIndexBuffer:indexCount:indexType:faceIndexing:faceTopologyBuffer:geometryType:material:
- @abstract Initialize submesh with all data necessary to make properties valid
- 
- @discussion The geometry type will typically be MDLGeometryTypeVariableTopology,
-             if other types are used the faceTopologyBuffer contents should reflect that.
-             faceIndexing may be nil. If it is not nil, it describes per-vertex index packing.
-             per-vertex index packing allows different indices per vertex attribute. As an
-             example, a triangle may have three different positions, but one normal shared on
-             all corners. If positions and normals are in vertex buffers 0 and 2 respectively,
-             then faceIndexing would contain @[0, 2]. If buffer zero contains three positions, and
-             buffer 2 contains one normal, the index buffer might contain [0,0, 1,0, 2,0].
-             At the moment, only variable topology and associated topology buffer are supported
-             in this way.
- */
-- (instancetype)initWithName:(NSString *)name
-                 indexBuffer:(id<MDLMeshBuffer>)indexBuffer
-                  indexCount:(NSUInteger)indexCount
-                   indexType:(MDLIndexBitDepth)indexType
-                faceIndexing:(nullable NSArray<NSNumber*>*)faceIndexing
-                geometryType:(MDLGeometryType)geometryType
-                    material:(nullable MDLMaterial *)material
-                    topology:(nullable MDLSubmeshTopology *)topology;
-
-/*!
  @method initWithMDLSubmesh:indexType:geometryType:
  @abstract Initialize submesh using another submesh as input.
  @discussion the resulting submesh will have a new index type if necessary.
@@ -231,15 +207,6 @@
 @property (nonatomic, retain, nullable) MDLSubmeshTopology *topology;
 
 /*!
- @property faceIndexing
- @abstract If face vertices have independently indexed attributes, this property is not nil
- 
- @discussion see discussion for initWithIndexBuffer:indexCount:indexType:faceIndexing:faceTopologyBuffer:geometryType:material:
-*/
-
-@property (nonatomic, retain, nullable) NSArray<NSNumber*> *faceIndexing;
-
-/*!
  @property name
  @abstract Identifying name for this object
  */
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLTransformStack.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLTransformStack.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLTransformStack.h	2017-06-29 21:17:43.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLTransformStack.h	2017-07-13 16:39:12.000000000 -0400
@@ -10,7 +10,7 @@
 #import <simd/simd.h>
 #import <ModelIO/MDLTypes.h>
 #import <ModelIO/MDLTransform.h>
-#import <ModelIO/MDLAnimatedValue.h>
+#import <ModelIO/MDLAnimatedValueTypes.h>
 
 NS_ASSUME_NONNULL_BEGIN
 typedef NS_ENUM(NSUInteger, MDLTransformOpRotationOrder) {
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLTypes.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLTypes.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLTypes.h	2017-06-29 21:17:43.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLTypes.h	2017-07-13 16:39:12.000000000 -0400
@@ -54,6 +54,12 @@
     MDLProbePlacementIrradianceDistribution
 };
 
+typedef NS_ENUM(NSUInteger, MDLDataPrecision) {
+    MDLDataPrecisionUndefined,
+    MDLDataPrecisionFloat,
+    MDLDataPrecisionDouble
+};
+
 NS_CLASS_AVAILABLE(10_11, 9_0)
 MDL_EXPORT
 @protocol MDLNamed
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLValueTypes.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLValueTypes.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLValueTypes.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLValueTypes.h	2017-07-13 16:39:12.000000000 -0400
@@ -0,0 +1,32 @@
+/*!
+ @header MDLValueTypes.h
+ @framework ModelIO
+ @abstract SIMD array value types
+ @copyright Copyright © 2015 Apple, Inc. All rights reserved.
+ */
+
+
+#import <Foundation/Foundation.h>
+#import <ModelIO/MDLTypes.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0))
+MDL_EXPORT
+@interface MDLMatrix4x4Array : NSObject<NSCopying>
+
+@property (nonatomic, readonly) NSUInteger elementCount;
+
+@property (nonatomic, readonly) MDLDataPrecision precision;
+
+-(void)clear;
+-(instancetype)initWithElementCount:(NSUInteger)arrayElementCount;
+
+-(void)setFloat4x4Array:(const matrix_float4x4 *)valuesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+-(void)setDouble4x4Array:(const matrix_double4x4 *)valuesArray count:(NSUInteger)count NS_REFINED_FOR_SWIFT;
+
+-(NSUInteger)getFloat4x4Array:(matrix_float4x4 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+-(NSUInteger)getDouble4x4Array:(matrix_double4x4 *)valuesArray maxCount:(NSUInteger)maxCount NS_REFINED_FOR_SWIFT;
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLVertexDescriptor.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLVertexDescriptor.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLVertexDescriptor.h	2017-06-29 01:27:28.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/MDLVertexDescriptor.h	2017-07-14 04:58:47.000000000 -0400
@@ -176,11 +176,11 @@
 /*!
  @property stride
  @abstract stride in bytes of each vertex element in the buffer. 
-           - If you store multiple attributes interleaved in the vertex
-             buffer, the stride will be the sum of sizes of each attribute (and any padding).
-           - If you store multiple attributes non-interleaved (back to back),
-             the stride will be the size of an attribute (and all attributes are
-             required to have the same size).
+ @discussion - If you store multiple attributes interleaved in the vertex
+               buffer, the stride will be the sum of sizes of each attribute (and any padding).
+             - If you store multiple attributes non-interleaved (back to back),
+               the stride will be the size of an attribute (and all attributes are
+               required to have the same size).
  */
 @property (nonatomic, readwrite) NSUInteger stride;
 @end
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/ModelIO.apinotes /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/ModelIO.apinotes
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/ModelIO.apinotes	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/ModelIO.apinotes	2017-07-13 16:39:12.000000000 -0400
@@ -0,0 +1,43 @@
+---
+Name: ModelIO
+Classes:
+- Name: MDLAnimatedScalar
+  Methods:
+  - Selector: 'floatAtTime:'
+    MethodKind: Instance
+    SwiftName: 'floatValue(atTime:)'
+  - Selector: 'doubleAtTime:'
+    MethodKind: Instance
+    SwiftName: 'doubleValue(atTime:)'
+- Name: MDLAnimatedVector2
+  Methods:
+  - Selector: 'float2AtTime:'
+    MethodKind: Instance
+    SwiftName: 'float2Value(atTime:)'
+  - Selector: 'double2AtTime:'
+    MethodKind: Instance
+    SwiftName: 'double2Value(atTime:)'
+- Name: MDLAnimatedVector3
+  Methods:
+  - Selector: 'float3AtTime:'
+    MethodKind: Instance
+    SwiftName: 'float3Value(atTime:)'
+  - Selector: 'double3AtTime:'
+    MethodKind: Instance
+    SwiftName: 'double3Value(atTime:)'
+- Name: MDLAnimatedVector4
+  Methods:
+  - Selector: 'float4AtTime:'
+    MethodKind: Instance
+    SwiftName: 'float4Value(atTime:)'
+  - Selector: 'double4AtTime:'
+    MethodKind: Instance
+    SwiftName: 'double4Value(atTime:)'
+- Name: MDLAnimatedMatrix4x4
+  Methods:
+  - Selector: 'float4x4AtTime:'
+    MethodKind: Instance
+    SwiftName: 'float4x4Value(atTime:)'
+  - Selector: 'double4x4AtTime:'
+    MethodKind: Instance
+    SwiftName: 'double4x4Value(atTime:)'
diff -ruN /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/ModelIO.h /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/ModelIO.h
--- /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/ModelIO.h	2017-06-29 21:17:43.000000000 -0400
+++ /Applications/Xcode9-beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/ModelIO.framework/Headers/ModelIO.h	2017-07-13 16:39:12.000000000 -0400
@@ -9,19 +9,17 @@
 
 #import <ModelIO/MDLAsset.h>
 #import <ModelIO/MDLAssetResolver.h>
-#import <ModelIO/MDLMorphDeformer.h>
 #import <ModelIO/MDLCamera.h>
 #import <ModelIO/MDLLight.h>
 #import <ModelIO/MDLMaterial.h>
 #import <ModelIO/MDLMesh.h>
 #import <ModelIO/MDLMeshBuffer.h>
 #import <ModelIO/MDLObject.h>
-#import <ModelIO/MDLSkinDeformer.h>
 #import <ModelIO/MDLSubmesh.h>
 #import <ModelIO/MDLTexture.h>
 #import <ModelIO/MDLTransform.h>
 #import <ModelIO/MDLTransformStack.h>
-#import <ModelIO/MDLPrimitive.h>
 #import <ModelIO/MDLTypes.h>
 #import <ModelIO/MDLVertexDescriptor.h>
 #import <ModelIO/MDLVoxelArray.h>
+#import <ModelIO/MDLAnimation.h>
Clone this wiki locally