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 ...
随机推荐
- 动态加载多国语言 ---- cookie + 浏览器
一.多国语言缩写列表 因为涉及到浏览器的可接收语言,所以需要知道各个国家的语言缩写. 这个百度一下即可. en 英文 en_US 英文 (美国) ar 阿拉伯文 ar_AE 阿拉伯文 (阿拉伯联合酋长 ...
- JAVA算法
一.归并排序 归并排序 (merge sort) 是一类与插入排序.交换排序.选择排序不同的另一种排序方法.归并的含义是将两个或两个以上的有序表合并成一个新的有序表.归并排序有多路归并排序.两路归并 ...
- Scala的函数,高阶函数,隐式转换
1.介绍 2.函数值复制给变量 3.案例 在前面的博客中,可以看到这个案例,关于函数的讲解的位置,缺省. 4.简单的匿名函数 5.将函数做为参数传递给另一个函数 6.函数作为输出值 7.类型推断 8. ...
- Glide请求图片能携带Cookie的哟!
在Web编程中我们都很熟知一个概念,当有了seesion登录状态时,你可以访问一些资源但如果你没有登录的话很多资源是无法访问的. 在android的WebApi中当然一样拥有这个概念.比如,用户的头像 ...
- AsyncTask内的各个方法调用顺序
|- AsyncTask内的各个方法调用顺序:|- 首先,用户调用execute方法,启动AsyncTask .然后在execute方法中:|- 首先调用onPreExecute方法,执行初始化操作. ...
- java 基础一
一.Java命名规则 Java命名规则有两种,第一种匈牙利命名要求望名知意,第二种驼峰命名要求首字母大写(关键单词) 类名必须首字母大写,方法名首字母小写后面的单词首字母大写 .类名和方法名要用英文开 ...
- 【OpenWRT】【RT5350】【二】烧写OpenWrt到RT5350开发板
烧写bin文件到开发板的方式有很多种,我采用的是通过web页面直接上传文件的方式 首先通过浏览器登陆路由器(192.168.1.1),作者的开发板已经烧好了OpenWrt并且可以通过Luci登陆,所以 ...
- BI好比做菜
近日,珠海奥威软件宣布成功签约新世界中国地产(华南),成为该公司在商业智能项目上的坚实合作伙伴,共同打造基于以财务应用为主的决策分析平台. 公司简介 新世界中国地产(港股代号:917)为香港上市公司新 ...
- Javascript模板引擎:Hogan
hogan.js是一个开源前端模板引擎,无逻辑的设计,简单好用,性能也不错. 使用 引入hogan.js,下载链接:http://www.bootcdn.cn/hogan.js/,然后通过hogan. ...
- 解决Windows下网络原因Composer安装失败问题
由于Composer镜像都在国外,所以直接在官网下载Windows Installer后安装很多情况下是无法成功安装的. 解决办法: 1,将php添加到系统环境变量,并开启openssl扩展. 2,点 ...