package org.simantics.plant3d.scenegraph;
import java.util.HashSet;
+import java.util.Objects;
import java.util.Set;
import javax.vecmath.Quat4d;
@RelatedSetValue(Layer0.URIs.HasName)
@SetPropertyValue(Layer0.URIs.HasName)
public void setName(String name) {
- if (name == null)
+ if (name == null || name.equals(this.name))
return;
this.name = name;
firePropertyChanged(Layer0.URIs.HasName);
@SetPropertyValue(G3D.URIs.hasOrientation)
public void setOrientation(Quat4d orientation) {
assert(orientation != null);
+ if (Objects.equals(this.orientation, orientation))
+ return;
+
this.orientation = orientation;
firePropertyChanged(G3D.URIs.hasOrientation);
@SetPropertyValue(G3D.URIs.hasPosition)
public void setPosition(Vector3d position) {
assert(position != null);
+ if (Objects.equals(this.position, position))
+ return;
+
this.position = position;
firePropertyChanged(G3D.URIs.hasPosition);
}
@Override
- public Object getAdapter(Class adapter) {
- if (IG3DNode.class == adapter)
- return this;
+ public <C> C getAdapter(Class<C> adapter) {
+ if (adapter.isInstance(this))
+ return adapter.cast(this);
return null;
}