//
//  GMFaceV3Model.h
//  Gengmei
//
//  Created by Q14 on 2019/7/1.
//  Copyright © 2019 更美互动信息科技有限公司. All rights reserved.
//

#import "ALFacePointsModel.h"
@protocol GMFaceCommonContentModel @end
@interface GMFaceCommonContentModel : GMObject
@property (nonatomic, copy) NSString *value;
@property (nonatomic, copy) NSString *title;
@end


@protocol GMFaceCommonPositionModel  @end
@interface GMFaceCommonPositionModel : GMObject
+ (GMFaceCommonPositionModel *)creatFaceCommonModelWithCGPoint:(CGPoint)point;
+ (GMFaceCommonPositionModel *)creatFaceCommonModelWithX:(CGFloat)pointX addY:(CGFloat)pointY;
@property (nonatomic, assign) CGFloat x;
@property (nonatomic, assign) CGFloat y;
@end

@protocol GMFaceCommonSubtitleModel @end
@interface GMFaceCommonSubtitleModel : GMObject
@property (nonatomic, copy) NSString *content;
@property (nonatomic, copy) NSString *best;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, assign) CGFloat hight;
@end


@interface GMFaceFeatureInfoModel : GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointsLeft;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointsRight;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, copy) NSString *title;
@end


@interface GMFaceEyeEyebrowInfo : GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, assign) CGFloat eyebrowAngle;
@property (nonatomic, assign) CGFloat eyeAngle;
@property (nonatomic, strong) ALFaceRectModel *eyebrowRect;
@property (nonatomic, strong) ALFaceRectModel *eyeRect;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointsEye;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointsEyeBrow;
@end


@interface GMFaceHeadpose : GMObject
@property (nonatomic, assign) CGFloat yawAngle;
@property (nonatomic, assign) CGFloat pitchAngle;
@property (nonatomic, assign) CGFloat rollAngle;
@end


@interface GMFaceSantingInfo : GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *realLinePoints;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *dottedPoints;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, copy) NSString *title;
@end

@protocol GMFacePointsMouthInfoModel @end
@interface GMFacePointsMouthInfoModel : GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *points;
@end

@interface GMFaceMouthNoseInfo : GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointsNose;
@property (nonatomic, strong) NSArray<GMFacePointsMouthInfoModel> *pointsMouth;
@property (nonatomic, strong) ALFaceRectModel *mouthRect;
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, copy) NSString *title;
@end

@interface GMFaceGoldTriangleInfo: GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointsTriangle;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointsChin;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointsMouth;
@end

// 颞部颧宽比数据
@interface GMFaceNiebuquankuanInfo: GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *niebuPoints;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *quankuanPoints;
@end

// 人中嘴唇颏底比
@interface GMFaceRZZCInfoModel: GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *renzhongPoints;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *zuichunPoints;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *kediPoints;
@end

// 瞳距鼻翼宽比
@interface GMFaceTongJuBiModel: GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *tongjuPoints;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *biyiPoints;
@end

// 双C线角度
@interface GMFaceCLineModel: GMObject
@property (nonatomic, strong) NSArray<GMFaceCommonContentModel> *content;
@property (nonatomic, strong) NSArray<GMFaceCommonSubtitleModel> *subTitle;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, strong) NSArray<GMFaceCommonPositionModel> *pointList;
@end

@interface GMFaceTempleInfoModel : GMObject
@property (nonatomic, assign) CGFloat leftX;
@property (nonatomic, assign) CGFloat leftY;
@property (nonatomic, assign) CGFloat rightX;
@property (nonatomic, assign) CGFloat rightY;
@end

@interface GMFaceAnalysisV3Model : GMObject
@property (nonatomic, strong) GMFaceFeatureInfoModel *featureInfo;
@property (nonatomic, strong) GMFaceEyeEyebrowInfo *eyeEyebrowInfo;
@property (nonatomic, strong) GMFaceNiebuquankuanInfo *niebuquankuanInfo;   // 颞部颧宽比数据
@property (nonatomic, strong) GMFaceRZZCInfoModel *renzhongzuichunkediInfo; // 人中嘴唇
@property (nonatomic, strong) GMFaceTongJuBiModel *tongjubiyiInfo;          // 瞳距鼻翼宽比
@property (nonatomic, strong) GMFaceCLineModel *shuangCxianInfo;            // 双C线角度
@property (nonatomic, strong) GMFaceSantingInfo *wuyanInfo;
@property (nonatomic, strong) GMFaceSantingInfo *santingInfo;
@property (nonatomic, strong) GMFaceMouthNoseInfo *mouthNoseInfo;
@property (nonatomic, strong) GMFaceGoldTriangleInfo *goldTriangleInfo;
@property (nonatomic, strong) GMFaceTempleInfoModel *templeInfo;
@end

@protocol GMFaceV3Model @end
@interface GMFaceV3Model : GMObject
@property (nonatomic, copy) NSString *gender;
@property (nonatomic, assign) NSInteger age;
@property (nonatomic, strong) ALFaceRectModel *rect;
@property (nonatomic, strong) GMFaceAnalysisV3Model *analysis;
@property (nonatomic, strong) GMFaceHeadpose *headpose;
@property (nonatomic, strong) GMFaceTempleInfoModel *templeInfo;

@property (nonatomic, strong) UIImage *image;

@property (nonatomic, assign) CGFloat imageX;
@property (nonatomic, assign) CGFloat imageY;
@property (nonatomic, assign) CGFloat imageW;
@property (nonatomic, assign) CGFloat imageH;
@end


@interface GMFaceV3PointsModel : GMObject
@property (nonatomic, copy) NSString *imgUrl;
@property (nonatomic, copy) NSString *timeUsed;
@property (nonatomic, strong) NSArray<GMFaceV3Model> *faces;
@end
