@class NSArray; @interface CIRedEyeRepair : NSObject { BOOL ownLF; struct { char x0[256]; char x1[32]; struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } x2; int x3; int x4; struct { int x0; int x1; int x2; int x3; } x5; struct CGColorSpace *x6; unsigned int x7; int x8; int x9; BOOL x10; float x11; } *lf; int imageSourceType; struct CGImageBlockSet { } *blockSet; void *releaseMe; struct __CFData { } *dataRef; NSArray *faces; int nRepairs; int nextRepairTag; struct { int tag; struct CGPoint { double x; double y; } pt2; int eyeCase; int forceCase; int npixels; int bignpixels; struct { char *baseAddress; int width; int height; int rowSamples; int rowBytes; int size; int samplesPerPixel; int bytesPerSample; float resolution; } fullNew; struct { int minrow; int maxrow; int mincol; int maxcol; } YR; struct { int lo; int med; int hi; int average; } psTemplate; BOOL pupilShadeAlignment; struct { int lo; int med; int hi; int average; } matchingTemplate; int faceIndex; BOOL left; float IOD; struct { int origHitX; int origHitY; int snapHitX; int snapHitY; int bitmaskSeedX; int bitmaskSeedY; int bitmaskThreshold; int cornealReflectionSeedX; int cornealReflectionSeedY; int cornealReflectionThreshold; BOOL align; struct { int lo; int med; int hi; int average; } mTemplate; struct { int lo; int med; int hi; int average; } existingTemplate; int averageSkinMapY; int characterizeCase; int finalEyeCase; float IOD; struct { void *bitmapproc_context; void /* function */ *bproc; int orientation; float SNR; BOOL N90; int redBitmaskArea; float imageCenterX; float imageCenterY; float halfDiagonalSize; } O; struct { int minrow; int maxrow; int mincol; int maxcol; } CR; } data; struct { struct CGPoint { double x; double y; } centroid; int area; float ovalness; float contrast; float mincontrast; int nborder; struct { int minrow; int maxrow; int mincol; int maxcol; } IR; float aspectRatio; BOOL touchingEdge; int localmax; int localmaxrow; int localmaxcol; int localfloor; float rgmean; float rgstd; float ymean; float ystd; } BI; } repairs[32]; int lastRepairTag; float lastRepairIOD; struct { int lo; int med; int hi; int average; } standardTemplate; int iFaceIndex; BOOL iLeft; BOOL debugRedEye; BOOL logRepairs; int redEyeThresholdKind; BOOL renderAlpha; BOOL infillBackground; BOOL renderSpecularShine; float specularSize; float specularSoftness; BOOL pupilShadeAlignment; BOOL autoPupilTonality; BOOL forceLoValue; int loValue; struct { char *baseAddress; int width; int height; int rowSamples; int rowBytes; int size; int samplesPerPixel; int bytesPerSample; float resolution; } lastClickYBitmap; struct { char *baseAddress; int width; int height; int rowSamples; int rowBytes; int size; int samplesPerPixel; int bytesPerSample; float resolution; } lastClickCbCrBitmap; int lastClickBitmapMinX; int lastClickBitmapMaxX; int lastClickBitmapMinY; int lastClickBitmapMaxY; struct { char *baseAddress; int width; int height; int rowSamples; int rowBytes; int size; int samplesPerPixel; int bytesPerSample; float resolution; } lastClickYBitmaps[3]; struct { char *baseAddress; int width; int height; int rowSamples; int rowBytes; int size; int samplesPerPixel; int bytesPerSample; float resolution; } lastClickCbCrBitmaps[3]; struct { int minrow; int maxrow; int mincol; int maxcol; } lastClickBitmapRects[3]; struct { char *baseAddress; int width; int height; int rowSamples; int rowBytes; int size; int samplesPerPixel; int bytesPerSample; float resolution; } lastSearchYBitmap; struct { char *baseAddress; int width; int height; int rowSamples; int rowBytes; int size; int samplesPerPixel; int bytesPerSample; float resolution; } lastSearchCbCrBitmap; int lastSearchBitmapMinX; int lastSearchBitmapMaxX; int lastSearchBitmapMinY; int lastSearchBitmapMaxY; int nPolyPoints; BOOL polyClosed; struct CGPoint { double x; double y; } polyPoints[20]; struct { float a; float b; float c; } polyLines[20]; BOOL polyPointConcave[20]; unsigned char CbCrDistanceTable[65536]; int nLinears; int linearCoefficients[8][3]; } + (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })supportRectangleWithFaceArray:(id)a0 imageSize:(struct CGSize { double x0; double x1; })a1; + (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })supportRectangleWithPoint:(struct CGPoint { double x0; double x1; })a0 imageSize:(struct CGSize { double x0; double x1; })a1 IOD:(float)a2; + (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })supportRectangleWithRepair:(id)a0 imageSize:(struct CGSize { double x0; double x1; })a1; + (float)upperRepairDistance:(float)a0; + (float)upperRepairDistanceFraction:(float)a0; - (int)format; - (void)dealloc; - (void)setColorSpace:(struct CGColorSpace { } *)a0; - (id)faces; - (void)setDebug:(BOOL)a0; - (BOOL)debug; - (void)setLeft:(BOOL)a0; - (struct { int x0; struct CGPoint { double x0; double x1; } x1; int x2; int x3; int x4; int x5; struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } x6; struct { int x0; int x1; int x2; int x3; } x7; struct { int x0; int x1; int x2; int x3; } x8; BOOL x9; struct { int x0; int x1; int x2; int x3; } x10; int x11; BOOL x12; float x13; struct { int x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; int x8; int x9; BOOL x10; struct { int x0; int x1; int x2; int x3; } x11; struct { int x0; int x1; int x2; int x3; } x12; int x13; int x14; int x15; float x16; struct { void *x0; void /* function */ *x1; int x2; float x3; BOOL x4; int x5; float x6; float x7; float x8; } x17; struct { int x0; int x1; int x2; int x3; } x18; } x14; struct { struct CGPoint { double x0; double x1; } x0; int x1; float x2; float x3; float x4; int x5; struct { int x0; int x1; int x2; int x3; } x6; float x7; BOOL x8; int x9; int x10; int x11; int x12; float x13; float x14; float x15; float x16; } x15; } *)repairs; - (void)setRenderAlpha:(BOOL)a0; - (int)loValue; - (void)orientPointX:(float *)a0 Y:(float *)a1; - (int)redEyeRemovalWithPoint:(struct CGPoint { double x0; double x1; })a0 alignPupilShades:(BOOL)a1 matching:(struct { int x0; int x1; int x2; int x3; })a2 force:(int)a3 IOD:(float)a4 tap:(BOOL)a5; - (int)applyEyeRepairWithEye:(struct { int x0; int x1; BOOL x2; BOOL x3; float x4; int x5; int x6; int x7; int x8; } *)a0 left:(BOOL)a1 IOD:(float)a2 autoPupilTonality:(BOOL)a3 match:(struct { int x0; int x1; int x2; int x3; } *)a4 faceIndex:(int)a5 whiteHopper:(struct { int x0; struct { float x0; int x1; int x2; float x3; float x4; float x5; int x6; int x7; float x8; } x1[4]; } *)a6; - (BOOL)autoPupilTonality; - (void)autoRepairExtractAndSearchLeft:(struct { int x0; int x1; int x2; int x3; })a0 right:(struct { int x0; int x1; int x2; int x3; })a1 data:(struct { BOOL x0; int x1; int x2; float x3; float x4; int x5; int x6; int x7; int x8; float x9; float x10; int x11; int x12; int x13; int x14; } *)a2 repairSize:(float)a3 autoPupilTonality:(BOOL)a4 faceIndex:(int)a5; - (void)autoRepairWithFaceArray:(id)a0; - (int)averageValueFromY:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a0 withinSkinMask:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a1 butOutsideAlpha:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a2; - (BOOL)computeTrimmedBitmaps:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a0 newY:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a1 newCbCr:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a2 IR:(struct { int x0; int x1; int x2; int x3; })a3 newTrimY:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a4 newTrimCbCr:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a5 returningYR:(struct { int x0; int x1; int x2; int x3; } *)a6 andCbCrR:(struct { int x0; int x1; int x2; int x3; } *)a7; - (float)confidenceWithIOD:(float)a0 repair:(int)a1 andProminenceDifference:(int)a2; - (struct CGImage { } *)createRepairedImage; - (int)distanceMaskFromPolyToCb:(int)a0 Cr:(int)a1; - (void)executeRepair:(id)a0; - (void)executeRepairArray:(id)a0; - (BOOL)extractAndGatherProminencesWithRect:(struct { int x0; int x1; int x2; int x3; })a0 face:(struct { BOOL x0; int x1; int x2; float x3; float x4; int x5; int x6; int x7; int x8; float x9; float x10; int x11; int x12; int x13; int x14; } *)a1 faceIndex:(int)a2 left:(BOOL)a3 maxwindowsize:(float)a4 repairsize:(float)a5 returningRedHopper:(struct { int x0; struct { float x0; int x1; int x2; float x3; float x4; float x5; int x6; int x7; float x8; } x1[4]; } *)a6 whiteHopper:(struct { int x0; struct { float x0; int x1; int x2; float x3; float x4; float x5; int x6; int x7; float x8; } x1[4]; } *)a7 redChannel:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a8 redChannelMask:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a9; - (float)extractAverageFaceY:(struct { BOOL x0; int x1; int x2; float x3; float x4; int x5; int x6; int x7; int x8; float x9; float x10; int x11; int x12; int x13; int x14; } *)a0 contrast:(float *)a1 faceIndex:(int)a2; - (BOOL)extractReusableAlignedBitmapsAroundPoint:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a0 YR:(struct { int x0; int x1; int x2; int x3; })a1 subYBitmap:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a2 subCbCrBitmap:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a3; - (BOOL)forceLoValue; - (BOOL)gatherProminencesWithC:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a0 MC:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a1 altC:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a2 altMC:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a3 maxwindowsize:(int)a4 repairsize:(int)a5 IR:(struct { int x0; int x1; int x2; int x3; })a6 fr:(struct { BOOL x0; int x1; int x2; float x3; float x4; int x5; int x6; int x7; int x8; float x9; float x10; int x11; int x12; int x13; int x14; } *)a7 intoHopper:(struct { int x0; struct { float x0; int x1; int x2; float x3; float x4; float x5; int x6; int x7; float x8; } x1[4]; } *)a8 faceIndex:(int)a9 left:(BOOL)a10; - (BOOL)gatherProminencesWithC:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a0 MC:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a1 maxwindowsize:(int)a2 repairsize:(int)a3 IR:(struct { int x0; int x1; int x2; int x3; })a4 fr:(struct { BOOL x0; int x1; int x2; float x3; float x4; int x5; int x6; int x7; int x8; float x9; float x10; int x11; int x12; int x13; int x14; } *)a5 intoHopper:(struct { int x0; struct { float x0; int x1; int x2; float x3; float x4; float x5; int x6; int x7; float x8; } x1[4]; } *)a6 faceIndex:(int)a7 left:(BOOL)a8 coss:(float[10])a9 sins:(float[10])a10 bitmapName:(char *)a11; - (BOOL)getBlockSetWithImage:(struct CGImage { } *)a0 into:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a1 width:(unsigned long long)a2 height:(unsigned long long)a3; - (BOOL)getBool:(BOOL *)a0 d:(id)a1 s:(id)a2; - (BOOL)getDataProviderBytePtrWithImage:(struct CGImage { } *)a0 into:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a1 width:(unsigned long long)a2 height:(unsigned long long)a3; - (BOOL)getDataProviderCopyWithImage:(struct CGImage { } *)a0 into:(struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } *)a1; - (BOOL)getFloat:(float *)a0 d:(id)a1 s:(id)a2; - (BOOL)getInt:(int *)a0 d:(id)a1 s:(id)a2; - (BOOL)infillBackground; - (id)initWithCGImage:(struct CGImage { } *)a0 cameraModel:(id)a1; - (id)initWithDeskView:(id)a0 andFrame:(struct { char x0[256]; char x1[32]; struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } x2; int x3; int x4; struct { int x0; int x1; int x2; int x3; } x5; struct CGColorSpace *x6; unsigned int x7; int x8; int x9; BOOL x10; float x11; } *)a1; - (id)initWithExternalBuffer:(char *)a0 size:(struct CGSize { double x0; double x1; })a1 rowBytes:(unsigned long long)a2; - (id)initWithExternalBuffer:(char *)a0 subRectangle:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 fullSize:(struct CGSize { double x0; double x1; })a2 rowBytes:(unsigned long long)a3 cameraModel:(id)a4; - (id)initWithFrameExternalBuffer:(struct { char x0[256]; char x1[32]; struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } x2; int x3; int x4; struct { int x0; int x1; int x2; int x3; } x5; struct CGColorSpace *x6; unsigned int x7; int x8; int x9; BOOL x10; float x11; } *)a0; - (id)initWithIOSurface:(struct __IOSurface { } *)a0 format:(int)a1 colorSpace:(struct CGColorSpace { } *)a2 cameraModel:(id)a3; - (void)initializeNonDebugVariables; - (void)insertIntoProminenceVettingHopper:(struct { int x0; struct { float x0; int x1; int x2; float x3; float x4; float x5; int x6; int x7; float x8; } x1[4]; } *)a0 max:(int)a1 outside:(int)a2 confidence:(float)a3 distance:(float)a4 row:(int)a5 column:(int)a6 IOD:(float)a7; - (int)lastRepairTag; - (BOOL)logRepairs; - (float)lowerRepairSize:(float)a0; - (float)lowerRepairSizeFraction:(float)a0; - (int)nRepairs; - (void)orientRectangleMinX:(float *)a0 maxX:(float *)a1 minY:(float *)a2 maxY:(float *)a3; - (void)prepareLineFunctions; - (BOOL)pupilShadeAlignment; - (int)redEyeRemovalWithData:(struct { int x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; int x8; int x9; BOOL x10; struct { int x0; int x1; int x2; int x3; } x11; struct { int x0; int x1; int x2; int x3; } x12; int x13; int x14; int x15; float x16; struct { void *x0; void /* function */ *x1; int x2; float x3; BOOL x4; int x5; float x6; float x7; float x8; } x17; struct { int x0; int x1; int x2; int x3; } x18; })a0; - (int)redEyeThresholdKind; - (void)redoLastRepair; - (int)redoRepairWithTag:(int)a0 IOD:(float)a1; - (BOOL)renderAlpha; - (BOOL)renderSpecularShine; - (id)repairArray; - (struct { int x0; int x1; BOOL x2; BOOL x3; float x4; int x5; int x6; int x7; int x8; })repairDecisionWithFaceRecord:(struct { BOOL x0; int x1; int x2; float x3; float x4; int x5; int x6; int x7; int x8; float x9; float x10; int x11; int x12; int x13; int x14; } *)a0 left:(BOOL)a1 redHopper:(struct { int x0; struct { float x0; int x1; int x2; float x3; float x4; float x5; int x6; int x7; float x8; } x1[4]; } *)a2 whiteHopper:(struct { int x0; struct { float x0; int x1; int x2; float x3; float x4; float x5; int x6; int x7; float x8; } x1[4]; } *)a3; - (void)repairExternalBuffer; - (struct { int x0; struct CGPoint { double x0; double x1; } x1; int x2; int x3; int x4; int x5; struct { char *x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; float x8; } x6; struct { int x0; int x1; int x2; int x3; } x7; struct { int x0; int x1; int x2; int x3; } x8; BOOL x9; struct { int x0; int x1; int x2; int x3; } x10; int x11; BOOL x12; float x13; struct { int x0; int x1; int x2; int x3; int x4; int x5; int x6; int x7; int x8; int x9; BOOL x10; struct { int x0; int x1; int x2; int x3; } x11; struct { int x0; int x1; int x2; int x3; } x12; int x13; int x14; int x15; float x16; struct { void *x0; void /* function */ *x1; int x2; float x3; BOOL x4; int x5; float x6; float x7; float x8; } x17; struct { int x0; int x1; int x2; int x3; } x18; } x14; struct { struct CGPoint { double x0; double x1; } x0; int x1; float x2; float x3; float x4; int x5; struct { int x0; int x1; int x2; int x3; } x6; float x7; BOOL x8; int x9; int x10; int x11; int x12; float x13; float x14; float x15; float x16; } x15; } *)repairWithTag:(int)a0; - (void)setAutoPupilTonality:(BOOL)a0; - (void)setFaceIndex:(int)a0; - (void)setForceLoValue:(BOOL)a0; - (void)setInfillBackground:(BOOL)a0; - (void)setLoValue:(int)a0; - (void)setLogRepairs:(BOOL)a0; - (void)setPupilShadeAlignment:(BOOL)a0; - (void)setRedEyeThresholdKind:(int)a0; - (void)setRenderSpecularShine:(BOOL)a0; - (void)setSpecularSize:(float)a0; - (void)setSpecularSoftness:(float)a0; - (void)skinInit; - (float)specularSize; - (float)specularSoftness; - (struct { int x0; int x1; int x2; int x3; })standardTemplate; - (void)undoRepair:(int)a0; - (float)upperRepairSize:(float)a0; - (float)upperRepairSizeFraction:(float)a0; @end