Box2D源码学习(4)-Common目录下的其他类简介
来源:互联网 发布:djvu阅读器 知乎 编辑:程序博客网 时间:2024/05/16 02:02
common目录还有几个源文件需要简要说明,这里直直说明一下大概作用,不再对源码做太详细分析。后文如有需要么,再做补充。
b2GrowableStack.h没有对应的头文件,类函数的实现直接放在类定义中了。这个类b2GrowableStack主要实现了一个可增长的栈,这里使用到了泛型编程。
template <typename T, int32 N>
class b2GrowableStack
在使用该类时,通过b2GrowableStack<int32, 256> stack;来构造一个大小256,类型为int的栈。
这个b2GrowableStack栈在使用的时候,通过Push(const T& element)和Pop()来压入和弹出栈。
需要注意的是,Push的时候,会在堆上分配T大小的空间来保存。在Pop的时候,并不进行释放,而是仅仅把计数减小。内存的释放,放在了析构函数。这样处理的好处在于,当频繁push,pop的时候,减少分配和释放次数。
b2Math.h主要定义了一些b2box系统常用的数学算法,用到某个算法的时候再分析即可。
b2Settings.h 定义了一些系统用到的常量。
B2Timer则是从操作系统中读取时间。在windows系统和linux/apple的系统中获取时间的函数不同,所以用B2Timer进行了封装统一。
b2Draw则是定义了绘图接口,供图形界面继承并重写绘制方法。
如void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color);
从而使用图形库来真正的画出box2d引擎模拟出的动作。
- Box2D源码学习(4)-Common目录下的其他类简介
- Box2d源码学习<一>之Box2d简介
- Box2d源码学习<一>之Box2d简介
- Box2d源码学习<一>之Box2d简介
- Box2d源码学习<4>数学库API的实现
- Box2d源码学习<十三>b2Collision之碰撞(下) 具体形状间的碰撞的实现
- Box2d源码学习<十三>b2Collision之碰撞(下) 具体形状间的碰撞的实现
- Box2d源码学习<十>形状(下):圆形和多边形的实现
- Box2d源码学习<十>形状(下):圆形和多边形的实现
- Box2d源码学习<十>形状(下):圆形和多边形的实现
- Box2D基本元素简介 Box2D源码示例简介
- Box2d学习笔记三:box2d中几个重要的类
- Box2d源码学习<二>内存管理之SOA的实现
- Box2d源码学习<三> 内存管理之栈的实现
- Box2d源码学习<四>数学库API的实现
- Box2d源码学习<五>b2Timer、b2Draw和b2Settings的实现
- Box2d源码学习<六>动态树的实现
- Box2d源码学习<七>Broad-phase的实现
- 百度面试
- ubantu 命令行 sh 无法找到 /bin/java
- 用poll 实现并发服务器
- STL set 用法之 —— 自定义结构体
- hadoop1.2.1编译eclipse插件
- Box2D源码学习(4)-Common目录下的其他类简介
- oracle db_ultra_safe Parameter
- 设置mysql允许外网访问
- Ubuntu 13.10 上手
- 【书籍】书籍推荐
- MySQl数据库允许远程访问
- 瞬时响应:网站的高性能架构
- 用星星照亮C++
- UVA 10943 - How do you add?(dp)