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

本文详细探讨了C++编程中的关键组件,包括aabbox3d.h中的边界盒操作,heapsort.h中的堆排序算法,array.h中的数组模板类,irrstring.h中的字符串模板类,以及rect.h和list.h中的矩形和双端链表模板类。同时,介绍了matrix4.h中的4x4矩阵模板类在3D运算中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天先看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个。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值