From 9179c9e40192b4dbb77c3c700d838678cdd8032d Mon Sep 17 00:00:00 2001 From: "rem..om" Date: Sun, 12 Aug 2012 14:30:16 +0000 Subject: [PATCH] SDK : - Select Tool Fxed NPE when selecting a child node of a lonked asset in the viewer. - Move tool fixed bad application of scale when moving. git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9647 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../src/com/jme3/gde/scenecomposer/tools/MoveManager.java | 4 ++-- .../src/com/jme3/gde/scenecomposer/tools/SelectTool.java | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) 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); + } } }); }