diff --git a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/tools/MoveManager.java b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/tools/MoveManager.java index 1c0f2db9c..e4ae271b7 100644 --- a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/tools/MoveManager.java +++ b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/tools/MoveManager.java @@ -119,10 +119,10 @@ public class MoveManager { newPos.set(Math.round(newPos.x), Math.round(newPos.y), Math.round(newPos.z)); } - //computing the inverse world transform to get the new localtranslation + //computing the inverse world transform to get the new localtranslation newPos.subtractLocal(spatial.getParent().getWorldTranslation()); newPos = spatial.getParent().getWorldRotation().inverse().normalizeLocal().multLocal(newPos); - newPos.divideLocal(spatial.getWorldScale()); + lastLoc = newPos; spatial.setLocalTranslation(newPos); diff --git a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/tools/SelectTool.java b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/tools/SelectTool.java index 0bf4ef17b..70add3c09 100644 --- a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/tools/SelectTool.java +++ b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/tools/SelectTool.java @@ -472,8 +472,12 @@ public class SelectTool extends SceneEditTool { } private void doSelect() { - SceneViewerTopComponent.findInstance().setActivatedNodes(new org.openide.nodes.Node[]{rootNode.getChild(selec)}); - SceneExplorerTopComponent.findInstance().setSelectedNode(rootNode.getChild(selec)); + //in case of linked assets the selected nod ein the viewer is not necessarily in the explorer. + JmeSpatial n = rootNode.getChild(selec); + if(n!= null){ + SceneViewerTopComponent.findInstance().setActivatedNodes(new org.openide.nodes.Node[]{n}); + SceneExplorerTopComponent.findInstance().setSelectedNode(n); + } } }); }