@class PKStroke, NSObject; @protocol OS_dispatch_queue, OS_dispatch_semaphore; @interface PKStrokeGenerator : NSObject <PKInputProvider> { double _latestNonPredictedTimestamp; struct vector<PKInputPoint, std::allocator<PKInputPoint>> { struct *__begin_; struct *__end_; struct __compressed_pair<PKInputPoint *, std::allocator<PKInputPoint>> { struct *__value_; } __end_cap_; } _drawPoints; struct vector<_PKStrokePoint, std::allocator<_PKStrokePoint>> { struct _PKStrokePoint *__begin_; struct _PKStrokePoint *__end_; struct __compressed_pair<_PKStrokePoint *, std::allocator<_PKStrokePoint>> { struct _PKStrokePoint *__value_; } __end_cap_; } _outputPoints; long long _outputImmutableCount; BOOL _inputHasChanged; struct _PKStrokePoint { double timestamp; struct CGPoint { double x; double y; } location; double radius; double aspectRatio; double edgeWidth; double force; double azimuth; double altitude; double opacity; double radius2; } _baseValues; NSObject<OS_dispatch_queue> *_inputQueue; PKStroke *_currentStroke; long long _currentInputType; unsigned long long _currentActiveInputProperties; long long _immutableCount; long long _missedUpdates; struct vector<PKInputPoint, std::allocator<PKInputPoint>> { struct *__begin_; struct *__end_; struct __compressed_pair<PKInputPoint *, std::allocator<PKInputPoint>> { struct *__value_; } __end_cap_; } _updatedDrawPoints; BOOL _drawingEndedButNotFinished; NSObject<OS_dispatch_semaphore> *_drawingWaitForFinishSemaphore; BOOL _keepPredictedTouchesAtEndOfStroke; } @property (nonatomic) struct CGAffineTransform { double a; double b; double c; double d; double tx; double ty; } rulerTransform; @property (nonatomic) BOOL useRuler; @property (nonatomic) double rulerWidth; @property (nonatomic) BOOL isSnappedToRulerTopSide; @property (nonatomic) BOOL canSnapToRuler; @property (nonatomic) double strokeMaxForce; @property struct CGPoint { double x; double y; } lastPoint; @property (retain, nonatomic) NSObject<OS_dispatch_queue> *outputQueue; @property (nonatomic) double touchSensitivity; @property (nonatomic) void *inputProvider; @property (nonatomic) void *pixelSmoothingFilter; @property (nonatomic) void *pointReductionFilter; @property (nonatomic) void *startHookFilter; @property (nonatomic) void *endHookFilter; @property (nonatomic) void *velocityFilter; @property (nonatomic) void *directionAngleFilter; @property (nonatomic) void *inputSmoother; @property (nonatomic) void *noiseSmoother; @property (nonatomic) void *propertySmoother; @property (nonatomic) void *inputToOutputFilter; @property (nonatomic) void *startCapFilter; @property (nonatomic) void *animationFilter; @property (nonatomic) void *azimuthFilter; @property (nonatomic) void *endCapFilter; @property (nonatomic) void *rulerExtremaFilter; @property (nonatomic) void *estimatedAltitudeAndAzimuthFilter; @property (nonatomic) void *compressionFilter; @property (nonatomic) void *decompressionFilter; @property BOOL isSnappedToRuler; @property (readonly) BOOL lastPointIsMasked; @property double eraserIndicatorAlpha; @property (nonatomic) double inputScale; @property (readonly, nonatomic) long long inputType; @property (readonly, nonatomic) unsigned long long activeInputProperties; @property (nonatomic) BOOL captureLiveData; @property (nonatomic) BOOL isPreviewing; + (void)initialize; + (struct vector<PKInputPoint, std::allocator<PKInputPoint>> { struct *x0; struct *x1; struct __compressed_pair<PKInputPoint *, std::allocator<PKInputPoint>> { struct *x0; } x2; })inputPointsFromPath:(struct CGPath { } *)a0 maxSegmentLength:(double)a1 velocityForDistanceFunction:(id /* block */)a2; + (struct vector<PKInputPoint, std::allocator<PKInputPoint>> { struct *x0; struct *x1; struct __compressed_pair<PKInputPoint *, std::allocator<PKInputPoint>> { struct *x0; } x2; })inputPointsFromPoints:(const void *)a0 velocityForDistanceFunction:(id /* block */)a1; - (id)init; - (void)reset; - (void)dealloc; - (id).cxx_construct; - (void)addPoints:(struct vector<PKInputPoint, std::allocator<PKInputPoint>> { struct *x0; struct *x1; struct __compressed_pair<PKInputPoint *, std::allocator<PKInputPoint>> { struct *x0; } x2; })a0; - (void).cxx_destruct; - (void)addPoint:(struct { union { struct CGPoint { double x0; double x1; } x0; struct CGPoint { double x0; double x1; } x1; } x0; double x1; double x2; double x3; double x4; double x5; double x6; double x7; BOOL x8; long long x9; double x10; BOOL x11; })a0; - (long long)inputType; - (double)latestTimestamp; - (void)drawingCancelledWithCompletion:(id /* block */)a0; - (void)_drawingAddPoint:(struct { union { struct CGPoint { double x0; double x1; } x0; struct CGPoint { double x0; double x1; } x1; } x0; double x1; double x2; double x3; double x4; double x5; double x6; double x7; BOOL x8; long long x9; double x10; BOOL x11; })a0; - (void)_drawingUpdateAllPointsDidTimeout:(BOOL)a0 updateSemaphore:(BOOL)a1; - (void)_drawingUpdateAllPointsDidTimeoutWithStrokeUUID:(id)a0; - (struct _PKStrokePoint { double x0; struct CGPoint { double x0; double x1; } x1; double x2; double x3; double x4; double x5; double x6; double x7; double x8; double x9; })_latestStrokePoint; - (id)_newStrokeWithCurrentDataAndStrokeDataUUID:(id)a0; - (void)_removePredictedTouches; - (void)_updatePredictedTouches; - (void)allowSnappingToRuler:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0 width:(double)a1; - (void)closeStroke; - (unsigned long long)copyInputUpdatedRangeFromIndex:(unsigned long long)a0 into:(void *)a1; - (double)distanceToRulerCenter:(struct CGPoint { double x0; double x1; })a0; - (void)drawingBeganWithStroke:(id)a0 inputType:(long long)a1 activeInputProperties:(unsigned long long)a2 inputScale:(double)a3 start:(id /* block */)a4; - (void)drawingEndedEstimatesTimeout:(double)a0 completion:(id /* block */)a1; - (void)drawingUpdateAllPoints; - (void)drawingUpdateAllPointsDidTimeoutWithStrokeUUID:(id)a0; - (void)drawingUpdatePoint:(struct { union { struct CGPoint { double x0; double x1; } x0; struct CGPoint { double x0; double x1; } x1; } x0; double x1; double x2; double x3; double x4; double x5; double x6; double x7; BOOL x8; long long x9; double x10; BOOL x11; })a0; - (long long)fetchFilteredPointsFromIndex:(long long)a0 accessBlock:(id /* block */)a1; - (void *)getInputUpdatedRangeFromIndex:(inout unsigned long long *)a0; - (struct CGPoint { double x0; double x1; })getRulerSnapLineOriginAndTangent:(struct CGPoint { double x0; double x1; } *)a0 andNormal:(struct CGPoint { double x0; double x1; } *)a1; - (void *)getUpdatedRangeFromIndex:(inout unsigned long long *)a0; - (double)latestNonPredictedTimestamp; - (void)maskToRuler; - (id)newStrokeWithCurrentData; - (id)newStrokeWithCurrentDataCopy; - (struct _PKStrokePoint { double x0; struct CGPoint { double x0; double x1; } x1; double x2; double x3; double x4; double x5; double x6; double x7; double x8; double x9; })outputCurrentStrokePoint:(struct { union { struct CGPoint { double x0; double x1; } x0; struct CGPoint { double x0; double x1; } x1; } x0; double x1; double x2; double x3; double x4; double x5; double x6; double x7; BOOL x8; long long x9; double x10; BOOL x11; })a0; - (void *)outputFilter; - (struct _PKStrokePoint { double x0; struct CGPoint { double x0; double x1; } x1; double x2; double x3; double x4; double x5; double x6; double x7; double x8; double x9; })outputPoint:(struct { union { struct CGPoint { double x0; double x1; } x0; struct CGPoint { double x0; double x1; } x1; } x0; double x1; double x2; double x3; double x4; double x5; double x6; double x7; BOOL x8; long long x9; double x10; BOOL x11; })a0 baseValues:(struct _PKStrokePoint { double x0; struct CGPoint { double x0; double x1; } x1; double x2; double x3; double x4; double x5; double x6; double x7; double x8; double x9; })a1; - (BOOL)shouldSnapPointToRuler:(struct CGPoint { double x0; double x1; })a0; - (struct CGPoint { double x0; double x1; })snapPointToRuler:(struct CGPoint { double x0; double x1; })a0; - (void)snapToRuler; - (id)strokeFromInputPoints:(void *)a0 inputType:(long long)a1 ink:(id)a2 inputScale:(double)a3 randomSeed:(unsigned int)a4 strokeClass:(Class)a5; - (id)strokeFromLineSegments:(const void *)a0 maxSegmentLength:(double)a1 ink:(id)a2 inputScale:(double)a3 strokeClass:(Class)a4; - (id)strokeFromPath:(struct CGPath { } *)a0 ink:(id)a1 inputScale:(double)a2 maxSegmentLength:(double)a3 velocityForDistanceFunction:(id /* block */)a4 strokeClass:(Class)a5; - (id)strokeFromPoints:(struct CGPoint { double x0; double x1; } *)a0 count:(unsigned long long)a1 ink:(id)a2 inputScale:(double)a3 strokeClass:(Class)a4; - (id)strokeFromPoints:(const void *)a0 sourceStroke:(id)a1 inputScale:(double)a2 averageInputPoint:(struct { union { struct CGPoint { double x0; double x1; } x0; struct CGPoint { double x0; double x1; } x1; } x0; double x1; double x2; double x3; double x4; double x5; double x6; double x7; BOOL x8; long long x9; double x10; BOOL x11; })a3; - (void)updateImmutableCount; - (void)updateRulerSnapping; - (void)whenFinishedProcessingPointsCallCompletion:(id /* block */)a0; @end