You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

140 lines
3.5 KiB

//
// JCDoodleAction.h
// JCSDKOC
//
// Created by young on 2017/12/29.
// Copyright © 2017年 juphoon. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "JCDoodleConstant.h"
#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
#define JCColor UIColor
#elif TARGET_OS_MAC
#define JCColor NSColor
#endif
/**
* @brief 涂鸦操作类
*/
@interface JCDoodleAction : NSObject
/**
* @brief 类型,可在JCDoodleActionExtraBase基础上来扩展自定义类型
*/
@property (nonatomic) JCDoodleActionType actionType;
/**
* @brief 发起者
*/
@property (nullable, nonatomic, copy) NSString *userId;
/**
* @brief 自定义数据
*/
@property (nullable, nonatomic, copy) NSString *userDefined;
/**
* @brief 用于多页涂鸦,默认为0
*/
@property (nonatomic) NSUInteger pageNumber;
/**
* @brief 设置涂鸦轨迹或橡皮擦宽度,默认为0
*/
@property (nonatomic) float brushWidth;
/**
* @brief 设置涂鸦轨迹的颜色,默认为nil
*/
@property (nullable, nonatomic, copy) JCColor *brushColor;
/**
* @brief 设置贴图 unicode。当贴图为 emoji 表情时,需要设置 unicode。
*/
@property (nullable, nonatomic, copy) NSString *stickerUnicode;
/**
* @brief 设置 stickerName。当贴图为自定义图片时,需要设置 stickerName。
*/
@property (nullable, nonatomic, copy) NSString *stickerName;
/**
* @brief 设置逻辑 x 值,逻辑坐标点由屏幕坐标点根据屏幕尺寸转化。
*/
@property (nonatomic) float x;
/**
* @brief 设置逻辑 y 值,逻辑坐标点由屏幕坐标点根据屏幕尺寸转化。
*/
@property (nonatomic) float y;
/**
* @brief 设置结束点逻辑 x 值,逻辑坐标点由屏幕坐标点根据屏幕尺寸转化。
*/
@property (nonatomic) float endX;
/**
* @brief 设置结束点逻辑 y 值,逻辑坐标点由屏幕坐标点根据屏幕尺寸转化。
*/
@property (nonatomic) float endY;
/**
* @brief 设置贴图宽度
*/
@property (nonatomic) float width;
/**
* @brief 设置贴图高度
*/
@property (nonatomic) float height;
/**
* @brief 设置贴图角度
*/
@property (nonatomic) int rotate;
/**
* @brief 文本内容
*/
@property (nonatomic,copy,nullable) NSString *text;
/**
* @brief 字体大小
*/
@property (nonatomic) float textSize;
/**
* @brief 涂鸦轨迹的点集合,数组内的每一个NSArray,表示一个点。一个点(NSArray)内包含了3个值,第一个值是和上一个点的时间间隔(毫秒, int型),第二个值是点的x坐标(float型),第三个值是点的y坐标(float型)。
* @discussion x, y是逻辑坐标点,需使用以下方法转换成屏幕的坐标点(sX, sY)
* size屏幕view的尺寸(如(375, 667))
* CGFloat sX = (x + 1.0) * size.width / 2;
* CGFloat sY = (y + 1.0) * size.height / 2;
*
* @discussion 加点使用接口 - (void)addPointWithPositionX:(float)x positionY:(float)y timeInterval:(int)timeInterval;
*/
@property (nullable, nonatomic, readonly, strong) NSArray<NSArray<NSNumber *> *> *pathPoints;
/**
* @brief 加点
* point屏幕的坐标点(如(100, 100)),size屏幕view的尺寸(如(375, 667))
* float x = 2 * point.x / size.width - 1.0;
* float y = 2 * point.y / size.height - 1.0;
* @param x 需使用以下方法把屏幕的坐标点转换成逻辑坐标点
@param y 需使用以下方法把屏幕的坐标点转换成逻辑坐标点
* @param timeInterval 点与点的时间间隔
*/
- (void)addPointWithPositionX:(float)x positionY:(float)y timeInterval:(int)timeInterval;
@end