initial commit

This commit is contained in:
Caleb
2026-03-01 15:59:27 +08:00
commit a9e97d56cb
1426 changed files with 172367 additions and 0 deletions

View File

@@ -0,0 +1,193 @@
//
// FUMakeup.h
// FURenderKit
//
// Created by Chen on 2021/1/6.
//
#import "FUItem.h"
#import <Foundation/Foundation.h>
#import "FUStruct.h"
#import "FUMakeupValueDefine.h"
NS_ASSUME_NONNULL_BEGIN
@interface FUMakeup : FUItem
/// 美妆开关默认为YES
@property (nonatomic, assign) BOOL isMakeupOn;
/// 在解绑妆容时是否清空除口红以外的妆容NO表示不清空YES表示清空口红可由强度进行设置
@property (nonatomic, assign) BOOL isClearMakeup;
/// 美妆分割YES为开NO为关默认NO
/// @note 建议在高端机型中使用
@property (nonatomic, assign) BOOL makeupSegmentation;
/// 口红类型
/// @see FUMakeupLipType
@property (nonatomic, assign) FUMakeupLipType lipType;
/// 是否开启口红高光YES为开NO为关
@property (nonatomic, assign) BOOL isLipHighlightOn;
/// 口红双色开关NO为关闭YES为开启
/// @note 如果想使用咬唇需要开启双色开关并且将makeup_lip_color2的值都设置为0
@property (nonatomic, assign) BOOL isTwoColor;
/// 眉毛变形类型
/// @see FUMakeupBrowWarpType
/// @note 如果browWarp为NO眉毛变形类型设置失效
@property (nonatomic, assign) FUMakeupBrowWarpType browWarpType;
/// 是否使用眉毛变形 YES为开 NO为关默认为NO
@property (nonatomic, assign) BOOL browWarp;
@end
#pragma mark - 主题妆
@interface FUMakeup (Subject)
/// 更新组合装
/// @param makeupPackage 子妆
/// @param needCleanSubItem 是否清除老子妆
- (void)updateMakeupPackage:(FUItem * __nullable)makeupPackage needCleanSubItem:(BOOL)needCleanSubItem;
/// 整体妆容程度值
@property (nonatomic, assign) double intensity;
/// 整体妆容滤镜程度值
@property (nonatomic, assign) double filterIntensity;
/// 局部妆容对象,属于组合装内部的具体部位(眉毛、眼镜、鼻子等)自定义设置
@property (nonatomic, strong, nullable) FUItem *subEyebrow;
@property (nonatomic, strong, nullable) FUItem *subEyeshadow;
@property (nonatomic, strong, nullable) FUItem *subPupil;
@property (nonatomic, strong, nullable) FUItem *subEyelash;
@property (nonatomic, strong, nullable) FUItem *subEyeliner;
@property (nonatomic, strong, nullable) FUItem *subBlusher;
@property (nonatomic, strong, nullable) FUItem *subFoundation;
@property (nonatomic, strong, nullable) FUItem *subHighlight;
@property (nonatomic, strong, nullable) FUItem *subShadow;
@property (nonatomic, strong, nullable) FUItem *subLip;
@end
#pragma mark - 图层混合模式
@interface FUMakeup (blend)
@property (nonatomic, assign) FUMakeupBlendType blendTypeEyeshadow1;
@property (nonatomic, assign) FUMakeupBlendType blendTypeEyeshadow2;
@property (nonatomic, assign) FUMakeupBlendType blendTypeEyeshadow3;
@property (nonatomic, assign) FUMakeupBlendType blendTypeEyeshadow4;
@property (nonatomic, assign) FUMakeupBlendType blendTypeEyelash;
@property (nonatomic, assign) FUMakeupBlendType blendTypeEyeliner;
@property (nonatomic, assign) FUMakeupBlendType blendTypeBlusher1;
@property (nonatomic, assign) FUMakeupBlendType blendTypeBlusher2;
@property (nonatomic, assign) FUMakeupBlendType blendTypePupil;
@end
#pragma mark - 子妆程度值
@interface FUMakeup (intensity)
/// 粉底程度值
@property (nonatomic, assign) double intensityFoundation;
/// 口红程度值
@property (nonatomic, assign) double intensityLip;
/// 口红高光程度值
/// @note 暂时只用于lipType=FUMakeupLipTypeMoisturizing的情况
@property (nonatomic, assign) double intensityLipHighlight;
/// 腮红程度值
@property (nonatomic, assign) double intensityBlusher;
/// 眉毛程度值
@property (nonatomic, assign) double intensityEyebrow;
/// 眼影程度值
@property (nonatomic, assign) double intensityEyeshadow;
/// 眼线程度值
@property (nonatomic, assign) double intensityEyeliner;
/// 睫毛程度值
@property (nonatomic, assign) double intensityEyelash;
/// 高光程度值
@property (nonatomic, assign) double intensityHighlight;
/// 阴影程度值
@property (nonatomic, assign) double intensityShadow;
/// 美瞳程度值
@property (nonatomic, assign) double intensityPupil;
@end
#pragma mark - 子妆颜色
@interface FUMakeup (Color)
/// 粉底颜色
@property (nonatomic, assign) FUColor foundationColor;
/// 口红颜色
@property (nonatomic, assign) FUColor lipColor;
/// 口红颜色2
@property (nonatomic, assign) FUColor lipColor2;
/// 腮红颜色
@property (nonatomic, assign) FUColor blusherColor;
/// 眉毛颜色
@property (nonatomic, assign) FUColor eyebrowColor;
/// 眼线颜色
@property (nonatomic, assign) FUColor eyelinerColor;
/// 睫毛颜色
@property (nonatomic, assign) FUColor eyelashColor;
/// 高光颜色
@property (nonatomic, assign) FUColor highlightColor;
/// 阴影颜色
@property (nonatomic, assign) FUColor shadowColor;
/// 美瞳颜色
@property (nonatomic, assign) FUColor pupilColor;
/// 眼影特殊处理
/// @note 如果is_two_color为1会启用这个颜色外圈颜色为color2内圈颜色为color如果color都为0则外圈为透明即为咬唇效果
/// - Parameters:
/// - color: 第一层眼影调色参数数组的第四个值对应alpha为0时会关闭这层的调色功能大于0时会开启
/// - color1: 第二层眼影调色参数数组的第四个值对应alpha为0时会关闭这层的调色功能大于0时会开启内部暂时未处理使用color2和color3
/// - color2: 第三层眼影调色参数数组的第四个值对应alpha为0时会关闭这层的调色功能大于0时会开启
/// - color3: 第四层眼影调色参数数组的第四个值对应alpha为0时会关闭这层的调色功能大于0时会开启
- (void)setEyeColor:(FUColor)color
color1:(FUColor)color1
color2:(FUColor)color2
color3:(FUColor)color3;
@end
@interface FUMakeup (landMark)
/// 这个参数控制是否使用修改过得landmark点1为使用0为不使用
@property (nonatomic, assign) int isUserFix;
/// 这个参数为一个数组,需要客户端传递一个数组进去
/// @note 传递的数组的长度为 150*人脸数,也就是将所有的点位信息存储的数组中传递进来
@property (nonatomic, assign) FULandMark fixMakeUpData;
@end
NS_ASSUME_NONNULL_END