关闭

今天比昨天好

505人阅读 评论(0) 收藏 举报
今天往引擎里灌了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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4603次
    • 积分:102
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档