Irrlicht引擎源码剖析——第四天

来源:互联网 发布:有趣的品牌 知乎 编辑:程序博客网 时间:2024/06/05 16:51

今天先看aabbox3d.h文件。在这个文件里实现了边界盒的相关操作,如边界盒与点、平面、边界盒的相交关系,重载运算符等等。

 

在heapsort.h中,实现了一个堆排序的算法。

 

在array.h中,实现了数组模板类,感觉就像SLT中的vector,该数组有堆排序、二分查找、增删元素、易调试等特点。但在二分查找函数中,有语句如下:

    if (!(element < data[m]) &&!(data[m] < element)) { return m;} 

    // 为什么不直接写if(element== data[m]){ return m; } 

    // 因为用于浮点数比较


在irrstring.h中,实现了字符串模板类,类似于STL中的string。

 

在rect.h中,实现矩形模板类,具有碰撞检测的功能。模板类rect的对象以尺寸和左上角坐标确定矩形大小及位置,扩展的模板类rectEx的对象以左上角坐标和右下角坐标确定矩形大小及位置。

 

在list.h中,实现了一个双端链表模板类。

 

在matrix4.h中,实现了一个4x4矩阵模板类,主要是在3D运算中用于矩阵各种转换操作。


至此,include\core部分的代码,16个文件全部搞定!

 

OVER!今天解决7个代码文件,还剩160个。

原创粉丝点击