@class NSArray, NSString, NSMutableDictionary, NSDictionary, SCNOrderedDictionary; @interface SCNMorpher : NSObject <SCNAnimatable, NSSecureCoding> { struct __C3DMorph { } *_morpher; unsigned char _isPresentationInstance : 1; long long _calculationMode; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _animationsLock; SCNOrderedDictionary *_animations; NSMutableDictionary *_bindings; NSArray *_mainTargets; unsigned long long _weightCount; float *_weights; NSArray *_mainTargetsAndInBetweens; NSArray *_inBetweenCounts; NSArray *_inBetweenInfluenceWeights; NSArray *_correctivesAndInBetweens; NSArray *_correctiveDriverCounts; NSArray *_correctiveDriverIndices; NSArray *_correctiveInBetweenCounts; NSArray *_correctiveInBetweenInfluenceWeights; NSDictionary *_mainTargetNamesToIndexes; NSString *_name; BOOL _unifyNormal; BOOL _useSparseTargets; } @property (class, readonly) BOOL supportsSecureCoding; @property (copy, nonatomic) NSArray *targets; @property (retain, nonatomic) NSArray *weights; @property (nonatomic) long long calculationMode; @property BOOL unifiesNormals; @property (readonly) NSArray *animationKeys; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (Class)SCNUID_classForElementOfArray:(id)a0; + (id)morpher; + (id)morpherWithMorphRef:(struct __C3DMorph { } *)a0; + (id)weightIndexStringForIndex:(long long)a0; - (id)valueForUndefinedKey:(id)a0; - (id)init; - (void)dealloc; - (void)addAnimation:(id)a0 forKey:(id)a1; - (void)setValue:(id)a0 forUndefinedKey:(id)a1; - (void)setIdentifier:(id)a0; - (void)setName:(id)a0; - (id)scene; - (void)encodeWithCoder:(id)a0; - (id)copy; - (id)identifier; - (void)removeAllAnimations; - (void)addAnimation:(id)a0; - (id)name; - (id)initWithCoder:(id)a0; - (id)copyWithZone:(struct _NSZone { } *)a0; - (id)animationForKey:(id)a0; - (void)removeAnimationForKey:(id)a0; - (id)animationPlayerForKey:(id)a0; - (struct __C3DAnimationManager { } *)animationManager; - (void)_updateCorrectivesAndInBetween:(id)a0; - (void)clearInBetweens; - (id)inBetweenCounts; - (void *)__CFObject; - (BOOL)__removeAnimation:(id)a0 forKey:(id)a1; - (void)_copyAnimationsFrom:(id)a0; - (void)_customDecodingOfSCNMorpher:(id)a0; - (void)_customEncodingOfSCNMorpher:(id)a0; - (void)_didDecodeSCNMorpher:(id)a0; - (BOOL)_isUsingSparseTargets; - (void)_pauseAnimation:(BOOL)a0 forKey:(id)a1 pausedByNode:(BOOL)a2; - (double)_presentationWeightForTargetAtIndex:(unsigned long long)a0 token:(const void *)a1; - (id)_scnAnimationForKey:(id)a0; - (id)_scnBindings; - (void)_syncEntityObjCModel; - (void)_syncObjCAnimations; - (void)_syncObjCModel; - (void)_updateTargetsAndInBetween:(id)a0; - (long long)_weightIndexForTargetNamed:(id)a0; - (void)addAnimationPlayer:(id)a0 forKey:(id)a1; - (void)bindAnimatablePath:(id)a0 toObject:(id)a1 withKeyPath:(id)a2 options:(id)a3; - (void)clearCorrectives; - (void)convertToAdditiveWithBaseGeometry:(id)a0; - (void)convertToSparseWithBaseGeometry:(id)a0; - (id)copyAnimationChannelForKeyPath:(id)a0 animation:(id)a1; - (unsigned long long)correctiveDriverCountForCorrectiveAtIndex:(unsigned long long)a0; - (id)correctiveDriverCounts; - (id)correctiveDriverIndices; - (id)correctiveDriverIndicesForCorrectiveAtIndex:(unsigned long long)a0; - (id)correctiveInBetweenCounts; - (id)correctiveInBetweenWeights; - (id)correctives; - (id)correctivesAndInBetween; - (id)inBetweenTargetsForCorrectiveAtIndex:(unsigned long long)a0; - (id)inBetweenTargetsForTargetAtIndex:(unsigned long long)a0; - (id)inBetweenWeights; - (id)inBetweenWeightsForCorrectiveAtIndex:(unsigned long long)a0; - (id)inBetweenWeightsForTargetAtIndex:(unsigned long long)a0; - (id)initPresentationMorpherWithMorphRef:(struct __C3DMorph { } *)a0; - (id)initWithMorphRef:(struct __C3DMorph { } *)a0; - (BOOL)isAnimationForKeyPaused:(id)a0; - (BOOL)isPausedOrPausedByInheritance; - (struct __C3DMorph { } *)morphRef; - (void)pauseAnimationForKey:(id)a0; - (id)presentationInstance; - (id)presentationMorpher; - (void)removeAllAnimationsWithBlendOutDuration:(double)a0; - (void)removeAllBindings; - (void)removeAnimationForKey:(id)a0 blendOutDuration:(double)a1; - (void)removeAnimationForKey:(id)a0 fadeOutDuration:(double)a1; - (void)resumeAnimationForKey:(id)a0; - (struct __C3DScene { } *)sceneRef; - (void)setShouldClearCPUDataAfterUpload:(BOOL)a0; - (void)setShouldMorphNormals:(BOOL)a0; - (void)setSpeed:(double)a0 forAnimationKey:(id)a1; - (void)setTargets:(id)a0 withInBetweenTargetCounts:(id)a1 inBetweenWeights:(id)a2; - (void)setTargetsAndInBetweens:(id)a0 inBetweenCounts:(id)a1 inBetweenWeights:(id)a2 correctives:(id)a3 driverCounts:(id)a4 driverIndices:(id)a5 inBetweenCounts:(id)a6 inBetweenWeights:(id)a7; - (void)setWeight:(double)a0 forTargetAtIndex:(unsigned long long)a1; - (void)setWeight:(double)a0 forTargetNamed:(id)a1; - (void)setWeightIncrementalThreshold:(float)a0; - (BOOL)shouldClearCPUDataAfterUpload; - (BOOL)shouldMorphNormals; - (id)targetsAndInBetween; - (void)unbindAnimatablePath:(id)a0; - (double)weightForTargetAtIndex:(unsigned long long)a0; - (double)weightForTargetNamed:(id)a0; - (float)weightIncrementalThreshold; @end