luxlabs header browser preview


@class NSString, NSDate, RTVisit, NSMutableArray;

@interface RTVisitPipelineModuleSmoother : NSObject <RTVisitPipelineModule>

@property (readonly, nonatomic) NSDate *previousProcessedDate;
@property (readonly, nonatomic) NSDate *nextDateToProcess;
@property (readonly, nonatomic) NSDate *firstDateToProcessForVisit;
@property (readonly, nonatomic) double timeIntervalBetweenSmoothedPoints;
@property (readonly, nonatomic) double kernelWidth;
@property (readonly, nonatomic) double smallestSignificantWeightExponent;
@property (readonly, nonatomic) double maxGapInVisit;
@property (readonly, nonatomic) unsigned long long leftWindowIncludedIndex;
@property (readonly, nonatomic) unsigned long long rightWindowExcludedIndex;
@property (readonly, nonatomic) unsigned long long outputLocationsCount;
@property (readonly, nonatomic) NSMutableArray *rawLocations;
@property (readonly, nonatomic) RTVisit *workingVisit;
@property (readonly, nonatomic) NSDate *entryBeforeAnyGaps;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

+ (id)computeSmoothedPointForDate:(id)a0 rawLocations:(id)a1 kernelWidth:(double)a2 smallestSignificantWeightExponent:(double)a3;
+ (id)createNewOutputClusterForSmoothedPoints:(id)a0 workingVisit:(id)a1 exit:(id)a2;
+ (void)disposeObsoleteRawLocations:(id)a0 currentDateToProcess:(id)a1 halfTimeProcessWindow:(double)a2;
+ (unsigned long long)findIndexOfLocationInArray:(id)a0 inRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1 afterDate:(id)a2;
+ (id)getEndOfGapAtDate:(id)a0 rawLocations:(id)a1 maxGapWithinVisit:(double)a2;
+ (double)getMaxDeltaForSmoothedLocationDate:(id)a0 rawLocations:(id)a1 kernelWidth:(double)a2;
+ (id)getNextDateToProcessForDate:(id)a0 firstDateToProcessForVisit:(id)a1 timeIntervalBetweenSmoothedPoints:(double)a2;
+ (double)getTimeDeltaSignificanceThresholdForSmoothedLocationDate:(id)a0 rawLocations:(id)a1 kernelWidth:(double)a2 smallestSignificantaWeightExponent:(double)a3;
+ (double)getWeightExponentForSmoothedLocationDate:(id)a0 rawLocationDate:(id)a1 kernelWidth:(double)a2 maxDelta:(double)a3;
+ (BOOL)hasRawLocationsNeededToComputeSmoothedLocationAtDate:(id)a0 workingVisitExit:(id)a1 rawLocations:(id)a2 kernelWidth:(double)a3 smallestSignificantWeightExponent:(double)a4;

- (void)resetState;
- (void).cxx_destruct;
- (id)process:(id)a0;
- (id)computeSmoothedPointForDate:(id)a0;
- (id)createNewOutputClusterForSmoothedPoints:(id)a0 exit:(id)a1;
- (void)disposeObsoleteRawLocationsForCurrentDateToProcess:(id)a0 halfTimeProcessWindow:(double)a1;
- (id)getEndOfGapAtDate:(id)a0;
- (id)getNextDateToProcessForDate:(id)a0;
- (id)initWithTimeIntervalBetweenSmoothedPoints:(double)a0 kernelWidth:(double)a1 smallestSignificantWeightExponent:(double)a2 maxGapWithinVisit:(double)a3;
- (id)processCachedPoints;
- (void)updateStateWithNewCluster:(id)a0;

@end