Merge pull request #498 from TripleSnail/master

Add/remove all PhysicsControls even when a RigidBodyControl is present
This commit is contained in:
empirephoenix 2017-04-25 13:25:53 +02:00 committed by GitHub
commit bfbb0d61ea
2 changed files with 8 additions and 12 deletions

View File

@ -489,9 +489,10 @@ public class PhysicsSpace {
* @param spatial the rootnode containing the physics objects
*/
public void addAll(Spatial spatial) {
add(spatial);
if (spatial.getControl(RigidBodyControl.class) != null) {
RigidBodyControl physicsNode = spatial.getControl(RigidBodyControl.class);
add(physicsNode);
//add joints with physicsNode as BodyA
List<PhysicsJoint> joints = physicsNode.getJoints();
for (Iterator<PhysicsJoint> it1 = joints.iterator(); it1.hasNext();) {
@ -501,8 +502,6 @@ public class PhysicsSpace {
add(physicsJoint);
}
}
} else {
add(spatial);
}
//recursion
if (spatial instanceof Node) {
@ -531,10 +530,9 @@ public class PhysicsSpace {
//remove(physicsJoint.getBodyB());
}
}
remove(physicsNode);
} else if (spatial.getControl(PhysicsControl.class) != null) {
remove(spatial);
}
remove(spatial);
//recursion
if (spatial instanceof Node) {
List<Spatial> children = ((Node) spatial).getChildren();

View File

@ -458,9 +458,10 @@ public class PhysicsSpace {
* @param spatial the rootnode containing the physics objects
*/
public void addAll(Spatial spatial) {
add(spatial);
if (spatial.getControl(RigidBodyControl.class) != null) {
RigidBodyControl physicsNode = spatial.getControl(RigidBodyControl.class);
add(physicsNode);
//add joints with physicsNode as BodyA
List<PhysicsJoint> joints = physicsNode.getJoints();
for (Iterator<PhysicsJoint> it1 = joints.iterator(); it1.hasNext();) {
@ -470,8 +471,6 @@ public class PhysicsSpace {
add(physicsJoint);
}
}
} else {
add(spatial);
}
//recursion
if (spatial instanceof Node) {
@ -500,10 +499,9 @@ public class PhysicsSpace {
//remove(physicsJoint.getBodyB());
}
}
remove(physicsNode);
} else if (spatial.getControl(PhysicsControl.class) != null) {
remove(spatial);
}
remove(spatial);
//recursion
if (spatial instanceof Node) {
List<Spatial> children = ((Node) spatial).getChildren();