2
0
Эх сурвалжийг харах

SceneComposer and some SceneViewer updates

rickard 2 жил өмнө
parent
commit
d58574a417
100 өөрчлөгдсөн 1313 нэмэгдсэн , 109 устгасан
  1. BIN
      jme3-core/src/com/jme3/gde/core/icons/65.png
  2. 24 13
      jme3-core/src/com/jme3/gde/core/icons/IconList.java
  3. BIN
      jme3-core/src/com/jme3/gde/core/icons/anim.png
  4. BIN
      jme3-core/src/com/jme3/gde/core/icons/animPlay.png
  5. BIN
      jme3-core/src/com/jme3/gde/core/icons/animationcontrol.gif
  6. BIN
      jme3-core/src/com/jme3/gde/core/icons/assets.gif
  7. BIN
      jme3-core/src/com/jme3/gde/core/icons/audioTrack.png
  8. BIN
      jme3-core/src/com/jme3/gde/core/icons/audionode.gif
  9. BIN
      jme3-core/src/com/jme3/gde/core/icons/back.png
  10. BIN
      jme3-core/src/com/jme3/gde/core/icons/bitmaptext.gif
  11. BIN
      jme3-core/src/com/jme3/gde/core/icons/bone.png
  12. BIN
      jme3-core/src/com/jme3/gde/core/icons/boneTrack.png
  13. BIN
      jme3-core/src/com/jme3/gde/core/icons/bottom.png
  14. BIN
      jme3-core/src/com/jme3/gde/core/icons/box_color.gif
  15. BIN
      jme3-core/src/com/jme3/gde/core/icons/box_wire.gif
  16. BIN
      jme3-core/src/com/jme3/gde/core/icons/charactercontrol.gif
  17. BIN
      jme3-core/src/com/jme3/gde/core/icons/chimpanzee-confused.gif
  18. BIN
      jme3-core/src/com/jme3/gde/core/icons/chimpanzee-lobotized.gif
  19. BIN
      jme3-core/src/com/jme3/gde/core/icons/chimpanzee-mad.gif
  20. BIN
      jme3-core/src/com/jme3/gde/core/icons/chimpanzee-nogood.gif
  21. BIN
      jme3-core/src/com/jme3/gde/core/icons/chimpanzee-sad.gif
  22. BIN
      jme3-core/src/com/jme3/gde/core/icons/chimpanzee-smile.gif
  23. 1 0
      jme3-core/src/com/jme3/gde/core/icons/confirmed_large.svg
  24. BIN
      jme3-core/src/com/jme3/gde/core/icons/crossedEye.gif
  25. 1 1
      jme3-core/src/com/jme3/gde/core/icons/cube-green.svg
  26. 3 3
      jme3-core/src/com/jme3/gde/core/icons/eye-green.svg
  27. BIN
      jme3-core/src/com/jme3/gde/core/icons/eye.gif
  28. BIN
      jme3-core/src/com/jme3/gde/core/icons/eyeGreen.gif
  29. BIN
      jme3-core/src/com/jme3/gde/core/icons/eyeOff.gif
  30. BIN
      jme3-core/src/com/jme3/gde/core/icons/font.gif
  31. BIN
      jme3-core/src/com/jme3/gde/core/icons/front.png
  32. BIN
      jme3-core/src/com/jme3/gde/core/icons/geometry.gif
  33. BIN
      jme3-core/src/com/jme3/gde/core/icons/ghostcontrol.gif
  34. BIN
      jme3-core/src/com/jme3/gde/core/icons/ghostnode.gif
  35. BIN
      jme3-core/src/com/jme3/gde/core/icons/gui.gif
  36. BIN
      jme3-core/src/com/jme3/gde/core/icons/image.gif
  37. BIN
      jme3-core/src/com/jme3/gde/core/icons/important.gif
  38. 1 0
      jme3-core/src/com/jme3/gde/core/icons/info_green.svg
  39. BIN
      jme3-core/src/com/jme3/gde/core/icons/jme-logo.png
  40. BIN
      jme3-core/src/com/jme3/gde/core/icons/left.png
  41. 1 1
      jme3-core/src/com/jme3/gde/core/icons/light-bulb-off.svg
  42. 1 1
      jme3-core/src/com/jme3/gde/core/icons/light-bulb.svg
  43. BIN
      jme3-core/src/com/jme3/gde/core/icons/light.gif
  44. BIN
      jme3-core/src/com/jme3/gde/core/icons/lightbulb.gif
  45. BIN
      jme3-core/src/com/jme3/gde/core/icons/lightbulb_off.gif
  46. BIN
      jme3-core/src/com/jme3/gde/core/icons/linknode.gif
  47. BIN
      jme3-core/src/com/jme3/gde/core/icons/material.gif
  48. BIN
      jme3-core/src/com/jme3/gde/core/icons/mesh.gif
  49. BIN
      jme3-core/src/com/jme3/gde/core/icons/model.gif
  50. BIN
      jme3-core/src/com/jme3/gde/core/icons/node.gif
  51. 68 0
      jme3-core/src/com/jme3/gde/core/icons/ortho.svg
  52. BIN
      jme3-core/src/com/jme3/gde/core/icons/particleemitter.gif
  53. BIN
      jme3-core/src/com/jme3/gde/core/icons/physicscontrol.gif
  54. BIN
      jme3-core/src/com/jme3/gde/core/icons/physicsnode.gif
  55. BIN
      jme3-core/src/com/jme3/gde/core/icons/physicswheel.gif
  56. BIN
      jme3-core/src/com/jme3/gde/core/icons/player.gif
  57. BIN
      jme3-core/src/com/jme3/gde/core/icons/right.png
  58. BIN
      jme3-core/src/com/jme3/gde/core/icons/scene.gif
  59. 1 1
      jme3-core/src/com/jme3/gde/core/icons/sight-disabled.svg
  60. BIN
      jme3-core/src/com/jme3/gde/core/icons/skeletonControl.gif
  61. BIN
      jme3-core/src/com/jme3/gde/core/icons/sound.gif
  62. 147 1
      jme3-core/src/com/jme3/gde/core/icons/sun-cloud.svg
  63. BIN
      jme3-core/src/com/jme3/gde/core/icons/terrain.png
  64. BIN
      jme3-core/src/com/jme3/gde/core/icons/top.png
  65. BIN
      jme3-core/src/com/jme3/gde/core/icons/track.png
  66. BIN
      jme3-core/src/com/jme3/gde/core/icons/user.png
  67. BIN
      jme3-core/src/com/jme3/gde/core/icons/vehicle.png
  68. 0 0
      jme3-core/src/com/jme3/gde/core/icons/wire-mesh.svg
  69. 61 5
      jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.form
  70. 24 5
      jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.java
  71. 12 12
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/Bundle.properties
  72. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/People_035.gif
  73. 29 2
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerToolController.java
  74. 228 37
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form
  75. 92 27
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java
  76. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/add.gif
  77. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/box_wire.gif
  78. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/camera.gif
  79. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/cursor.gif
  80. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icon_arrow_inout.png
  81. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icon_arrow_out.png
  82. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icon_arrow_rotate_clockwise.png
  83. BIN
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icon_select.png
  84. 73 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/Icons.java
  85. 71 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/add.svg
  86. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/arrow-cursor.svg
  87. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/clockwise-rotation.svg
  88. 70 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/eye-green.svg
  89. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/film-projector.svg
  90. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/move.svg
  91. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/pause-button.svg
  92. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/plain-arrow.svg
  93. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/play-button.svg
  94. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/position-marker.svg
  95. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/resize.svg
  96. 1 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/save-arrow.svg
  97. 100 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/select_geom.svg
  98. 110 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/select_terrain.svg
  99. 94 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/snap_cursor.svg
  100. 91 0
      jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/snap_geom.svg

BIN
jme3-core/src/com/jme3/gde/core/icons/65.png


+ 24 - 13
jme3-core/src/com/jme3/gde/core/icons/IconList.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003-2012 jMonkeyEngine
+ * Copyright (c) 2003-2022 jMonkeyEngine
  * All rights reserved.
  * 
  * Redistribution and use in source and binary forms, with or without
@@ -31,6 +31,7 @@
  */
 package com.jme3.gde.core.icons;
 
+import javax.swing.Icon;
 import javax.swing.ImageIcon;
 import org.openide.util.ImageUtilities;
 
@@ -64,6 +65,7 @@ public class IconList {
     public static final String PLAY = ICONS_PATH + "play.svg";
     public static final String PICTURE = ICONS_PATH + "mona-lisa.svg";
     public static final String INFO = ICONS_PATH + "info.svg";
+    public static final String INFO_GREEN = ICONS_PATH + "info_green.svg";
     public static final String EMITTER = ICONS_PATH + "bright-fireworks.svg";
     public static final String PLAYER = ICONS_PATH + "character.svg";
     public static final String GHOST_CONTROL = ICONS_PATH + "invisible.svg";
@@ -87,6 +89,9 @@ public class IconList {
     public static final String MOTION_EVENT = ICONS_PATH + "run.svg";
     public static final String TERRAIN = ICONS_PATH + "terrain.svg";
     public static final String PBR_SKY = ICONS_PATH + "sun-cloud.svg";
+    public static final String PBR_ENV = ICONS_PATH + "confirmed_large.svg";
+    
+    // 16x16
     
     public static final ImageIcon jmeLogo =
             ImageUtilities.loadImageIcon(JME_LOGO, false);
@@ -138,16 +143,8 @@ public class IconList {
             ImageUtilities.loadImageIcon(LIGHT_BULB, false);
     public static final ImageIcon eyeOpen =
             ImageUtilities.loadImageIcon(EYE, false);
-    public static final ImageIcon eyeGreen =
-            ImageUtilities.loadImageIcon(EYE_GREEN, false);
-    public static final ImageIcon eyeOff =
-            ImageUtilities.loadImageIcon(EYE_OFF, false);
     public static final ImageIcon eyeCrossed =
             ImageUtilities.loadImageIcon(EYE_OFF, false);
-    public static final ImageIcon colorBox =
-            ImageUtilities.loadImageIcon(BOX_COLOR, false);
-    public static final ImageIcon wireBox =
-            ImageUtilities.loadImageIcon(WIRE_MESH, false);
     public static final ImageIcon info =
             ImageUtilities.loadImageIcon(INFO, false);
     public static final ImageIcon player =
@@ -170,8 +167,6 @@ public class IconList {
             ImageUtilities.loadImageIcon(GEOMETRY, false);
     public static final ImageIcon ghostControl =
             ImageUtilities.loadImageIcon(GHOST_CONTROL, false);
-    public static final ImageIcon light =
-            ImageUtilities.loadImageIcon(LIGHT_BULB, false);
     public static final ImageIcon mesh =
             ImageUtilities.loadImageIcon(MESH, false);
     public static final ImageIcon motionEvent =
@@ -192,13 +187,29 @@ public class IconList {
             ImageUtilities.loadImageIcon(QUESTION, false);
     public static final ImageIcon exception =
             ImageUtilities.loadImageIcon(ERROR, false);
-    public static final ImageIcon chimpMad =
-            ImageUtilities.loadImageIcon(PBR_SKY, false);
     public static final ImageIcon chimpNogood =
             ImageUtilities.loadImageIcon(ERROR, false);
     public static final ImageIcon chimpSad =
             ImageUtilities.loadImageIcon(WARNING, false);
     public static final ImageIcon chimpSmile =
             ImageUtilities.loadImageIcon(CONFIRMED, false);
+    
+    // SceneViewer 32x32
    
+    public static final ImageIcon colorBox =
+            ImageUtilities.loadImageIcon(BOX_COLOR, false);
+    public static final ImageIcon wireBox =
+            ImageUtilities.loadImageIcon(WIRE_MESH, false);
+    public static final ImageIcon light =
+            ImageUtilities.loadImageIcon(LIGHT_BULB, false);
+    public static final ImageIcon eyeOff =
+            ImageUtilities.loadImageIcon(EYE_OFF, false);
+    public static final ImageIcon eyeGreen =
+            ImageUtilities.loadImageIcon(EYE_GREEN, false);
+    public static final ImageIcon enablePbrEnvironment =
+            ImageUtilities.loadImageIcon(PBR_ENV, false);
+    public static final ImageIcon enablePbrSky =
+            ImageUtilities.loadImageIcon(PBR_SKY, false);
+    public static final ImageIcon sceneInfo =
+            ImageUtilities.loadImageIcon(INFO_GREEN, false);
 }

BIN
jme3-core/src/com/jme3/gde/core/icons/anim.png


BIN
jme3-core/src/com/jme3/gde/core/icons/animPlay.png


BIN
jme3-core/src/com/jme3/gde/core/icons/animationcontrol.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/assets.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/audioTrack.png


BIN
jme3-core/src/com/jme3/gde/core/icons/audionode.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/back.png


BIN
jme3-core/src/com/jme3/gde/core/icons/bitmaptext.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/bone.png


BIN
jme3-core/src/com/jme3/gde/core/icons/boneTrack.png


BIN
jme3-core/src/com/jme3/gde/core/icons/bottom.png


BIN
jme3-core/src/com/jme3/gde/core/icons/box_color.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/box_wire.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/charactercontrol.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/chimpanzee-confused.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/chimpanzee-lobotized.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/chimpanzee-mad.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/chimpanzee-nogood.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/chimpanzee-sad.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/chimpanzee-smile.gif


+ 1 - 0
jme3-core/src/com/jme3/gde/core/icons/confirmed_large.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M256 16C123.5 16 16 123.5 16 256c0 132.6 107.5 240 240 240 132.6 0 240-107.4 240-240S388.6 16 256 16zm0 60c99.4 0 180 80.6 180 180s-80.6 180-180 180S76 355.4 76 256 156.6 76 256 76zm91.3 64.2c-6.5 0-12.5 2.4-16.8 8.2-52 70.1-69 96.5-106 169.8-8.4-11.1-65.6-72.4-93.9-94.1-14.2-10.9-41.3 27.2-31.6 37.1C142.6 306.1 220.1 406 232.7 405c21.4-1.7 75.1-136.8 148.8-233.7 8-10.4-15-31.3-34.2-31.1z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #65a91a;" data-darkreader-inline-fill=""></path></g></svg>

BIN
jme3-core/src/com/jme3/gde/core/icons/crossedEye.gif


+ 1 - 1
jme3-core/src/com/jme3/gde/core/icons/cube-green.svg

@@ -1 +1 @@
-<svg style="height: 16px; width: 16px;" width="16px" height="16px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M256 24.585L51.47 118.989 256 213.394l204.53-94.405zM38.998 133.054v258.353L247 487.415V229.063zm434.004 0L265 229.062v258.353l208.002-96.008z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M256 24.585L51.47 118.989 256 213.394l204.53-94.405zM38.998 133.054v258.353L247 487.415V229.063zm434.004 0L265 229.062v258.353l208.002-96.008z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 3 - 3
jme3-core/src/com/jme3/gde/core/icons/eye-green.svg

@@ -7,9 +7,9 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   style="height: 16px; width: 16px;"
-   width="16px"
-   height="16px"
+   style="height: 32px; width: 32px;"
+   width="32px"
+   height="32px"
    viewBox="0 0 512 512"
    version="1.1"
    id="svg8"

BIN
jme3-core/src/com/jme3/gde/core/icons/eye.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/eyeGreen.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/eyeOff.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/font.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/front.png


BIN
jme3-core/src/com/jme3/gde/core/icons/geometry.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/ghostcontrol.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/ghostnode.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/gui.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/image.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/important.gif


+ 1 - 0
jme3-core/src/com/jme3/gde/core/icons/info_green.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M256 21C126.426 21 21 126.426 21 256s105.426 235 235 235 235-105.426 235-235S385.574 21 256 21zm0 36c110.118 0 199 88.882 199 199s-88.882 199-199 199S57 366.118 57 256 145.882 57 256 57zm-7.352 36.744c-8.227 0-15.317 2.976-21.27 8.928-5.776 5.952-8.665 12.955-8.665 21.008 0 8.227 2.89 15.23 8.666 21.006 5.95 5.776 13.04 8.666 21.268 8.666 8.228 0 15.23-2.89 21.006-8.666 5.777-5.777 8.666-12.78 8.666-21.006 0-8.053-2.976-15.056-8.927-21.008-5.777-5.952-12.692-8.928-20.745-8.928zm-62.757 82.453v28.096h46.215v186.13H185.89v27.833h140.22v-27.834h-45.69V176.197h-94.53z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

BIN
jme3-core/src/com/jme3/gde/core/icons/jme-logo.png


BIN
jme3-core/src/com/jme3/gde/core/icons/left.png


+ 1 - 1
jme3-core/src/com/jme3/gde/core/icons/light-bulb-off.svg

@@ -1 +1 @@
-<svg style="height: 16px; width: 16px;" width="16px" height="16px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M247 18.656c-80.965 0-146.875 65.02-146.875 145.625 0 45.63 15.758 67 33.313 94.845 11.706 18.57 23.767 39.91 30.53 70.563h165.095c6.728-31.387 18.91-53.12 30.718-71.875 17.58-27.92 33.314-48.912 33.314-93.532 0-80.66-65.127-145.624-146.094-145.624zm-99.78 127.906L170.437 167 210 201.813l31.188-34.125 6.78-7.438 6.907 7.344 30.75 32.72 39.97-33.47 22.686-19-7.655 28.594L304.75 310.28l-18.063-4.842 28.22-105.25-24.032 20.125-6.78 5.656-6.033-6.44-29.906-31.78-30.562 33.438-6.188 6.78-6.875-6.062-23.25-20.437 27.94 104.218-18.064 4.812-35.937-134.063-8-29.875zm22.593 201.813V389.5L315 348.375H169.812zm153.593 17.063l-153.594 43.53v29.438l153.594-43.5v-29.47zm0 48.875L203.97 448.156h119.436v-33.844zm-132.562 52.53v20.533h113.282v-20.53h-113.28z" fill="#777777" fill-opacity="1" style="--darkreader-inline-fill: #c6b900;" data-darkreader-inline-fill=""></path></g></svg>
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M247 18.656c-80.965 0-146.875 65.02-146.875 145.625 0 45.63 15.758 67 33.313 94.845 11.706 18.57 23.767 39.91 30.53 70.563h165.095c6.728-31.387 18.91-53.12 30.718-71.875 17.58-27.92 33.314-48.912 33.314-93.532 0-80.66-65.127-145.624-146.094-145.624zm-99.78 127.906L170.437 167 210 201.813l31.188-34.125 6.78-7.438 6.907 7.344 30.75 32.72 39.97-33.47 22.686-19-7.655 28.594L304.75 310.28l-18.063-4.842 28.22-105.25-24.032 20.125-6.78 5.656-6.033-6.44-29.906-31.78-30.562 33.438-6.188 6.78-6.875-6.062-23.25-20.437 27.94 104.218-18.064 4.812-35.937-134.063-8-29.875zm22.593 201.813V389.5L315 348.375H169.812zm153.593 17.063l-153.594 43.53v29.438l153.594-43.5v-29.47zm0 48.875L203.97 448.156h119.436v-33.844zm-132.562 52.53v20.533h113.282v-20.53h-113.28z" fill="#777777" fill-opacity="1" style="--darkreader-inline-fill: #c6b900;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 1
jme3-core/src/com/jme3/gde/core/icons/light-bulb.svg

@@ -1 +1 @@
-<svg style="height: 16px; width: 16px;" width="16px" height="16px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M247 18.656c-80.965 0-146.875 65.02-146.875 145.625 0 45.63 15.758 67 33.313 94.845 11.706 18.57 23.767 39.91 30.53 70.563h165.095c6.728-31.387 18.91-53.12 30.718-71.875 17.58-27.92 33.314-48.912 33.314-93.532 0-80.66-65.127-145.624-146.094-145.624zm-99.78 127.906L170.437 167 210 201.813l31.188-34.125 6.78-7.438 6.907 7.344 30.75 32.72 39.97-33.47 22.686-19-7.655 28.594L304.75 310.28l-18.063-4.842 28.22-105.25-24.032 20.125-6.78 5.656-6.033-6.44-29.906-31.78-30.562 33.438-6.188 6.78-6.875-6.062-23.25-20.437 27.94 104.218-18.064 4.812-35.937-134.063-8-29.875zm22.593 201.813V389.5L315 348.375H169.812zm153.593 17.063l-153.594 43.53v29.438l153.594-43.5v-29.47zm0 48.875L203.97 448.156h119.436v-33.844zm-132.562 52.53v20.533h113.282v-20.53h-113.28z" fill="#f8e700" fill-opacity="1" style="--darkreader-inline-fill: #c6b900;" data-darkreader-inline-fill=""></path></g></svg>
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M247 18.656c-80.965 0-146.875 65.02-146.875 145.625 0 45.63 15.758 67 33.313 94.845 11.706 18.57 23.767 39.91 30.53 70.563h165.095c6.728-31.387 18.91-53.12 30.718-71.875 17.58-27.92 33.314-48.912 33.314-93.532 0-80.66-65.127-145.624-146.094-145.624zm-99.78 127.906L170.437 167 210 201.813l31.188-34.125 6.78-7.438 6.907 7.344 30.75 32.72 39.97-33.47 22.686-19-7.655 28.594L304.75 310.28l-18.063-4.842 28.22-105.25-24.032 20.125-6.78 5.656-6.033-6.44-29.906-31.78-30.562 33.438-6.188 6.78-6.875-6.062-23.25-20.437 27.94 104.218-18.064 4.812-35.937-134.063-8-29.875zm22.593 201.813V389.5L315 348.375H169.812zm153.593 17.063l-153.594 43.53v29.438l153.594-43.5v-29.47zm0 48.875L203.97 448.156h119.436v-33.844zm-132.562 52.53v20.533h113.282v-20.53h-113.28z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #c6b900;" data-darkreader-inline-fill=""></path></g></svg>

BIN
jme3-core/src/com/jme3/gde/core/icons/light.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/lightbulb.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/lightbulb_off.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/linknode.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/material.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/mesh.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/model.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/node.gif


+ 68 - 0
jme3-core/src/com/jme3/gde/core/icons/ortho.svg

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="height: 16px; width: 16px;"
+   width="16px"
+   height="16px"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="ortho.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs12" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1160"
+     inkscape:window-height="1024"
+     id="namedview10"
+     showgrid="true"
+     showguides="false"
+     inkscape:zoom="29.5"
+     inkscape:cx="6.9401069"
+     inkscape:cy="11.554132"
+     inkscape:window-x="42"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg8">
+    <inkscape:grid
+       type="xygrid"
+       id="grid823" />
+  </sodipodi:namedview>
+  <path
+     d="M0 0h512v512H0z"
+     fill="#000000"
+     fill-opacity="0"
+     style="--darkreader-inline-fill: #000000;"
+     data-darkreader-inline-fill=""
+     id="path2" />
+  <path
+     id="rect827-1-81"
+     style="opacity:0.98999999;fill:none;fill-opacity:1;stroke:#48baff;stroke-width:4.51200008;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 416,416 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m -64,384 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m -64,384 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m -64,384 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m -64,384 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 v 64 h -64 z m 0,-64 h 64 V 96 H 160 Z M 96,416 h 64 v 64 H 96 Z m 0,-64 h 64 v 64 H 96 Z m 0,-64 h 64 v 64 H 96 Z m 0,-64 h 64 v 64 H 96 Z m 0,-64 h 64 v 64 H 96 Z m 0,-64 h 64 v 64 H 96 Z m 0,-64 h 64 V 96 H 96 Z M 32,416 h 64 v 64 H 32 Z m 0,-64 h 64 v 64 H 32 Z m 0,-64 h 64 v 64 H 32 Z m 0,-64 h 64 v 64 H 32 Z m 0,-64 h 64 v 64 H 32 Z m 0,-64 h 64 v 64 H 32 Z M 32,32 H 96 V 96 H 32 Z" />
+</svg>

BIN
jme3-core/src/com/jme3/gde/core/icons/particleemitter.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/physicscontrol.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/physicsnode.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/physicswheel.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/player.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/right.png


BIN
jme3-core/src/com/jme3/gde/core/icons/scene.gif


+ 1 - 1
jme3-core/src/com/jme3/gde/core/icons/sight-disabled.svg

@@ -1 +1 @@
-<svg style="height: 16px; width: 16px;" width="16px" height="16px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M405.822 78.899l24.444 24.444L100.485 433.1 76.04 408.657zM168.32 255.677a87.704 87.704 0 0 1 117.196-82.575l43.402-43.402A236.362 236.362 0 0 0 256 118.452a239.715 239.715 0 0 0-84.454 15.616 270.752 270.752 0 0 0-38.861 18.59 293.179 293.179 0 0 0-34.816 23.821 311.884 311.884 0 0 0-29.423 26.507 336.397 336.397 0 0 0-22.681 25.355l-4.46 5.554-3.93 5.267c-2.443 3.204-4.518 6.224-6.2 8.678-1.683 2.455-2.974 4.541-3.85 5.855L26 255.758l1.325 2.063c.876 1.325 2.167 3.457 3.85 5.854 1.682 2.398 3.757 5.475 6.2 8.679l3.93 5.266 4.46 5.555a336.397 336.397 0 0 0 22.68 25.355 311.895 311.895 0 0 0 29.424 26.507q7.145 5.67 14.82 11.018l60.736-60.736a87.508 87.508 0 0 1-5.106-29.642zm316.367-2.086c-.876-1.337-2.166-3.515-3.85-5.889-1.682-2.374-3.756-5.509-6.2-8.736-2.443-3.457-5.255-6.995-8.39-10.867a339.52 339.52 0 0 0-22.68-25.459 311.768 311.768 0 0 0-29.423-26.564 306.188 306.188 0 0 0-17.587-12.954l-59.375 59.375a87.692 87.692 0 0 1-114.35 114.35l-43.31 43.31A240.015 240.015 0 0 0 256 392.913a236.834 236.834 0 0 0 84.454-15.258 269.046 269.046 0 0 0 38.861-18.544 290.32 290.32 0 0 0 34.816-23.822 311.768 311.768 0 0 0 29.423-26.564 339.52 339.52 0 0 0 22.681-25.458c3.146-3.884 5.947-7.457 8.39-10.868 2.443-3.227 4.518-6.247 6.2-8.736 1.683-2.49 2.974-4.61 3.85-5.89L486 255.69z" fill="#f8e71c" fill-opacity="1" style="--darkreader-inline-fill: #777777;" data-darkreader-inline-fill=""></path></g></svg>
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M405.822 78.899l24.444 24.444L100.485 433.1 76.04 408.657zM168.32 255.677a87.704 87.704 0 0 1 117.196-82.575l43.402-43.402A236.362 236.362 0 0 0 256 118.452a239.715 239.715 0 0 0-84.454 15.616 270.752 270.752 0 0 0-38.861 18.59 293.179 293.179 0 0 0-34.816 23.821 311.884 311.884 0 0 0-29.423 26.507 336.397 336.397 0 0 0-22.681 25.355l-4.46 5.554-3.93 5.267c-2.443 3.204-4.518 6.224-6.2 8.678-1.683 2.455-2.974 4.541-3.85 5.855L26 255.758l1.325 2.063c.876 1.325 2.167 3.457 3.85 5.854 1.682 2.398 3.757 5.475 6.2 8.679l3.93 5.266 4.46 5.555a336.397 336.397 0 0 0 22.68 25.355 311.895 311.895 0 0 0 29.424 26.507q7.145 5.67 14.82 11.018l60.736-60.736a87.508 87.508 0 0 1-5.106-29.642zm316.367-2.086c-.876-1.337-2.166-3.515-3.85-5.889-1.682-2.374-3.756-5.509-6.2-8.736-2.443-3.457-5.255-6.995-8.39-10.867a339.52 339.52 0 0 0-22.68-25.459 311.768 311.768 0 0 0-29.423-26.564 306.188 306.188 0 0 0-17.587-12.954l-59.375 59.375a87.692 87.692 0 0 1-114.35 114.35l-43.31 43.31A240.015 240.015 0 0 0 256 392.913a236.834 236.834 0 0 0 84.454-15.258 269.046 269.046 0 0 0 38.861-18.544 290.32 290.32 0 0 0 34.816-23.822 311.768 311.768 0 0 0 29.423-26.564 339.52 339.52 0 0 0 22.681-25.458c3.146-3.884 5.947-7.457 8.39-10.868 2.443-3.227 4.518-6.247 6.2-8.736 1.683-2.49 2.974-4.61 3.85-5.89L486 255.69z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #777777;" data-darkreader-inline-fill=""></path></g></svg>

BIN
jme3-core/src/com/jme3/gde/core/icons/skeletonControl.gif


BIN
jme3-core/src/com/jme3/gde/core/icons/sound.gif


+ 147 - 1
jme3-core/src/com/jme3/gde/core/icons/sun-cloud.svg

@@ -1 +1,147 @@
-<svg style="height: 16px; width: 16px;" width="16px" height="16px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M383.215 71.94a96 96 0 0 0-96 96 96 96 0 0 0 8.484 39.17c2.492-.108 4.994-.166 7.503-.17h.011c34.226.002 65.356 9.18 88.478 24.636 10.776 7.204 19.885 15.916 26.54 25.738a96 96 0 0 0 60.982-89.373 96 96 0 0 0-96-96zM154.662 179.845c-47.352.003-85.174 36.46-85.178 81.19v.007c.005 7.39 1.07 14.74 3.162 21.86l2.788 9.477-9.698 1.894c-13.05 2.55-23.76 7.818-30.85 14.125-7.087 6.303-10.49 13.255-10.5 20.293v.003c.002 8.806 5.325 17.41 15.807 24.398 10.482 6.988 25.778 11.695 42.832 11.697 8.47-.017 16.842-1.206 24.483-3.443l4.605-1.35 3.686 3.072c17.088 14.243 49.872 24.26 85.2 24.27 14.3-.024 28.434-1.62 41.37-4.64l7.33-1.714 2.982 6.91c8.13 18.84 35.242 34.145 67.123 34.17 20.066-.003 38.075-5.86 50.593-14.742 12.492-8.862 19.286-20.168 19.317-32.172-.012-.335-.028-.67-.05-1.007l-.7-10.11 10.12.495c3.337.164 6.696.252 10.06.26 23.21-.002 44.206-3.737 58.597-9.3 7.198-2.783 12.702-6.056 15.924-9 3.216-2.94 3.942-4.99 3.945-6.514-.004-1.374-.584-3.16-3.215-5.794-2.637-2.64-7.215-5.67-13.352-8.352-12.275-5.363-30.592-9.408-51.623-10.412l-10.803-.516 2.47-10.53c.747-3.18 1.134-6.365 1.18-9.555-.023-18.135-10.99-35.177-30.578-48.27-19.606-13.107-47.5-21.598-78.475-21.6-20.483.028-40.557 3.834-57.793 10.85l-8.252 3.36-3.443-8.216c-12.866-30.71-44.097-51.07-79.06-51.09h-.005z" fill="#48baff" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="height: 32px; width: 32px;"
+   width="32px"
+   height="32px"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="sun-cloud.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs12" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1048"
+     inkscape:window-height="803"
+     id="namedview10"
+     showgrid="false"
+     inkscape:zoom="20.85965"
+     inkscape:cx="5.5801953"
+     inkscape:cy="12.230562"
+     inkscape:window-x="512"
+     inkscape:window-y="380"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g6" />
+  <path
+     d="M0 0h512v512H0z"
+     fill="#000000"
+     fill-opacity="0"
+     style="--darkreader-inline-fill: #000000;"
+     data-darkreader-inline-fill=""
+     id="path2" />
+  <g
+     class=""
+     style=""
+     transform="translate(0,0)"
+     id="g6">
+    <path
+       style="fill:none;stroke:#76df76;stroke-opacity:1;stroke-width:10.592;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 383.215,71.94 a 96,96 0 0 0 -96,96 96,96 0 0 0 8.484,39.17 c 2.492,-0.108 4.994,-0.166 7.503,-0.17 h 0.011 c 34.226,0.002 65.356,9.18 88.478,24.636 10.776,7.204 19.885,15.916 26.54,25.738 a 96,96 0 0 0 60.982,-89.373 96,96 0 0 0 -96,-96 z"
+       id="path823" />
+    <path
+       style="fill:#76df76;fill-opacity:1"
+       d="m 154.662,179.845 c -47.352,0.003 -85.174,36.46 -85.178,81.19 v 0.007 c 0.005,7.39 1.07,14.74 3.162,21.86 l 2.788,9.477 -9.698,1.894 c -13.05,2.55 -23.76,7.818 -30.85,14.125 -7.087,6.303 -10.49,13.255 -10.5,20.293 v 0.003 c 0.002,8.806 5.325,17.41 15.807,24.398 10.482,6.988 25.778,11.695 42.832,11.697 8.47,-0.017 16.842,-1.206 24.483,-3.443 l 4.605,-1.35 3.686,3.072 c 17.088,14.243 49.872,24.26 85.2,24.27 14.3,-0.024 28.434,-1.62 41.37,-4.64 l 7.33,-1.714 2.982,6.91 c 8.13,18.84 35.242,34.145 67.123,34.17 20.066,-0.003 38.075,-5.86 50.593,-14.742 12.492,-8.862 19.286,-20.168 19.317,-32.172 -0.012,-0.335 -0.028,-0.67 -0.05,-1.007 l -0.7,-10.11 10.12,0.495 c 3.337,0.164 6.696,0.252 10.06,0.26 23.21,-0.002 44.206,-3.737 58.597,-9.3 7.198,-2.783 12.702,-6.056 15.924,-9 3.216,-2.94 3.942,-4.99 3.945,-6.514 -0.004,-1.374 -0.584,-3.16 -3.215,-5.794 -2.637,-2.64 -7.215,-5.67 -13.352,-8.352 -12.275,-5.363 -30.592,-9.408 -51.623,-10.412 l -10.803,-0.516 2.47,-10.53 c 0.747,-3.18 1.134,-6.365 1.18,-9.555 -0.023,-18.135 -10.99,-35.177 -30.578,-48.27 -19.606,-13.107 -47.5,-21.598 -78.475,-21.6 -20.483,0.028 -40.557,3.834 -57.793,10.85 l -8.252,3.36 -3.443,-8.216 c -12.866,-30.71 -44.097,-51.07 -79.06,-51.09 h -0.005 z"
+       id="path4" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 247.32204,154.0339 C 45.559322,119.32204 45.559322,119.32204 45.559322,119.32204"
+       id="path829"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 264.67796,112.81356 C 62.915254,28.20339 62.915254,28.20339 62.915254,28.20339"
+       id="path831"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.60000038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 289.68163,87.809896 C 183.37654,16.216676 190.91525,10.847458 190.91525,10.847458"
+       id="path833"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.60000038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 318.01662,62.411427 277.54074,7.910935"
+       id="path835"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 386.1695,49.898304 C 384,6.5084746 384,6.5084746 384,6.5084746"
+       id="path837"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 455.59322,73.76271 C 496.81357,17.355932 496.81357,17.355932 496.81357,17.355932"
+       id="path839"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 459.93219,251.66102 c 41.22035,47.72881 43.38986,47.72881 43.38986,47.72881"
+       id="path841"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 492.47459,114.98305 c 10.84746,-6.50847 10.84746,-6.50847 10.84746,-6.50847"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.60000038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 489.36582,185.24476 17.64173,4.60218"
+       id="path845"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.60000038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 479.39443,217.46006 26.84607,15.34062"
+       id="path847"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 422.63411,54.849472 C 437.20771,8.827608 437.20771,8.827608 437.20771,8.827608"
+       id="path849"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 493.20099,149.96133 11.50547,-0.76704"
+       id="path853"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.60000038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 348.99914,49.480257 335.19258,9.5946392"
+       id="path855"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#76df76;stroke-width:9.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 480.16147,90.899933 504.70646,70.190096"
+       id="path857"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

BIN
jme3-core/src/com/jme3/gde/core/icons/terrain.png


BIN
jme3-core/src/com/jme3/gde/core/icons/top.png


BIN
jme3-core/src/com/jme3/gde/core/icons/track.png


BIN
jme3-core/src/com/jme3/gde/core/icons/user.png


BIN
jme3-core/src/com/jme3/gde/core/icons/vehicle.png


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
jme3-core/src/com/jme3/gde/core/icons/wire-mesh.svg


+ 61 - 5
jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.form

@@ -19,6 +19,12 @@
     <Container class="javax.swing.JToolBar" name="jToolBar1">
       <Properties>
         <Property name="rollover" type="boolean" value="true"/>
+        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[110, 40]"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[110, 40]"/>
+        </Property>
       </Properties>
       <Constraints>
         <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
@@ -41,6 +47,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="selectedIcon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
               <Connection code="IconList.lightOn" type="code"/>
             </Property>
@@ -63,6 +78,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="selectedIcon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
               <Connection code="IconList.eyeGreen" type="code"/>
             </Property>
@@ -73,6 +97,11 @@
           </Events>
         </Component>
         <Component class="javax.swing.JToolBar$Separator" name="jSeparator1">
+          <Properties>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+          </Properties>
         </Component>
         <Component class="javax.swing.JToggleButton" name="enableWireframe">
           <Properties>
@@ -87,6 +116,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="selectedIcon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
               <Connection code="IconList.wireBox" type="code"/>
             </Property>
@@ -99,7 +137,7 @@
         <Component class="javax.swing.JToggleButton" name="enablePBREnv">
           <Properties>
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
-              <Connection code="IconList.chimpSmile" type="code"/>
+              <Connection code="IconList.enablePbrEnvironment" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/core/sceneviewer/Bundle.properties" key="SceneViewerTopComponent.enablePBREnv.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -109,8 +147,17 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="selectedIcon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
-              <Connection code="IconList.chimpSmile" type="code"/>
+              <Connection code="IconList.enablePbrEnvironment" type="code"/>
             </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
@@ -121,7 +168,7 @@
         <Component class="javax.swing.JToggleButton" name="enablePBRSky">
           <Properties>
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
-              <Connection code="IconList.chimpMad" type="code"/>
+              <Connection code="IconList.enablePbrSky" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/core/sceneviewer/Bundle.properties" key="SceneViewerTopComponent.enablePBRSky.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -131,8 +178,17 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="selectedIcon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
-              <Connection code="IconList.chimpMad" type="code"/>
+              <Connection code="IconList.enablePbrSky" type="code"/>
             </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
@@ -147,7 +203,7 @@
         <Component class="javax.swing.JToggleButton" name="enableStats">
           <Properties>
             <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
-              <Connection code="IconList.info" type="code"/>
+              <Connection code="IconList.sceneInfo" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/core/sceneviewer/Bundle.properties" key="SceneViewerTopComponent.enableStats.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>

+ 24 - 5
jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.java

@@ -178,12 +178,17 @@ public final class SceneViewerTopComponent extends TopComponent {
         setLayout(new java.awt.BorderLayout());
 
         jToolBar1.setRollover(true);
+        jToolBar1.setMinimumSize(new java.awt.Dimension(110, 40));
+        jToolBar1.setPreferredSize(new java.awt.Dimension(110, 40));
 
         enableCamLight.setIcon(IconList.lightOff);
         org.openide.awt.Mnemonics.setLocalizedText(enableCamLight, org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enableCamLight.text")); // NOI18N
         enableCamLight.setToolTipText(org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enableCamLight.toolTipText")); // NOI18N
         enableCamLight.setFocusable(false);
         enableCamLight.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        enableCamLight.setMaximumSize(new java.awt.Dimension(32, 32));
+        enableCamLight.setMinimumSize(new java.awt.Dimension(32, 32));
+        enableCamLight.setPreferredSize(new java.awt.Dimension(32, 32));
         enableCamLight.setSelectedIcon(IconList.lightOn);
         enableCamLight.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         enableCamLight.addActionListener(new java.awt.event.ActionListener() {
@@ -198,6 +203,9 @@ public final class SceneViewerTopComponent extends TopComponent {
         jToggleButton1.setToolTipText(org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.jToggleButton1.toolTipText")); // NOI18N
         jToggleButton1.setFocusable(false);
         jToggleButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        jToggleButton1.setMaximumSize(new java.awt.Dimension(32, 32));
+        jToggleButton1.setMinimumSize(new java.awt.Dimension(32, 32));
+        jToggleButton1.setPreferredSize(new java.awt.Dimension(32, 32));
         jToggleButton1.setSelectedIcon(IconList.eyeGreen);
         jToggleButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
@@ -206,6 +214,8 @@ public final class SceneViewerTopComponent extends TopComponent {
             }
         });
         jToolBar1.add(jToggleButton1);
+
+        jSeparator1.setPreferredSize(new java.awt.Dimension(32, 32));
         jToolBar1.add(jSeparator1);
 
         enableWireframe.setIcon(IconList.colorBox);
@@ -213,6 +223,9 @@ public final class SceneViewerTopComponent extends TopComponent {
         enableWireframe.setToolTipText(org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enableWireframe.toolTipText")); // NOI18N
         enableWireframe.setFocusable(false);
         enableWireframe.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        enableWireframe.setMaximumSize(new java.awt.Dimension(32, 32));
+        enableWireframe.setMinimumSize(new java.awt.Dimension(32, 32));
+        enableWireframe.setPreferredSize(new java.awt.Dimension(32, 32));
         enableWireframe.setSelectedIcon(IconList.wireBox);
         enableWireframe.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         enableWireframe.addActionListener(new java.awt.event.ActionListener() {
@@ -222,12 +235,15 @@ public final class SceneViewerTopComponent extends TopComponent {
         });
         jToolBar1.add(enableWireframe);
 
-        enablePBREnv.setIcon(IconList.chimpSmile);
+        enablePBREnv.setIcon(IconList.enablePbrEnvironment);
         org.openide.awt.Mnemonics.setLocalizedText(enablePBREnv, org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enablePBREnv.text")); // NOI18N
         enablePBREnv.setToolTipText(org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enablePBREnv.toolTipText")); // NOI18N
         enablePBREnv.setFocusable(false);
         enablePBREnv.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
-        enablePBREnv.setSelectedIcon(IconList.chimpSmile);
+        enablePBREnv.setMaximumSize(new java.awt.Dimension(32, 32));
+        enablePBREnv.setMinimumSize(new java.awt.Dimension(32, 32));
+        enablePBREnv.setPreferredSize(new java.awt.Dimension(32, 32));
+        enablePBREnv.setSelectedIcon(IconList.enablePbrEnvironment);
         enablePBREnv.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         enablePBREnv.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -236,12 +252,15 @@ public final class SceneViewerTopComponent extends TopComponent {
         });
         jToolBar1.add(enablePBREnv);
 
-        enablePBRSky.setIcon(IconList.chimpMad);
+        enablePBRSky.setIcon(IconList.enablePbrSky);
         org.openide.awt.Mnemonics.setLocalizedText(enablePBRSky, org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enablePBRSky.text")); // NOI18N
         enablePBRSky.setToolTipText(org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enablePBRSky.toolTipText")); // NOI18N
         enablePBRSky.setFocusable(false);
         enablePBRSky.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
-        enablePBRSky.setSelectedIcon(IconList.chimpMad);
+        enablePBRSky.setMaximumSize(new java.awt.Dimension(32, 32));
+        enablePBRSky.setMinimumSize(new java.awt.Dimension(32, 32));
+        enablePBRSky.setPreferredSize(new java.awt.Dimension(32, 32));
+        enablePBRSky.setSelectedIcon(IconList.enablePbrSky);
         enablePBRSky.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         enablePBRSky.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -251,7 +270,7 @@ public final class SceneViewerTopComponent extends TopComponent {
         jToolBar1.add(enablePBRSky);
         jToolBar1.add(jPanel1);
 
-        enableStats.setIcon(IconList.info);
+        enableStats.setIcon(IconList.sceneInfo);
         org.openide.awt.Mnemonics.setLocalizedText(enableStats, org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enableStats.text")); // NOI18N
         enableStats.setToolTipText(org.openide.util.NbBundle.getMessage(SceneViewerTopComponent.class, "SceneViewerTopComponent.enableStats.toolTipText")); // NOI18N
         enableStats.setFocusable(false);

+ 12 - 12
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/Bundle.properties

@@ -16,18 +16,14 @@ SceneComposerTopComponent.sceneInfoLabel3.text=jLabel3
 SceneComposerTopComponent.scenInfoLabel4.text=jLabel3
 SceneComposerTopComponent.sceneInfoLabel1.text=..
 SceneComposerTopComponent.sceneInfoLabel2.text=..
-SceneComposerTopComponent.moveToCursorButton.toolTipText=move selected item to cursor
+SceneComposerTopComponent.moveToCursorButton.toolTipText=Move selected item to cursor
 SceneComposerTopComponent.moveToCursorButton.text=
-SceneComposerTopComponent.showSelectionToggleButton.toolTipText=display selection
-SceneComposerTopComponent.showSelectionToggleButton.text=selection
-SceneComposerTopComponent.showGridToggleButton.toolTipText=display grid
-SceneComposerTopComponent.showGridToggleButton.text=grid
-SceneComposerTopComponent.resetCursorButton.toolTipText=snap cursor to zero
-SceneComposerTopComponent.resetCursorButton.text=zero
+SceneComposerTopComponent.resetCursorButton.toolTipText=Snap cursor to zero
+SceneComposerTopComponent.resetCursorButton.text=Zero
 SceneComposerTopComponent.camToCursorSelectionButton.toolTipText=set camera center to cursor center
-SceneComposerTopComponent.camToCursorSelectionButton.text=cursor
-SceneComposerTopComponent.cursorToSelectionButton.text=selection
-SceneComposerTopComponent.cursorToSelectionButton.toolTipText=snap cursor to selection center
+SceneComposerTopComponent.camToCursorSelectionButton.text=Cursor
+SceneComposerTopComponent.cursorToSelectionButton.text=Selection
+SceneComposerTopComponent.cursorToSelectionButton.toolTipText=Snap cursor to selection center
 SceneComposerTopComponent.createPhysicsMeshButton.text=add collision shape
 SceneComposerTopComponent.createPhysicsMeshButton.toolTipText=Makes the Spatial physics enabled and generates a CollisionShape
 SceneComposerTopComponent.jLabel3.text=
@@ -51,9 +47,7 @@ SceneComposerTopComponent.jLabel5.text=Effects :
 SceneComposerTopComponent.emitButton.toolTipText=Emit all particles of all particle emitters from the selected Node
 SceneComposerTopComponent.emitButton.text=Emit All
 SceneComposerTopComponent.jLabel6.text=Physics:
-SceneComposerTopComponent.jButton2.text=
 SceneComposerTopComponent.jButton3.text=
-SceneComposerTopComponent.jButton2.toolTipText=start the physics simulation and add all objects to the physics space
 SceneComposerTopComponent.jButton3.toolTipText=stop the physics simulation and remove all objects from the physics space
 SceneComposerTopComponent.jToggleScene.text=
 SceneComposerTopComponent.jToggleGrid.text=
@@ -73,3 +67,9 @@ SceneComposerTopComponent.jLabel11.text=(NaN, NaN, NaN)
 SceneComposerTopComponent.jLabel12.text=(NaN, NaN, NaN)
 SceneComposerTopComponent.cursorPositionLabel.text=(NaN, NaN, NaN)
 SceneComposerTopComponent.cursorPositionHeader.text=Cursor Position:
+SceneComposerTopComponent.Selection.toolTipText=Display selection
+SceneComposerTopComponent.Selection.text=Selection
+SceneComposerTopComponent.Grid.toolTipText=Display grid
+SceneComposerTopComponent.Grid.text=Grid
+SceneComposerTopComponent.toolTipText=
+SceneComposerTopComponent.text=

BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/People_035.gif


+ 29 - 2
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerToolController.java

@@ -1,6 +1,33 @@
 /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+ * Copyright (c) 2009-2022 jMonkeyEngine
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
+ *   may be used to endorse or promote products derived from this software
+ *   without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 package com.jme3.gde.scenecomposer;
 

+ 228 - 37
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.form

@@ -34,7 +34,7 @@
     <DimensionLayout dim="1">
       <Group type="103" groupAlignment="0" attributes="0">
           <Group type="102" attributes="0">
-              <Component id="jToolBar1" min="-2" pref="25" max="-2" attributes="0"/>
+              <Component id="jToolBar1" min="-2" max="-2" attributes="0"/>
               <EmptySpace max="-2" attributes="0"/>
               <Group type="103" groupAlignment="0" attributes="0">
                   <Component id="sceneInfoPanel" max="32767" attributes="0"/>
@@ -252,6 +252,12 @@
       <Properties>
         <Property name="floatable" type="boolean" value="false"/>
         <Property name="rollover" type="boolean" value="true"/>
+        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[684, 40]"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[824, 40]"/>
+        </Property>
       </Properties>
 
       <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
@@ -283,8 +289,8 @@
             <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
               <ComponentRef name="spatialModButtonGroup"/>
             </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/icon_select.png"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.select" type="code"/>
             </Property>
             <Property name="selected" type="boolean" value="true"/>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
@@ -293,8 +299,25 @@
             <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.selectButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.CompoundBorderInfo">
+                <CompoundBorder/>
+              </Border>
+            </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+              <Insets value="[8, 14, 8, 14]"/>
+            </Property>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -306,8 +329,8 @@
             <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
               <ComponentRef name="spatialModButtonGroup"/>
             </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/icon_arrow_out.png"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.move" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.moveButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -315,8 +338,25 @@
             <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.moveButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.CompoundBorderInfo">
+                <CompoundBorder/>
+              </Border>
+            </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+              <Insets value="[8, 14, 8, 14]"/>
+            </Property>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -328,8 +368,8 @@
             <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
               <ComponentRef name="spatialModButtonGroup"/>
             </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/icon_arrow_rotate_clockwise.png"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.rotate" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.rotateButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -337,8 +377,22 @@
             <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.rotateButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.CompoundBorderInfo">
+                <CompoundBorder/>
+              </Border>
+            </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -350,8 +404,8 @@
             <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
               <ComponentRef name="spatialModButtonGroup"/>
             </Property>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/icon_arrow_inout.png"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.scale" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.scaleButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -359,8 +413,22 @@
             <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.scaleButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
+            <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+              <Border info="org.netbeans.modules.form.compat2.border.CompoundBorderInfo">
+                <CompoundBorder/>
+              </Border>
+            </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <AccessibilityProperties>
@@ -373,11 +441,19 @@
           </Events>
         </Component>
         <Component class="javax.swing.JToolBar$Separator" name="jSeparator5">
+          <Properties>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[10, 32]"/>
+            </Property>
+            <Property name="separatorSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[10, 32]"/>
+            </Property>
+          </Properties>
         </Component>
         <Component class="javax.swing.JToggleButton" name="jToggleScene">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/snapScene.png"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.snapToScene" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jToggleScene.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -387,6 +463,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -395,8 +480,8 @@
         </Component>
         <Component class="javax.swing.JToggleButton" name="jToggleGrid">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/snapGrid.png"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.snapToGrid" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jToggleGrid.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -406,6 +491,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -416,8 +510,8 @@
         </Component>
         <Component class="javax.swing.JToggleButton" name="jToggleSelectGeom">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/selectGeometry.png"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.selectGeometry" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jToggleSelectGeom.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -427,6 +521,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -435,8 +538,8 @@
         </Component>
         <Component class="javax.swing.JToggleButton" name="jToggleSelectTerrain">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/selectTerrain.png"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.selectTerrain" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jToggleSelectTerrain.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -446,6 +549,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -453,11 +565,20 @@
           </Events>
         </Component>
         <Component class="javax.swing.JToolBar$Separator" name="jSeparator7">
+          <Properties>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[10, 40]"/>
+            </Property>
+            <Property name="requestFocusEnabled" type="boolean" value="false"/>
+            <Property name="separatorSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[10, 40]"/>
+            </Property>
+          </Properties>
         </Component>
         <Component class="javax.swing.JButton" name="moveToCursorButton">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/move.gif"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.moveToCursor" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.moveToCursorButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -467,6 +588,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="4"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -474,11 +604,16 @@
           </Events>
         </Component>
         <Component class="javax.swing.JToolBar$Separator" name="jSeparator3">
+          <Properties>
+            <Property name="separatorSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[24, 24]"/>
+            </Property>
+          </Properties>
         </Component>
         <Component class="javax.swing.JLabel" name="jLabel1">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/cursor.gif"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.cursorPin" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -521,12 +656,21 @@
         </Component>
         <Component class="javax.swing.JLabel" name="jLabel2">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/camera.gif"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.camera" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[24, 24]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[24, 24]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[24, 24]"/>
+            </Property>
           </Properties>
         </Component>
         <Component class="javax.swing.JButton" name="camToCursorSelectionButton">
@@ -546,11 +690,16 @@
           </Events>
         </Component>
         <Component class="javax.swing.JToolBar$Separator" name="jSeparator4">
+          <Properties>
+            <Property name="separatorSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[24, 24]"/>
+            </Property>
+          </Properties>
         </Component>
         <Component class="javax.swing.JLabel" name="jLabel3">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/box_wire.gif"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.display" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -561,13 +710,23 @@
           <Properties>
             <Property name="selected" type="boolean" value="true"/>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.showSelectionToggleButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.Selection.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
             <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.showSelectionToggleButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.Selection.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="4"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[72, 26]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[72, 26]"/>
+            </Property>
+            <Property name="name" type="java.lang.String" value="Selection" noResource="true"/>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[72, 26]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -578,13 +737,23 @@
           <Properties>
             <Property name="selected" type="boolean" value="true"/>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.showGridToggleButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.Grid.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
             <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.showGridToggleButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.Grid.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="4"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[58, 26]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[58, 26]"/>
+            </Property>
+            <Property name="name" type="java.lang.String" value="Grid" noResource="true"/>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[58, 26]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -598,12 +767,12 @@
           <Layout>
             <DimensionLayout dim="0">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <EmptySpace min="0" pref="133" max="32767" attributes="0"/>
+                  <EmptySpace min="0" pref="45" max="32767" attributes="0"/>
               </Group>
             </DimensionLayout>
             <DimensionLayout dim="1">
               <Group type="103" groupAlignment="0" attributes="0">
-                  <EmptySpace min="0" pref="21" max="32767" attributes="0"/>
+                  <EmptySpace min="0" pref="36" max="32767" attributes="0"/>
               </Group>
             </DimensionLayout>
           </Layout>
@@ -799,17 +968,30 @@
         </Component>
         <Component class="javax.swing.JButton" name="jButton2">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/play.gif"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.play" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jButton2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
             <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jButton2.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+              <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
+              <Insets value="[2, 2, 2, 2]"/>
+            </Property>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="name" type="java.lang.String" value="" noResource="true"/>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>
@@ -818,8 +1000,8 @@
         </Component>
         <Component class="javax.swing.JButton" name="jButton3">
           <Properties>
-            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
-              <Image iconType="3" name="/com/jme3/gde/scenecomposer/pause.gif"/>
+            <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
+              <Connection code="Icons.pause" type="code"/>
             </Property>
             <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
               <ResourceString bundle="com/jme3/gde/scenecomposer/Bundle.properties" key="SceneComposerTopComponent.jButton3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
@@ -829,6 +1011,15 @@
             </Property>
             <Property name="focusable" type="boolean" value="false"/>
             <Property name="horizontalTextPosition" type="int" value="0"/>
+            <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
+            <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+              <Dimension value="[32, 32]"/>
+            </Property>
             <Property name="verticalTextPosition" type="int" value="3"/>
           </Properties>
           <Events>

+ 92 - 27
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/SceneComposerTopComponent.java

@@ -20,6 +20,7 @@ import com.jme3.gde.core.sceneexplorer.nodes.JmeNode;
 import com.jme3.gde.core.sceneexplorer.nodes.JmeSpatial;
 import com.jme3.gde.core.sceneexplorer.nodes.NodeUtility;
 import com.jme3.gde.core.sceneviewer.SceneViewerTopComponent;
+import com.jme3.gde.scenecomposer.icons.Icons;
 import com.jme3.gde.scenecomposer.tools.MoveTool;
 import com.jme3.gde.scenecomposer.tools.RotateTool;
 import com.jme3.gde.scenecomposer.tools.ScaleTool;
@@ -282,6 +283,8 @@ public final class SceneComposerTopComponent extends TopComponent implements
 
         jToolBar1.setFloatable(false);
         jToolBar1.setRollover(true);
+        jToolBar1.setMinimumSize(new java.awt.Dimension(684, 40));
+        jToolBar1.setPreferredSize(new java.awt.Dimension(824, 40));
 
         transformationTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Local", "Global", "Camera" }));
         transformationTypeComboBox.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.transformationTypeComboBox.toolTipText")); // NOI18N
@@ -294,12 +297,17 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jToolBar1.add(jSeparator9);
 
         spatialModButtonGroup.add(selectButton);
-        selectButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/icon_select.png"))); // NOI18N
+        selectButton.setIcon(Icons.select);
         selectButton.setSelected(true);
         org.openide.awt.Mnemonics.setLocalizedText(selectButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.selectButton.text")); // NOI18N
         selectButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.selectButton.toolTipText")); // NOI18N
+        selectButton.setBorder(javax.swing.BorderFactory.createCompoundBorder());
         selectButton.setFocusable(false);
         selectButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        selectButton.setMargin(new java.awt.Insets(8, 14, 8, 14));
+        selectButton.setMaximumSize(new java.awt.Dimension(32, 32));
+        selectButton.setMinimumSize(new java.awt.Dimension(32, 32));
+        selectButton.setPreferredSize(new java.awt.Dimension(32, 32));
         selectButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         selectButton.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -309,11 +317,16 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jToolBar1.add(selectButton);
 
         spatialModButtonGroup.add(moveButton);
-        moveButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/icon_arrow_out.png"))); // NOI18N
+        moveButton.setIcon(Icons.move);
         org.openide.awt.Mnemonics.setLocalizedText(moveButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.moveButton.text")); // NOI18N
         moveButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.moveButton.toolTipText")); // NOI18N
+        moveButton.setBorder(javax.swing.BorderFactory.createCompoundBorder());
         moveButton.setFocusable(false);
         moveButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        moveButton.setMargin(new java.awt.Insets(8, 14, 8, 14));
+        moveButton.setMaximumSize(new java.awt.Dimension(32, 32));
+        moveButton.setMinimumSize(new java.awt.Dimension(32, 32));
+        moveButton.setPreferredSize(new java.awt.Dimension(32, 32));
         moveButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         moveButton.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -323,11 +336,15 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jToolBar1.add(moveButton);
 
         spatialModButtonGroup.add(rotateButton);
-        rotateButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/icon_arrow_rotate_clockwise.png"))); // NOI18N
+        rotateButton.setIcon(Icons.rotate);
         org.openide.awt.Mnemonics.setLocalizedText(rotateButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.rotateButton.text")); // NOI18N
         rotateButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.rotateButton.toolTipText")); // NOI18N
+        rotateButton.setBorder(javax.swing.BorderFactory.createCompoundBorder());
         rotateButton.setFocusable(false);
         rotateButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        rotateButton.setMaximumSize(new java.awt.Dimension(32, 32));
+        rotateButton.setMinimumSize(new java.awt.Dimension(32, 32));
+        rotateButton.setPreferredSize(new java.awt.Dimension(32, 32));
         rotateButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         rotateButton.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -337,11 +354,15 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jToolBar1.add(rotateButton);
 
         spatialModButtonGroup.add(scaleButton);
-        scaleButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/icon_arrow_inout.png"))); // NOI18N
+        scaleButton.setIcon(Icons.scale);
         org.openide.awt.Mnemonics.setLocalizedText(scaleButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.scaleButton.text")); // NOI18N
         scaleButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.scaleButton.toolTipText")); // NOI18N
+        scaleButton.setBorder(javax.swing.BorderFactory.createCompoundBorder());
         scaleButton.setFocusable(false);
         scaleButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        scaleButton.setMaximumSize(new java.awt.Dimension(32, 32));
+        scaleButton.setMinimumSize(new java.awt.Dimension(32, 32));
+        scaleButton.setPreferredSize(new java.awt.Dimension(32, 32));
         scaleButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         scaleButton.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -351,13 +372,18 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jToolBar1.add(scaleButton);
         scaleButton.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.scaleButton.AccessibleContext.accessibleDescription")); // NOI18N
 
+        jSeparator5.setPreferredSize(new java.awt.Dimension(10, 32));
+        jSeparator5.setSeparatorSize(new java.awt.Dimension(10, 32));
         jToolBar1.add(jSeparator5);
 
-        jToggleScene.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/snapScene.png"))); // NOI18N
+        jToggleScene.setIcon(Icons.snapToScene);
         org.openide.awt.Mnemonics.setLocalizedText(jToggleScene, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jToggleScene.text")); // NOI18N
         jToggleScene.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jToggleScene.toolTipText")); // NOI18N
         jToggleScene.setFocusable(false);
         jToggleScene.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        jToggleScene.setMaximumSize(new java.awt.Dimension(32, 32));
+        jToggleScene.setMinimumSize(new java.awt.Dimension(32, 32));
+        jToggleScene.setPreferredSize(new java.awt.Dimension(32, 32));
         jToggleScene.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         jToggleScene.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -366,11 +392,14 @@ public final class SceneComposerTopComponent extends TopComponent implements
         });
         jToolBar1.add(jToggleScene);
 
-        jToggleGrid.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/snapGrid.png"))); // NOI18N
+        jToggleGrid.setIcon(Icons.snapToGrid);
         org.openide.awt.Mnemonics.setLocalizedText(jToggleGrid, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jToggleGrid.text")); // NOI18N
         jToggleGrid.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jToggleGrid.toolTipText")); // NOI18N
         jToggleGrid.setFocusable(false);
         jToggleGrid.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        jToggleGrid.setMaximumSize(new java.awt.Dimension(32, 32));
+        jToggleGrid.setMinimumSize(new java.awt.Dimension(32, 32));
+        jToggleGrid.setPreferredSize(new java.awt.Dimension(32, 32));
         jToggleGrid.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         jToggleGrid.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -380,11 +409,14 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jToolBar1.add(jToggleGrid);
         jToolBar1.add(jSeparator8);
 
-        jToggleSelectGeom.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/selectGeometry.png"))); // NOI18N
+        jToggleSelectGeom.setIcon(Icons.selectGeometry);
         org.openide.awt.Mnemonics.setLocalizedText(jToggleSelectGeom, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jToggleSelectGeom.text")); // NOI18N
         jToggleSelectGeom.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jToggleSelectGeom.toolTipText")); // NOI18N
         jToggleSelectGeom.setFocusable(false);
         jToggleSelectGeom.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        jToggleSelectGeom.setMaximumSize(new java.awt.Dimension(32, 32));
+        jToggleSelectGeom.setMinimumSize(new java.awt.Dimension(32, 32));
+        jToggleSelectGeom.setPreferredSize(new java.awt.Dimension(32, 32));
         jToggleSelectGeom.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         jToggleSelectGeom.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -393,11 +425,14 @@ public final class SceneComposerTopComponent extends TopComponent implements
         });
         jToolBar1.add(jToggleSelectGeom);
 
-        jToggleSelectTerrain.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/selectTerrain.png"))); // NOI18N
+        jToggleSelectTerrain.setIcon(Icons.selectTerrain);
         org.openide.awt.Mnemonics.setLocalizedText(jToggleSelectTerrain, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jToggleSelectTerrain.text")); // NOI18N
         jToggleSelectTerrain.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jToggleSelectTerrain.toolTipText")); // NOI18N
         jToggleSelectTerrain.setFocusable(false);
         jToggleSelectTerrain.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        jToggleSelectTerrain.setMaximumSize(new java.awt.Dimension(32, 32));
+        jToggleSelectTerrain.setMinimumSize(new java.awt.Dimension(32, 32));
+        jToggleSelectTerrain.setPreferredSize(new java.awt.Dimension(32, 32));
         jToggleSelectTerrain.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         jToggleSelectTerrain.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -405,13 +440,20 @@ public final class SceneComposerTopComponent extends TopComponent implements
             }
         });
         jToolBar1.add(jToggleSelectTerrain);
+
+        jSeparator7.setPreferredSize(new java.awt.Dimension(10, 40));
+        jSeparator7.setRequestFocusEnabled(false);
+        jSeparator7.setSeparatorSize(new java.awt.Dimension(10, 40));
         jToolBar1.add(jSeparator7);
 
-        moveToCursorButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/move.gif"))); // NOI18N
+        moveToCursorButton.setIcon(Icons.moveToCursor);
         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
         moveToCursorButton.setFocusable(false);
         moveToCursorButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
+        moveToCursorButton.setMaximumSize(new java.awt.Dimension(32, 32));
+        moveToCursorButton.setMinimumSize(new java.awt.Dimension(32, 32));
+        moveToCursorButton.setPreferredSize(new java.awt.Dimension(32, 32));
         moveToCursorButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         moveToCursorButton.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -419,9 +461,11 @@ public final class SceneComposerTopComponent extends TopComponent implements
             }
         });
         jToolBar1.add(moveToCursorButton);
+
+        jSeparator3.setSeparatorSize(new java.awt.Dimension(24, 24));
         jToolBar1.add(jSeparator3);
 
-        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/cursor.gif"))); // NOI18N
+        jLabel1.setIcon(Icons.cursorPin);
         org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel1.text")); // NOI18N
         jToolBar1.add(jLabel1);
 
@@ -450,8 +494,11 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jToolBar1.add(cursorToSelectionButton);
         jToolBar1.add(jSeparator2);
 
-        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/camera.gif"))); // NOI18N
+        jLabel2.setIcon(Icons.camera);
         org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel2.text")); // NOI18N
+        jLabel2.setMaximumSize(new java.awt.Dimension(24, 24));
+        jLabel2.setMinimumSize(new java.awt.Dimension(24, 24));
+        jLabel2.setPreferredSize(new java.awt.Dimension(24, 24));
         jToolBar1.add(jLabel2);
 
         org.openide.awt.Mnemonics.setLocalizedText(camToCursorSelectionButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.camToCursorSelectionButton.text")); // NOI18N
@@ -465,17 +512,23 @@ public final class SceneComposerTopComponent extends TopComponent implements
             }
         });
         jToolBar1.add(camToCursorSelectionButton);
+
+        jSeparator4.setSeparatorSize(new java.awt.Dimension(24, 24));
         jToolBar1.add(jSeparator4);
 
-        jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/box_wire.gif"))); // NOI18N
+        jLabel3.setIcon(Icons.display);
         org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel3.text")); // NOI18N
         jToolBar1.add(jLabel3);
 
         showSelectionToggleButton.setSelected(true);
-        org.openide.awt.Mnemonics.setLocalizedText(showSelectionToggleButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.showSelectionToggleButton.text")); // NOI18N
-        showSelectionToggleButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.showSelectionToggleButton.toolTipText")); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(showSelectionToggleButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.Selection.text")); // NOI18N
+        showSelectionToggleButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.Selection.toolTipText")); // NOI18N
         showSelectionToggleButton.setFocusable(false);
         showSelectionToggleButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
+        showSelectionToggleButton.setMaximumSize(new java.awt.Dimension(72, 26));
+        showSelectionToggleButton.setMinimumSize(new java.awt.Dimension(72, 26));
+        showSelectionToggleButton.setName("Selection"); // NOI18N
+        showSelectionToggleButton.setPreferredSize(new java.awt.Dimension(72, 26));
         showSelectionToggleButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         showSelectionToggleButton.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -485,10 +538,14 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jToolBar1.add(showSelectionToggleButton);
 
         showGridToggleButton.setSelected(true);
-        org.openide.awt.Mnemonics.setLocalizedText(showGridToggleButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.showGridToggleButton.text")); // NOI18N
-        showGridToggleButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.showGridToggleButton.toolTipText")); // NOI18N
+        org.openide.awt.Mnemonics.setLocalizedText(showGridToggleButton, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.Grid.text")); // NOI18N
+        showGridToggleButton.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.Grid.toolTipText")); // NOI18N
         showGridToggleButton.setFocusable(false);
         showGridToggleButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
+        showGridToggleButton.setMaximumSize(new java.awt.Dimension(58, 26));
+        showGridToggleButton.setMinimumSize(new java.awt.Dimension(58, 26));
+        showGridToggleButton.setName("Grid"); // NOI18N
+        showGridToggleButton.setPreferredSize(new java.awt.Dimension(58, 26));
         showGridToggleButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         showGridToggleButton.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -502,11 +559,11 @@ public final class SceneComposerTopComponent extends TopComponent implements
         jPanel3.setLayout(jPanel3Layout);
         jPanel3Layout.setHorizontalGroup(
             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 133, Short.MAX_VALUE)
+            .addGap(0, 45, Short.MAX_VALUE)
         );
         jPanel3Layout.setVerticalGroup(
             jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-            .addGap(0, 21, Short.MAX_VALUE)
+            .addGap(0, 36, Short.MAX_VALUE)
         );
 
         jToolBar1.add(jPanel3);
@@ -568,11 +625,16 @@ public final class SceneComposerTopComponent extends TopComponent implements
 
         org.openide.awt.Mnemonics.setLocalizedText(jLabel6, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jLabel6.text")); // NOI18N
 
-        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/play.gif"))); // NOI18N
-        org.openide.awt.Mnemonics.setLocalizedText(jButton2, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jButton2.text")); // NOI18N
-        jButton2.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jButton2.toolTipText")); // NOI18N
+        jButton2.setIcon(Icons.play);
+        org.openide.awt.Mnemonics.setLocalizedText(jButton2, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.text")); // NOI18N
+        jButton2.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.toolTipText")); // NOI18N
         jButton2.setFocusable(false);
         jButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        jButton2.setMargin(new java.awt.Insets(2, 2, 2, 2));
+        jButton2.setMaximumSize(new java.awt.Dimension(32, 32));
+        jButton2.setMinimumSize(new java.awt.Dimension(32, 32));
+        jButton2.setName(""); // NOI18N
+        jButton2.setPreferredSize(new java.awt.Dimension(32, 32));
         jButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         jButton2.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -580,11 +642,14 @@ public final class SceneComposerTopComponent extends TopComponent implements
             }
         });
 
-        jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/scenecomposer/pause.gif"))); // NOI18N
+        jButton3.setIcon(Icons.pause);
         org.openide.awt.Mnemonics.setLocalizedText(jButton3, org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jButton3.text")); // NOI18N
         jButton3.setToolTipText(org.openide.util.NbBundle.getMessage(SceneComposerTopComponent.class, "SceneComposerTopComponent.jButton3.toolTipText")); // NOI18N
         jButton3.setFocusable(false);
         jButton3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+        jButton3.setMaximumSize(new java.awt.Dimension(32, 32));
+        jButton3.setMinimumSize(new java.awt.Dimension(32, 32));
+        jButton3.setPreferredSize(new java.awt.Dimension(32, 32));
         jButton3.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
         jButton3.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -608,9 +673,9 @@ public final class SceneComposerTopComponent extends TopComponent implements
                             .addGroup(jPanel4Layout.createSequentialGroup()
                                 .addComponent(jLabel6)
                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-                                .addComponent(jButton2)
+                                .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                 .addGap(0, 0, 0)
-                                .addComponent(jButton3))
+                                .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                             .addGroup(jPanel4Layout.createSequentialGroup()
                                 .addComponent(jLabel5)
                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -635,8 +700,8 @@ public final class SceneComposerTopComponent extends TopComponent implements
                     .addGroup(jPanel4Layout.createSequentialGroup()
                         .addGap(4, 4, 4)
                         .addComponent(jLabel6))
-                    .addComponent(jButton2)
-                    .addComponent(jButton3))
+                    .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                    .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
 
@@ -653,7 +718,7 @@ public final class SceneComposerTopComponent extends TopComponent implements
         layout.setVerticalGroup(
             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(layout.createSequentialGroup()
-                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                     .addComponent(sceneInfoPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/add.gif


BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/box_wire.gif


BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/camera.gif


BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/cursor.gif


BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icon_arrow_inout.png


BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icon_arrow_out.png


BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icon_arrow_rotate_clockwise.png


BIN
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icon_select.png


+ 73 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/Icons.java

@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2009-2022 jMonkeyEngine
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
+ *   may be used to endorse or promote products derived from this software
+ *   without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.jme3.gde.scenecomposer.icons;
+
+import javax.swing.ImageIcon;
+import org.openide.util.ImageUtilities;
+
+/**
+ * 32x32
+ * @author rickard
+ */
+public class Icons {
+    
+    public static final String ICONS_PATH = "com/jme3/gde/scenecomposer/icons/";
+    public static final String SELECT = ICONS_PATH + "arrow-cursor.svg";
+    public static final String MOVE = ICONS_PATH + "move.svg";
+    public static final String SCALE = ICONS_PATH + "resize.svg";
+    public static final String ROTATE = ICONS_PATH + "clockwise-rotation.svg";
+    public static final String SNAP_SCENE = ICONS_PATH + "snap_geom.svg";
+    public static final String SNAP_GRID = ICONS_PATH + "snap_grid.svg";
+    public static final String SELECT_GEOM = ICONS_PATH + "select_geom.svg";
+    public static final String SELECT_TERRAIN = ICONS_PATH + "select_terrain.svg";
+    public static final String SNAP_CURSOR = ICONS_PATH + "save-arrow.svg";
+    public static final String CURSOR_PIN = ICONS_PATH + "position-marker.svg";
+    public static final String CAMERA = ICONS_PATH + "film-projector.svg";
+    public static final String EYE = ICONS_PATH + "eye-green.svg";
+    public static final String PLAY = ICONS_PATH + "play-button.svg";
+    public static final String PAUSE = ICONS_PATH + "pause-button.svg";
+    
+    public static final ImageIcon select = ImageUtilities.loadImageIcon(SELECT, false);
+    public static final ImageIcon move = ImageUtilities.loadImageIcon(MOVE, false);
+    public static final ImageIcon scale = ImageUtilities.loadImageIcon(SCALE, false);
+    public static final ImageIcon rotate = ImageUtilities.loadImageIcon(ROTATE, false);
+    public static final ImageIcon snapToScene = ImageUtilities.loadImageIcon(SNAP_SCENE, false);
+    public static final ImageIcon snapToGrid = ImageUtilities.loadImageIcon(SNAP_GRID, false);
+    public static final ImageIcon selectGeometry = ImageUtilities.loadImageIcon(SELECT_GEOM, false);
+    public static final ImageIcon selectTerrain = ImageUtilities.loadImageIcon(SELECT_TERRAIN, false);
+    public static final ImageIcon moveToCursor = ImageUtilities.loadImageIcon(SNAP_CURSOR, false);
+    public static final ImageIcon cursorPin = ImageUtilities.loadImageIcon(CURSOR_PIN, false);
+    public static final ImageIcon camera = ImageUtilities.loadImageIcon(CAMERA, false);
+    public static final ImageIcon display = ImageUtilities.loadImageIcon(EYE, false);
+    public static final ImageIcon play = ImageUtilities.loadImageIcon(PLAY, false);
+    public static final ImageIcon pause = ImageUtilities.loadImageIcon(PAUSE, false);
+}

+ 71 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/add.svg

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="height: 16px; width: 16px;"
+   width="16px"
+   height="16px"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="add.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs12" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="800"
+     inkscape:window-height="716"
+     id="namedview10"
+     showgrid="false"
+     inkscape:zoom="3.6875"
+     inkscape:cx="10.175095"
+     inkscape:cy="35.377227"
+     inkscape:window-x="543"
+     inkscape:window-y="359"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg8" />
+  <path
+     d="M0 0h512v512H0z"
+     fill="#000000"
+     fill-opacity="0"
+     style="--darkreader-inline-fill: #000000;"
+     data-darkreader-inline-fill=""
+     id="path2" />
+  <text
+     xml:space="preserve"
+     style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:304.1618042px;line-height:1.25;font-family:Bebas;-inkscape-font-specification:'Bebas, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#76df76;fill-opacity:1;stroke:none;stroke-width:26.82538223;"
+     x="35.135021"
+     y="593.08832"
+     id="text827"
+     transform="scale(0.96497228,1.0362992)"><tspan
+       sodipodi:role="line"
+       id="tspan825"
+       x="35.135021"
+       y="593.08832"
+       style="font-size:1013.8727417px;stroke-width:26.82538223;fill:#76df76;fill-opacity:1;">+</tspan></text>
+</svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/arrow-cursor.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M123.193 29.635L121 406.18l84.31-82.836 65.87 159.02 67.5-27.96-65.87-159.02L391 294.342z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/clockwise-rotation.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M263.09 50c-11.882-.007-23.875 1.018-35.857 3.13C142.026 68.156 75.156 135.026 60.13 220.233 45.108 305.44 85.075 391.15 160.005 434.41c32.782 18.927 69.254 27.996 105.463 27.553 46.555-.57 92.675-16.865 129.957-48.15l-30.855-36.768c-50.95 42.75-122.968 49.05-180.566 15.797-57.597-33.254-88.152-98.777-76.603-164.274 11.55-65.497 62.672-116.62 128.17-128.168 51.656-9.108 103.323 7.98 139.17 43.862L327 192h128V64l-46.34 46.342C370.242 71.962 317.83 50.03 263.09 50z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 70 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/eye-green.svg

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="height: 32px; width: 32px;"
+   width="32px"
+   height="32px"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="eye.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs12" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1239"
+     inkscape:window-height="1053"
+     id="namedview10"
+     showgrid="false"
+     inkscape:zoom="29.5"
+     inkscape:cx="10.472204"
+     inkscape:cy="6.7193996"
+     inkscape:window-x="42"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g6" />
+  <path
+     d="M0 0h512v512H0z"
+     fill="#000000"
+     fill-opacity="0"
+     style="--darkreader-inline-fill: #000000;"
+     data-darkreader-inline-fill=""
+     id="path2" />
+  <g
+     class=""
+     style=""
+     transform="translate(0,0)"
+     id="g6">
+    <path
+       style="fill:#76df76;fill-opacity:1;stroke-width:0.03125"
+       d="M 8 3.28125 C 6.1171875 3.28125 4.1018281 4.4817969 2.7519531 5.7089844 C 1.6603594 6.7013594 0.91704687 7.656875 0.66210938 8 C 0.91704688 8.343125 1.6603594 9.2986406 2.7519531 10.291016 C 4.1017969 11.518203 6.1171875 12.71875 8 12.71875 C 9.8828125 12.71875 11.898172 11.518203 13.248047 10.291016 C 14.339641 9.2986406 15.082953 8.343125 15.337891 8 C 15.082953 7.656875 14.339641 6.7013594 13.248047 5.7089844 C 11.898203 4.4817969 9.8828125 3.28125 8 3.28125 z M 7.9492188 5.203125 A 2.6779661 2.7457626 0 0 1 10.626953 7.9492188 A 2.6779661 2.7457626 0 0 1 7.9492188 10.695312 A 2.6779661 2.7457626 0 0 1 5.2714844 7.9492188 A 2.6779661 2.7457626 0 0 1 7.9492188 5.203125 z "
+       transform="scale(32)"
+       id="path825" />
+  </g>
+</svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/film-projector.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M266 51.727c-39.32 0-71 31.68-71 71 0 39.319 31.68 71.002 71 71.002s71-31.683 71-71.002c0-39.32-31.68-71-71-71zm-144 32c-30.483 0-55 24.517-55 55 0 30.482 24.517 55.002 55 55.002s55-24.52 55-55.002c0-30.483-24.517-55-55-55zm-23 128v110.002h238V211.727zm350 4.648l-94 40.285v20.133l94 40.285zm-386 2.352v32h18v-32zm113 121.002v17.998h13.012l-51.123 136.275h19.222l51.507-136.275.382 136.275h18l.382-136.275 51.507 136.275h19.222l-51.123-136.275H260v-17.998c-28.003-.003-55.997 0-84 0z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/move.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M256 34.47l-90.51 90.51h67.883v108.393H124.98V165.49L34.47 256l90.51 90.51v-67.883h108.393V387.02H165.49L256 477.53l90.51-90.51h-67.883V278.627H387.02v67.883L477.53 256l-90.51-90.51v67.883H278.627V124.98h67.883L256 34.47z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/pause-button.svg

@@ -0,0 +1 @@
+<svg style="height: 24px; width: 32px;" width="32px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M120.16 45A20.162 20.162 0 0 0 100 65.16v381.68A20.162 20.162 0 0 0 120.16 467h65.68A20.162 20.162 0 0 0 206 446.84V65.16A20.162 20.162 0 0 0 185.84 45h-65.68zm206 0A20.162 20.162 0 0 0 306 65.16v381.68A20.162 20.162 0 0 0 326.16 467h65.68A20.162 20.162 0 0 0 412 446.84V65.16A20.162 20.162 0 0 0 391.84 45h-65.68z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/plain-arrow.svg

@@ -0,0 +1 @@
+<svg style="height: 16px; width: 16px;" width="16px" height="16px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M130.81 21.785v245.95H43.84L256 489.382l212.158-221.644H381.19V21.786H130.81z" fill="#f8e71c" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/play-button.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M106.854 106.002a26.003 26.003 0 0 0-25.64 29.326c16 124 16 117.344 0 241.344a26.003 26.003 0 0 0 35.776 27.332l298-124a26.003 26.003 0 0 0 0-48.008l-298-124a26.003 26.003 0 0 0-10.136-1.994z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/position-marker.svg

@@ -0,0 +1 @@
+<svg style="height: 24px; width: 24px;" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M256 17.108c-75.73 0-137.122 61.392-137.122 137.122.055 23.25 6.022 46.107 11.58 56.262L256 494.892l119.982-274.244h-.063c11.27-20.324 17.188-43.18 17.202-66.418C393.122 78.5 331.73 17.108 256 17.108zm0 68.56a68.56 68.56 0 0 1 68.56 68.562A68.56 68.56 0 0 1 256 222.79a68.56 68.56 0 0 1-68.56-68.56A68.56 68.56 0 0 1 256 85.67z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/resize.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M29 30l1 90h36V66h26V30H29zm99 0v36h72V30h-72zm108 0v36h72V30h-72zm108 0v36h72V30h-72zm102 0v78h36V30h-36zm-206 80v36h100.543l-118 118H30v218h218V289.457l118-118V272h36V110H240zm206 34v72h36v-72h-36zM30 156v72h36v-72H30zm416 96v72h36v-72h-36zm0 108v72h36v-72h-36zm-166 86v36h72v-36h-72zm108 0v36h72v-36h-72z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 1 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/save-arrow.svg

@@ -0,0 +1 @@
+<svg style="height: 32px; width: 32px;" width="32px" height="32px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000000" fill-opacity="0" style="--darkreader-inline-fill: #000000;" data-darkreader-inline-fill=""></path><g class="" style="" transform="translate(0,0)"><path d="M224 30v256h-64l96 128 96-128h-64V30h-64zM32 434v48h448v-48H32z" fill="#76df76" fill-opacity="1" style="--darkreader-inline-fill: #8b8104;" data-darkreader-inline-fill=""></path></g></svg>

+ 100 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/select_geom.svg

@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="height: 32px; width: 32px;"
+   width="32px"
+   height="32px"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="select_geom.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs12" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1717"
+     inkscape:window-height="979"
+     id="namedview10"
+     showgrid="false"
+     inkscape:zoom="7.375"
+     inkscape:cx="-34.169492"
+     inkscape:cy="16"
+     inkscape:window-x="383"
+     inkscape:window-y="475"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg8" />
+  <path
+     d="M0 0h512v512H0z"
+     fill="#000000"
+     fill-opacity="0"
+     style="--darkreader-inline-fill: #000000;"
+     data-darkreader-inline-fill=""
+     id="path2" />
+  <g
+     id="g825"
+     class=""
+     transform="translate(2.3,5.881356)">
+    <path
+       id="path823"
+       data-darkreader-inline-fill=""
+       style="fill:#48baff;fill-opacity:1"
+       d="m 256,73.32 -181.4,81.78 82.3,37.1 173.2,-85.5 z m 95.4,42.98 -173.2,85.5 77.8,35.1 181.4,-81.8 z M 61.7,169 V 351 L 247,434.6 v -182 z m 388.6,0 -185.3,83.6 v 182 L 450.3,351 Z"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g838"
+     transform="matrix(0.75,0,0,0.75,64,-27.118644)">
+    <path
+       id="path821"
+       data-darkreader-inline-fill=""
+       style="fill:#000000;fill-opacity:0"
+       d="M 0,0 H 512 V 512 H 0 Z"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g835"
+     transform="matrix(0.5,0,0,0.5,206.8,237.39136)">
+    <path
+       id="path818"
+       data-darkreader-inline-fill=""
+       style="fill:#000000;fill-opacity:0"
+       d="M 0,0 H 512 V 512 H 0 Z"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g822"
+       class="">
+      <path
+         id="path820"
+         data-darkreader-inline-fill=""
+         style="fill:#76df76;fill-opacity:1"
+         d="M 123.193,29.635 121,406.18 l 84.31,-82.836 65.87,159.02 67.5,-27.96 -65.87,-159.02 118.19,-1.042 z"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>

+ 110 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/select_terrain.svg

@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="height: 32px; width: 32px;"
+   width="32px"
+   height="32px"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="select_terrain.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs12" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1717"
+     inkscape:window-height="979"
+     id="namedview10"
+     showgrid="false"
+     inkscape:zoom="7.375"
+     inkscape:cx="-34.169492"
+     inkscape:cy="16"
+     inkscape:window-x="383"
+     inkscape:window-y="475"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg8" />
+  <path
+     d="M0 0h512v512H0z"
+     fill="#000000"
+     fill-opacity="0"
+     style="--darkreader-inline-fill: #000000;"
+     data-darkreader-inline-fill=""
+     id="path2" />
+  <g
+     id="g838"
+     transform="matrix(0.75,0,0,0.75,64,-27.118644)">
+    <path
+       id="path821"
+       data-darkreader-inline-fill=""
+       style="fill:#000000;fill-opacity:0"
+       d="M 0,0 H 512 V 512 H 0 Z"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g866"
+     transform="matrix(0.86356984,0,0,0.84396813,21.3965,52.20886)">
+    <path
+       id="path2-7"
+       data-darkreader-inline-fill=""
+       style="fill:#000000;fill-opacity:0"
+       d="M 0,0 H 512 V 512 H 0 Z"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path837"
+       d="M 18,400 86.09417,216.9216 132.33898,336.27119 210.95296,142.02865 301.09545,283.2463 404.26742,88.220008 494,361 l 16.27119,39"
+       style="fill:#48baff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       sodipodi:nodetypes="cccccccc" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path839"
+       d="M 510.27119,400 H 3.8983051"
+       style="fill:#f8e71c;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  </g>
+  <g
+     id="g835"
+     transform="matrix(0.5,0,0,0.5,206.8,237.39136)">
+    <path
+       id="path818"
+       data-darkreader-inline-fill=""
+       style="fill:#000000;fill-opacity:0"
+       d="M 0,0 H 512 V 512 H 0 Z"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g822"
+       class="">
+      <path
+         id="path820"
+         data-darkreader-inline-fill=""
+         style="fill:#76df76;fill-opacity:1"
+         d="M 123.193,29.635 121,406.18 l 84.31,-82.836 65.87,159.02 67.5,-27.96 -65.87,-159.02 118.19,-1.042 z"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>

+ 94 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/snap_cursor.svg

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="height: 32px; width: 32px;"
+   width="32px"
+   height="32px"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="snap_cursor.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs12" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1302"
+     inkscape:window-height="845"
+     id="namedview10"
+     showgrid="false"
+     inkscape:zoom="14.75"
+     inkscape:cx="4.7079531"
+     inkscape:cy="17.566683"
+     inkscape:window-x="337"
+     inkscape:window-y="422"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg8" />
+  <path
+     d="M0 0h512v512H0z"
+     fill="#000000"
+     fill-opacity="0"
+     style="--darkreader-inline-fill: #000000;"
+     data-darkreader-inline-fill=""
+     id="path2" />
+  <g
+     id="g819"
+     class=""
+     style="fill:#48baff;fill-opacity:1"
+     transform="matrix(0.5,0,0,0.5,241.7485,218.8385)">
+    <path
+       id="path817"
+       data-darkreader-inline-fill=""
+       style="fill:#48baff;fill-opacity:1"
+       d="M 123.193,29.635 121,406.18 l 84.31,-82.836 65.87,159.02 67.5,-27.96 -65.87,-159.02 118.19,-1.042 z"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     class=""
+     transform="translate(0,0)"
+     id="g6"
+     style="">
+    <path
+       d="M146.063 25.656c-30.86.074-60.556 12.052-85.094 36.313C3.285 119 12.986 194.422 63.905 245.343c12.042 12.04 47.124 35.39 78.75 55.437l36.938-36.967c-23.064-18.33-46.265-37.235-54.375-45.344-38.193-38.193-42.604-75.96-13.44-105.126 29.167-29.166 66.482-24.61 105.126 14.03 8.09 8.09 26.932 31.048 45.22 53.907l37.03-37.03c-20.045-31.623-43.335-66.74-55.375-78.78-30.685-26.483-64.868-39.892-97.718-39.814zM309.375 160.47L273.845 196c13.103 16.54 24.525 31.2 29.5 37.656l31.53-31.53s-10.95-18.314-25.5-41.657zm54.125 33.124c-31.963 73.943-90.175 135.65-167.313 169.22 96.67-10.858 166.86-86.763 167.313-169.22zm58.438 0C378.812 293.36 300.23 376.616 196.155 421.906c130.426-14.648 225.167-117.06 225.78-228.312zm72.53 0C437.49 325.414 333.7 435.407 196.19 495.25c172.33-19.356 297.47-154.66 298.28-301.656zM194.345 275.5l-35.438 35.438c23.348 14.552 41.656 25.5 41.656 25.5l31.532-31.532c-6.443-4.963-21.143-16.33-37.75-29.406z"
+       style="--darkreader-inline-fill: #8b8104;"
+       data-darkreader-inline-fill=""
+       id="path4"
+       fill-opacity="1"
+       fill="#76df76" />
+  </g>
+  <g
+     id="g832"
+     transform="matrix(0.5,0,0,0.5,251.66102,237.55932)">
+    <path
+       id="path815"
+       data-darkreader-inline-fill=""
+       style="fill:#000000;fill-opacity:0"
+       d="M 0,0 H 512 V 512 H 0 Z"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 91 - 0
jme3-scenecomposer/src/com/jme3/gde/scenecomposer/icons/snap_geom.svg

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="height: 32px; width: 32px;"
+   width="32px"
+   height="32px"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg8"
+   sodipodi:docname="snap_geom.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata14">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs12" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1717"
+     inkscape:window-height="979"
+     id="namedview10"
+     showgrid="false"
+     inkscape:zoom="7.375"
+     inkscape:cx="-34.169492"
+     inkscape:cy="16"
+     inkscape:window-x="617"
+     inkscape:window-y="378"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg8" />
+  <path
+     d="M0 0h512v512H0z"
+     fill="#000000"
+     fill-opacity="0"
+     style="--darkreader-inline-fill: #000000;"
+     data-darkreader-inline-fill=""
+     id="path2" />
+  <g
+     id="g825"
+     class=""
+     transform="translate(-7.1373029,51.051691)">
+    <path
+       id="path823"
+       data-darkreader-inline-fill=""
+       style="fill:#48baff;fill-opacity:1"
+       d="m 256,73.32 -181.4,81.78 82.3,37.1 173.2,-85.5 z m 95.4,42.98 -173.2,85.5 77.8,35.1 181.4,-81.8 z M 61.7,169 V 351 L 247,434.6 v -182 z m 388.6,0 -185.3,83.6 v 182 L 450.3,351 Z"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     id="g838"
+     transform="matrix(0.75,0,0,0.75,64,-27.118644)">
+    <path
+       id="path821"
+       data-darkreader-inline-fill=""
+       style="fill:#000000;fill-opacity:0"
+       d="M 0,0 H 512 V 512 H 0 Z"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     class=""
+     transform="translate(-8.5303029,-10.961309)"
+     id="g6">
+    <path
+       inkscape:connector-curvature="0"
+       d="M 146.063,25.656 C 115.203,25.73 85.507,37.708 60.969,61.969 3.285,119 12.986,194.422 63.905,245.343 c 12.042,12.04 47.124,35.39 78.75,55.437 l 36.938,-36.967 c -23.064,-18.33 -46.265,-37.235 -54.375,-45.344 -38.193,-38.193 -42.604,-75.96 -13.44,-105.126 29.167,-29.166 66.482,-24.61 105.126,14.03 8.09,8.09 26.932,31.048 45.22,53.907 l 37.03,-37.03 C 279.109,112.627 255.819,77.51 243.779,65.47 213.094,38.987 178.911,25.578 146.061,25.656 Z M 309.375,160.47 273.845,196 c 13.103,16.54 24.525,31.2 29.5,37.656 l 31.53,-31.53 c 0,0 -10.95,-18.314 -25.5,-41.657 z m 54.125,33.124 c -31.963,73.943 -90.175,135.65 -167.313,169.22 96.67,-10.858 166.86,-86.763 167.313,-169.22 z m 58.438,0 C 378.812,293.36 300.23,376.616 196.155,421.906 326.581,407.258 421.322,304.846 421.935,193.594 Z m 72.53,0 C 437.49,325.414 333.7,435.407 196.19,495.25 368.52,475.894 493.66,340.59 494.47,193.594 Z M 194.345,275.5 158.907,310.938 c 23.348,14.552 41.656,25.5 41.656,25.5 l 31.532,-31.532 c -6.443,-4.963 -21.143,-16.33 -37.75,-29.406 z"
+       style="fill:#76df76;fill-opacity:1"
+       data-darkreader-inline-fill=""
+       id="path4" />
+  </g>
+</svg>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно