#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的更多相关文章

  1. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  2. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  3. 几个有趣的WEB设备API(二)

    浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...

  4. html5 canvas常用api总结(三)--图像变换API

    canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...

  5. JavaScript 对数据处理的5个API

    JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...

  6. ES5对Array增强的9个API

    为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...

  7. javascript的api设计原则

    前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...

  8. 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino

    大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...

  9. 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...

随机推荐

  1. PHP 水印设置

    一.图片水印 <?php /* 覆盖水印 */ $image = ImageCreateFromJPEG('memcached.jpg'); $stamp = ImageCreateFromPN ...

  2. mysql删除重复记录,保存Id最小的一条

    方法1:1.创建一个临时表,选取需要的数据.2.清空原表.3.临时表数据导入到原表.4.删除临时表.mysql> select * from student;+----+------+| ID ...

  3. 月四 周2 iii

    同样发生于今天 今天做的一道题引起了我对<电波女与青春男>的回忆 如果说光鸟鸟和电波女对我来说有什么共同之处, 那应该是体验过程我都很认真吧 我还是很喜欢入间人间的书, 不过那本妹主题的新 ...

  4. windows核心编程 - 线程基础

    一.基本概念: 一个进程至少需要一个线程. 组成:一个线程包括仅包括一个线程堆栈和一个线程内核对象 线程堆栈:用于维护线程在执行代码时需要的所有函数参数和局部变量 线程内核对象:操作系统用它来对线程实 ...

  5. Object C中Block用法

    先了解定义C语言的函数指针! int sum (int x, int y) { return x+ y; } // 定义函数 int (*p)(int, int) = sum; NSLog(, )); ...

  6. BT客户端实现 Peer协议设计

    与peer建立tcp连接后,首先发送handshake消息进行握手 handshake消息格式如下: 一个字节0x19 + 一个字符串'BitTorrent protocol' + 8 byte 保留 ...

  7. Apple Reject

    2016年11月10日 上午1:15 发件人 Apple 2. 1 PERFORMANCE: APP COMPLETENESS Thank you for your resubmission. Per ...

  8. http://www.cnblogs.com/holly8/p/6178828.html

    http://www.cnblogs.com/holly8/p/6178828.html

  9. asp.net 自带的缓存

    本文导读:在.NET运用中经常用到缓存(Cache)对象.有HttpContext.Current.Cache以及HttpRuntime.Cache,HttpRuntime.Cache是应用程序级别的 ...

  10. Git过滤文件和文夹

    今天是2016年10月份的最后一天,感觉时间过得真的是飞快呢,此刻天下着小雨,天气灰蒙如天每个人的心情一样.在此把这个月的项目上传到git上,就需要过滤一些项目自动生成的不必要的文件,如:bin,ob ...