diff --git a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form index 71846046c..9a1a0cf7b 100644 --- a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form +++ b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form @@ -247,6 +247,9 @@ + + + @@ -264,6 +267,9 @@ + + + @@ -281,6 +287,9 @@ + + + @@ -356,6 +365,9 @@ + + + @@ -372,6 +384,9 @@ + + + @@ -400,6 +415,9 @@ + + + @@ -484,6 +502,9 @@ + + + @@ -497,6 +518,9 @@ + + + @@ -531,6 +555,9 @@ + + + @@ -541,6 +568,9 @@ + + + diff --git a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java index 4a9e97ec0..2dd46dc8d 100644 --- a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java +++ b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java @@ -215,6 +215,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce jToolBar1.add(scaleButton); jToolBar1.add(jSeparator5); + addObjectButton.setBackground(new java.awt.Color(204, 204, 204)); addObjectButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/add.gif"))); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(addObjectButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.addObjectButton.text")); // NOI18N addObjectButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.addObjectButton.toolTipText")); // NOI18N @@ -226,6 +227,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce }); jToolBar1.add(addObjectButton); + addCursorButton.setBackground(new java.awt.Color(204, 204, 204)); addCursorButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/add.gif"))); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(addCursorButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.addCursorButton.text")); // NOI18N addCursorButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.addCursorButton.toolTipText")); // NOI18N @@ -237,6 +239,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce }); jToolBar1.add(addCursorButton); + moveToCursorButton.setBackground(new java.awt.Color(204, 204, 204)); moveToCursorButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/move.gif"))); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(moveToCursorButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.moveToCursorButton.text")); // NOI18N moveToCursorButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.moveToCursorButton.toolTipText")); // NOI18N @@ -284,6 +287,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel1.text")); // NOI18N jToolBar1.add(jLabel1); + resetCursorButton.setBackground(new java.awt.Color(204, 204, 204)); org.openide.awt.Mnemonics.setLocalizedText(resetCursorButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.resetCursorButton.text")); // NOI18N resetCursorButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.resetCursorButton.toolTipText")); // NOI18N resetCursorButton.setFocusable(false); @@ -296,6 +300,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce }); jToolBar1.add(resetCursorButton); + cursorToSelectionButton.setBackground(new java.awt.Color(204, 204, 204)); org.openide.awt.Mnemonics.setLocalizedText(cursorToSelectionButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.cursorToSelectionButton.text")); // NOI18N cursorToSelectionButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.cursorToSelectionButton.toolTipText")); // NOI18N cursorToSelectionButton.setFocusable(false); @@ -313,6 +318,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel2.text")); // NOI18N jToolBar1.add(jLabel2); + camToCursorSelectionButton.setBackground(new java.awt.Color(204, 204, 204)); org.openide.awt.Mnemonics.setLocalizedText(camToCursorSelectionButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.camToCursorSelectionButton.text")); // NOI18N camToCursorSelectionButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.camToCursorSelectionButton.toolTipText")); // NOI18N camToCursorSelectionButton.setFocusable(false); @@ -348,6 +354,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce jToolBar2.setFloatable(false); jToolBar2.setRollover(true); + createPhysicsMeshButton.setBackground(new java.awt.Color(204, 204, 204)); org.openide.awt.Mnemonics.setLocalizedText(createPhysicsMeshButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.createPhysicsMeshButton.text")); // NOI18N createPhysicsMeshButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.createPhysicsMeshButton.toolTipText")); // NOI18N createPhysicsMeshButton.addActionListener(new java.awt.event.ActionListener() { @@ -357,6 +364,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce }); jToolBar2.add(createPhysicsMeshButton); + jCheckBox1.setBackground(new java.awt.Color(204, 204, 204)); org.openide.awt.Mnemonics.setLocalizedText(jCheckBox1, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jCheckBox1.text")); // NOI18N jToolBar2.add(jCheckBox1); @@ -370,6 +378,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce jToolBar3.setFloatable(false); jToolBar3.setRollover(true); + jButton1.setBackground(new java.awt.Color(204, 204, 204)); org.openide.awt.Mnemonics.setLocalizedText(jButton1, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jButton1.text")); // NOI18N jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -378,6 +387,7 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce }); jToolBar3.add(jButton1); + fixedCheckBox.setBackground(new java.awt.Color(204, 204, 204)); fixedCheckBox.setSelected(true); org.openide.awt.Mnemonics.setLocalizedText(fixedCheckBox, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.fixedCheckBox.text")); // NOI18N fixedCheckBox.setEnabled(false); @@ -511,7 +521,6 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce MoveTool tool = new MoveTool(); toolController.showEditTool(tool); }//GEN-LAST:event_moveButtonActionPerformed - // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton addCursorButton; private javax.swing.JButton addObjectButton; @@ -680,9 +689,9 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce if (node == null) { jList1.setListData(new String[]{}); } else if (node) { - jList1.setListData(new String[]{"Node", "Particle Emitter", "Audio Node", "Picture", "Point Light", "Directional Light", "Ambient Light"}); + jList1.setListData(new String[]{"Node", "Particle Emitter", "Audio Node", "Picture", "Point Light" ,"Spot Light", "Directional Light", "Ambient Light"}); } else { - jList1.setListData(new String[]{"Point Light", "Directional Light", "Ambient Light"}); + jList1.setListData(new String[]{"Point Light", "Spot Light", "Directional Light", "Ambient Light"}); } } }); @@ -893,30 +902,30 @@ public final class SceneComposerTopComponent extends TopComponent implements Sce camController.setToolController(toolController); camController.setMaster(this); camController.enable(); - + toolController.setCameraController(camController); SelectTool tool = new SelectTool(); toolController.showEditTool(tool); }/* else { - SceneApplication.getApplication().removeSceneListener(this); - currentRequest = null; - setSceneInfo(null, false); - cleanupControllers(); - }*/ + SceneApplication.getApplication().removeSceneListener(this); + currentRequest = null; + setSceneInfo(null, false); + cleanupControllers(); + }*/ } public boolean sceneClose(SceneRequest request) { if (request.equals(currentRequest)) { // if (checkSaved()) { - SceneApplication.getApplication().removeSceneListener(this); - currentRequest = null; - setSceneInfo(null, null, false); - java.awt.EventQueue.invokeLater(new Runnable() { + SceneApplication.getApplication().removeSceneListener(this); + currentRequest = null; + setSceneInfo(null, null, false); + java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - cleanupControllers(); - } - }); + public void run() { + cleanupControllers(); + } + }); // } else { // return false; // } diff --git a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneEditorController.java b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneEditorController.java index ba0a44ac9..2d466bc82 100644 --- a/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneEditorController.java +++ b/sdk/jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneEditorController.java @@ -25,6 +25,7 @@ import com.jme3.light.AmbientLight; import com.jme3.light.DirectionalLight; import com.jme3.light.Light; import com.jme3.light.PointLight; +import com.jme3.light.SpotLight; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; import com.jme3.math.Quaternion; @@ -204,6 +205,18 @@ public class SceneEditorController implements PropertyChangeListener, NodeListen refreshSelected(); undoLight = light; undoParent = ((Node) selected); + } else if ("Spot Light".equals(name)) { + SpotLight light = new SpotLight(); + if (point != null) { + Vector3f localVec = new Vector3f(); + selected.worldToLocal(point, localVec); + light.setPosition(localVec); + } + light.setColor(ColorRGBA.White); + ((Node) selected).addLight(light); + refreshSelected(); + undoLight = light; + undoParent = ((Node) selected); } else if ("Directional Light".equals(name)) { DirectionalLight dl = new DirectionalLight(); dl.setDirection(new Vector3f(-1, -1, -1).normalizeLocal()); @@ -231,7 +244,19 @@ public class SceneEditorController implements PropertyChangeListener, NodeListen selected.addLight(light); refreshSelected(); undoLight = light; - undoParent = ((Node) selected); + undoSpatial = ((Geometry) selected); + } else if ("Spot Light".equals(name)) { + SpotLight light = new SpotLight(); + if (point != null) { + Vector3f localVec = new Vector3f(); + selected.worldToLocal(point, localVec); + light.setPosition(localVec); + } + light.setColor(ColorRGBA.White); + selected.addLight(light); + refreshSelected(); + undoLight = light; + undoSpatial = ((Geometry) selected); } else if ("Directional Light".equals(name)) { DirectionalLight dl = new DirectionalLight(); dl.setDirection(new Vector3f(-1, -1, -1).normalizeLocal()); @@ -239,14 +264,14 @@ public class SceneEditorController implements PropertyChangeListener, NodeListen selected.addLight(dl); refreshSelected(); undoLight = dl; - undoParent = ((Node) selected); + undoSpatial = ((Geometry) selected); } else if ("Ambient Light".equals(name)) { AmbientLight dl = new AmbientLight(); dl.setColor(ColorRGBA.White); selected.addLight(dl); refreshSelected(); undoLight = dl; - undoParent = ((Node) selected); + undoSpatial = ((Geometry) selected); } } AbstractSceneExplorerNode selectedSpat = this.selectedSpat; @@ -453,9 +478,9 @@ public class SceneEditorController implements PropertyChangeListener, NodeListen } public void doRotateSpatial(Spatial selected, Quaternion rotation) { - Quaternion before=new Quaternion(selected.getLocalRotation()); + Quaternion before = new Quaternion(selected.getLocalRotation()); selected.rotate(rotation); - Quaternion after=new Quaternion(selected.getLocalRotation()); + Quaternion after = new Quaternion(selected.getLocalRotation()); rotateUndo(selected, before, after, selectedSpat); } @@ -925,5 +950,4 @@ public class SceneEditorController implements PropertyChangeListener, NodeListen selectedSpat.removePropertyChangeListener(this); } } - }