2、所有對象的基類 - ANTBaseObject/ANTRenderObject

在介紹具體的使用對象之前,大家得先了解ANTBaseObject和ANTRenderObject這兩個類,因為所有的對象都繼承這兩類。

架構(gòu)圖:

Paste_Image.png

從上圖可以知道,目前基礎(chǔ)的對象類都是基于這兩個基類實(shí)現(xiàn)的,ANTBaseObject類主要是做一些基礎(chǔ)的屬性設(shè)置,ANTRenderObject類主要是做一些渲染效果和渲染模型的設(shè)置。

(接下來文章中使用方法的object,可以是:ANTGif, ANTImageView, ANTVideo, ANTObjModel, ANTPoint, ANTPrograssBar任意一個);

ANTBaseObject

ANTBaseObject基本的接口方法如下:

- (void)setPosition:(float)x Y:(float)y Z:(float)z;

設(shè)置對象在空間場景中的坐標(biāo)值,絕對坐標(biāo)。(記住,攝像機(jī)的位置在(0.0,0.0,0.0)的位置,朝向是(0,0,-1), 所有對象創(chuàng)建后初始位置處于(0.0,0.0,0.0)的位置,所以當(dāng)設(shè)置的對象是Mode為ANT_Plane的話,沒有設(shè)置坐標(biāo)的話,攝像機(jī)和物體重合了,所以當(dāng)為平面對象的話,一定要設(shè)置坐標(biāo))。

使用方法:

[object setPosition:0.0 Y:0,0 Z:-2.0];
- (void)setPositionForRelative:(float)x Y:(float)y Z:(float)z;

設(shè)置對象在空間場景中的相對坐標(biāo)值。假如對象的坐標(biāo)為(0.0,1.0,2.0),設(shè)置[object setPositionForRelative:1.0 Y:1.0 Z:1.0 ]后,則對象的坐標(biāo)為(1.0,2.0,3.0).

- (void)setScale:(float)x Y:(float)y Z:(float)z;

設(shè)置對象在空間場景中的縮放系數(shù),默認(rèn)為(1.0,1.0,1.0), 值在0~1.0之間為縮小,大于1.0為放大。
使用方法:

[object setScale:1.0 Y:1,0 Z:1.0];
- (void)setScaleForRelative:(float)x Y:(float)y Z:(float)z; //和setPosition類似
- (void)setRotate:(float)radians X:(float)x Y:(float)y Z:(float)z;

設(shè)置對象在空間場景中的旋轉(zhuǎn)角度,radians為旋轉(zhuǎn)的角度,x,y,z為旋轉(zhuǎn)軸。軸的值為0或1。

使用方法:

[object setRotate:30.0 X:1.0 Y:0.0 Z:0.0];// 繞x軸旋轉(zhuǎn)30度。

- (void)setRotateForRelative:(float)radians X:(float)x Y:(float)y Z:(float)z;

@property(nonatomic,assign)int tag;//設(shè)置對象的索引

Animation 動畫效果

- (void)moveTo:(float)time PosX:(float)x posY:(float)y posZ:(float)z finishBlock:(void(^)(void))block;

使用方法:
[object moveTo:時間 PosX:x posY:y posZ:z finishBlock:^{
     // 做完動畫后的回調(diào)
}];
- (void)moveBy:(float)time PosX:(float)x posY:(float)y posZ:(float)z finishBlock:(void(^)(void))block;

- (void)scaleTo:(float)time scaleX:(float)x scaleY:(float)y scaleZ:(float)z finishBlock:(void(^)(void))block;

- (void)scaleBy:(float)time scaleX:(float)x scaleY:(float)y scaleZ:(float)z finishBlock:(void(^)(void))block;

- (void)rotateTo:(float)time radians:(float)radians rotateX:(float)x roteateY:(float)y rotateZ:(float)z finishBlock:(void(^)(void))block;
/**
*三次方貝塞爾軌跡動畫
* @param pointEnd終點(diǎn)
* @param point1控制點(diǎn)1
* @param point2控制點(diǎn)2
* @param pointStart默認(rèn)起始點(diǎn)為對象當(dāng)前處的position
*/
- (void)bezierTo:(float)time PointEnd:(Point3D)pointEnd ControlPoint1:(Point3D)point1 ControlPoint2:(Point3D)point2  finishBlock:(void(^)(void))block;

使用方法:
Point3D  pointEnd;
pointEnd.x=-10.0; 
pointEnd.y=-15.0; 
pointEnd.z= -15.0;

Point3D point1;
point1.x=8.0; 
point1.y= -5.0; 
point1.z= -15.0;

Point3D pointEnd1;
pointEnd1.x=0.0;  
pointEnd1.y=0.0;  
pointEnd1.z=-15.0;

[object bezierTo:time PointEnd:pointEnd  ControlPoint1:point1  finishBlock:^{
     // 做完動畫后的回調(diào)
}];
/**
*二次方貝塞爾軌跡動畫
* @param pointEnd終點(diǎn)
* @param point1控制點(diǎn)1
* @param pointStart默認(rèn)起始點(diǎn)為對象當(dāng)前處的position
*/
- (void)bezierTo:(float)time PointEnd:(Point3D)pointEnd ControlPoint1:(Point3D)point1 finishBlock:(void(^)(void))block;

使用方法:
Point3D  pointEnd;
pointEnd.x=-10.0;  
pointEnd.y=-15.0; 
pointEnd.z= -15.0;

Point3D point1;
point1.x=8.0; 
point1.y= -5.0; 
point1.z= -15.0;

Point3D point2;
point2.x= -10.0;  
point2.y= -10.0;  
point2.z= -2.0;

Point3D pointEnd1;
pointEnd1.x=0.0;  
pointEnd1.y=0.0;  
pointEnd1.z=-15.0;

[object bezierTo:time PointEnd:pointEnd  ControlPoint1:point1  finishBlock:^{
   // 做完動畫后的回調(diào)
}];

ANTRenderObject

ANTRenderObject基本的接口方法如下:

在ANTRenderObject可以設(shè)置圖像的filter。

typedef NS_ENUM(NSInteger, ANTFilterMode) {
    ANTVR_NORMAL,           // 普通
    ANTVR_LUMINANCE,        // 像素色值亮度平均,圖像黑白
    ANTVR_PIXELATE,         // 馬賽克
    ANTVR_EXPOSURE,         // 曝光
    ANTVR_DISCRETIZE,       // 離散
    ANTVR_BLUR,             // 模糊
    ANTVR_BILATERAL,        // 雙邊模糊
    ANTVR_HUE,              // 飽和度
    ANTVR_POLKADOT,         // 像素圓點(diǎn)花樣
    ANTVR_GAMMA,            // 伽馬線
    ANTVR_GLASSSPHERE,      // 水晶球效果
    ANTVR_CROSSHATCH,       // 法線交叉線
};

#pragma mark - ANTVideoFilter property
// ANTVR_PIXELATE 模式
@property(nonatomic, assign)float particles;

// ANTVR_BLUR 模式
@property(nonatomic, assign)float radius;

// ANTVR_HUE 模式
@property(nonatomic ,assign)float hueAdjust;

// ANTVR_POLKADOT 模式
@property(nonatomic ,assign)float fractionalWidthOfPixel;
@property(nonatomic ,assign)float aspectRatio;
@property(nonatomic ,assign)float dotScaling;

// ANTVR_CROSSHATCH 模式
@property(nonatomic, assign)float crossHatchSpacing;
@property(nonatomic, assign)float lineWidth;

// ANTVR_EXPOSURE 模式
@property(nonatomic ,assign)float exposure;

// ANTVR_GAMMA 模式 (0.0 ~ <1.0 變亮 && >1.0 變暗)
@property(nonatomic ,assign)float gamma;

// ANTVR_GLASSSPHERE 模式
@property(nonatomic ,assign)float refractiveIndex;
// 渲染模型
typedef NS_ENUM(NSInteger, ANTRenderModel) {
    ANTVR_2D,                                   // 2d
    ANTVR_SPHERE,                               // 全景
    ANTVR_STEREO_SPHERE_LEFT_RIGHT,             // 立體全景 - 左右
    ANTVR_STEREO_SPHERE_UP_DOWN,                // 立體全景 - 上下
    ANTVR_PLANE,                                // 平面
    ANTVR_STEREO_PLANE_LEFT_RIGHT,              // 立體平面 - 左右
    ANTVR_STEREO_PLANE_UP_DOWN,                 // 立體平面 - 上下
    ANTVR_FISHSPHERE_HIGH,                      // 960 * 2560
    ANTVR_FISHSPHERE_RETINA_HIGH,               // 1520 * 2688
    ANTVR_FISHSPHERE_MEDIUM,                    // 960 * 1920
    ANTVR_FISHSPHERE_RETINA_MEDIUM,             // 1080 * 1920
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評論 25 709
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,405評論 6 13
  • 大流士一世 居魯士大帝將波斯人推向世界,然而,他作為地域的開拓者,身后的治理和完善,答案交給「大流世一世」,伊朗人...
    蘋果Y閱讀 194評論 0 1
  • 落花伴情心相依,真情相守到永生。 從此夫妻相敬酒,白頭牽手看朝陽。
    幻城彡小孩無愛閱讀 135評論 0 0

友情鏈接更多精彩內(nèi)容