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);
|
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
|
@Override
|
||||||
public Light clone(){
|
public Light clone(){
|
||||||
try {
|
try {
|
||||||
return (Light) super.clone();
|
Light l = (Light) super.clone();
|
||||||
|
l.color = color.clone();
|
||||||
|
return l;
|
||||||
} catch (CloneNotSupportedException ex) {
|
} catch (CloneNotSupportedException ex) {
|
||||||
throw new AssertionError();
|
throw new AssertionError();
|
||||||
}
|
}
|
||||||
|
@ -241,4 +241,11 @@ public class PointLight extends Light {
|
|||||||
this.invRadius = 0;
|
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;
|
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