|
@@ -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;
|
|
|
}
|
|
|
}
|
|
|
|