本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
// 设置中主要定义了宏、常量、和一些辅助的公共函数。
///cocos2d-x-3.0alpha0/external/Box2D/Common // 设置中主要定义了宏、常量、和一些辅助的公共函数。 #ifndef B2_SETTINGS_H #define B2_SETTINGS_H #include <cassert> #include <cmath> //主要是因为有的编译器将提示相关语句的值是未使用的, //所以你必须告诉它忽略所有(void)。 //即消除编译器的警告 #define B2_NOT_USED(x) ((void)(x)) #define b2Assert(A) assert(A) //对断言宏进行重新封装 //重新封装类型,这样做为了方便而且很好的移植到不同的平台 typedef signed char int8; typedef signed short int16; typedef signed int int32; typedef unsigned char uint8; typedef unsigned short uint16; typedef unsigned int uint32; typedef float float32; typedef double float64; #define b2_maxFloat FLT_MAX //float类型最大值 #define b2_epsilon FLT_EPSILON //float类型最小值 #define b2_pi 3.14159265359f //pi的值 /// @file /// 全局常量参数 基于米-千克-秒(MKS)单位 //碰撞 //在两个凸形状上的接触点最大数量,不要修改它的值 #define b2_maxManifoldPoints 2 //凸多边形的顶点数量的最大值。你不能将这个宏修改的太大,因为b2BolckAlloctor函数有一个物体内存大小的上限 #define b2_maxPolygonVertices 8 // 用这个在动态树上填充AABB,它允许代理少量移动不必去调整这个树 // 单位是米 #define b2_aabbExtension 0.1f // 用这个在动态树上填充AABBs,这是基于当前位移用来预测未来的位置。 // 没有单位 #define b2_aabbMultiplier 2.0f //一个小的长度作为碰撞和约束误差,通常它被选为数字意义重大,但视觉上无足轻重。 #define b2_linearSlop 0.005f //一个小的角度作为碰撞和约束误差,通常它被选为数字意义重大,但视觉上无足轻重。 #define b2_angularSlop (2.0f / 180.0f * b2_pi) ///半径的多边形/边缘形状的皮肤。这应该不会被修改。使 ///这意味着将有一个小的多边形数不足为连续碰撞缓冲。 ///使它更大的可能创建工件为顶点碰撞。 #define b2_polygonRadius (2.0f * b2_linearSlop) ///在连续物理模拟里,在每次接触中子步骤的最大数值 #define b2_maxSubSteps 8 //动态 //接触的最大数用于处理解决一个撞击时间内的撞击 #define b2_maxTOIContacts 32 //弹性碰撞的一个速度阈值,任何与一个相对线速度碰撞,低于这个阈值的将被视为非弹性碰撞 #define b2_velocityThreshold 1.0f // 线性速度位置的最大值校正当解决约束使用,这有助于阻止穿越物体 #define b2_maxLinearCorrection 0.2f // 角位置的最大值校正当解决约束使用,这有助于阻止穿越物体 #define b2_maxAngularCorrection (8.0f / 180.0f * b2_pi) // 物体【刚体】的最大线速度,这限制是非常大的,用于防止数值问题。你不需要去适应这个 #define b2_maxTranslation 2.0f #define b2_maxTranslationSquared (b2_maxTranslation * b2_maxTranslation) // 物体【刚体】的最大线速度,这限制是非常大的,用于防止数值问题。你不需要去适应这个 #define b2_maxRotation (0.5f * b2_pi) #define b2_maxRotationSquared (b2_maxRotation * b2_maxRotation) //这个比例因子控制怎样快速解决重叠问题。理想的情况下,这将是1,这样重叠将在一个时间步内被移除 #define b2_baumgarte 0.2f #define b2_toiBaugarte 0.75f // 休眠 //最小休眠时间 #define b2_timeToSleep 0.5f //刚体[body]要想休眠,线的最大值,即当角速度超过它时刚体[body]无法休眠。 #define b2_linearSleepTolerance 0.01f //刚体[body]要想休眠,角速度的最大值,即当角速度超过它时刚体[body]无法休眠。 #define b2_angularSleepTolerance (2.0f / 180.0f * b2_pi) // 内存申请 //申请内存函数,实现这个函数作为你自己的内存分配器。 void* b2Alloc(int32 size); //释放内存函数,如果你实现b2Alloc,你也应该实现这个功能。 void b2Free(void* mem); //打印日志函数 void b2Log(const char* string, ...); //版本编号方案 //见 http://en.wikipedia.org/wiki/Software_versioning struct b2Version { int32 major; ///重大更新 int32 minor; ///较大更新 int32 revision; ///修复bug }; //box2d当前版本号 extern b2Version b2_version; #endif