luxlabs header browser preview


@class NSMapTable, NSArray, NSMutableSet, AVTMemoji, NSMutableArray, NSMutableDictionary;

@interface AVTAvatarMemoryOptimizer : NSObject {
    AVTMemoji *_memoji;
    NSMapTable *_requiredVariantsPerMorpher;
    NSMutableArray *_requiredMorphVariantComponents;
    NSMutableSet *_presetVariantPrefixes;
    NSArray *_oldWeights;
    NSArray *_oldMainTargets;
    BOOL _hasInBetweens;
    NSMutableArray *_newWeights;
    NSMutableArray *_newTargetsAndInBetweens;
    NSMutableArray *_newInBetweenCounts;
    NSMutableArray *_newInBetweenWeights;
    NSMutableArray *_indicesOfTargetsToFlattenInBaseGeometry;
    NSMutableDictionary *_indicesOfTargetsToFlattenInOtherTarget;
    NSMutableDictionary *_nonOneWeightsOfTargetsToFlatten;
    NSArray *_oldCorrectives;
    NSArray *_oldCorrectiveDriverCounts;
    NSArray *_oldCorrectiveDriverIndices;
    BOOL _hasCorrectives;
    BOOL _hasCorrectiveInBetweens;
    NSMutableArray *_newCorrectivesAndInBetweens;
    NSMutableArray *_newCorrectiveDriverCounts;
    NSMutableArray *_newCorrectiveDriverIndices;
    NSMutableArray *_newCorrectiveInBetweenCounts;
    NSMutableArray *_newCorrectiveInBetweenWeights;
    NSMutableArray *_indicesOfCorrectivesToFlattenInBaseGeometry;
    NSMutableDictionary *_indicesOfCorrectivesToFlattenInMainTarget;
    NSMutableDictionary *_indicesOfCorrectivesToFlattenInOtherCorrective;
    NSMutableDictionary *_nonOneWeightsOfCorrectivesToFlatten;
}

- (void).cxx_destruct;
- (BOOL)shouldClearCPUDataAfterUpload;
- (id)initWithMemoji:(id)a0;
- (void)applyMorphTarget:(id)a0 weight:(float)a1 toBaseGeometryBuffer:(void *)a2 vertexCount:(unsigned long long)a3;
- (void)applyMorphTarget:(id)a0 weight:(float)a1 toMorphTargetBuffer:(struct { float x0; float x1; float x2; } *)a2 vertexCount:(unsigned long long)a3;
- (void)classifyTargetsOfMorpher:(id)a0 node:(id)a1;
- (void)flattenCorrectiveAtIndex:(unsigned long long)a0 inBaseGeometryUsingWeight:(float)a1;
- (void)flattenCorrectiveAtIndex:(unsigned long long)a0 inCorrectiveAtIndex:(unsigned long long)a1 weight:(float)a2;
- (void)flattenCorrectiveAtIndex:(unsigned long long)a0 inTargetAtIndex:(unsigned long long)a1 weight:(float)a2;
- (void)flattenCorrectivesAtIndices:(id)a0 inCorrective:(id)a1 weight:(float)a2 morpher:(id)a3;
- (void)flattenCorrectivesAtIndices:(id)a0 inCorrectiveAtIndex:(unsigned long long)a1 morpher:(id)a2;
- (void)flattenRelevantTargetsInOtherTargetsOfMorpher:(id)a0;
- (void)flattenRelevantTargetsOfMorpher:(id)a0 inBaseGeometryOfNode:(id)a1;
- (id)flattenTarget0:(id)a0 weight0:(float)a1 target1:(id)a2 weight1:(float)a3 inMorphTarget:(id)a4 originalMorphTarget:(id)a5;
- (void)flattenTargetAtIndex:(unsigned long long)a0 inBaseGeometryUsingWeight:(float)a1;
- (void)flattenTargetAtIndex:(unsigned long long)a0 inTargetAtIndex:(unsigned long long)a1 weight:(float)a2;
- (void)flattenTargetsAtIndices:(id)a0 correctivesAtIndices:(id)a1 inTarget:(id)a2 weight:(float)a3 morpher:(id)a4;
- (void)flattenTargetsAtIndices:(id)a0 correctivesAtIndices:(id)a1 inTargetAtIndex:(unsigned long long)a2 morpher:(id)a3;
- (void)flattenTargetsOfMorpher:(id)a0 node:(id)a1;
- (void)keepCorrectiveAtIndex:(unsigned long long)a0 morpher:(id)a1;
- (void)keepCorrectiveAtIndex:(unsigned long long)a0 withDriverIndices:(id)a1 morpher:(id)a2;
- (void)keepTargetAtIndex:(unsigned long long)a0 morpher:(id)a1;
- (void)optimizeMemoji;
- (void)optimizeNode:(id)a0;
- (void)optimizeNodeHierarchy:(id)a0;
- (void)preprocessMemoji;
- (void)registerRequiredVariant:(id)a0 weight:(float)a1 inHierarchy:(id)a2;
- (void)resolveInBetweensForTarget:(id)a0 weight:(float)a1 inBetweenWeights:(id)a2 inBetweenTargets:(id)a3 block:(id /* block */)a4;
- (BOOL)shouldKeepCreasesAndCorners;

@end