From d6c6884066b0447d70037beae2e4ac0f9b72c70e Mon Sep 17 00:00:00 2001 From: Nehon Date: Tue, 3 Mar 2015 22:52:52 +0100 Subject: [PATCH] Removed code duplication in BatchNode --- .../main/java/com/jme3/scene/BatchNode.java | 75 +++++++++++-------- 1 file changed, 44 insertions(+), 31 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/scene/BatchNode.java b/jme3-core/src/main/java/com/jme3/scene/BatchNode.java index 7ce596825..ef94f5631 100644 --- a/jme3-core/src/main/java/com/jme3/scene/BatchNode.java +++ b/jme3-core/src/main/java/com/jme3/scene/BatchNode.java @@ -118,49 +118,62 @@ public class BatchNode extends GeometryGroupNode implements Savable { public void onGeoemtryUnassociated(Geometry geom) { setNeedsFullRebatch(true); } - + @Override public void updateGeometricState() { - if ((refreshFlags & RF_LIGHTLIST) != 0) { - updateWorldLightList(); - } - - if ((refreshFlags & RF_TRANSFORM) != 0) { - // combine with parent transforms- same for all spatial - // subclasses. - updateWorldTransforms(); - } - - refreshFlags &= ~RF_CHILD_LIGHTLIST; + super.updateGeometricState(); if (!children.isEmpty()) { - // the important part- make sure child geometric state is refreshed - // first before updating own world bound. This saves - // a round-trip later on. - // NOTE 9/19/09 - // Although it does save a round trip, - - for (Spatial child : children.getArray()) { - child.updateGeometricState(); - } - for (Batch batch : batches.getArray()) { if (batch.needMeshUpdate) { batch.geometry.updateModelBound(); batch.geometry.updateWorldBound(); batch.needMeshUpdate = false; - } } - - } - - if ((refreshFlags & RF_BOUND) != 0) { - updateWorldBound(); - } - - assert refreshFlags == 0; } +// +// @Override +// public void updateGeometricState() { +// if ((refreshFlags & RF_LIGHTLIST) != 0) { +// updateWorldLightList(); +// } +// +// if ((refreshFlags & RF_TRANSFORM) != 0) { +// // combine with parent transforms- same for all spatial +// // subclasses. +// updateWorldTransforms(); +// } +// +// refreshFlags &= ~RF_CHILD_LIGHTLIST; +// if (!children.isEmpty()) { +// // the important part- make sure child geometric state is refreshed +// // first before updating own world bound. This saves +// // a round-trip later on. +// // NOTE 9/19/09 +// // Although it does save a round trip, +// +// for (Spatial child : children.getArray()) { +// child.updateGeometricState(); +// } +// +// for (Batch batch : batches.getArray()) { +// if (batch.needMeshUpdate) { +// batch.geometry.updateModelBound(); +// batch.geometry.updateWorldBound(); +// batch.needMeshUpdate = false; +// +// } +// } +// +// } +// +// if ((refreshFlags & RF_BOUND) != 0) { +// updateWorldBound(); +// } +// +// assert refreshFlags == 0; +// } protected Matrix4f getTransformMatrix(Geometry g){ return g.cachedWorldMat;