今天比昨天好

今天往引擎里灌了33个底层函数,满屏的const,const确实是好东西,长远来讲.比->少一个符号,短期来讲,1000行少输500个符号是很正常的。不要小看这500个符号,这以为着键盘少磨损500次,还可以少劳动500次,更重要的是const加上一个&等于上了双保险。。。。我决定把今天写的函数表列出来,证明我确实是写了33个函数,一个不少,我再一次打开DX的头文件,发现又有一些相当接近的声明,虽然开不到他的主体,我觉得我因该比他实现的更精捍,我保证!我的工程变得越来越臃肿了,也许我该试试VSS。。。。不然我一定会每天打开电脑先用半个小时回忆理顺上一次的进度,我讨厌每次都这样!

int WriteError( char *string, ... ); //写入错误
int OpenErrorFile( char *filename, FILE *fp_override=NULL ); //打开错误日志文件
int CloseErrorFile( void ); //关闭错误日志文件


float Vec2Length( const Vec2d& pV ); //计算2D向量长度
int Vec2Norm( Vec2** *V); //归一化2D向量
float Vec2Dot( const Vec2d& va, const Vec2d& vb); //计算2个2D向量的点积
float Vec2Costh( const Vec2d& va, const Vec2d& vb); //计算2个2D向量之间的余弦值
void Vec2Print( Vec2dp va, char *name="v"); //输出2D向量信息


float Vec3Length( const Vec3d& pV ); //计算3D向量长度
int Vec3Norm( Vec3** *V); //3D向量归一化
float Vec3Dot( const Vec3d& va, const Vec3d& vb); //计算2个3D向量的点积
Vec3d Vec3Cross( const Vec3d& va, const Vec3d& vb); //计算2个3D向量的叉积
float Vec3Costh( const Vec3d& va, const Vec3d& vb); //计算2个3D向量之间的余弦值
void Vec3Print( Vec3dp va, char *name="v"); //输出3D向量信息
Vec3d operator * ( const Vec3d& v,const Mat4x4& m ); //计算1个3D向量和1个4x4矩阵的乘积并返回1个3D向量
Vec3d operator * ( const Mat4x4& m,const Vec3d& v ); //上式的变型



float Vec4Length( const Vec4d& pV ); //计算4D齐次向量的长度
int Vec4Norm( Vec4** *V); //归一化4D齐次向量
float Vec4Dot( const Vec2d& va, const Vec4d& vb); //计算2个4D齐次向量的点积
Vec4d Vec4Cross( const Vec4d& va, const Vec4d& vb); //计算2个4D齐次向量的叉积
float Vec4Costh( const Vec4d& va, const Vec4d& vb); //计算2个4D齐次向量之间的余弦值
void Vec4Print( Vec4dp va, char *name="v"); //输出4D齐次向量信息
Vec4d operator * ( const Vec4d& v,const Mat4x4& m ); //计算1个4D齐次向量和1个4x4矩阵的乘积并返回1个4D齐次向量
Vec4d operator * ( const Mat4x4& m,const Vec4d& v ); //上式的变型


void Mat4x4Print( Mat4x4p ma, char *name="Matrix4x4" ); //输出4x4矩阵信息
Mat4x4 Mat4x4Inverse( const Mat4x4& m ); //计算4x4矩阵的逆矩阵,如果矩阵无逆矩阵将返回一个单位矩阵


Pline2d PointToPline( const Pec2d& p0, const Pec2d& p1 ); //通过输入2个2D点得到1条2D参数化直线
Pec2d InsidePline2d( const Pline2d& p, float t); //计算1个2D参数化直线在[0-1]区间任意点t处的点
int IntersectLine2d( const Pline2d& p0, const Pline2d& p1, float *t0, float *t1, Pec2** *i); //计算2条2D参数化直线的交点
//返回t值及交点pi
Pline3d PointToPline( const Pec3d& p0, const Pec3d& p1 ); //通过输入2个3D点得到1条3D参数化直线
Pec3d InsidePline3d( const Pline3d& p, float t ); //计算1个3D参数化直线在[0-1]区间任意点t处的点
float PointInPlane3d( const Pec3d& pt, const Plane3d& plane ); //返回一个3D点在指定平面上的位置,等于0.0说明在平面上
//负数值说明在平面的负半空间,正数值说明在平面的正半空间
int Pline3dIntersectPlane3d( const Pline3d& pline, const Plane3d& plane, float *t, Pec3** *t); //计算参数化直线与平面的交点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值