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

今天开始看include\core部分,首先打开irrmath.h,该文件在core命名空间里定义了4个常数,如浮点数比较时的舍入精度,圆周率,以及用于角度与弧度之间转换的常数值。


接着看vector2d.h,该文件实现了一个2D向量的模板类,以其相关方法的定义。因为该类中的normalize()方法的定义里调用了位于line3d.h中getLenght()函数,所以我们接下来看line3d.h。


line3d.h文件中实现在了3d环境中,线段的相关定义。构造了line3d模板类,从该类中定义的成员类型来看,使用了3d向量。所以下面,我们来看vector3d.h。在该文件中,实现了3d向量的类模板及其相关定义。如旋转坐标,运算符重载,点积,叉积,求两点间距离等操作。


在dimension2d.h中,实现了一个指定2维尺寸的模板类。


在line2d.h中,实现了2维平面里线段的定义,创建了lined2d模板类。由此发现引擎作者是在先现实了2d向量和3d向量的基础上,建立的两点间线段的处理类。即今天至此解决了core模块中向量数据类型的实现。


现在看平面的实现。首先是plane3d.h,定义了点与平面的相交关系,创建了平面模板类。plane3dex.h是平面模板类的扩展版,运算速度更快。

 

OVER,今天解决8个代码文件,还剩167个。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值