//
//  GMFaceBaseVC.h
//  Gengmei
//
//  Created by 刘鹿杰 on 2019/7/25.
//  Copyright © 2019 更美互动信息科技有限公司. All rights reserved.
//


#import "GMDrawDottedView.h"
@class GMFaceCommonPositionModel;
@class GMFaceCommonSubtitleModel;
@class GMFaceCommonContentModel;
@class GMTitleView;
@class ALFaceRectModel;

NS_ASSUME_NONNULL_BEGIN

@interface GMFaceBaseVC : WMBaseViewController

@property (nonatomic, strong) GMImageView *picImageView;    //  当前页面图片
@property (nonatomic, strong) GMImageView *titleImageView;  //  页面标题imageView
@property (nonatomic, assign) BOOL stopGCD;                 //  是否停用GCD， 结束当前页面动画
@property (nonatomic, strong) NSMutableArray *allViewLine;   // 页面需要消失的线

#pragma mark - 录屏页面第一页 - 画线通用方法
/**
 面部分析黄金三角文字展示
 */
-(void)creatFourWord:(NSArray *)triangleArray
            addModel:(GMFaceCommonContentModel *)model;
/**
 面部分析 画下巴线条
 */
-(void)addChinLine:(NSArray *)chinArray
         descModel:(GMFaceCommonContentModel *)descModel;
/**
 面部分析 画竖线加描述文字
 */
- (void)creatVorticalDescLine:(NSArray *)pModelArray
                      content:(GMFaceCommonContentModel *)descModel
                       offset:(CGFloat)offsetX;
/**
 面部分析 画四条横线
 */
- (void)creatHorizontalLine:(NSMutableArray *)pointArray;


#pragma mark - 第五个页面动画 - 画线通用方法
/**
 眉眼分析 - 四条虚线箭头带文字
 */
-(void)fiveViewdrawDottodlineWithEye:(NSArray<GMFaceCommonPositionModel *> *)eyeArray
                             eyebrow:(NSArray<GMFaceCommonPositionModel *> *)eyebroArray
                            modelAry:(NSArray *)modelAry;

/**
 眉眼分析 - 横线和竖线
 */
- (void)fiveViewdrawlineWithEye:(NSArray<GMFaceCommonPositionModel *> *)eyeNewPoint
                        eyebrow:(NSArray<GMFaceCommonPositionModel *> *)eyebrowNewPoint;


#pragma mark - 第六个页面动画 - 画线通用方法
/**
 第六个页面虚线箭头带文字绘画方法
 */
- (void)drawDottodLineWithPointArray:(NSArray<GMFaceCommonPositionModel *> *)pointArray
                             content:(GMFaceCommonContentModel *)contentModel
                                type:(GMLineType)lineType
                               place:(GMWordPlace)place;
/**
 第六个页面水平线绘画方法
 */
- (void)drawSixhLine:(NSArray<GMFaceCommonPositionModel *> *)pointXArray
          widthArray:(NSArray<NSNumber *> *)widthArray;
/**
 第六个页面竖线方法
 */
- (void)drawSixVerticalLine:(NSArray<GMFaceCommonPositionModel *> *)pointXArray
                 hightArray:(NSArray<NSNumber *> *)hightArray;

#pragma mark - 公用方法
/**
创建带描述文字的竖线 文字在右侧
@param contentModel 描述文字
@param pointArray 画线的点位传两个点过来
*/
-(void)creatVerticalDottedLineWith:(GMFaceCommonContentModel *)contentModel addArray:(NSArray *)pointArray offset:(CGFloat)offset;
/**
计算两点之间的水平宽度
*/
-(CGFloat)calculateWidthWithArray:(NSArray*)array;
/**
返回中心点model
*/
-(GMFaceCommonPositionModel *)calculateCenterModelWithArray:(NSArray*)array;
/**
 更新背景图片的尺寸
 */
- (void)updatePicImageViewframeP;
/**
 给一个矩形框，返回一个宽和高
 */
- (CGSize)getWidthAddHightWithRect:(NSArray<GMFaceCommonPositionModel *> *)rectArray;
/**
 计算中心点坐标
 */
-(NSArray *)midlePointWithModel:(ALFaceRectModel *)model;
/**
 计算放大后的点位置
 */
-(NSMutableArray *)bigImagePointWithScale:(CGFloat)scale
                                  offsetX:(CGFloat)offsetX
                                  offsetY:(CGFloat)offsetY
                               poinyArray:(NSArray *)pointArray;
/**
 左侧描述弹出框方法封装
 */
- (void)leftPopTitleWith:(NSMutableArray *)viewLineArray
             AddSubtitle:(NSArray *)subTitle
               Animation:(CGFloat)duration;
/**
 添加描述文字单个小View
 */
- (GMTitleView *)addDectTitleNameWithModel:(GMFaceCommonSubtitleModel *)tempModel
                                 viewFrame:(CGRect)frame;
/**
 创建黄金三角类似的文字
 */
- (GMLabel *)creatLabelWithText:(NSString *)text
                           Font:(CGFloat)font
                          Color:(UIColor *)color
                           Size:(CGRect)frame;
/**
 画线方法
 */
- (CAShapeLayer *)drawLineMethod:(NSArray<GMFaceCommonPositionModel *>*)positionModelArray
                           Color:(UIColor *)color;
/**
 清除页面线条View
 */
- (void)clearFristViewLineView;

@end

NS_ASSUME_NONNULL_END
