luxlabs header browser preview


@class ARDirectionalLightEstimate, NSObject;
@protocol OS_dispatch_queue, OS_dispatch_semaphore;

@interface ARFaceLightEstimationTechnique : ARTechnique {
    NSObject<OS_dispatch_semaphore> *_resultSemaphore;
    ARDirectionalLightEstimate *_lastLightEstimate;
    float _lightIntensity;
    float _temperature;
    struct ExponentialSmoother<float> { struct optional<float> { union { char __null_state_; float __val_; } ; BOOL __engaged_; } state; } _smoother;
    NSObject<OS_dispatch_queue> *_lightEstimationQueue;
    NSObject<OS_dispatch_semaphore> *_estimatingSemaphore;
    struct FacialLightEstimation { struct Matrix<float, 0U, 1U, false> { float *m_data; unsigned long long m_capacity; unsigned int m_rows; } m_validSampleIntensities; struct vector<int, std::allocator<int>> { int *__begin_; int *__end_; struct __compressed_pair<int *, std::allocator<int>> { int *__value_; } __end_cap_; } m_validChromaSampleIDS; struct vector<int, std::allocator<int>> { int *__begin_; int *__end_; struct __compressed_pair<int *, std::allocator<int>> { int *__value_; } __end_cap_; } m_sampleIndices_all; struct Matrix<float, 0U, 0U, false> { float *m_data; unsigned long long m_capacity; unsigned int m_rows; unsigned int m_cols; } m_validRtfs; struct shared_ptr<arkit::PrecomputedFaceData> { struct PrecomputedFaceData *__ptr_; struct __shared_weak_count *__cntrl_; } m_precomputedFaceData; struct ExponentialSmoother<cva::Matrix<float, 9, 1>> { struct optional<cva::Matrix<float, 9, 1>> { union { char __null_state_; struct Matrix<float, 9U, 1U, false> { float m_data[9]; } __val_; } ; BOOL __engaged_; } state; } m_smoother; struct vector<unsigned long, std::allocator<unsigned long>> { unsigned long long *__begin_; unsigned long long *__end_; struct __compressed_pair<unsigned long *, std::allocator<unsigned long>> { unsigned long long *__value_; } __end_cap_; } m_inliers; } _faceLightEstimator;
    float _shSmoothingAlpha;
}

+ (float)_computeShSmoothingAlpha:(double)a0;
+ (struct shared_ptr<arkit::FaceTrackingData> { struct FaceTrackingData *x0; struct __shared_weak_count *x1; })_transformFaceTrackingData:(id)a0;

- (id)init;
- (void)dealloc;
- (id)processData:(id)a0;
- (id).cxx_construct;
- (void).cxx_destruct;
- (void)_processFaceDataInBackground:(id)a0 pixelBuffer:(struct __CVBuffer { } *)a1 lightIntensity:(float)a2 timestamp:(double)a3;
- (void)requestResultDataAtTimestamp:(double)a0 context:(id)a1;
- (unsigned long long)requiredSensorDataTypes;

@end