@class SCNNode, NSOrderedSet, SCNAuthoringEnvironment, NSMutableIndexSet, SCNBillboardConstraint; @interface SCNManipulator : NSObject { SCNAuthoringEnvironment *_authoringEnvironment; NSOrderedSet *_targets; SCNNode *_node; union C3DMatrix4x4 { float components[16]; void /* unknown type, empty encoding */ m[4]; struct { void /* unknown type, empty encoding */ columns[4]; } simd; } _xAxisToZAxisTransform; union C3DMatrix4x4 { float components[16]; void /* unknown type, empty encoding */ m[4]; struct { void /* unknown type, empty encoding */ columns[4]; } simd; } _yAxisToZAxisTransform; union C3DMatrix4x4 { float components[16]; void /* unknown type, empty encoding */ m[4]; struct { void /* unknown type, empty encoding */ columns[4]; } simd; } _xyPlaneToYZPlaneTransform; union C3DMatrix4x4 { float components[16]; void /* unknown type, empty encoding */ m[4]; struct { void /* unknown type, empty encoding */ columns[4]; } simd; } _xyPlaneToXZPlaneTransform; unsigned short _selectedAxis; union { struct { void /* unknown type, empty encoding */ originalPosition; void /* unknown type, empty encoding */ axisDirection; void /* unknown type, empty encoding */ mouseDeltaVector; } axisMove; struct { void /* unknown type, empty encoding */ originalPosition; void /* unknown type, empty encoding */ planeNormal; void /* unknown type, empty encoding */ pointInPlane; void /* unknown type, empty encoding */ mouseDeltaVector; } planeMove; struct { float rotationSign; void /* unknown type, empty encoding */ originalRotation; } axisRotate; } _actionData; BOOL _isMouseDown; unsigned short _action; struct CGPoint { double x; double y; } _originalMouseLocation; struct { void *positions; void *orientations; struct SCNMatrix4 *originalLocalMatrix; void *scales; } _originalData; unsigned int _originalDataCount; union C3DMatrix4x4 { float components[16]; void /* unknown type, empty encoding */ m[4]; struct { void /* unknown type, empty encoding */ columns[4]; } simd; } _worldInitialMatrix; union C3DMatrix4x4 { float components[16]; void /* unknown type, empty encoding */ m[4]; struct { void /* unknown type, empty encoding */ columns[4]; } simd; } _worldMatrix; long long _snapToAlignCount; struct { float x0; void *x1; float x2; } *_snapToAlignOnX; struct { float x0; void *x1; float x2; } *_snapToAlignOnY; struct { float x0; void *x1; float x2; } *_snapToAlignOnZ; NSMutableIndexSet *_snapXIndexes; NSMutableIndexSet *_snapYIndexes; NSMutableIndexSet *_snapZIndexes; SCNNode *_planarTranslationHandleXY; SCNNode *_planarTranslationHandleYZ; SCNNode *_planarTranslationHandleXZ; SCNNode *_planarTranslationHandles; SCNNode *_axis; SCNNode *_arcHandleXY; SCNNode *_arcHandleYZ; SCNNode *_arcHandleXZ; SCNNode *_arcHandles; SCNNode *_scaleNode; SCNNode *_screenSpaceRotation; SCNNode *_highlightNode; void /* unknown type, empty encoding */ _planarTranslationLayout; BOOL _layoutLocked; SCNNode *_zArrow; SCNNode *_rotationHandles; SCNNode *_occluder; SCNNode *_translateHandles; SCNBillboardConstraint *_billboard; NSOrderedSet *_cloneSet; BOOL _cloning; unsigned long long _features; BOOL _alternateMode; } @property (readonly) SCNAuthoringEnvironment *authoringEnvironment; @property (readonly) struct SCNMatrix4 { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; float x9; float x10; float x11; float x12; float x13; float x14; float x15; } transform; @property (readonly) SCNNode *manipulatorNode; @property (retain, nonatomic) NSOrderedSet *targets; @property (retain, nonatomic) SCNNode *target; @property (nonatomic) long long xAlignment; @property (nonatomic) long long yAlignment; @property (nonatomic) long long zAlignment; @property (nonatomic) BOOL readonly; @property (nonatomic) unsigned long long features; - (id)init; - (void)dealloc; - (id)scene; - (BOOL)mouseUp:(struct { id x0; id x1; struct CGPoint { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct SCNVector3 { float x0; float x1; float x2; } x4; struct SCNVector3 { float x0; float x1; float x2; } x5; double x6; })a0; - (id)copy; - (id)hitTest:(struct { id x0; id x1; struct CGPoint { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct SCNVector3 { float x0; float x1; float x2; } x4; struct SCNVector3 { float x0; float x1; float x2; } x5; double x6; })a0; - (BOOL)isDragging; - (BOOL)mouseDown:(struct { id x0; id x1; struct CGPoint { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct SCNVector3 { float x0; float x1; float x2; } x4; struct SCNVector3 { float x0; float x1; float x2; } x5; double x6; })a0; - (BOOL)mouseMoved:(struct { id x0; id x1; struct CGPoint { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct SCNVector3 { float x0; float x1; float x2; } x4; struct SCNVector3 { float x0; float x1; float x2; } x5; double x6; })a0; - (BOOL)_applyWithEvent:(struct { id x0; id x1; struct CGPoint { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct SCNVector3 { float x0; float x1; float x2; } x4; struct SCNVector3 { float x0; float x1; float x2; } x5; double x6; })a0; - (void)_deleteOriginalData; - (unsigned long long)_effectiveFeatures; - (void)_prepareSnapToAlignData:(id)a0 minOffset:(SEL)a1 maxOffset:(unsigned short)a2; - (void)_saveOriginalData; - (void)_setAuthoringEnvironment:(id)a0; - (void /* unknown type, empty encoding */)_snapPositionToAlign:(id)a0 original:(SEL)a1 unit:(struct SCNVector3 { float x0; float x1; float x2; })a2 axisMove:(double)a3 rayStart:(BOOL)a4 rayDir:(BOOL *)a5 didSnap:(long long *)a6 snapIndexes:(void /* unknown type, empty encoding */)a7; - (void)_updateActionWithEvent:(struct { id x0; id x1; struct CGPoint { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct SCNVector3 { float x0; float x1; float x2; } x4; struct SCNVector3 { float x0; float x1; float x2; } x5; double x6; })a0; - (void)_updateCloneStateWithEvent:(struct { id x0; id x1; struct CGPoint { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct SCNVector3 { float x0; float x1; float x2; } x4; struct SCNVector3 { float x0; float x1; float x2; } x5; double x6; })a0; - (void)addClonesToScene; - (void)clearSnapIndexes; - (void)editingSpaceChanged; - (long long)effectiveEditingSpace; - (void)lockLayout; - (BOOL)mouseDragged:(struct { id x0; id x1; struct CGPoint { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct SCNVector3 { float x0; float x1; float x2; } x4; struct SCNVector3 { float x0; float x1; float x2; } x5; double x6; })a0; - (void)prepareSnapToAlignData; - (void)prepareSnapToAlignDataIfNeeded; - (void)removeClonesFromScene; - (void)setAlternateMode:(BOOL)a0; - (id)setupClones; - (void)setupNode; - (id)snapGuideIndexesOnAxis:(unsigned long long)a0; - (const struct { float x0; void *x1; float x2; } *)snapInfoAtIndex:(unsigned long long)a0 axis:(unsigned long long)a1; - (void)unhighlightSelectedNode; - (void)unlockLayout; - (void)updateItemsPosition; - (void)updateItemsRotation:(SEL)a0; - (void)updateItemsScale:(float)a0; - (void)updateManipulatorComponents; - (void)updateManipulatorNode; - (void)updateManipulatorPosition:(struct __C3DEngineContext { } *)a0; - (void)validateClones; @end