@class NSObject, VCPPnPSolver, VCPFaceTensorModel; @protocol OS_dispatch_group, OS_dispatch_queue; @interface VCPFaceShapeModel : NSObject { VCPFaceTensorModel *_tensorModel; int _numVertices; float *_curMesh; float *_cur2D; int _numInternalLms; int *_lmCoord; float *_lmWeight; int _numBoundaryLms; int *_boundaryLmIndices; int _numBoundaryVertices; int *_boundaryVertices; BOOL *_boundaryLandmarkValidity; struct { float x0; float x1; int x2; } *_chPts; BOOL *_chPtSelected; BOOL _boundaryLmUpdated; int _chCount; float *_curBlendshapes; float *_curCoeff; float *_curExprWeights; float *_prevExprWeights; float *_exprWeightDiagMatrix; float *_transformedCoeff; float *_blendShapeDelta; float _trans[8]; float _intrinsicMatrix[9]; float _extrinsicMatrix[12]; float _eulerAngle[3]; float _rotMatrix[9]; float _LM2D[126]; float _LM3D[189]; float *_lm3dBlendshapes; float *_lm3dMeanBlendshapes; float *_lm3dBlendshapeComponents; int _numFrmsSinceLastShapeUpdate; BOOL _shapeUpdateInProgress; VCPPnPSolver *_poseSolver; NSObject<OS_dispatch_group> *_updateShapeGroup; NSObject<OS_dispatch_queue> *_updateShapeQueue; float *_asyncBlendshapes; float *_asyncLmBlendshapes; float _asyncExtMat[12]; float _asyncLm2d[126]; float _asyncWeights[51]; BOOL _identityInit; } @property int processingMode; @property (readonly) void *meshVertices; @property (readonly) unsigned long long vertexCount; @property int detectionModeCounterShapeModel; - (void)dealloc; - (id)initWithMode:(int)a0; - (void).cxx_destruct; - (id)blendShapes; - (struct { void /* unknown type, empty encoding */ x0[4]; })getPose; - (void)calculateBlendshapeWeights:(float *)a0 prevWeights:(float *)a1 lmBlendshapes:(float *)a2 maxIter:(int)a3; - (void)calculateIdentityCoefficients:(float *)a0 extrinsicMatrix:(float *)a1 pts2D:(float *)a2 exprWeights:(float *)a3 lm3DMeanBlendshapes:(float *)a4 lm3DComponents:(float *)a5 maxIter:(int)a6; - (void)calculatePosePnpSolver:(int)a0; - (BOOL)fitOneImage:(float *)a0; - (void)getEulerAngle:(float *)a0; - (void)getInternal3dLandmarksCoordinates:(const float *)a0 lm3dPos:(float *)a1; - (void)getOneInternalLandmarkCoordinates:(const float *)a0 lmCoord:(const int *)a1 lmWeight:(const float *)a2 lm3dPos:(float *)a3; - (struct matrix<double, 6L, 1L, dlib::memory_manager_stateless_kernel_1<char>, dlib::row_major_layout> { struct layout<double, 6L, 1L, dlib::memory_manager_stateless_kernel_1<char>, 1> { double x0[6]; } x0; })getPoseParam; - (BOOL)isIdentityInit; - (void)moveBoundaryLandmarks:(const float *)a0 output:(float *)a1 isInput:(BOOL)a2; - (BOOL)optimizeProjectionMatrix:(int)a0 tracking:(BOOL)a1 firstPass:(BOOL)a2; - (void)project3Dto2D:(float *)a0 intrinsinc:(float *)a1 extrinsic:(float *)a2 numVert:(int)a3 out2dpts:(float *)a4; - (void)projectAndUpdateBoundary; - (void)reestimateProjectionMatrixPnP; - (void)resetIdentityAndExpressions; - (int)setCameraIntrinsics:(float)a0 uc:(float)a1 vc:(float)a2; - (int)setupModel:(int)a0; - (BOOL)trackFaceMesh:(float *)a0; - (void)updateBoundary3dLandmarkBlendshapes:(const float *)a0 numBlendshapes:(int)a1 pts2D:(const float *)a2 lm2D:(const float *)a3 lmBlendshapes:(float *)a4; - (void)updateBoundaryLandmarkCoordinates:(const float *)a0 pts2D:(const float *)a1 lm2D:(const float *)a2 lm3dPos:(float *)a3; - (void)updateBoundaryLmForShapeOptimization; - (void)updateFocalLengthInPixels:(float)a0; - (void)updateIdentityShape:(float *)a0; - (void)updateIntrinsic:(float)a0 vc:(float)a1; - (void)updateMeshAndLm3dAfterExpressionChange; - (void)updateMeshVertices; - (void)updateShapeCoeff:(float *)a0 extrinsicMatrix:(float *)a1 pts2D:(float *)a2 exprWeights:(float *)a3 outputblendshapes:(float *)a4; @end