luxlabs header browser preview


@class NSArray, NSString;

@interface CHBottomUpStrokeGroupingStrategy : CHStrokeGroupingStrategy {
    struct CGVector { double dx; double dy; } _defaultOrientationVector;
    struct CGVector { double dx; double dy; } _defaultDeviationVector;
    long long _textStrokeClassification;
    NSString *_strategyIdentifier;
    double _strokeDeviationCapCoeff;
    double _groupingMergingCostThresh;
    double _groupingMergingEndCostLowThresh;
    double _groupingSimilarCostThresh;
    long long _groupingContextSize;
    double _mergeEndDxCostCoeff;
    double _mergeEndDyCostCoeff;
    double _mergeEndBelowModifier;
    double _mergeEndLeftModifier;
    double _mergeMiddleDxCostCoeff;
    double _mergeMiddleDyCostCoeff;
    double _mergeMiddleBelowModifier;
    long long _splitMinimumStrokeCount;
    long long _splitMaxNaturalIndexDiffThreshold;
    BOOL _shouldLimitDefaultWritingOrientationDeviation;
    BOOL _shouldAdjustDeviationOfSmallGroups;
    BOOL _shouldCoalesceLastSubstrokes;
}

@property (readonly, nonatomic) BOOL isInlineContinuousMode;
@property (readonly, nonatomic) NSArray *textInputTargets;

- (void).cxx_destruct;
- (void)smoothLocalWritingOrientations:(void *)a0;
- (void)updateLocalWritingOrientationsForSubstrokes:(id)a0 useCoalescedCenter:(BOOL)a1;
- (void)refineLocalWritingOrientationsForSubstrokes:(id)a0 useCoalescedCenter:(BOOL)a1;
- (struct CGVector { double x0; double x1; })clippedWritingOrientation:(struct CGVector { double x0; double x1; })a0;
- (long long)compareDistanceInWritingSequenceOfStroke:(id)a0 andStroke:(id)a1 toReferenceStroke:(id)a2;
- (void)estimateWritingDirectionAndSortSubstrokesAccordingly:(id *)a0 averageWritingOrientation:(struct CGVector { double x0; double x1; } *)a1 averageStrokeDeviation:(struct CGVector { double x0; double x1; } *)a2;
- (struct vector<CGPoint, std::allocator<CGPoint>> { struct CGPoint *x0; struct CGPoint *x1; struct __compressed_pair<CGPoint *, std::allocator<CGPoint>> { struct CGPoint *x0; } x2; })flippedCenters:(const void *)a0 ofSubstrokes:(id)a1 maxStrokesGap:(long long)a2 begnning:(BOOL)a3;
- (void)getMergingEndOfLineCost:(double *)a0 mergingEndOfLineStroke:(id *)a1 forStroke:(id)a2 consistingOfSubstrokes:(id)a3 toLineGroup:(id)a4;
- (void)getMergingMiddleOfLineCost:(double *)a0 mergingMiddleOfLineStroke:(id *)a1 forStroke:(id)a2 consistingOfSubstrokes:(id)a3 toLineGroup:(id)a4;
- (id)initWithStrokeProvider:(id)a0 defaultWritingOrientation:(long long)a1 locales:(id)a2 isInlineContinuousMode:(BOOL)a3 inlineContinuousModeTargets:(id)a4;
- (void)mergeGroupsPostProcessing:(id)a0 createdGroups:(id)a1 deletedGroups:(id)a2 availableGroupingStrategies:(id)a3 allowOppositeOrientations:(BOOL)a4;
- (id)recognizableDrawingForStrokeGroup:(id)a0 translationVector:(struct CGVector { double x0; double x1; })a1 originalDrawing:(id *)a2 orderedStrokesIDs:(id *)a3 rescalingFactor:(double *)a4;
- (BOOL)refineWritingOrientationAndResortSubstrokes:(id)a0 averageWritingOrientation:(struct CGVector { double x0; double x1; } *)a1;
- (id)regroupedStrokeGroup:(id)a0 fromResult:(id)a1 withAdversarialGroup:(id)a2 allSubstrokesByStrokeIdentifier:(id)a3 cancellationBlock:(id /* block */)a4;
- (double)relativeOverlapOfGroup:(id)a0 withGroup:(id)a1;
- (void)sortSubstrokesByWritingDirection:(id)a0 averageWritingOrientation:(struct CGVector { double x0; double x1; } *)a1;
- (id)strategyIdentifier;
- (id)strokeGroupFromStrokes:(id)a0;
- (id)strokeGroupMergingGroup:(id)a0 withGroup:(id)a1;
- (id)tryRegroupingStrokesInGroup:(id)a0 substrokePlacementsByStrokeIdentifier:(id)a1 cancellationBlock:(id /* block */)a2;
- (void)updateLocalStrokeDeviationsForSubstrokes:(id)a0 averageStrokeDeviation:(struct CGVector { double x0; double x1; } *)a1;
- (id)updatedGroupingResult:(id)a0 byAddingStrokes:(id)a1 removingStrokeIdentifiers:(id)a2 stableStrokeIdentifiers:(id)a3 allSubstrokesByStrokeIdentifier:(id)a4 withCancellationBlock:(id /* block */)a5;

@end