diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2017-08-27 21:07:15 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2017-08-27 22:13:45 +0200 |
commit | 7ad14e7a3e6f87ddc450f7e34621eb5200808451 (patch) | |
tree | 8804d0dd24cc126087462edfbbbf73ed61b56b0e /servers/physics | |
parent | 37da8155a4500a9386027b4d791a86186bc7ab4a (diff) |
Dead code tells no tales
Diffstat (limited to 'servers/physics')
-rw-r--r-- | servers/physics/body_pair_sw.cpp | 24 | ||||
-rw-r--r-- | servers/physics/physics_server_sw.cpp | 112 | ||||
-rw-r--r-- | servers/physics/physics_server_sw.h | 12 | ||||
-rw-r--r-- | servers/physics/shape_sw.cpp | 117 | ||||
-rw-r--r-- | servers/physics/space_sw.cpp | 25 |
5 files changed, 7 insertions, 283 deletions
diff --git a/servers/physics/body_pair_sw.cpp b/servers/physics/body_pair_sw.cpp index 25451a99b7..a289b4b0ca 100644 --- a/servers/physics/body_pair_sw.cpp +++ b/servers/physics/body_pair_sw.cpp @@ -28,6 +28,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "body_pair_sw.h" + #include "collision_solver_sw.h" #include "os/os.h" #include "space_sw.h" @@ -296,17 +297,7 @@ bool BodyPairSW::setup(real_t p_step) { c.rA = global_A - A->get_center_of_mass(); c.rB = global_B - B->get_center_of_mass() - offset_B; -// contact query reporting... -#if 0 - if (A->get_body_type() == PhysicsServer::BODY_CHARACTER) - static_cast<CharacterBodySW*>(A)->report_character_contact( global_A, global_B, B ); - if (B->get_body_type() == PhysicsServer::BODY_CHARACTER) - static_cast<CharacterBodySW*>(B)->report_character_contact( global_B, global_A, A ); - if (A->has_contact_query()) - A->report_contact( global_A, global_B, B ); - if (B->has_contact_query()) - B->report_contact( global_B, global_A, A ); -#endif + // contact query reporting... if (A->can_report_contacts()) { Vector3 crA = A->get_angular_velocity().cross(c.rA) + A->get_linear_velocity(); @@ -327,18 +318,7 @@ bool BodyPairSW::setup(real_t p_step) { kNormal += c.normal.dot(inertia_A.cross(c.rA)) + c.normal.dot(inertia_B.cross(c.rB)); c.mass_normal = 1.0f / kNormal; -#if 1 c.bias = -bias * inv_dt * MIN(0.0f, -depth + max_penetration); - -#else - if (depth > max_penetration) { - c.bias = (depth - max_penetration) * (1.0 / (p_step * (1.0 / RELAXATION_TIMESTEPS))); - } else { - real_t approach = -0.1 * (depth - max_penetration) / (CMP_EPSILON + max_penetration); - approach = CLAMP(approach, CMP_EPSILON, 1.0); - c.bias = approach * (depth - max_penetration) * (1.0 / p_step); - } -#endif c.depth = depth; Vector3 j_vec = c.normal * c.acc_normal_impulse + c.acc_tangent_impulse; diff --git a/servers/physics/physics_server_sw.cpp b/servers/physics/physics_server_sw.cpp index 824ad0428b..8d6f7b3fd8 100644 --- a/servers/physics/physics_server_sw.cpp +++ b/servers/physics/physics_server_sw.cpp @@ -28,6 +28,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "physics_server_sw.h" + #include "broad_phase_basic.h" #include "broad_phase_octree.h" #include "joints/cone_twist_joint_sw.h" @@ -1206,117 +1207,6 @@ bool PhysicsServerSW::generic_6dof_joint_get_flag(RID p_joint, Vector3::Axis p_a return generic_6dof_joint->get_flag(p_axis, p_flag); } -#if 0 -void PhysicsServerSW::joint_set_param(RID p_joint, JointParam p_param, real_t p_value) { - - JointSW *joint = joint_owner.get(p_joint); - ERR_FAIL_COND(!joint); - - switch(p_param) { - case JOINT_PARAM_BIAS: joint->set_bias(p_value); break; - case JOINT_PARAM_MAX_BIAS: joint->set_max_bias(p_value); break; - case JOINT_PARAM_MAX_FORCE: joint->set_max_force(p_value); break; - } - - -} - -real_t PhysicsServerSW::joint_get_param(RID p_joint,JointParam p_param) const { - - const JointSW *joint = joint_owner.get(p_joint); - ERR_FAIL_COND_V(!joint,-1); - - switch(p_param) { - case JOINT_PARAM_BIAS: return joint->get_bias(); break; - case JOINT_PARAM_MAX_BIAS: return joint->get_max_bias(); break; - case JOINT_PARAM_MAX_FORCE: return joint->get_max_force(); break; - } - - return 0; -} - - -RID PhysicsServerSW::pin_joint_create(const Vector3& p_pos,RID p_body_a,RID p_body_b) { - - BodySW *A=body_owner.get(p_body_a); - ERR_FAIL_COND_V(!A,RID()); - BodySW *B=NULL; - if (body_owner.owns(p_body_b)) { - B=body_owner.get(p_body_b); - ERR_FAIL_COND_V(!B,RID()); - } - - JointSW *joint = memnew( PinJointSW(p_pos,A,B) ); - RID self = joint_owner.make_rid(joint); - joint->set_self(self); - - return self; -} - -RID PhysicsServerSW::groove_joint_create(const Vector3& p_a_groove1,const Vector3& p_a_groove2, const Vector3& p_b_anchor, RID p_body_a,RID p_body_b) { - - - BodySW *A=body_owner.get(p_body_a); - ERR_FAIL_COND_V(!A,RID()); - - BodySW *B=body_owner.get(p_body_b); - ERR_FAIL_COND_V(!B,RID()); - - JointSW *joint = memnew( GrooveJointSW(p_a_groove1,p_a_groove2,p_b_anchor,A,B) ); - RID self = joint_owner.make_rid(joint); - joint->set_self(self); - return self; - - -} - -RID PhysicsServerSW::damped_spring_joint_create(const Vector3& p_anchor_a,const Vector3& p_anchor_b,RID p_body_a,RID p_body_b) { - - BodySW *A=body_owner.get(p_body_a); - ERR_FAIL_COND_V(!A,RID()); - - BodySW *B=body_owner.get(p_body_b); - ERR_FAIL_COND_V(!B,RID()); - - JointSW *joint = memnew( DampedSpringJointSW(p_anchor_a,p_anchor_b,A,B) ); - RID self = joint_owner.make_rid(joint); - joint->set_self(self); - return self; - -} - -void PhysicsServerSW::damped_string_joint_set_param(RID p_joint, DampedStringParam p_param, real_t p_value) { - - - JointSW *j = joint_owner.get(p_joint); - ERR_FAIL_COND(!j); - ERR_FAIL_COND(j->get_type()!=JOINT_DAMPED_SPRING); - - DampedSpringJointSW *dsj = static_cast<DampedSpringJointSW*>(j); - dsj->set_param(p_param,p_value); -} - -real_t PhysicsServerSW::damped_string_joint_get_param(RID p_joint, DampedStringParam p_param) const { - - JointSW *j = joint_owner.get(p_joint); - ERR_FAIL_COND_V(!j,0); - ERR_FAIL_COND_V(j->get_type()!=JOINT_DAMPED_SPRING,0); - - DampedSpringJointSW *dsj = static_cast<DampedSpringJointSW*>(j); - return dsj->get_param(p_param); -} - -PhysicsServer::JointType PhysicsServerSW::joint_get_type(RID p_joint) const { - - - JointSW *joint = joint_owner.get(p_joint); - ERR_FAIL_COND_V(!joint,JOINT_PIN); - - return joint->get_type(); -} - -#endif - void PhysicsServerSW::free(RID p_rid) { if (shape_owner.owns(p_rid)) { diff --git a/servers/physics/physics_server_sw.h b/servers/physics/physics_server_sw.h index 568fed1177..2e1fa7065a 100644 --- a/servers/physics/physics_server_sw.h +++ b/servers/physics/physics_server_sw.h @@ -264,18 +264,6 @@ public: virtual void joint_set_solver_priority(RID p_joint, int p_priority); virtual int joint_get_solver_priority(RID p_joint) const; -#if 0 - virtual void joint_set_param(RID p_joint, JointParam p_param, real_t p_value); - virtual real_t joint_get_param(RID p_joint,JointParam p_param) const; - - virtual RID pin_joint_create(const Vector3& p_pos,RID p_body_a,RID p_body_b=RID()); - virtual RID groove_joint_create(const Vector3& p_a_groove1,const Vector3& p_a_groove2, const Vector3& p_b_anchor, RID p_body_a,RID p_body_b); - virtual RID damped_spring_joint_create(const Vector3& p_anchor_a,const Vector3& p_anchor_b,RID p_body_a,RID p_body_b=RID()); - virtual void damped_string_joint_set_param(RID p_joint, DampedStringParam p_param, real_t p_value); - virtual real_t damped_string_joint_get_param(RID p_joint, DampedStringParam p_param) const; - - virtual JointType joint_get_type(RID p_joint) const; -#endif /* MISC */ virtual void free(RID p_rid); diff --git a/servers/physics/shape_sw.cpp b/servers/physics/shape_sw.cpp index a96e26e81d..f02ff03fcf 100644 --- a/servers/physics/shape_sw.cpp +++ b/servers/physics/shape_sw.cpp @@ -28,9 +28,11 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "shape_sw.h" + #include "geometry.h" #include "quick_hull.h" #include "sort.h" + #define _POINT_SNAP 0.001953125 #define _EDGE_IS_VALID_SUPPORT_THRESHOLD 0.0002 #define _FACE_IS_VALID_SUPPORT_THRESHOLD 0.9998 @@ -1473,119 +1475,6 @@ void ConcavePolygonShapeSW::_setup(PoolVector<Vector3> p_faces) { PoolVector<Vector3>::Read r = p_faces.read(); const Vector3 *facesr = r.ptr(); -#if 0 - Map<Vector3,int> point_map; - List<Face> face_list; - - - for(int i=0;i<src_face_count;i++) { - - Face3 faceaux; - - for(int j=0;j<3;j++) { - - faceaux.vertex[j]=facesr[i*3+j].snapped(_POINT_SNAP); - //faceaux.vertex[j]=facesr[i*3+j];//facesr[i*3+j].snapped(_POINT_SNAP); - } - - ERR_CONTINUE( faceaux.is_degenerate() ); - - Face face; - - for(int j=0;j<3;j++) { - - - Map<Vector3,int>::Element *E=point_map.find(faceaux.vertex[j]); - if (E) { - - face.indices[j]=E->value(); - } else { - - face.indices[j]=point_map.size(); - point_map.insert(faceaux.vertex[j],point_map.size()); - - } - } - - face_list.push_back(face); - } - - vertices.resize( point_map.size() ); - - PoolVector<Vector3>::Write vw = vertices.write(); - Vector3 *verticesw=vw.ptr(); - - AABB _aabb; - - for( Map<Vector3,int>::Element *E=point_map.front();E;E=E->next()) { - - if (E==point_map.front()) { - _aabb.pos=E->key(); - } else { - - _aabb.expand_to(E->key()); - } - verticesw[E->value()]=E->key(); - } - - point_map.clear(); // not needed anymore - - faces.resize(face_list.size()); - PoolVector<Face>::Write w = faces.write(); - Face *facesw=w.ptr(); - - int fc=0; - - for( List<Face>::Element *E=face_list.front();E;E=E->next()) { - - facesw[fc++]=E->get(); - } - - face_list.clear(); - - - PoolVector<_VolumeSW_BVH_Element> bvh_array; - bvh_array.resize( fc ); - - PoolVector<_VolumeSW_BVH_Element>::Write bvhw = bvh_array.write(); - _VolumeSW_BVH_Element *bvh_arrayw=bvhw.ptr(); - - - for(int i=0;i<fc;i++) { - - AABB face_aabb; - face_aabb.pos=verticesw[facesw[i].indices[0]]; - face_aabb.expand_to( verticesw[facesw[i].indices[1]] ); - face_aabb.expand_to( verticesw[facesw[i].indices[2]] ); - - bvh_arrayw[i].face_index=i; - bvh_arrayw[i].aabb=face_aabb; - bvh_arrayw[i].center=face_aabb.pos+face_aabb.size*0.5; - - } - - w=PoolVector<Face>::Write(); - vw=PoolVector<Vector3>::Write(); - - - int count=0; - _VolumeSW_BVH *bvh_tree=_volume_sw_build_bvh(bvh_arrayw,fc,count); - - ERR_FAIL_COND(count==0); - - bvhw=PoolVector<_VolumeSW_BVH_Element>::Write(); - - bvh.resize( count+1 ); - - PoolVector<BVH>::Write bvhw2 = bvh.write(); - BVH*bvh_arrayw2=bvhw2.ptr(); - - int idx=0; - _fill_bvh(bvh_tree,bvh_arrayw2,idx); - - set_aabb(_aabb); - -#else PoolVector<_VolumeSW_BVH_Element> bvh_array; bvh_array.resize(src_face_count); @@ -1638,8 +1527,6 @@ void ConcavePolygonShapeSW::_setup(PoolVector<Vector3> p_faces) { _fill_bvh(bvh_tree, bvh_arrayw2, idx); configure(_aabb); // this type of shape has no margin - -#endif } void ConcavePolygonShapeSW::set_data(const Variant &p_data) { diff --git a/servers/physics/space_sw.cpp b/servers/physics/space_sw.cpp index 759e354c99..17e2df6c9e 100644 --- a/servers/physics/space_sw.cpp +++ b/servers/physics/space_sw.cpp @@ -28,6 +28,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "space_sw.h" + #include "collision_solver_sw.h" #include "physics_server_sw.h" #include "project_settings.h" @@ -267,20 +268,13 @@ bool PhysicsDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transform continue; } -//test initial overlap -#if 0 - if (CollisionSolverSW::solve_static(shape,p_xform,col_obj->get_shape(shape_idx),col_obj_xform,NULL,NULL,&sep_axis)) { - print_line("failed initial cast (collision at beginning)"); - return false; - } -#else + //test initial overlap sep_axis = p_motion.normalized(); if (!CollisionSolverSW::solve_distance(shape, p_xform, col_obj->get_shape(shape_idx), col_obj_xform, point_A, point_B, aabb, &sep_axis)) { //print_line("failed motion cast (no collision)"); return false; } -#endif //just do kinematic solving real_t low = 0; @@ -631,21 +625,6 @@ bool SpaceSW::test_body_motion(BodySW *p_body, const Transform &p_from, const Ve Vector3 a = sr[i * 2 + 0]; Vector3 b = sr[i * 2 + 1]; - -#if 0 - Vector3 rel = b-a; - real_t d = rel.length(); - if (d==0) - continue; - - Vector3 n = rel/d; - real_t traveled = n.dot(recover_motion); - a+=n*traveled; - - real_t d = a.distance_to(b); - if (d<margin) - continue; -#endif recover_motion += (b - a) * 0.4; } |