Fixes the bug of shallow copies when cloning lights (See http://hub.jmonkeyengine.org/t/what-is-the-expected-meaning-of-light-clone/35100 )
This commit is contained in:
parent
d1a09536e5
commit
6c4e8010f2
@ -146,4 +146,10 @@ public class DirectionalLight extends Light {
|
||||
direction = (Vector3f) ic.readSavable("direction", null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DirectionalLight clone() {
|
||||
DirectionalLight l = (DirectionalLight)super.clone();
|
||||
l.direction = direction.clone();
|
||||
return l;
|
||||
}
|
||||
}
|
||||
|
@ -228,7 +228,9 @@ public abstract class Light implements Savable, Cloneable {
|
||||
@Override
|
||||
public Light clone(){
|
||||
try {
|
||||
return (Light) super.clone();
|
||||
Light l = (Light) super.clone();
|
||||
l.color = color.clone();
|
||||
return l;
|
||||
} catch (CloneNotSupportedException ex) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
@ -241,4 +241,11 @@ public class PointLight extends Light {
|
||||
this.invRadius = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PointLight clone() {
|
||||
PointLight p = (PointLight)super.clone();
|
||||
p.position = position.clone();
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
@ -448,5 +448,13 @@ public class SpotLight extends Light {
|
||||
this.invSpotRange = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpotLight clone() {
|
||||
SpotLight s = (SpotLight)super.clone();
|
||||
s.direction = direction.clone();
|
||||
s.position = position.clone();
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user