diff options
| author | Ferenc Arn | 2017-02-13 17:25:05 -0600 |
|---|---|---|
| committer | Ferenc Arn | 2017-02-13 17:42:02 -0600 |
| commit | eae94ba1c87718c95768f90cda95cf665c77a362 (patch) | |
| tree | b620b063c4ea7e4dd86a07c46ace8373dd55dc78 /servers/physics/collision_solver_sw.cpp | |
| parent | 55dc24f75313071db00d6281bb3255da60d7fa82 (diff) | |
| download | godot-eae94ba1c87718c95768f90cda95cf665c77a362.tar.gz godot-eae94ba1c87718c95768f90cda95cf665c77a362.tar.zst godot-eae94ba1c87718c95768f90cda95cf665c77a362.zip | |
Use real_t as floating point type in physics code.
This is a continuation of an on-going work for 64-bit floating point builds, started in PR #7528. Covers physics, physics/joints and physics_2d code.
Also removed matrixToEulerXYZ function in favor of Basis::get_euler.
Diffstat (limited to 'servers/physics/collision_solver_sw.cpp')
| -rw-r--r-- | servers/physics/collision_solver_sw.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/servers/physics/collision_solver_sw.cpp b/servers/physics/collision_solver_sw.cpp index 3399849ab..f0ddde3a7 100644 --- a/servers/physics/collision_solver_sw.cpp +++ b/servers/physics/collision_solver_sw.cpp @@ -115,8 +115,8 @@ struct _ConcaveCollisionInfo { int aabb_tests; int collisions; bool tested; - float margin_A; - float margin_B; + real_t margin_A; + real_t margin_B; Vector3 close_A,close_B; }; @@ -136,7 +136,7 @@ void CollisionSolverSW::concave_callback(void *p_userdata, ShapeSW *p_convex) { } -bool CollisionSolverSW::solve_concave(const ShapeSW *p_shape_A,const Transform& p_transform_A,const ShapeSW *p_shape_B,const Transform& p_transform_B,CallbackResult p_result_callback,void *p_userdata,bool p_swap_result,float p_margin_A,float p_margin_B) { +bool CollisionSolverSW::solve_concave(const ShapeSW *p_shape_A,const Transform& p_transform_A,const ShapeSW *p_shape_B,const Transform& p_transform_B,CallbackResult p_result_callback,void *p_userdata,bool p_swap_result,real_t p_margin_A,real_t p_margin_B) { const ConcaveShapeSW *concave_B=static_cast<const ConcaveShapeSW*>(p_shape_B); @@ -164,10 +164,10 @@ bool CollisionSolverSW::solve_concave(const ShapeSW *p_shape_A,const Transform& for(int i=0;i<3;i++) { Vector3 axis( p_transform_B.basis.get_axis(i) ); - float axis_scale = 1.0/axis.length(); + real_t axis_scale = 1.0/axis.length(); axis*=axis_scale; - float smin,smax; + real_t smin,smax; p_shape_A->project_range(axis,rel_transform,smin,smax); smin-=p_margin_A; smax+=p_margin_A; @@ -186,7 +186,7 @@ bool CollisionSolverSW::solve_concave(const ShapeSW *p_shape_A,const Transform& } -bool CollisionSolverSW::solve_static(const ShapeSW *p_shape_A,const Transform& p_transform_A,const ShapeSW *p_shape_B,const Transform& p_transform_B,CallbackResult p_result_callback,void *p_userdata,Vector3 *r_sep_axis,float p_margin_A,float p_margin_B) { +bool CollisionSolverSW::solve_static(const ShapeSW *p_shape_A,const Transform& p_transform_A,const ShapeSW *p_shape_B,const Transform& p_transform_B,CallbackResult p_result_callback,void *p_userdata,Vector3 *r_sep_axis,real_t p_margin_A,real_t p_margin_B) { PhysicsServer::ShapeType type_A=p_shape_A->get_type(); @@ -291,7 +291,7 @@ bool CollisionSolverSW::solve_distance_plane(const ShapeSW *p_shape_A,const Tran bool collided=false; Vector3 closest; - float closest_d; + real_t closest_d; for(int i=0;i<support_count;i++) { @@ -362,10 +362,10 @@ bool CollisionSolverSW::solve_distance(const ShapeSW *p_shape_A,const Transform& for(int i=0;i<3;i++) { Vector3 axis( p_transform_B.basis.get_axis(i) ); - float axis_scale = 1.0/axis.length(); + real_t axis_scale = ((real_t)1.0)/axis.length(); axis*=axis_scale; - float smin,smax; + real_t smin,smax; if (use_cc_hint) { cc_hint_aabb.project_range_in_plane(Plane(axis,0),smin,smax); |
