Arnold AtArray API Test
#include <ai.h>
#include <iostream>
#include <stdio.h>
#include <vector>
#include <assert.h> using namespace std; void print_the_type()
{
printf("AI_TYPE_BYTE %5d \n",AI_TYPE_BYTE); //
printf("AI_TYPE_INT %5d \n",AI_TYPE_INT); //
printf("AI_TYPE_FLOAT %5d \n",AI_TYPE_FLOAT); //
printf("AI_TYPE_STRING %5d \n",AI_TYPE_STRING);//
printf("AI_TYPE_ARRAY %5d \n",AI_TYPE_ARRAY); //
printf("AI_TYPE_POINT %5d \n",AI_TYPE_POINT); //
} int main()
{
print_the_type();
printf("\n");
printf("test AI_TYPE_FLOAT ARRAY\n");
AtArray *array = AiArrayAllocate(,,AI_TYPE_FLOAT);
// basic method
/*
for(int i=0;i<array->nelements*2;i++)
{
AiArraySetFlt(array,i,i);
}
*/
float *test = static_cast <float *> (array->data);
test[]=;
test[]=;
test[]=; for(int i=;i<array->nelements*;i++) // MUTIPLY *2 ,because have two float[3],so it's have the 3*2=6
{
cout << AiArrayGetFlt(array,i) <<endl;
}
AiArrayDestroy(array); printf("\n");
// test the array point
printf("test AI_TYPE_POINT ARRAY\n");
// create 2 point and have two motion keys
// so the data have 4 point ,every point have 3 elements ... the count is 2*3*2 = 12
AtInt32 keys = ;
AtArray *array_type_point = AiArrayAllocate(,keys,AI_TYPE_POINT);
assert(array_type_point->nkeys==);
assert(array_type_point->nelements==);
assert(array_type_point->nelements*==); float * array_raw_pt= static_cast <float *> (array_type_point->data);
//pt 1
array_raw_pt[]=1.0f;
array_raw_pt[]=2.0f;
array_raw_pt[]=3.0f;
// pt 2
array_raw_pt[]=4.0f;
array_raw_pt[]=5.0f;
array_raw_pt[]=6.0f;
// pt3
array_raw_pt[]=7.0f;
//assert(AiArraySetFlt(array,7,8.0f) == 1 ); //arnold will test array_type is same as rh array
// cout << array_raw_pt[0] << endl;
cout.setf(ios::showpoint);
for(int i=;i<array_type_point->nelements*keys;i++)
{
cout<< i <<" x : -> " << AiArrayGetPnt(array_type_point,i).x <<endl;
cout<< i <<" y : -> " << AiArrayGetPnt(array_type_point,i).y <<endl;
cout<< i <<" z : -> " << AiArrayGetPnt(array_type_point,i).z <<endl;
}
AiArrayDestroy(array_type_point); cin.get();
return ;
}
Arnold AtArray API Test的更多相关文章
- 干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
- 12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
- 几个有趣的WEB设备API(二)
浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...
- html5 canvas常用api总结(三)--图像变换API
canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...
- JavaScript 对数据处理的5个API
JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...
- ES5对Array增强的9个API
为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...
- javascript的api设计原则
前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...
- 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino
大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...
随机推荐
- mysql 创建索引和删除索引
索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引.删除索引可以利用ALTER TABLE或DROP INDEX语句来实现. ...
- 加快ArcGIS Server创建缓存速度,CachingTools的实例数
大比例尺的缓存,由于文件非常大,创建非常花费时间,在硬件设备已固定的情况下,调整Caching tools的实例数是加快创建缓存的方法之一. 简单来说:CachingTools的最大并行实例数决定了C ...
- BZOJ 3365 Distance Statistics 点分治
这道题是一道点分治的题目,难度不大,可以拿来练手. 关键是对于找出来的重心的删除操作需要删掉这条边,这很重要. 还有每次找重心的时候,不但要考虑他的子节点的siz,还要考虑父节点的siz. 然后就A了 ...
- vert.x学习(二),使用Router来定义用户访问路径
这里需要用到vertx-web依赖了,依然是在pom.xml里面导入 <?xml version="1.0" encoding="UTF-8"?> ...
- TCP3次握手连接协议和4次握手断开连接协议
TCP/IP 状态机,如下图所示: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示. (SYN包表示标志位syn=1,ACK包表示标志位ack=1,SYN+A ...
- 从偶然的机会发现一个mysql特性到wooyun waf绕过题
从偶然的机会发现一个mysql特性到wooyun waf绕过题 MayIKissYou | 2015-06-19 12:00 最近在测试的时候,偶然的机会发现了一个mysql的特性, 为啥是偶然的机会 ...
- 利用Properties来读取JDBC配置文件
看到这样的标题,肯定会有人问,要连接数据库我直接验证,加载驱动,建立连接等等按步骤来不就行了,
- C# EF增删改查
1.增 //1.创建一个EF数据上下文对象 MyDBEntities context=new MyDBEntities(); //2.将要添加的数据,封装成对象 Users user = new Us ...
- vim - buffer
1. buffer switching http://vim.wikia.com/wiki/Easier_buffer_switching :buffer:ls:files 2. vim defaul ...
- varsh4.1 安装清除cache
yum install automake autoconf ncurses-devel libxslt groff pkgconfig python-docutils readline-devel - ...