//
//  ALFacePointsModel.h
//  GMAlpha
//
//  Created by Mikasa on 2019/5/14.
//  Copyright © 2019 Gengmei. All rights reserved.
//
/**
 * 面部点信息Model
 */
@import GMBase;
@interface CGPointModel : GMObject
@property (nonatomic, assign) CGFloat x;
@property (nonatomic, assign) CGFloat y;
@end


@interface ALKeyPointsModel : GMObject

@property (nonatomic, copy) NSString *supTitle;
@property (nonatomic, copy) NSString *subTitle;
@property (nonatomic, copy) NSString *widthTitle;
@property (nonatomic, copy) NSString *angleTitle;
@property (nonatomic, assign) CGFloat angle;
@property (nonatomic, strong) NSMutableArray <NSArray *> *keypoints;
@property (nonatomic, strong) NSMutableArray <CGPointModel *> *keyPointModelArray;
@property (nonatomic, strong) NSMutableArray <NSArray *>*linepoints;

@end

@interface ALFaceAnalysisModel : GMObject
@property (nonatomic, strong) ALKeyPointsModel *santing;
@property (nonatomic, strong) ALKeyPointsModel *wuyan;
@property (nonatomic, strong) ALKeyPointsModel *contour;
@property (nonatomic, copy) NSString *conclusion;
@property (nonatomic, copy) NSString *desc;
@end

@interface ALNoseMouthAnalysisModel : GMObject
@property (nonatomic, strong) NSMutableArray *coreRect;
@property (nonatomic, copy) NSString *noseTitle;
@property (nonatomic, strong) NSMutableArray <NSArray *>*noseKeypoints;
@property (nonatomic, strong) NSMutableArray <NSArray *>*noseLinepoints;
@property (nonatomic, copy) NSString *mouthUpperTitle;
@property (nonatomic, strong) NSMutableArray <NSArray *>*mouthUpperKeypoints;
@property (nonatomic, strong) NSMutableArray <NSArray *>*mouthUpperLinepoints;
@property (nonatomic, copy) NSString *mouthLowerTitle;
@property (nonatomic, strong) NSMutableArray <NSArray *>*mouthLowerKeypoints;
@property (nonatomic, strong) NSMutableArray <NSArray *>*mouthLowerLinepoints;

@property (nonatomic, copy) NSString *conclusion;
@property (nonatomic, copy) NSString *desc;
@end

@interface ALEyeAnalysisModel : GMObject
@property (nonatomic, strong) NSMutableArray *coreRect;
@property (nonatomic, copy) NSString *leftEyebrowTitle;
@property (nonatomic, strong) NSMutableArray <NSArray *>*leftEyebrowKeypoints;
@property (nonatomic, copy) NSString *leftEyeSupTitle;
@property (nonatomic, copy) NSString *leftEyeSubTitle;
@property (nonatomic, strong) NSMutableArray <NSArray *>*leftEyeKeypoints;
@property (nonatomic, copy) NSString *conclusion;
@property (nonatomic, copy) NSString *desc;
@property (nonatomic, strong) NSMutableArray <NSArray *>*leftEyebrowLinepoints;
@property (nonatomic, strong) NSMutableArray <NSArray *>*leftEyeLinepoints;
@end


@interface ALAnalysisModel : GMObject
@property (nonatomic, strong) ALFaceAnalysisModel *faceAnalysis;
@property (nonatomic, strong) ALNoseMouthAnalysisModel *noseMouthAnalysis;
@property (nonatomic, strong) ALEyeAnalysisModel *eyebrowEyeAnalysis;
@end

@interface ALFaceRectModel : GMObject
+ (ALFaceRectModel *)creatRectModelWithTop:(CGFloat)top right:(CGFloat)right left:(CGFloat)left bottom:(CGFloat)bottom;
@property (nonatomic, assign) CGFloat top;
@property (nonatomic, assign) CGFloat right;
@property (nonatomic, assign) CGFloat left;
@property (nonatomic, assign) CGFloat bottom;
@property (nonatomic, assign) CGFloat roll;
@end

/**
 太阳穴Model
 */
@interface ALFaceTempleInfoModel : GMObject
@property (nonatomic, assign) CGFloat leftX;
@property (nonatomic, assign) CGFloat leftY;
@property (nonatomic, assign) CGFloat rightX;
@property (nonatomic, assign) CGFloat rightY;
@end

@interface ALFaceModel : GMObject
@property (nonatomic, copy) NSString *id;
@property (nonatomic, strong) ALFaceRectModel *rect;
@property (nonatomic, copy) NSString *age;
@property (nonatomic, copy) NSString *gender;
@property (nonatomic, assign) CGFloat roll;
@property (nonatomic, copy) NSString *yaw;
@property (nonatomic, copy) NSString *pitch;
@property (nonatomic, strong) NSMutableArray <NSArray *>*landmark;

@property (nonatomic, strong) ALAnalysisModel *analysis;

/**
 太阳穴
 */
@property (nonatomic, strong) ALFaceTempleInfoModel *templeInfo;
@property (nonatomic, assign) CGFloat imageX;
@property (nonatomic, assign) CGFloat imageY;
@property (nonatomic, assign) CGFloat imageW;
@property (nonatomic, assign) CGFloat imageH;
@property (nonatomic, strong) UIImage *image;

@end

@protocol ALFaceModel @end
@interface ALFacePointsModel : GMObject
@property (nonatomic, copy) NSString *imgUrl;
@property (nonatomic, copy) NSString *time_used;
@property (nonatomic, strong) NSArray<ALFaceModel> *faces;
@property (nonatomic, assign) BOOL isWhole;

@end

