|
|
|
@ -121,17 +121,23 @@ public class LodControl extends AbstractControl implements Cloneable, JmeCloneab |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void setSpatial(Spatial spatial) { |
|
|
|
|
if (!(spatial instanceof Geometry)) { |
|
|
|
|
if (spatial != null && !(spatial instanceof Geometry)) { |
|
|
|
|
throw new IllegalArgumentException("LodControl can only be attached to Geometry!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
super.setSpatial(spatial); |
|
|
|
|
Geometry geom = (Geometry) spatial; |
|
|
|
|
Mesh mesh = geom.getMesh(); |
|
|
|
|
numLevels = mesh.getNumLodLevels(); |
|
|
|
|
numTris = new int[numLevels]; |
|
|
|
|
for (int i = numLevels - 1; i >= 0; i--) { |
|
|
|
|
numTris[i] = mesh.getTriangleCount(i); |
|
|
|
|
|
|
|
|
|
if(spatial != null) { |
|
|
|
|
Geometry geom = (Geometry) spatial; |
|
|
|
|
Mesh mesh = geom.getMesh(); |
|
|
|
|
numLevels = mesh.getNumLodLevels(); |
|
|
|
|
numTris = new int[numLevels]; |
|
|
|
|
for (int i = numLevels - 1; i >= 0; i--) { |
|
|
|
|
numTris[i] = mesh.getTriangleCount(i); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
numLevels = 0; |
|
|
|
|
numTris = null; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|