Browse Source

SDK:
- update manual from wiki

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8975 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

nor..67 13 years ago
parent
commit
7b9753efe4
78 changed files with 155 additions and 6508 deletions
  1. 1 83
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/3d_models.html
  2. 0 72
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/animation.html
  3. 1 1
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/asset_manager.html
  4. 0 83
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio.html
  5. 18 129
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio_environment_presets.html
  6. 8 242
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/bloom_and_glow.html
  7. 2 45
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/bullet_multithreading.html
  8. 1 379
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/cinematics.html
  9. 1 39
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/combo_moves.html
  10. 1 200
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html
  11. 0 63
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hinges_and_joints.html
  12. 2 34
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html
  13. 6 71
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/loading_screen.html
  14. 5 129
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/localization.html
  15. 3 62
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/logging.html
  16. 0 48
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/making_the_camera_follow_a_character.html
  17. 1 351
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/materials_overview.html
  18. 0 59
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/motionpath.html
  19. 1 42
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/mouse_picking.html
  20. 9 166
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/multiple_camera_views.html
  21. 0 84
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/multithreading.html
  22. 0 69
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/networking.html
  23. 1 18
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui.html
  24. 4 68
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_java_interaction.html
  25. 0 47
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_overlay.html
  26. 0 50
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_projection.html
  27. 0 98
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_xml_layout.html
  28. 0 194
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/open_game_finder.html
  29. 4 80
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/particle_emitters.html
  30. 0 89
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/physics.html
  31. 3 70
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/physics_listeners.html
  32. 2 44
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/remote-controlling_the_camera.html
  33. 3 42
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/save_and_load.html
  34. 1 92
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/sky.html
  35. 1 36
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/spatial.html
  36. 0 111
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/terrain.html
  37. 1 14
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/terrain_collision.html
  38. 0 109
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/vehicles.html
  39. 0 53
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/walking_character.html
  40. 1 34
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/water.html
  41. 7 154
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_animation.html
  42. 3 74
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html
  43. 1 17
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_audio.html
  44. 6 93
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_collision.html
  45. 5 150
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_effects.html
  46. 3 86
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html
  47. 1 19
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_main_event_loop.html
  48. 2 20
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_material.html
  49. 2 88
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_node.html
  50. 5 19
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html
  51. 0 55
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/build_from_sources.html
  52. 0 109
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/faq.html
  53. 1 98
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/appsettings.html
  54. 1 45
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/best_practices.html
  55. 0 77
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/file_types.html
  56. 1 281
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/headlessserver.html
  57. 1 44
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/optimization.html
  58. 2 40
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/simpleapplication.html
  59. 0 145
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/math.html
  60. 7 82
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/simpleapplication_from_the_commandline.html
  61. 0 115
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/terminology.html
  62. 0 97
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/the_scene_graph.html
  63. 5 94
      jme3-core/javahelp/com/jme3/gde/core/docs/jme3/webstart.html
  64. 1 45
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/application_deployment.html
  65. 1 24
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/asset_packs.html
  66. 1 41
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/blender.html
  67. 0 91
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/code_editor.html
  68. 1 37
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/debugging_profiling_testing.html
  69. 0 59
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development.html
  70. 1 29
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development/model_loader.html
  71. 1 42
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development/projects_assets.html
  72. 6 90
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development/scene.html
  73. 5 80
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development/sceneexplorer.html
  74. 1 34
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/material_editing.html
  75. 1 46
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/project_creation.html
  76. 1 33
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/terrain_editor.html
  77. 1 30
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/troubleshooting.html
  78. 0 125
      jme3-core/javahelp/com/jme3/gde/core/docs/sdk/version_control.html

File diff suppressed because it is too large
+ 1 - 83
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/3d_models.html


File diff suppressed because it is too large
+ 0 - 72
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/animation.html


+ 1 - 1
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/asset_manager.html

@@ -174,7 +174,7 @@ If you use the default build script created by the jMonkeyEngine <acronym title=
 Before building the executable, you must use the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>&#039;s context menu action to <a href="/com/jme3/gde/core/docs/sdk/model_loader_and_viewer.html">convert OgreXML models to .j3o format</a>.
 </p>
 <ol>
-<li><div> Open the kME3 Project in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>.</div>
+<li><div> Open the jME3 Project in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>.</div>
 </li>
 <li><div> Browse the <code>assets</code> directory in the Projects window. </div>
 </li>

File diff suppressed because it is too large
+ 0 - 83
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio.html


+ 18 - 129
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio_environment_presets.html

@@ -1,27 +1,8 @@
-
-<h1><a>Audio Environment Presets</a></h1>
-<div>
-
-<p>
-
-Use these presets together with <a href="/com/jme3/gde/core/docs/jme3/advanced/audio.html">Audio</a> Nodes to create different &quot;moods&quot; for sounds. Environment effects make your audio sound as if the listener were in various places that have different types of echoes. 
-</p>
-
-<p>
-Usage:
-
-</p>
-<pre>Environment&#40;
+<h1><a>Audio Environment Presets</a></h1><div><p>Use these presets together with <a href="/com/jme3/gde/core/docs/jme3/advanced/audio.html">Audio</a> Nodes to create different &quot;moods&quot; for sounds. Environment effects make your audio sound as if the listener were in various places that have different types of echoes.</p><p>Usage:</p><pre>Environment&#40;
     new float&#91;&#93;&#123; 0, 7.5f, 1f, -1000, -100, 0, 1.49f, 0.83f, 1f, -2602,
                  0.007f, 0f, 0f, 0f, 200, 0.011f, 0f, 0f, 0f, 0.250f,
                  0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
-audioRenderer.setEnvironment&#40;myEnvironment&#41;;</pre>
-
-</div>
-
-<h2><a>Castle</a></h2>
-<div>
-<pre>CastleSmallRoom    = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.890f, -1000, -800, -2000, 1.22f, 0.83f, 0.31f, -100, 0.022f, 0f, 0f, 0f, 600, 0.011f, 0f, 0f, 0f, 0.138f, 0.080f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;
+audioRenderer.setEnvironment&#40;myEnvironment&#41;;</pre></div><h2><a>Castle</a></h2><div><pre>CastleSmallRoom    = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.890f, -1000, -800, -2000, 1.22f, 0.83f, 0.31f, -100, 0.022f, 0f, 0f, 0f, 600, 0.011f, 0f, 0f, 0f, 0.138f, 0.080f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;
 CastleShortPassage = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.890f, -1000, -1000, -2000, 2.32f, 0.83f, 0.31f, -100, 0.007f, 0f, 0f, 0f, 200, 0.023f, 0f, 0f, 0f, 0.138f, 0.080f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;
 CastleMediumroom   = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.930f, -1000, -1100, -2000, 2.04f, 0.83f, 0.46f, -400, 0.022f, 0f, 0f, 0f, 400, 0.011f, 0f, 0f, 0f, 0.155f, 0.030f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;
 CastleLongpassage  = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.890f, -1000, -800, -2000, 3.42f, 0.83f, 0.31f, -100, 0.007f, 0f, 0f, 0f, 300, 0.023f, 0f, 0f, 0f, 0.138f, 0.080f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;
@@ -29,13 +10,7 @@ CastleLargeroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0
 CastleHall         = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.810f, -1000, -1100, -1500, 3.14f, 0.79f, 0.62f, -1500, 0.056f, 0f, 0f, 0f, 100, 0.024f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;
 CastleCupboard     = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.890f, -1000, -1100, -2000, 0.67f, 0.87f, 0.31f, 300, 0.010f, 0f, 0f, 0f, 1100, 0.007f, 0f, 0f, 0f, 0.138f, 0.080f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;
 CastleCourtyard    = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.420f, -1000, -700, -1400, 2.13f, 0.61f, 0.23f, -1300, 0.160f, 0f, 0f, 0f, -300, 0.036f, 0f, 0f, 0f, 0.250f, 0.370f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;
-CastleAlcove       = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.890f, -1000, -600, -2000, 1.64f, 0.87f, 0.31f, 00, 0.007f, 0f, 0f, 0f, 300, 0.034f, 0f, 0f, 0f, 0.138f, 0.080f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Warehouse, Factory</a></h2>
-<div>
-<pre>FactoryAlcove       = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.590f, -1200, -200, -600, 3.14f, 0.65f, 1.31f, 300, 0.010f, 0f, 0f, 0f, 000, 0.038f, 0f, 0f, 0f, 0.114f, 0.100f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
+CastleAlcove       = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.590f, -1200, -200, -600, 3.14f, 0.65f, 1.31f, 300, 0.010f, 0f, 0f, 0f, 000, 0.038f, 0f, 0f, 0f, 0.114f, 0.100f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
 FactoryShortpassage = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.640f, -1200, -200, -600, 2.53f, 0.65f, 1.31f, 0, 0.010f, 0f, 0f, 0f, 200, 0.038f, 0f, 0f, 0f, 0.135f, 0.230f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
 FactoryMediumroom   = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f, 0.820f, -1200, -200, -600, 2.76f, 0.65f, 1.31f, -1100, 0.022f, 0f, 0f, 0f, 300, 0.023f, 0f, 0f, 0f, 0.174f, 0.070f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
 FactoryLongpassage  = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.640f, -1200, -200, -600, 4.06f, 0.65f, 1.31f, 0, 0.020f, 0f, 0f, 0f, 200, 0.037f, 0f, 0f, 0f, 0.135f, 0.230f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
@@ -43,13 +18,7 @@ FactoryLargeroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f,
 FactoryHall         = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f, 0.750f, -1000, -300, -400, 7.43f, 0.51f, 1.31f, -2400, 0.073f, 0f, 0f, 0f, -100, 0.027f, 0f, 0f, 0f, 0.250f, 0.070f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
 FactoryCupboard     = new Environment &#40; new float&#91;&#93;&#123; 26, 1.7f, 0.630f, -1200, -200, -600, 0.49f, 0.65f, 1.31f, 200, 0.010f, 0f, 0f, 0f, 600, 0.032f, 0f, 0f, 0f, 0.107f, 0.070f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
 FactoryCourtyard    = new Environment &#40; new float&#91;&#93;&#123; 26, 1.7f, 0.570f, -1000, -1000, -400, 2.32f, 0.29f, 0.56f, -1300, 0.140f, 0f, 0f, 0f, -800, 0.039f, 0f, 0f, 0f, 0.250f, 0.290f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
-FactorySmallroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.820f, -1000, -200, -600, 1.72f, 0.65f, 1.31f, -300, 0.010f, 0f, 0f, 0f, 500, 0.024f, 0f, 0f, 0f, 0.119f, 0.070f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Ice Palace</a></h2>
-<div>
-<pre>IcepalaceAlcove       = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.840f, -1000, -500, -1100, 2.76f, 1.46f, 0.28f, 100, 0.010f, 0f, 0f, 0f, -100, 0.030f, 0f, 0f, 0f, 0.161f, 0.090f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
+FactorySmallroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.840f, -1000, -500, -1100, 2.76f, 1.46f, 0.28f, 100, 0.010f, 0f, 0f, 0f, -100, 0.030f, 0f, 0f, 0f, 0.161f, 0.090f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
 IcepalaceShortpassage = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.750f, -1000, -500, -1100, 1.79f, 1.46f, 0.28f, -600, 0.010f, 0f, 0f, 0f, 100, 0.019f, 0f, 0f, 0f, 0.177f, 0.090f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
 IcepalaceMediumroom   = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.870f, -1000, -500, -700, 2.22f, 1.53f, 0.32f, -800, 0.039f, 0f, 0f, 0f, 100, 0.027f, 0f, 0f, 0f, 0.186f, 0.120f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
 IcepalaceLongpassage  = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.770f, -1000, -500, -800, 3.01f, 1.46f, 0.28f, -200, 0.012f, 0f, 0f, 0f, 200, 0.025f, 0f, 0f, 0f, 0.186f, 0.040f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
@@ -57,26 +26,14 @@ IcepalaceLargeroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 2.9f
 IcepalaceHall         = new Environment &#40; new float&#91;&#93;&#123; 26, 2.9f, 0.760f, -1000, -700, -500, 5.49f, 1.53f, 0.38f, -1900, 0.054f, 0f, 0f, 0f, -400, 0.052f, 0f, 0f, 0f, 0.226f, 0.110f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
 IcepalaceCupboard     = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.830f, -1000, -600, -1300, 0.76f, 1.53f, 0.26f, 100, 0.012f, 0f, 0f, 0f, 600, 0.016f, 0f, 0f, 0f, 0.143f, 0.080f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
 IcepalaceCourtyard    = new Environment &#40; new float&#91;&#93;&#123; 26, 2.9f, 0.590f, -1000, -1100, -1000, 2.04f, 1.20f, 0.38f, -1000, 0.173f, 0f, 0f, 0f, -1000, 0.043f, 0f, 0f, 0f, 0.235f, 0.480f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
-IcepalaceSmallroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.840f, -1000, -500, -1100, 1.51f, 1.53f, 0.27f, -100, 0.010f, 0f, 0f, 0f, 300, 0.011f, 0f, 0f, 0f, 0.164f, 0.140f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Space Station</a></h2>
-<div>
-<pre>SpacestationAlcove       = new Environment &#40; new float&#91;&#93;&#123; 26, 1.5f, 0.780f, -1000, -300, -100, 1.16f, 0.81f, 0.55f, 300, 0.007f, 0f, 0f, 0f, 000, 0.018f, 0f, 0f, 0f, 0.192f, 0.210f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
+IcepalaceSmallroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 1.5f, 0.780f, -1000, -300, -100, 1.16f, 0.81f, 0.55f, 300, 0.007f, 0f, 0f, 0f, 000, 0.018f, 0f, 0f, 0f, 0.192f, 0.210f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
 SpacestationMediumroom   = new Environment &#40; new float&#91;&#93;&#123; 26, 1.5f, 0.750f, -1000, -400, -100, 3.01f, 0.50f, 0.55f, -800, 0.034f, 0f, 0f, 0f, 100, 0.035f, 0f, 0f, 0f, 0.209f, 0.310f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
 SpacestationShortpassage = new Environment &#40; new float&#91;&#93;&#123; 26, 1.5f, 0.870f, -1000, -400, -100, 3.57f, 0.50f, 0.55f, 0, 0.012f, 0f, 0f, 0f, 100, 0.016f, 0f, 0f, 0f, 0.172f, 0.200f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
 SpacestationLongpassage  = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f, 0.820f, -1000, -400, -100, 4.62f, 0.62f, 0.55f, 0, 0.012f, 0f, 0f, 0f, 200, 0.031f, 0f, 0f, 0f, 0.250f, 0.230f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
 SpacestationLargeroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.810f, -1000, -400, -100, 3.89f, 0.38f, 0.61f, -1000, 0.056f, 0f, 0f, 0f, -100, 0.035f, 0f, 0f, 0f, 0.233f, 0.280f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
 SpacestationHall         = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f, 0.870f, -1000, -400, -100, 7.11f, 0.38f, 0.61f, -1500, 0.100f, 0f, 0f, 0f, -400, 0.047f, 0f, 0f, 0f, 0.250f, 0.250f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
 SpacestationCupboard     = new Environment &#40; new float&#91;&#93;&#123; 26, 1.4f, 0.560f, -1000, -300, -100, 0.79f, 0.81f, 0.55f, 300, 0.007f, 0f, 0f, 0f, 500, 0.018f, 0f, 0f, 0f, 0.181f, 0.310f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
-SpacestationSmallroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 1.5f, 0.700f, -1000, -300, -100, 1.72f, 0.82f, 0.55f, -200, 0.007f, 0f, 0f, 0f, 300, 0.013f, 0f, 0f, 0f, 0.188f, 0.260f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Wooden Hut or Ship</a></h2>
-<div>
-<pre>WoodenAlcove           = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -1800, -1000, 1.22f, 0.62f, 0.91f, 100, 0.012f, 0f, 0f, 0f, -300, 0.024f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
+SpacestationSmallroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -1800, -1000, 1.22f, 0.62f, 0.91f, 100, 0.012f, 0f, 0f, 0f, -300, 0.024f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
 WoodenShortpassage     = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -1800, -1000, 1.75f, 0.50f, 0.87f, -100, 0.012f, 0f, 0f, 0f, -400, 0.024f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
 WoodenMediumroom       = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -2000, -1100, 1.47f, 0.42f, 0.82f, -100, 0.049f, 0f, 0f, 0f, -100, 0.029f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
 WoodenLongpassage      = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -2000, -1000, 1.99f, 0.40f, 0.79f, 000, 0.020f, 0f, 0f, 0f, -700, 0.036f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
@@ -84,113 +41,53 @@ WoodenLargeroom        = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5
 WoodenHall             = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -2200, -1100, 3.45f, 0.30f, 0.82f, -100, 0.088f, 0f, 0f, 0f, -200, 0.063f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
 WoodenCupboard         = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -1700, -1000, 0.56f, 0.46f, 0.91f, 100, 0.012f, 0f, 0f, 0f, 100, 0.028f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
 WoodenSmallroom        = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -1900, -1000, 0.79f, 0.32f, 0.87f, 00, 0.032f, 0f, 0f, 0f, -100, 0.029f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
-WoodenCourtyard        = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 0.650f, -1000, -2200, -1000, 1.79f, 0.35f, 0.79f, -500, 0.123f, 0f, 0f, 0f, -2000, 0.032f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Sport</a></h2>
-<div>
-<pre>SportEmptystadium      = new Environment &#40; new float&#91;&#93;&#123; 26, 7.2f, 1f, -1000, -700, -200, 6.26f, 0.51f, 1.10f, -2400, 0.183f, 0f, 0f, 0f, -800, 0.038f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
+WoodenCourtyard        = new Environment &#40; new float&#91;&#93;&#123; 26, 7.2f, 1f, -1000, -700, -200, 6.26f, 0.51f, 1.10f, -2400, 0.183f, 0f, 0f, 0f, -800, 0.038f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
 SportSquashcourt       = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 0.750f, -1000, -1000, -200, 2.22f, 0.91f, 1.16f, -700, 0.007f, 0f, 0f, 0f, -200, 0.011f, 0f, 0f, 0f, 0.126f, 0.190f, 0.250f, 0f, -5f, 7176.9f, 211.2f, 0f, 0x20&#125; &#41; &#41;;
 SportSmallswimmingpool = new Environment &#40; new float&#91;&#93;&#123; 26, 36.2f, 0.700f, -1000, -200, -100, 2.76f, 1.25f, 1.14f, -400, 0.020f, 0f, 0f, 0f, -200, 0.030f, 0f, 0f, 0f, 0.179f, 0.150f, 0.895f, 0.190f, -5f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;
 SportLargeswimmingpool = new Environment &#40; new float&#91;&#93;&#123; 26, 36.2f, 0.820f, -1000, -200, 0, 5.49f, 1.31f, 1.14f, -700, 0.039f, 0f, 0f, 0f, -600, 0.049f, 0f, 0f, 0f, 0.222f, 0.550f, 1.159f, 0.210f, -5f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;
 SportGymnasium         = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 0.810f, -1000, -700, -100, 3.14f, 1.06f, 1.35f, -800, 0.029f, 0f, 0f, 0f, -500, 0.045f, 0f, 0f, 0f, 0.146f, 0.140f, 0.250f, 0f, -5f, 7176.9f, 211.2f, 0f, 0x20&#125; &#41; &#41;;
-SportFullstadium       = new Environment &#40; new float&#91;&#93;&#123; 26, 7.2f, 1f, -1000, -2300, -200, 5.25f, 0.17f, 0.80f, -2000, 0.188f, 0f, 0f, 0f, -1100, 0.038f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Pipes</a></h2>
-<div>
-<pre>Sewerpipe    = new Environment &#40; new float&#91;&#93;&#123; 21, 1.7f, 0.800f, -1000, -1000, 0, 2.81f, 0.14f, 1f, 429, 0.014f, 0f, 0f, 0f, 1023, 0.021f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
+SportFullstadium       = new Environment &#40; new float&#91;&#93;&#123; 21, 1.7f, 0.800f, -1000, -1000, 0, 2.81f, 0.14f, 1f, 429, 0.014f, 0f, 0f, 0f, 1023, 0.021f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 PipeSmall    = new Environment &#40; new float&#91;&#93;&#123; 26, 50.3f, 1f, -1000, -900, -1300, 5.04f, 0.10f, 0.10f, -600, 0.032f, 0f, 0f, 0f, 800, 0.015f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 2854.4f, 20f, 0f, 0x3f&#125; &#41; &#41;;
 PipeLongthin = new Environment &#40; new float&#91;&#93;&#123; 26, 1.6f, 0.910f, -1000, -700, -1100, 9.21f, 0.18f, 0.10f, -300, 0.010f, 0f, 0f, 0f, -300, 0.022f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 2854.4f, 20f, 0f, 0x0&#125; &#41; &#41;;
 PipeLarge    = new Environment &#40; new float&#91;&#93;&#123; 26, 50.3f, 1f, -1000, -900, -1300, 8.45f, 0.10f, 0.10f, -800, 0.046f, 0f, 0f, 0f, 400, 0.032f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 2854.4f, 20f, 0f, 0x3f&#125; &#41; &#41;;
-PipeResonant = new Environment &#40; new float&#91;&#93;&#123; 26, 1.3f, 0.910f, -1000, -700, -1100, 6.81f, 0.18f, 0.10f, -300, 0.010f, 0f, 0f, 0f, 00, 0.022f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 2854.4f, 20f, 0f, 0x0&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Moods</a></h2>
-<div>
-<pre>Heaven    = new Environment &#40; new float&#91;&#93;&#123; 26, 19.6f, 0.940f, -1000, -200, -700, 5.04f, 1.12f, 0.56f, -1230, 0.020f, 0f, 0f, 0f, 200, 0.029f, 0f, 0f, 0f, 0.250f, 0.080f, 2.742f, 0.050f, -2f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
+PipeResonant = new Environment &#40; new float&#91;&#93;&#123; 26, 19.6f, 0.940f, -1000, -200, -700, 5.04f, 1.12f, 0.56f, -1230, 0.020f, 0f, 0f, 0f, 200, 0.029f, 0f, 0f, 0f, 0.250f, 0.080f, 2.742f, 0.050f, -2f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Hell      = new Environment &#40; new float&#91;&#93;&#123; 26, 100f, 0.570f, -1000, -900, -700, 3.57f, 0.49f, 2f, -10000, 0.020f, 0f, 0f, 0f, 300, 0.030f, 0f, 0f, 0f, 0.110f, 0.040f, 2.109f, 0.520f, -5f, 5000f, 139.5f, 0f, 0x40&#125; &#41; &#41;;
 Memory    = new Environment &#40; new float&#91;&#93;&#123; 26, 8f, 0.850f, -1000, -400, -900, 4.06f, 0.82f, 0.56f, -2800, 0f, 0f, 0f, 0f, 100, 0f, 0f, 0f, 0f, 0.250f, 0f, 0.474f, 0.450f, -10f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;
 Drugged   = new Environment &#40; new float&#91;&#93;&#123; 23, 1.9f, 0.500f, -1000, 0, 0, 8.39f, 1.39f, 1f, -115, 0.002f, 0f, 0f, 0f, 985, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 1f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;
 Dizzy     = new Environment &#40; new float&#91;&#93;&#123; 24, 1.8f, 0.600f, -1000, -400, 0, 17.23f, 0.56f, 1f, -1713, 0.020f, 0f, 0f, 0f, -613, 0.030f, 0f, 0f, 0f, 0.250f, 1f, 0.810f, 0.310f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;
-Psychotic = new Environment &#40; new float&#91;&#93;&#123; 25, 1f, 0.500f, -1000, -151, 0, 7.56f, 0.91f, 1f, -626, 0.020f, 0f, 0f, 0f, 774, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 4f, 1f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Car Racing</a></h2>
-<div>
-<pre>DrivingCommentator    = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0f, 1000, -500, -600, 2.42f, 0.88f, 0.68f, -1400, 0.093f, 0f, 0f, 0f, -1200, 0.017f, 0f, 0f, 0f, 0.250f, 1f, 0.250f, 0f, -10f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
+Psychotic = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0f, 1000, -500, -600, 2.42f, 0.88f, 0.68f, -1400, 0.093f, 0f, 0f, 0f, -1200, 0.017f, 0f, 0f, 0f, 0.250f, 1f, 0.250f, 0f, -10f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
 DrivingPitgarage       = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f, 0.590f, -1000, -300, -500, 1.72f, 0.93f, 0.87f, -500, 0f, 0f, 0f, 0f, 200, 0.016f, 0f, 0f, 0f, 0.250f, 0.110f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;
 DrivingIncarRacer      = new Environment &#40; new float&#91;&#93;&#123; 26, 1.1f, 0.800f, -1000, 0, -200, 0.17f, 2f, 0.41f, 500, 0.007f, 0f, 0f, 0f, -300, 0.015f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 10268.2f, 251f, 0f, 0x20&#125; &#41; &#41;;
 DrivingIncarSports     = new Environment &#40; new float&#91;&#93;&#123; 26, 1.1f, 0.800f, -1000, -400, 0, 0.17f, 0.75f, 0.41f, 0, 0.010f, 0f, 0f, 0f, -500, 0f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 10268.2f, 251f, 0f, 0x20&#125; &#41; &#41;;
 DrivingIncarLuxury     = new Environment &#40; new float&#91;&#93;&#123; 26, 1.6f, 1f, -1000, -2000, -600, 0.13f, 0.41f, 0.46f, -200, 0.010f, 0f, 0f, 0f, 400, 0.010f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 10268.2f, 251f, 0f, 0x20&#125; &#41; &#41;;
 DrivingFullgrandstand  = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 1f, -1000, -1100, -400, 3.01f, 1.37f, 1.28f, -900, 0.090f, 0f, 0f, 0f, -1500, 0.049f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 10420.2f, 250f, 0f, 0x1f&#125; &#41; &#41;;
 DrivingEmptygrandstand = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 1f, -1000, 0, -200, 4.62f, 1.75f, 1.40f, -1363, 0.090f, 0f, 0f, 0f, -1200, 0.049f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 10420.2f, 250f, 0f, 0x1f&#125; &#41; &#41;;
-DrivingTunnel          = new Environment &#40; new float&#91;&#93;&#123; 26, 3.1f, 0.810f, -1000, -800, -100, 3.42f, 0.94f, 1.31f, -300, 0.051f, 0f, 0f, 0f, -300, 0.047f, 0f, 0f, 0f, 0.214f, 0.050f, 0.250f, 0f, -5f, 5000f, 155.3f, 0f, 0x20&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>City</a></h2>
-<div>
-<pre>CityIndoors   = new Environment &#40; new float&#91;&#93;&#123; 16, 7.5f, 0.500f, -1000, -800, 0, 1.49f, 0.67f, 1f, -2273, 0.007f, 0f, 0f, 0f, -1691, 0.011f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
+DrivingTunnel          = new Environment &#40; new float&#91;&#93;&#123; 16, 7.5f, 0.500f, -1000, -800, 0, 1.49f, 0.67f, 1f, -2273, 0.007f, 0f, 0f, 0f, -1691, 0.011f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 CityStreets   = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0.780f, -1000, -300, -100, 1.79f, 1.12f, 0.91f, -1100, 0.046f, 0f, 0f, 0f, -1400, 0.028f, 0f, 0f, 0f, 0.250f, 0.200f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
 CitySubway    = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0.740f, -1000, -300, -100, 3.01f, 1.23f, 0.91f, -300, 0.046f, 0f, 0f, 0f, 200, 0.028f, 0f, 0f, 0f, 0.125f, 0.210f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
 CityMuseum    = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0.820f, -1000, -1500, -1500, 3.28f, 1.40f, 0.57f, -1200, 0.039f, 0f, 0f, -0f, -100, 0.034f, 0f, 0f, 0f, 0.130f, 0.170f, 0.250f, 0f, -5f, 2854.4f, 107.5f, 0f, 0x0&#125; &#41; &#41;;
 CityLibrary   = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0.820f, -1000, -1100, -2100, 2.76f, 0.89f, 0.41f, -900, 0.029f, 0f, 0f, -0f, -100, 0.020f, 0f, 0f, 0f, 0.130f, 0.170f, 0.250f, 0f, -5f, 2854.4f, 107.5f, 0f, 0x0&#125; &#41; &#41;;
 CityUnderpass = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0.820f, -1000, -700, -100, 3.57f, 1.12f, 0.91f, -800, 0.059f, 0f, 0f, 0f, -100, 0.037f, 0f, 0f, 0f, 0.250f, 0.140f, 0.250f, 0f, -7f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
-CityAbandoned = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0.690f, -1000, -200, -100, 3.28f, 1.17f, 0.91f, -700, 0.044f, 0f, 0f, 0f, -1100, 0.024f, 0f, 0f, 0f, 0.250f, 0.200f, 0.250f, 0f, -3f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Small Indoor Rooms</a></h2>
-<div>
-<pre>Room         = new Environment &#40; new float&#91;&#93;&#123; 2, 1.9f, 1f, -1000, -454, 0, 0.40f, 0.83f, 1f, -1646, 0.002f, 0f, 0f, 0f, 53, 0.003f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
+CityAbandoned = new Environment &#40; new float&#91;&#93;&#123; 2, 1.9f, 1f, -1000, -454, 0, 0.40f, 0.83f, 1f, -1646, 0.002f, 0f, 0f, 0f, 53, 0.003f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Bathroom     = new Environment &#40; new float&#91;&#93;&#123; 3, 1.4f, 1f, -1000, -1200, 0, 1.49f, 0.54f, 1f, -370, 0.007f, 0f, 0f, 0f, 1030, 0.011f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Livingroom   = new Environment &#40; new float&#91;&#93;&#123; 4, 2.5f, 1f, -1000, -6000, 0, 0.50f, 0.10f, 1f, -1376, 0.003f, 0f, 0f, 0f, -1104, 0.004f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Paddedcell   = new Environment &#40; new float&#91;&#93;&#123; 1, 1.4f, 1f, -1000, -6000, 0, 0.17f, 0.10f, 1f, -1204, 0.001f, 0f, 0f, 0f, 207, 0.002f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
-Stoneroom    = new Environment &#40; new float&#91;&#93;&#123; 5, 11.6f, 1f, -1000, -300, 0, 2.31f, 0.64f, 1f, -711, 0.012f, 0f, 0f, 0f, 83, 0.017f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Medium-Sized Indoor Rooms</a></h2>
-<div>
-<pre>Workshop     = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f, 1f, -1000, -1700, -800, 0.76f, 1f, 1f, 0, 0.012f, 0f, 0f, 0f, 100, 0.012f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;
+Stoneroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f, 1f, -1000, -1700, -800, 0.76f, 1f, 1f, 0, 0.012f, 0f, 0f, 0f, 100, 0.012f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;
 Schoolroom   = new Environment &#40; new float&#91;&#93;&#123; 26, 1.86f, 0.690f, -1000, -400, -600, 0.98f, 0.45f, 0.18f, 300, 0.017f, 0f, 0f, 0f, 300, 0.015f, 0f, 0f, 0f, 0.095f, 0.140f, 0.250f, 0f, -5f, 7176.9f, 211.2f, 0f, 0x20&#125; &#41; &#41;;
 Practiseroom = new Environment &#40; new float&#91;&#93;&#123; 26, 1.86f, 0.870f, -1000, -800, -600, 1.12f, 0.56f, 0.18f, 200, 0.010f, 0f, 0f, 0f, 300, 0.011f, 0f, 0f, 0f, 0.095f, 0.140f, 0.250f, 0f, -5f, 7176.9f, 211.2f, 0f, 0x20&#125; &#41; &#41;;
 Outhouse     = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0.820f, -1000, -1900, -1600, 1.38f, 0.38f, 0.35f, -100, 0.024f, 0f, 0f, -0f, -400, 0.044f, 0f, 0f, 0f, 0.121f, 0.170f, 0.250f, 0f, -5f, 2854.4f, 107.5f, 0f, 0x0&#125; &#41; &#41;;
 Caravan      = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 1f, -1000, -2100, -1800, 0.43f, 1.50f, 1f, 0, 0.012f, 0f, 0f, 0f, 600, 0.012f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;
 Dustyroom    = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.560f, -1000, -200, -300, 1.79f, 0.38f, 0.21f, -600, 0.002f, 0f, 0f, 0f, 200, 0.006f, 0f, 0f, 0f, 0.202f, 0.050f, 0.250f, 0f, -10f, 13046f, 163.3f, 0f, 0x20&#125; &#41; &#41;;
-Chapel       = new Environment &#40; new float&#91;&#93;&#123; 26, 19.6f, 0.840f, -1000, -500, 0, 4.62f, 0.64f, 1.23f, -700, 0.032f, 0f, 0f, 0f, -200, 0.049f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0.110f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Large Indoor Rooms</a></h2>
-<div>
-<pre>Auditorium     = new Environment &#40; new float&#91;&#93;&#123; 6, 21.6f, 1f, -1000, -476, 0, 4.32f, 0.59f, 1f, -789, 0.020f, 0f, 0f, 0f, -289, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
+Chapel       = new Environment &#40; new float&#91;&#93;&#123; 6, 21.6f, 1f, -1000, -476, 0, 4.32f, 0.59f, 1f, -789, 0.020f, 0f, 0f, 0f, -289, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Concerthall    = new Environment &#40; new float&#91;&#93;&#123; 7, 19.6f, 1f, -1000, -500, 0, 3.92f, 0.70f, 1f, -1230, 0.020f, 0f, 0f, 0f, -02, 0.029f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Cave           = new Environment &#40; new float&#91;&#93;&#123; 8, 14.6f, 1f, -1000, 0, 0, 2.91f, 1.30f, 1f, -602, 0.015f, 0f, 0f, 0f, -302, 0.022f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;
 Arena          = new Environment &#40; new float&#91;&#93;&#123; 9, 36.2f, 1f, -1000, -698, 0, 7.24f, 0.33f, 1f, -1166, 0.020f, 0f, 0f, 0f, 16, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Hangar         = new Environment &#40; new float&#91;&#93;&#123; 10, 50.3f, 1f, -1000, -1000, 0, 10.05f, 0.23f, 1f, -602, 0.020f, 0f, 0f, 0f, 198, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 DomeTomb       = new Environment &#40; new float&#91;&#93;&#123; 26, 51.8f, 0.790f, -1000, -900, -1300, 4.18f, 0.21f, 0.10f, -825, 0.030f, 0f, 0f, 0f, 450, 0.022f, 0f, 0f, 0f, 0.177f, 0.190f, 0.250f, 0f, -5f, 2854.4f, 20f, 0f, 0x0&#125; &#41; &#41;;
-DomeSaintPauls = new Environment &#40; new float&#91;&#93;&#123; 26, 50.3f, 0.870f, -1000, -900, -1300, 10.48f, 0.19f, 0.10f, -1500, 0.090f, 0f, 0f, 0f, 200, 0.042f, 0f, 0f, 0f, 0.250f, 0.120f, 0.250f, 0f, -5f, 2854.4f, 20f, 0f, 0x3f&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Hallways, Alleys</a></h2>
-<div>
-<pre>Carpettedhallway = new Environment &#40; new float&#91;&#93;&#123; 11, 1.9f, 1f, -1000, -4000, 0, 0.30f, 0.10f, 1f, -1831, 0.002f, 0f, 0f, 0f, -1630, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
+DomeSaintPauls = new Environment &#40; new float&#91;&#93;&#123; 11, 1.9f, 1f, -1000, -4000, 0, 0.30f, 0.10f, 1f, -1831, 0.002f, 0f, 0f, 0f, -1630, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Hallway          = new Environment &#40; new float&#91;&#93;&#123; 12, 1.8f, 1f, -1000, -300, 0, 1.49f, 0.59f, 1f, -1219, 0.007f, 0f, 0f, 0f, 441, 0.011f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Stonecorridor    = new Environment &#40; new float&#91;&#93;&#123; 13, 13.5f, 1f, -1000, -237, 0, 2.70f, 0.79f, 1f, -1214, 0.013f, 0f, 0f, 0f, 395, 0.020f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
-Alley            = new Environment &#40; new float&#91;&#93;&#123; 14, 7.5f, 0.300f, -1000, -270, 0, 1.49f, 0.86f, 1f, -1204, 0.007f, 0f, 0f, 0f, -4, 0.011f, 0f, 0f, 0f, 0.125f, 0.950f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Outdoors</a></h2>
-<div>
-<pre>Backyard      = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0.450f, -1000, -1200, -600, 1.12f, 0.34f, 0.46f, -700, 0.069f, 0f, 0f, -0f, -300, 0.023f, 0f, 0f, 0f, 0.218f, 0.340f, 0.250f, 0f, -5f, 4399.1f, 242.9f, 0f, 0x0&#125; &#41; &#41;;
+Alley            = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0.450f, -1000, -1200, -600, 1.12f, 0.34f, 0.46f, -700, 0.069f, 0f, 0f, -0f, -300, 0.023f, 0f, 0f, 0f, 0.218f, 0.340f, 0.250f, 0f, -5f, 4399.1f, 242.9f, 0f, 0x0&#125; &#41; &#41;;
 Plain         = new Environment &#40; new float&#91;&#93;&#123; 19, 42.5f, 0.210f, -1000, -2000, 0, 1.49f, 0.50f, 1f, -2466, 0.179f, 0f, 0f, 0f, -1926, 0.100f, 0f, 0f, 0f, 0.250f, 1f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Rollingplains = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0f, -1000, -3900, -400, 2.13f, 0.21f, 0.46f, -1500, 0.300f, 0f, 0f, -0f, -700, 0.019f, 0f, 0f, 0f, 0.250f, 1f, 0.250f, 0f, -5f, 4399.1f, 242.9f, 0f, 0x0&#125; &#41; &#41;;
 Deepcanyon    = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0.740f, -1000, -1500, -400, 3.89f, 0.21f, 0.46f, -1000, 0.223f, 0f, 0f, -0f, -900, 0.019f, 0f, 0f, 0f, 0.250f, 1f, 0.250f, 0f, -5f, 4399.1f, 242.9f, 0f, 0x0&#125; &#41; &#41;;
@@ -199,14 +96,6 @@ Valley        = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0.280
 Forest        = new Environment &#40; new float&#91;&#93;&#123; 15, 38f, 0.300f, -1000, -3300, 0, 1.49f, 0.54f, 1f, -2560, 0.162f, 0f, 0f, 0f, -229, 0.088f, 0f, 0f, 0f, 0.125f, 1f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
 Mountains     = new Environment &#40; new float&#91;&#93;&#123; 17, 100f, 0.270f, -1000, -2500, 0, 1.49f, 0.21f, 1f, -2780, 0.300f, 0f, 0f, 0f, -1434, 0.100f, 0f, 0f, 0f, 0.250f, 1f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;
 Quarry        = new Environment &#40; new float&#91;&#93;&#123; 18, 17.5f, 1f, -1000, -1000, 0, 1.49f, 0.83f, 1f, -10000, 0.061f, 0f, 0f, 0f, 500, 0.025f, 0f, 0f, 0f, 0.125f, 0.700f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
-Parkinglot    = new Environment &#40; new float&#91;&#93;&#123; 20, 8.3f, 1f, -1000, 0, 0, 1.65f, 1.50f, 1f, -1363, 0.008f, 0f, 0f, 0f, -1153, 0.012f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;</pre>
-
-</div>
-
-<h2><a>Water</a></h2>
-<div>
-<pre>Underwater     = new Environment &#40; new float&#91;&#93;&#123; 22, 1.8f, 1f, -1000, -4000, 0, 1.49f, 0.10f, 1f, -449, 0.007f, 0f, 0f, 0f, 1700, 0.011f, 0f, 0f, 0f, 0.250f, 0f, 1.180f, 0.348f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
-Smallwaterroom = new Environment &#40; new float&#91;&#93;&#123; 26, 36.2f, 0.700f, -1000, -698, 0, 1.51f, 1.25f, 1.14f, -100, 0.020f, 0f, 0f, 0f, 300, 0.030f, 0f, 0f, 0f, 0.179f, 0.150f, 0.895f, 0.190f, -7f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;</pre>
-
-</div>
+Parkinglot    = new Environment &#40; new float&#91;&#93;&#123; 22, 1.8f, 1f, -1000, -4000, 0, 1.49f, 0.10f, 1f, -449, 0.007f, 0f, 0f, 0f, 1700, 0.011f, 0f, 0f, 0f, 0.250f, 0f, 1.180f, 0.348f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
+Smallwaterroom = new Environment &#40; new float&#91;&#93;&#123; 26, 36.2f, 0.700f, -1000, -698, 0, 1.51f, 1.25f, 1.14f, -100, 0.020f, 0f, 0f, 0f, 300, 0.030f, 0f, 0f, 0f, 0.179f, 0.150f, 0.895f, 0.190f, -7f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;</pre></div>
 <p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:audio_environment_presets?do=export_xhtmlbody">view online version</a></em></p>

+ 8 - 242
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/bloom_and_glow.html

@@ -1,96 +1,7 @@
-
-<h1><a>Bloom and Glow</a></h1>
-<div>
-
-<p>
-
-Bloom is a popular shader effect in 3D games industry. It usually consist in displaying a glowing halo around light sources or bright areas of a scene.
-In practice, the bright areas are extracted from the rendered scene, blurred and finally added up to the render.
-</p>
-
-<p>
-Those images gives an idea of what bloom does. The left image has no bloom effect, the right image does. <br/>
-
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/nobloomsky.png"><img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/blomsky.png">
-</p>
-
-</div>
-
-<h1><a>Bloom Usage</a></h1>
-<div>
-<ol>
-<li><div> Create a FilterPostProcessor</div>
-</li>
-<li><div> Create a BloomFilter</div>
-</li>
-<li><div> Add the filter to the processor</div>
-</li>
-<li><div> Add the processor to the viewPort</div>
-</li>
-</ol>
-<pre> FilterPostProcessor fpp=new FilterPostProcessor&#40;assetManager&#41;;
+<h1><a>Bloom and Glow</a></h1><div><p>Bloom is a popular shader effect in 3D games industry. It usually consist in displaying a glowing halo around light sources or bright areas of a scene. In practice, the bright areas are extracted from the rendered scene, blurred and finally added up to the render.</p><p>Those images gives an idea of what bloom does. The left image has no bloom effect, the right image does. <br/> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/nobloomsky.png"><img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/blomsky.png"></p></div><h1><a>Bloom Usage</a></h1><div><ol><li><div>Create a FilterPostProcessor</div></li><li><div>Create a BloomFilter</div></li><li><div>Add the filter to the processor</div></li><li><div>Add the processor to the viewPort</div></li></ol><pre> FilterPostProcessor fpp=new FilterPostProcessor&#40;assetManager&#41;;
  BloomFilter bloom=new BloomFilter&#40;&#41;;
  fpp.addFilter&#40;bloom&#41;;
- viewPort.addProcessor&#40;fpp&#41;;</pre>
-
-<p>
-Here are the parameters that you can tweak : 
-</p>
-<div><table>
-	<tr>
-		<th> Parameter           </th><th> Method                </th><th> Default </th><th> Description </th>
-	</tr>
-	<tr>
-		<td> blur scale              </td><td> <code>setBlurScale(float)</code> </td><td>1.5f  </td><td> the scale of the bloom effect, but be careful, high values does artifacts </td>
-	</tr>
-	<tr>
-		<td> exposure Power              </td><td> <code>setExposurePower(float)</code> </td><td>5.0f  </td><td> the glowing channel color is raised to the value power </td>
-	</tr>
-	<tr>
-		<td> exposure cut-off              </td><td> <code>setExposureCutOff(float)</code> </td><td>0.0f  </td><td> the threshold of color to bloom during extraction </td>
-	</tr>
-	<tr>
-		<td> bloom intensity              </td><td> <code>setBloomIntensity(float)</code> </td><td>2.0f  </td><td> the resulting bloom value is multiplied by this intensity </td>
-	</tr>
-</table></div>
-<!-- EDIT1 TABLE [865-1454] -->
-<p>
-
-You&#039;ll probably need to adjust those parameters depending on your scene.
-</p>
-
-</div>
-
-<h1><a>Bloom with a glow map</a></h1>
-<div>
-
-<p>
-
-Sometimes, you want to have more control over what glows and does not glow. 
-The bloom filter supports a glow map or a glow color.
-</p>
-
-</div>
-
-<h5><a>Creating a glow-map</a></h5>
-<div>
-
-<p>
-
-Let&#039;s take the hover tank example bundled with JME3 test data.<br/>
-
-Here you can see the diffuse map of the tank, and the associated glow map that only contains the parts of the texture that will glow and their glowing color: <br/>
-
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/tank_diffuse_ss.png">
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/tank_glow_map_ss.png">
-</p>
-
-<p>
-Glow maps works with Lighting.j3md, Particles.j3md and SolidColor.j3md material definitions.
-The tank material looks like that : 
-
-</p>
-<pre>Material My Material : Common/MatDefs/Light/Lighting.j3md {
+ viewPort.addProcessor&#40;fpp&#41;;</pre><p>Here are the parameters that you can tweak :</p><div><table><tr><th>Parameter</th><th>Method</th><th>Default</th><th>Description</th></tr><tr><td>blur scale</td><td><code>setBlurScale(float)</code></td><td>1.5f</td><td>the scale of the bloom effect, but be careful, high values does artifacts</td></tr><tr><td>exposure Power</td><td><code>setExposurePower(float)</code></td><td>5.0f</td><td>the glowing channel color is raised to the value power</td></tr><tr><td>exposure cut-off</td><td><code>setExposureCutOff(float)</code></td><td>0.0f</td><td>the threshold of color to bloom during extraction</td></tr><tr><td>bloom intensity</td><td><code>setBloomIntensity(float)</code></td><td>2.0f</td><td>the resulting bloom value is multiplied by this intensity</td></tr></table></div><p>You&#039;ll probably need to adjust those parameters depending on your scene.</p></div><h1><a>Bloom with a glow map</a></h1><div><p>Sometimes, you want to have more control over what glows and does not glow. The bloom filter supports a glow map or a glow color.</p></div><h5><a>Creating a glow-map</a></h5><div><p>Let&#039;s take the hover tank example bundled with JME3 test data.<br/> Here you can see the diffuse map of the tank, and the associated glow map that only contains the parts of the texture that will glow and their glowing color: <br/> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/tank_diffuse_ss.png"> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/tank_glow_map_ss.png"></p><p>Glow maps works with Lighting.j3md, Particles.j3md and SolidColor.j3md material definitions. The tank material looks like that :</p><pre>Material My Material : Common/MatDefs/Light/Lighting.j3md {
      MaterialParameters {
         SpecularMap : Models/HoverTank/tank_specular.png
         Shininess : 8
@@ -102,132 +13,17 @@ The tank material looks like that :
         Diffuse  : 1.0 1.0 1.0 1.0
         Specular : 1.0 1.0 1.0 1.0
      }
-}</pre>
-
-<p>
-
-The glow map is defined here : <strong>GlowMap : Models/HoverTank/tank_glow_map_highres.png</strong>
-</p>
-
-</div>
-
-<h5><a>Usage</a></h5>
-<div>
-<ol>
-<li><div> Create a FilterPostProcessor</div>
-</li>
-<li><div> Create a BloomFilter with the GlowMode.Objects parameter</div>
-</li>
-<li><div> Add the filter to the processor</div>
-</li>
-<li><div> Add the processor to the viewPort</div>
-</li>
-</ol>
-<pre>  FilterPostProcessor fpp=new FilterPostProcessor(assetManager);
+}</pre><p>The glow map is defined here : <strong>GlowMap : Models/HoverTank/tank_glow_map_highres.png</strong></p></div><h5><a>Usage</a></h5><div><ol><li><div>Create a FilterPostProcessor</div></li><li><div>Create a BloomFilter with the GlowMode.Objects parameter</div></li><li><div>Add the filter to the processor</div></li><li><div>Add the processor to the viewPort</div></li></ol><pre>  FilterPostProcessor fpp=new FilterPostProcessor(assetManager);
   BloomFilter bf=new BloomFilter(BloomFilter.GlowMode.Objects);
   fpp.addFilter(bf);
-  viewPort.addProcessor(fpp);</pre>
-
-<p>
-Here is the result : <br/>
-
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/tanlglow1.png">
-</p>
-
-</div>
-
-<h1><a>Bloom with a glow color</a></h1>
-<div>
-
-<p>
-
-Sometimes you need an entire object to glow, not just parts of it.
-In this case you&#039;ll need to use the glow color parameter.
-</p>
-
-</div>
-
-<h5><a>Usage</a></h5>
-<div>
-<ol>
-<li><div> Create a material for your object and set the GlowColor parameter</div>
-</li>
-<li><div> Create a FilterPostProcessor</div>
-</li>
-<li><div> Create a BloomFilter with the GlowMode.Objects parameter</div>
-</li>
-<li><div> Add the filter to the processor</div>
-</li>
-<li><div> Add the processor to the viewPort</div>
-</li>
-</ol>
-<pre>    Material mat = new Material(getAssetManager(), &quot;Common/MatDefs/Misc/SolidColor.j3md&quot;);
+  viewPort.addProcessor(fpp);</pre><p>Here is the result : <br/> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/tanlglow1.png"></p></div><h1><a>Bloom with a glow color</a></h1><div><p>Sometimes you need an entire object to glow, not just parts of it. In this case you&#039;ll need to use the glow color parameter.</p></div><h5><a>Usage</a></h5><div><ol><li><div>Create a material for your object and set the GlowColor parameter</div></li><li><div>Create a FilterPostProcessor</div></li><li><div>Create a BloomFilter with the GlowMode.Objects parameter</div></li><li><div>Add the filter to the processor</div></li><li><div>Add the processor to the viewPort</div></li></ol><pre>    Material mat = new Material(getAssetManager(), &quot;Common/MatDefs/Misc/SolidColor.j3md&quot;);
     mat.setColor(&quot;Color&quot;, ColorRGBA.Green);
     mat.setColor(&quot;GlowColor&quot;, ColorRGBA.Green);
     fpp=new FilterPostProcessor(assetManager);
     bloom= new BloomFilter(BloomFilter.GlowMode.Objects);        
     fpp.addFilter(bloom);
-    viewPort.addProcessor(fpp);</pre>
-
-<p>
-Here is the result on Oto&#039;s plasma ball (before and after) : <br/>
-
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/otonobloom.png">
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/otoglow.png">
-</p>
-
-</div>
-
-<h1><a>Hints and tricks</a></h1>
-<div>
-
-</div>
-
-<h5><a>Increasing the blur range and reducing fps cost</a></h5>
-<div>
-
-<p>
-
-The glow render is sampled on a texture that has the same dimensions as the viewport.
-You can reduce the size of the bloom sampling just by using the setDownSamplingFactor method like this : <br/>
-
-
-</p>
-<pre> BloomFilter bloom=new BloomFilter&#40;&#41;;
- bloom.setDownSamplingFactor&#40;2.0f&#41;; </pre>
-
-<p>
-
-In this example the sampling size is divided by 4 (width/2,height/2), resulting in less work to blur the scene.
-The resulting texture is then up sampled to the screen size using hardware bilinear filtering. this results in a wider blur range.
-</p>
-
-</div>
-
-<h5><a>Using classic bloom combined with a glow map</a></h5>
-<div>
-
-<p>
-let&#039;s say you want a global bloom on your scene, but you have also a glowing object on it.
-You can use only one bloom filter for both effects like that
-</p>
-<pre>BloomFilter bloom=new BloomFilter&#40;BloomFilter.GlowMode.SceneAndObjects&#41;;</pre>
-
-<p>
-However, note that both effects will share the same values of attribute, and sometimes, it won&#039;t be what you need.
-</p>
-
-</div>
-
-<h5><a>Making your home brewed material definition support Glow</a></h5>
-<div>
-
-<p>
-
-Let&#039;s say you have made a custom material on your own, and that you want it to support glow maps and glow color.
-In your material definition you need to add those lines in the MaterialParameters section :
-</p>
-<pre> MaterialParameters {
+    viewPort.addProcessor(fpp);</pre><p>Here is the result on Oto&#039;s plasma ball (before and after) : <br/> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/otonobloom.png"> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/otoglow.png"></p></div><h1><a>Hints and tricks</a></h1><div></div><h5><a>Increasing the blur range and reducing fps cost</a></h5><div><p>The glow render is sampled on a texture that has the same dimensions as the viewport. You can reduce the size of the bloom sampling just by using the setDownSamplingFactor method like this : <br/></p><pre> BloomFilter bloom=new BloomFilter&#40;&#41;;
+ bloom.setDownSamplingFactor&#40;2.0f&#41;; </pre><p>In this example the sampling size is divided by 4 (width/2,height/2), resulting in less work to blur the scene. The resulting texture is then up sampled to the screen size using hardware bilinear filtering. this results in a wider blur range.</p></div><h5><a>Using classic bloom combined with a glow map</a></h5><div><p>let&#039;s say you want a global bloom on your scene, but you have also a glowing object on it. You can use only one bloom filter for both effects like that</p><pre>BloomFilter bloom=new BloomFilter&#40;BloomFilter.GlowMode.SceneAndObjects&#41;;</pre><p>However, note that both effects will share the same values of attribute, and sometimes, it won&#039;t be what you need.</p></div><h5><a>Making your home brewed material definition support Glow</a></h5><div><p>Let&#039;s say you have made a custom material on your own, and that you want it to support glow maps and glow color. In your material definition you need to add those lines in the MaterialParameters section :</p><pre> MaterialParameters {
         
         ....
 
@@ -235,13 +31,7 @@ In your material definition you need to add those lines in the MaterialParameter
         Texture2D GlowMap
         // The glow color of the object
         Color GlowColor
-    }</pre>
-
-<p>
-Then add the following technique : 
-
-</p>
-<pre>    Technique Glow {
+    }</pre><p>Then add the following technique :</p><pre>    Technique Glow {
 
         LightMode SinglePass
 
@@ -256,29 +46,5 @@ Then add the following technique :
             HAS_GLOWMAP : GlowMap
             HAS_GLOWCOLOR : GlowColor
         }
-    }</pre>
-
-<p>
-Then you can use this material with the BloomFilter
-</p>
-
-</div>
-
-<h5><a>Make a glowing object stop to glow</a></h5>
-<div>
-
-<p>
-
-If you are using a glow map, remove the texture from the material.
-
-</p>
-<pre>material.clearTextureParam(&quot;GlowMap&quot;);</pre>
-
-<p>
-If you are using a glow color, set it to black
-
-</p>
-<pre>material.setColor(&quot;GlowColor&quot;,ColorRGBA.Black);</pre>
-
-</div>
+    }</pre><p>Then you can use this material with the BloomFilter</p></div><h5><a>Make a glowing object stop to glow</a></h5><div><p>If you are using a glow map, remove the texture from the material.</p><pre>material.clearTextureParam(&quot;GlowMap&quot;);</pre><p>If you are using a glow color, set it to black</p><pre>material.setColor(&quot;GlowColor&quot;,ColorRGBA.Black);</pre></div>
 <p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:bloom_and_glow?do=export_xhtmlbody">view online version</a></em></p>

+ 2 - 45
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/bullet_multithreading.html

@@ -1,47 +1,4 @@
-
-<h1><a>Multithreading Bullet Physics in jme3</a></h1>
-<div>
-
-</div>
-
-<h2><a>Introduction</a></h2>
-<div>
-
-<p>
-Since bullet is not (yet) multithreaded or GPU accelerated the jME3 implementation allows to run each physics space on a separate thread that is executed in parallel to rendering.
-
-</p>
-
-</div>
-
-<h2><a>How is it handled in jme3 and bullet?</a></h2>
-<div>
-
-<p>
-A SimpleApplication with a BulletAppState allows setting the threading type via 
-</p>
-<pre>setThreadingType(ThreadingType type);</pre>
-
-<p>
- where ThreadingType can be either SEQUENTIAL or PARALLEL.
-</p>
-
-<p>
-In the simpleInitApp() method:
-
-</p>
-<pre>bulletAppState = new BulletAppState&#40;&#41;;
+<h1><a>Multithreading Bullet Physics in jme3</a></h1><div></div><h2><a>Introduction</a></h2><div><p>Since bullet is not (yet) multithreaded or GPU accelerated the jME3 implementation allows to run each physics space on a separate thread that is executed in parallel to rendering.</p></div><h2><a>How is it handled in jme3 and bullet?</a></h2><div><p>A SimpleApplication with a BulletAppState allows setting the threading type via</p><pre>setThreadingType(ThreadingType type);</pre><p>where ThreadingType can be either SEQUENTIAL or PARALLEL.</p><p>In the simpleInitApp() method:</p><pre>bulletAppState = new BulletAppState&#40;&#41;;
 bulletAppState.setThreadingType&#40;BulletAppState.ThreadingType.PARALLEL&#41;;
-stateManager.attach&#40;bulletAppState&#41;;</pre>
-
-<p>
-The physics update happens in parallel to rendering, after the users changes have been made in the update() call. This way the loop logic is still maintained: the user can set and change values in physics and scenegraph objects before render() and physicsUpdate() are called in parallel. More physics spaces can simply be added by using multiple bulletAppStates.
-</p>
-<div><span>
-	<a href="/wiki/doku.php/tag:documentation?do=showtag&amp;tag=tag%3Adocumentation">documentation</a>,
-	<a href="/wiki/doku.php/tag:physics?do=showtag&amp;tag=tag%3Aphysics">physics</a>,
-	<a href="/wiki/doku.php/tag:threading?do=showtag&amp;tag=tag%3Athreading">threading</a>
-</span></div>
-
-</div>
+stateManager.attach&#40;bulletAppState&#41;;</pre><p>The physics update happens in parallel to rendering, after the users changes have been made in the update() call. This way the loop logic is still maintained: the user can set and change values in physics and scenegraph objects before render() and physicsUpdate() are called in parallel. More physics spaces can simply be added by using multiple bulletAppStates.</p><div><span><a href="/wiki/doku.php/tag:documentation?do=showtag&amp;tag=tag%3Adocumentation">documentation</a>, <a href="/wiki/doku.php/tag:physics?do=showtag&amp;tag=tag%3Aphysics">physics</a>, <a href="/wiki/doku.php/tag:threading?do=showtag&amp;tag=tag%3Athreading">threading</a> </span></div></div>
 <p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:bullet_multithreading?do=export_xhtmlbody">view online version</a></em></p>

File diff suppressed because it is too large
+ 1 - 379
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/cinematics.html


+ 1 - 39
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/combo_moves.html

@@ -1,42 +1,4 @@
-
-<h1><a>Combo Moves</a></h1>
-<div>
-
-<p>
-The ComboMoves class allows you to define combinations of inputs that trigger special actions. Entering an input combo correctly can bring the player incremental rewards, such as an increased chance to hit, an increased effectiveness, or decreased change of being blocked, whatever the game designer chooses. <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://en.wikipedia.org/wiki/Combo_%28video_gaming%29"><param name="text" value="<html><u>More background info</u></html>"><param name="textColor" value="blue"></object>
-</p>
-
-<p>
-Combos are usually a series of inputs, in a fixed order: For example a keyboard combo can look  like: &quot;press Down, then Down+Right together, then Right&quot;. 
-</p>
-
-<p>
-Usage:
-</p>
-<ol>
-<li><div> Create input triggers </div>
-</li>
-<li><div> Define combos</div>
-</li>
-<li><div> Detect combos in ActionListener </div>
-</li>
-<li><div> Execute combos in update loop </div>
-</li>
-</ol>
-
-<p>
-
-Copy the two classes ComboMoveExecution.java and ComboMove.java into your application and adjust them to your package paths.
-</p>
-
-</div>
-
-<h2><a>Example Code</a></h2>
-<div>
-<ul>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/input/combomoves/TestComboMoves.java"><param name="text" value="<html><u>TestComboMoves.java</u></html>"><param name="textColor" value="blue"></object></div>
-</li>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/input/combomoves/ComboMoveExecution.java"><param name="text" value="<html><u>ComboMoveExecution.java</u></html>"><param name="textColor" value="blue"></object> ← required</div>
+<h1><a>Combo Moves</a></h1><div><p>The ComboMoves class allows you to define combinations of inputs that trigger special actions. Entering an input combo correctly can bring the player incremental rewards, such as an increased chance to hit, an increased effectiveness, or decreased change of being blocked, whatever the game designer chooses. <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://en.wikipedia.org/wiki/Combo_%28video_gaming%29"><param name="text" value="<html><u>More background info</u></html>"><param name="textColor" value="blue"></object></p><p>Combos are usually a series of inputs, in a fixed order: For example a keyboard combo can look like: &quot;press Down, then Down+Right together, then Right&quot;.</p><p>Usage:</p><ol><li><div>Create input triggers</div></li><li><div>Define combos</div></li><li><div>Detect combos in ActionListener</div></li><li><div>Execute combos in update loop</div></li></ol><p>Copy the two classes ComboMoveExecution.java and ComboMove.java into your application and adjust them to your package paths.</p></div><h2><a>Example Code</a></h2><div><ul><li><div><object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/input/combomoves/TestComboMoves.java"><param name="text" value="<html><u>TestComboMoves.java</u></html>"><param name="textColor" value="blue"></object></div></li><li><div><object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/input/combomoves/ComboMoveExecution.java"><param name="text" value="<html><u>ComboMoveExecution.java</u></html>"><param name="textColor" value="blue"></object> ← required</div>
 </li>
 <li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/input/combomoves/ComboMove.java"><param name="text" value="<html><u>ComboMove.java</u></html>"><param name="textColor" value="blue"></object> ← required</div>
 </li>

File diff suppressed because it is too large
+ 1 - 200
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html


File diff suppressed because it is too large
+ 0 - 63
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hinges_and_joints.html


+ 2 - 34
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html

@@ -1,22 +1,4 @@
-
-<h1><a>Saving and Loading Materials with .j3m Files</a></h1>
-<div>
-
-<p>
-
-In the <a href="/com/jme3/gde/core/docs/jme3/advanced/material_definitions.html">Material Definitions</a> article you learned how to configure <a href="/com/jme3/gde/core/docs/jme3/advanced/materials_overview.html">Materials</a>  programmatically in Java code. If you have certain commonly used Materials that never change, you can clean up the amount of Java code that clutters your init method, by moving material settings into .j3m files. Then later in your code, you only need to call one setter instead of several to apply the material.
-</p>
-
-</div>
-
-<h2><a>Writing the .j3m File</a></h2>
-<div>
-<ol>
-<li><div> For every Material, create a file and give it a name that describes it: e.g. <code>SimpleBump.j3m</code></div>
-</li>
-<li><div> Place the file in your project&#039;s <code>assets/Materials/</code> directory, e.g. <code>MyGame/src/assets/Materials/SimpleBump.j3m</code></div>
-</li>
-<li><div> Edit the file and add content using the following Syntax, e.g.:<pre>Material shiny bumpy rock : Common/MatDefs/Light/Lighting.j3md {
+<h1><a>Saving and Loading Materials with .j3m Files</a></h1><div><p>In the <a href="/com/jme3/gde/core/docs/jme3/advanced/material_definitions.html">Material Definitions</a> article you learned how to configure <a href="/com/jme3/gde/core/docs/jme3/advanced/materials_overview.html">Materials</a> programmatically in Java code. If you have certain commonly used Materials that never change, you can clean up the amount of Java code that clutters your init method, by moving material settings into .j3m files. Then later in your code, you only need to call one setter instead of several to apply the material.</p></div><h2><a>Writing the .j3m File</a></h2><div><ol><li><div>For every Material, create a file and give it a name that describes it: e.g. <code>SimpleBump.j3m</code></div></li><li><div>Place the file in your project&#039;s <code>assets/Materials/</code> directory, e.g. <code>MyGame/src/assets/Materials/SimpleBump.j3m</code></div></li><li><div>Edit the file and add content using the following Syntax, e.g.:<pre>Material shiny bumpy rock : Common/MatDefs/Light/Lighting.j3md {
      MaterialParameters {
          Shininess: 8.0
          NormalMap: Textures/bump_rock_normal.png
@@ -25,21 +7,7 @@ In the <a href="/com/jme3/gde/core/docs/jme3/advanced/material_definitions.html"
          Diffuse  : 1.0 1.0 1.0 1.0
          Specular : 0.0 0.0 0.0 1.0
      }
-}</pre>
-</div>
-</li>
-</ol>
-
-<p>
-
-How to this file is structured:
-</p>
-<ol>
-<li><div> Header</div>
-<ol>
-<li><div> <code>Material</code> is a fixed keyword, keep it.</div>
-</li>
-<li><div> <code>shiny bumpy rock</code> is a descriptive string that you can make up. Choose a name to help you remember for what you intend to use this material.</div>
+}</pre></div></li></ol><p>How to this file is structured:</p><ol><li><div>Header</div><ol><li><div><code>Material</code> is a fixed keyword, keep it.</div></li><li><div><code>shiny bumpy rock</code> is a descriptive string that you can make up. Choose a name to help you remember for what you intend to use this material.</div>
 </li>
 <li><div> After the colon, specify on which <a href="/com/jme3/gde/core/docs/jme3/advanced/materials_overview.html">Material</a> definition you base this Material.</div>
 </li>

+ 6 - 71
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/loading_screen.html

@@ -1,36 +1,4 @@
-
-<h3><a>Nifty Loading Screen (Progress Bar)</a></h3>
-<div>
-
-<p>
-
-There is a good tutorial about creating a nifty progress bar here:
-<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Create_your_own_Control_%28A_Nifty_Progressbar%29"><param name="text" value="<html><u>http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Create_your_own_Control_%28A_Nifty_Progressbar%29</u></html>"><param name="textColor" value="blue"></object>
-</p>
-
-<p>
-This example will use the existing hello terrain as an example.
-It will require these 2 images inside Assets/Interface/ (save them as border.png and inner.png respectively)
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/inner1.png">
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/border1.png">
-</p>
-
-<p>
-This is the progress bar at 90%:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/loadingscreen.png">
-</p>
-
-<p>
-nifty_loading.xml
-
-</p>
-<pre><span>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
+<h3><a>Nifty Loading Screen (Progress Bar)</a></h3><div><p>There is a good tutorial about creating a nifty progress bar here: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Create_your_own_Control_%28A_Nifty_Progressbar%29"><param name="text" value="<html><u>http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Create_your_own_Control_%28A_Nifty_Progressbar%29</u></html>"><param name="textColor" value="blue"></object></p><p>This example will use the existing hello terrain as an example. It will require these 2 images inside Assets/Interface/ (save them as border.png and inner.png respectively)</p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/inner1.png"> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/border1.png"></p><p>This is the progress bar at 90%:</p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/loadingscreen.png"></p><p>nifty_loading.xml</p><pre><span>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
 <span><span>&lt;nifty&gt;</span></span>
     <span>&lt;useStyles filename=&quot;nifty-default-styles.xml&quot; /&gt;</span>
     <span>&lt;useControls filename=&quot;nifty-default-controls.xml&quot; /&gt;</span>
@@ -67,32 +35,13 @@ nifty_loading.xml
     <span>&lt;screen id=&quot;end&quot; controller = &quot;jme3test.TestLoadingScreen&quot;&gt;</span>
     <span><span>&lt;/screen&gt;</span></span>
 &nbsp;
-<span><span>&lt;/nifty&gt;</span></span></pre>
-
-</div>
-
-<h4><a>Understanding Nifty XML</a></h4>
-<div>
-
-<p>
-
-The progress bar and text is done statically using nifty <acronym title="Extensible Markup Language">XML</acronym>.
-A custom control is created, which represents the progress bar.
-
-</p>
-<pre>    <span>&lt;controlDefinition name = &quot;loadingbar&quot; controller = &quot;jme3test.TestLoadingScreen&quot;&gt;</span>
+<span><span>&lt;/nifty&gt;</span></span></pre></div><h4><a>Understanding Nifty XML</a></h4><div><p>The progress bar and text is done statically using nifty <acronym title="Extensible Markup Language">XML</acronym>. A custom control is created, which represents the progress bar.</p><pre>    <span>&lt;controlDefinition name = &quot;loadingbar&quot; controller = &quot;jme3test.TestLoadingScreen&quot;&gt;</span>
         <span>&lt;image filename=&quot;Interface/border.png&quot; childLayout=&quot;absolute&quot; </span>
 <span>               imageMode=&quot;resize:15,2,15,15,15,2,15,2,15,2,15,15&quot;&gt;</span>
             <span>&lt;image id=&quot;progressbar&quot; x=&quot;0&quot; y=&quot;0&quot; filename=&quot;Interface/inner.png&quot; width=&quot;32px&quot; height=&quot;100%&quot;</span>
 <span>                   imageMode=&quot;resize:15,2,15,15,15,2,15,2,15,2,15,15&quot;/&gt;</span>
         <span><span>&lt;/image&gt;</span></span>
-    <span><span>&lt;/controlDefinition&gt;</span></span></pre>
-
-<p>
-This screen simply displays a button in the middle of the screen, which could be seen as a simple main menu UI.
-
-</p>
-<pre>    <span>&lt;screen id=&quot;start&quot; controller = &quot;jme3test.TestLoadingScreen&quot;&gt;</span>
+    <span><span>&lt;/controlDefinition&gt;</span></span></pre><p>This screen simply displays a button in the middle of the screen, which could be seen as a simple main menu UI.</p><pre>    <span>&lt;screen id=&quot;start&quot; controller = &quot;jme3test.TestLoadingScreen&quot;&gt;</span>
         <span>&lt;layer id=&quot;layer&quot; childLayout=&quot;center&quot;&gt;</span>
             <span>&lt;panel id = &quot;panel2&quot; height=&quot;30%&quot; width=&quot;50%&quot; align=&quot;center&quot; valign=&quot;center&quot; childLayout=&quot;vertical&quot;</span>
 <span>                   visibleToMouse=&quot;true&quot;&gt;</span>
@@ -101,13 +50,7 @@ This screen simply displays a button in the middle of the screen, which could be
                 <span><span>&lt;/control&gt;</span></span>
             <span><span>&lt;/panel&gt;</span></span>
         <span><span>&lt;/layer&gt;</span></span>
-    <span><span>&lt;/screen&gt;</span></span></pre>
-
-<p>
-This screen displays our custom progress bar control with a text control
-
-</p>
-<pre>    <span>&lt;screen id=&quot;loadlevel&quot; controller = &quot;jme3test.TestLoadingScreen&quot;&gt;</span>
+    <span><span>&lt;/screen&gt;</span></span></pre><p>This screen displays our custom progress bar control with a text control</p><pre>    <span>&lt;screen id=&quot;loadlevel&quot; controller = &quot;jme3test.TestLoadingScreen&quot;&gt;</span>
         <span>&lt;layer id=&quot;loadinglayer&quot; childLayout=&quot;center&quot; backgroundColor=&quot;#000000&quot;&gt;</span>
             <span>&lt;panel id = &quot;loadingpanel&quot; childLayout=&quot;vertical&quot; align=&quot;center&quot; valign=&quot;center&quot; height=&quot;32px&quot; width=&quot;400px&quot;&gt;</span>
                 <span>&lt;control name=&quot;loadingbar&quot; align=&quot;center&quot; valign=&quot;center&quot; width=&quot;400px&quot; height=&quot;32px&quot; /&gt;</span>
@@ -115,15 +58,7 @@ This screen displays our custom progress bar control with a text control
 <span>                          text=&quot;                                                  &quot;/&gt;</span>
             <span><span>&lt;/panel&gt;</span></span>
         <span><span>&lt;/layer&gt;</span></span>
-    <span><span>&lt;/screen&gt;</span></span></pre>
-
-</div>
-
-<h3><a>Creating the bindings to use the Nifty XML</a></h3>
-<div>
-
-<p>
-There are 3 main ways to update a progress bar. To understand why these methods are necessary, an understanding of the graphics pipeline is needed. 
+    <span><span>&lt;/screen&gt;</span></span></pre></div><h3><a>Creating the bindings to use the Nifty XML</a></h3><div><p>There are 3 main ways to update a progress bar. To understand why these methods are necessary, an understanding of the graphics pipeline is needed. 
 </p>
 
 <p>
@@ -223,7 +158,7 @@ public class TestLoadingScreen extends SimpleApplication implements ScreenContro
     @Override
     public void simpleUpdate&#40;float tpf&#41; &#123;
 &nbsp;
-        if &#40;load == true&#41; &#123; //loading is done over many frames
+        if &#40;load&#41; &#123; //loading is done over many frames
             if &#40;frameCount == 1&#41; &#123;
                 Element element = nifty.getScreen&#40;&quot;loadlevel&quot;&#41;.findElementByName&#40;&quot;loadingtext&quot;&#41;;
                 textRenderer = element.getRenderer&#40;TextRenderer.class&#41;;

+ 5 - 129
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/localization.html

@@ -1,132 +1,8 @@
-
-<h1><a>Localizing jME 3 Games</a></h1>
-<div>
-
-</div>
-
-<h2><a>Scope</a></h2>
-<div>
-
-<p>
-
-Localizing an application can mean several things: 
-
-</p>
-<ul>
-<li><div> At minimum you translate all messages and dialogs in the user interface to your target languages.</div>
-</li>
-<li><div> You should also translate the &quot;read me&quot;, help, and other documentation.</div>
-</li>
-<li><div> Also translating web content related to the application makes sure international users find out about your localized game.</div>
-</li>
-<li><div> If you go the whole way of internationalization, you also &quot;translate&quot; metaphors in icons or symbols used. <br/>
-E.g. For localizations to right-to-left languages, you must also adjust the whole flow of the UI (order of menus and buttons).</div>
-</li>
-</ul>
-
-<p>
-
-There are tools that assist you with localizing Java Swing GUIs. jME3 applications do not typically have a Swing <acronym title="Graphical User Interface">GUI</acronym>, so those tools are not of much help. Just stick to the normal Java rules about using Bundle Properties:
-</p>
-
-</div>
-
-<h2><a>Preparing the Localization</a></h2>
-<div>
-
-<p>
-
-<strong>Tip:</strong> The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> supports opening and editing Bundle.properties files. Also note the Tools &gt; Localization menu.
-</p>
-
-<p>
-To prepare the application for localization, you have to first identify all hard-coded messages.
-
-</p>
-<ol>
-<li><div> Find every line in your jME3 game where you hard-coded message strings, e.g. <br/>
-<pre>System.out.print&#40;&quot;Hello World!&quot;&#41;;
-UiText.setText&#40;&quot;Score: &quot;+score&#41;;</pre>
-</div>
-</li>
-<li><div> Create one file named <code>Bundle.properties</code> in each directory where there are Java file that contain messages.</div>
-</li>
-<li><div> For every hard-coded message, you add one line to the <code>Bundle.properties</code> file: First specify a unique key that identifies this string; then an equal sign; and the literal string itself. <br/>
-<pre>greeting=Hello World!
-score.display=Score: </pre>
-</div>
-</li>
-<li><div> In the source code, replace every occurence of a hard-coded message with the appropriate Resource Bundle call to its unique key: <pre>ResourceBundle.getBundle&#40;&quot;Bundle&quot;&#41;.getString&#40;&quot;greeting&quot;&#41;&#41;;
-UiText.setText&#40;ResourceBundle.getBundle&#40;&quot;Bundle&quot;&#41;.getString&#40;&quot;score.display&quot;&#41;+score&#41;;</pre>
-</div>
-</li>
-</ol>
-
-<p>
-
-The language used in the Bundle.properties files will be the default language for your game.
-
-</p>
-
-</div>
-
-<h2><a>Translating the Messages</a></h2>
-<div>
-
-<p>
-
-Each additional language comes in a set of files that is marked with a (usually) two-letter suffix. Common locales are de for German, en for English, fr for French, ja for Japanese, pt for Portuguese, etc.
-</p>
-
-<p>
-To translate the messages to another language, for example, German:
-
-</p>
-<ol>
-<li><div> Make a copy of the <code>Bundle.properties</code> files.</div>
-</li>
-<li><div> Name the copy <code>Bundle_de.properties</code> for German. Note the added suffix _de.</div>
-</li>
-<li><div> Translate all strings (text on the right side of the equal sign) in the <code>Bundle_de.properties</code> to German. <pre>greeting=Hallo Welt!
-score.display=Spielstand: </pre>
-
-<p>
- <strong>Important:</strong> Do not modify any of the keys (text to the left of the equal sign)!
-</p>
-</div>
-</li>
-<li><div> To test the German localization, start the application from the command line with <code>-Duser.language=de</code>. Note the parameter <code>de</code>.</div>
-</li>
-</ol>
-
-<p>
-
-<strong>Tip:</strong> In the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>, you set this VM Option in the Project properties under Run. Here you can also save individual run configuraions for each language you want to test.
-</p>
-
-<p>
-To get the full list of language suffixes use 
-
-</p>
-<pre>Locale.getISOLanguages&#40;&#41;&#41;&#41;;</pre>
-
-</div>
-
-<h2><a>Which Strings Not to Translate</a></h2>
-<div>
-
-<p>
-
-<strong>Important:</strong> In the Bundle.properties file, do not include any strings that are asset paths, node or geometry names, input mappings, or material layers.
-</p>
-<ul>
-<li><div> Keep material layers: <pre>mat.setTexture&#40;&quot;ColorMap&quot;, tex&#41;;</pre>
-</div>
-</li>
-<li><div> Keep paths: <pre>teapot = assetManager.loadModel&#40;&quot;Models/Teapot/Teapot.obj&quot;&#41;;</pre>
-</div>
-</li>
-<li><div> Keep geometry and node names: <pre>Geometry thing=new Geometry&#40;&quot;A thing&quot;, mesh&#41;;
+<h1><a>Localizing jME 3 Games</a></h1><div></div><h2><a>Scope</a></h2><div><p>Localizing an application can mean several things:</p><ul><li><div>At minimum you translate all messages and dialogs in the user interface to your target languages.</div></li><li><div>You should also translate the &quot;read me&quot;, help, and other documentation.</div></li><li><div>Also translating web content related to the application makes sure international users find out about your localized game.</div></li><li><div>If you go the whole way of internationalization, you also &quot;translate&quot; metaphors in icons or symbols used. <br/> E.g. For localizations to right-to-left languages, you must also adjust the whole flow of the UI (order of menus and buttons).</div></li></ul><p>There are tools that assist you with localizing Java Swing GUIs. jME3 applications do not typically have a Swing <acronym title="Graphical User Interface">GUI</acronym>, so those tools are not of much help. Just stick to the normal Java rules about using Bundle Properties:</p></div><h2><a>Preparing the Localization</a></h2><div><p><strong>Tip:</strong> The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> supports opening and editing Bundle.properties files. Also note the Tools &gt; Localization menu.</p><p>To prepare the application for localization, you have to first identify all hard-coded messages.</p><ol><li><div>Find every line in your jME3 game where you hard-coded message strings, e.g. <br/><pre>System.out.print&#40;&quot;Hello World!&quot;&#41;;
+UiText.setText&#40;&quot;Score: &quot;+score&#41;;</pre></div></li><li><div>Create one file named <code>Bundle.properties</code> in each directory where there are Java file that contain messages.</div></li><li><div>For every hard-coded message, you add one line to the <code>Bundle.properties</code> file: First specify a unique key that identifies this string; then an equal sign; and the literal string itself. <br/><pre>greeting=Hello World!
+score.display=Score: </pre></div></li><li><div>In the source code, replace every occurence of a hard-coded message with the appropriate Resource Bundle call to its unique key:<pre>ResourceBundle.getBundle&#40;&quot;Bundle&quot;&#41;.getString&#40;&quot;greeting&quot;&#41;&#41;;
+UiText.setText&#40;Translating the Messages</h2><div><p>Each additional language comes in a set of files that is marked with a (usually) two-letter suffix. Common locales are de for German, en for English, fr for French, ja for Japanese, pt for Portuguese, etc.</p><p>To translate the messages to another language, for example, German:</p><ol><li><div>Make a copy of the <code>Bundle.properties</code> files.</div></li><li><div>Name the copy <code>Bundle_de.properties</code> for German. Note the added suffix _de.</div></li><li><div>Translate all strings (text on the right side of the equal sign) in the <code>Bundle_de.properties</code> to German.<pre>greeting=Hallo Welt!
+score.display=Spielstand: </pre><p><strong>Important:</strong> Do not modify any of the keys (text to the left of the equal sign)!</p></div></li><li><div>To test the German localization, start the application from the command line with <code>-Duser.language=de</code>. Note the parameter <code>de</code>.</div></li></ol><p><strong>Tip:</strong> In the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>, you set this VM Option in the Project properties under Run. Here you can also save individual run configuraions for each language you want to test.</p><p>To get the full list of language suffixes use</p><pre>Which Strings Not to Translate</h2><div><p><strong>Important:</strong> In the Bundle.properties file, do not include any strings that are asset paths, node or geometry names, input mappings, or material layers.</p><ul><li><div>Keep material layers:<pre>mat.setTexture&#40;&quot;ColorMap&quot;, tex&#41;;</pre></div></li><li><div>Keep paths:<pre>teapot = assetManager.loadModel&#40;&quot;Models/Teapot/Teapot.obj&quot;&#41;;</pre></div></li><li><div>Keep geometry and node names:<pre>Geometry thing=new Geometry&#40;&quot;A thing&quot;, mesh&#41;;
 Node vehicle = new Node&#40;&quot;Vehicle&quot;&#41;;</pre>
 </div>
 </li>

+ 3 - 62
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/logging.html

@@ -1,65 +1,6 @@
-
-<h1><a>Logging and Monitoring</a></h1>
-<div>
-
-</div>
-
-<h2><a>Logging Like a Newb</a></h2>
-<div>
-
-<p>
-
-Many developers just use System.out.println() to print diagnostic strings to the terminal. The problem with that is that before the release, you&#039;d have to go through all your code and make certain you removed all these println() calls. You do not want your users to see them and worry about ominous strings babbling about old development diagnostics. 
-</p>
-
-</div>
-
-<h2><a>Logging Like a Pro</a></h2>
-<div>
-
-<p>
-
-Instead of println(), you use the standard Java logger from <code>java.util.logging</code>. It has many advantages for professional game development:
-</p>
-<ul>
-<li><div> You &quot;tag&quot; each message with a log level: Severe error, informative warning, etc.</div>
-</li>
-<li><div> You can switch off printing of all messages up to certain log level with just one line of code.</div>
-<ul>
-<li><div> During development, you would set the log level to fine, because you want all warnings printed.</div>
-</li>
-<li><div> For the release, you set the log level to only report severe errors, and no informative diagnostics.</div>
-</li>
-</ul>
-</li>
-<li><div> The logger string is localizable, since it contains variables. You may want to localize all errors.</div>
-</li>
-</ul>
-
-<p>
-
-So to print comments like a pro, you use the following logger syntax. The variables a, b, c, can be any printable Java object, e.g. <code>Vector3f a = cam.getLocation()</code>. They are numbered {0},{1},{2},etc for use in the string, in the order you put them in the Object array.
-</p>
-<pre>private static final Logger logger = Logger.getLogger&#40;HelloWorld.class.getName&#40;&#41;&#41;;</pre>
-
-<p>
-
-Replace HelloWorld by the name of the class where you are using this line.
-
-</p>
-<pre>logger.log&#40;Level.WARNING, &quot;ok seriously wtf somebody check why {0} is {1} again?!&quot;, 
-                      new Object&#91;&#93;&#123;a , b&#125;&#41;;</pre>
-
-<p>
-
-or
-
-</p>
-<pre>logger.log&#40;Level.SEVERE, &quot;Game error: {0} must not be {1} after {2}! Please check your flux generator.&quot;, 
-                      new Object&#91;&#93;&#123;a , b , c&#125;&#41;;</pre>
-
-<p>
-As you see in the example, you should phrase potentially &quot;customer facing&quot; errors in a neutral way and offer a reason and a solution. If you use WARNINGs as replacement for casual printlns, make sure you deactivate them for the release.
+<h1><a>Logging and Monitoring</a></h1><div></div><h2><a>Logging Like a Newb</a></h2><div><p>Many developers just use System.out.println() to print diagnostic strings to the terminal. The problem with that is that before the release, you&#039;d have to go through all your code and make certain you removed all these println() calls. You do not want your users to see them and worry about ominous strings babbling about old development diagnostics.</p></div><h2><a>Logging Like a Pro</a></h2><div><p>Instead of println(), you use the standard Java logger from <code>java.util.logging</code>. It has many advantages for professional game development:</p><ul><li><div>You &quot;tag&quot; each message with a log level: Severe error, informative warning, etc.</div></li><li><div>You can switch off printing of all messages up to certain log level with just one line of code.</div><ul><li><div>During development, you would set the log level to fine, because you want all warnings printed.</div></li><li><div>For the release, you set the log level to only report severe errors, and no informative diagnostics.</div></li></ul></li><li><div>The logger string is localizable, since it contains variables. You may want to localize all errors.</div></li></ul><p>So to print comments like a pro, you use the following logger syntax. The variables a, b, c, can be any printable Java object, e.g. <code>Vector3f a = cam.getLocation()</code>. They are numbered {0},{1},{2},etc for use in the string, in the order you put them in the Object array.</p><pre>private static final Logger logger = Logger.getLogger&#40;HelloWorld.class.getName&#40;&#41;&#41;;</pre><p>Replace HelloWorld by the name of the class where you are using this line.</p><pre>logger.log&#40;Level.WARNING, &quot;ok seriously wtf somebody check why {0} is {1} again?!&quot;, 
+                      new Object&#91;&#93;&#123;a , b&#125;&#41;;</pre><p>or</p><pre>logger.log&#40;Level.SEVERE, &quot;Game error: {0} must not be {1} after {2}! Please check your flux generator.&quot;, 
+                      new Object&#91;&#93;&#123;a , b , c&#125;&#41;;</pre><p>As you see in the example, you should phrase potentially &quot;customer facing&quot; errors in a neutral way and offer a reason and a solution. If you use WARNINGs as replacement for casual printlns, make sure you deactivate them for the release.
 </p>
 
 <p>

File diff suppressed because it is too large
+ 0 - 48
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/making_the_camera_follow_a_character.html


File diff suppressed because it is too large
+ 1 - 351
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/materials_overview.html


File diff suppressed because it is too large
+ 0 - 59
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/motionpath.html


+ 1 - 42
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/mouse_picking.html

@@ -1,45 +1,4 @@
-
-<h1><a>Mouse Picking</a></h1>
-<div>
-
-<p>
-
-Mouse picking means that the user clicks an object in the scene to select it, or to interact with it otherwise. Games use picking to implement aiming and shooting, casting spells, picking up objects, selecting targets, dragging and moving objects, etc. Mouse picking can be done using fixed crosshairs, or using the mouse pointer.
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/mouse-picking.png">
-</p>
-
-<p>
-See <a href="/com/jme3/gde/core/docs/jme3/advanced/input_handling.html">Input Handling</a> for details on how to define the necessary input triggers, input mappings, and input listeners.
-</p>
-
-</div>
-
-<h2><a>Pick a Target Using Fixed Crosshairs</a></h2>
-<div>
-
-<p>
-
-The following <code>pick target</code> input mapping implements an action that determines what a user clicked. It assumes that the mouse pointer is invisible and there are crosshairs painted in the center of the screen. It assumes that the user aims the crosshairs at an object in the scene and clicks. You use Ray Casting to identify the geometry that was picked by the user. Use use this method together with a first-person flyCam. 
-
-</p>
-<ol>
-<li><div> Activate the first-person camera: <code>flyCam.setEnabled(true);</code></div>
-</li>
-<li><div> Keep mouse pointer invisible using <code>inputManager.setCursorVisible(false)</code>.</div>
-</li>
-<li><div> Map the <code>pick target</code> action to a MouseButtonTrigger. </div>
-</li>
-<li><div> Implement the action in the Listener.</div>
-</li>
-</ol>
-
-<p>
-The following example rotates Spatials named &quot;Red Box&quot; or &quot;Blue Box&quot; when they are clicked. Modify this code to do whatever your game needs to do with the identified target (shoot it, take it, move it, etc).
-</p>
-<pre>  private AnalogListener analogListener = new AnalogListener&#40;&#41; &#123;
+<h1><a>Mouse Picking</a></h1><div><p>Mouse picking means that the user clicks an object in the scene to select it, or to interact with it otherwise. Games use picking to implement aiming and shooting, casting spells, picking up objects, selecting targets, dragging and moving objects, etc. Mouse picking can be done using fixed crosshairs, or using the mouse pointer.</p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/mouse-picking.png"></p><p>See <a href="/com/jme3/gde/core/docs/jme3/advanced/input_handling.html">Input Handling</a> for details on how to define the necessary input triggers, input mappings, and input listeners.</p></div><h2><a>Pick a Target Using Fixed Crosshairs</a></h2><div><p>The following <code>pick target</code> input mapping implements an action that determines what a user clicked. It assumes that the mouse pointer is invisible and there are crosshairs painted in the center of the screen. It assumes that the user aims the crosshairs at an object in the scene and clicks. You use Ray Casting to identify the geometry that was picked by the user. Use use this method together with a first-person flyCam.</p><ol><li><div>Activate the first-person camera: <code>flyCam.setEnabled(true);</code></div></li><li><div>Keep mouse pointer invisible using <code>inputManager.setCursorVisible(false)</code>.</div></li><li><div>Map the <code>pick target</code> action to a MouseButtonTrigger.</div></li><li><div>Implement the action in the Listener.</div></li></ol><p>The following example rotates Spatials named &quot;Red Box&quot; or &quot;Blue Box&quot; when they are clicked. Modify this code to do whatever your game needs to do with the identified target (shoot it, take it, move it, etc).</p><pre>  private AnalogListener analogListener = new AnalogListener&#40;&#41; &#123;
     public void onAnalog&#40;String name, float intensity, float tpf&#41; &#123;
         if &#40;name.equals&#40;&quot;pick target&quot;&#41;&#41; &#123;
          // Reset results list.

+ 9 - 166
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/multiple_camera_views.html

@@ -1,60 +1,5 @@
-
-<h1><a>Multiple Camera Views</a></h1>
-<div>
-
-<p>
-
-You can split the screen and look into the 3D scene from different camera angles at the same time. 
-</p>
-
-<p>
-The packages used in this example are <code>com.jme3.renderer.Camera</code> and <code>com.jme3.renderer.ViewPort</code>. You can get the full sample code here: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/renderer/TestMultiViews.java"><param name="text" value="<html><u>TestMultiViews.java</u></html>"><param name="textColor" value="blue"></object>
-</p>
-
-</div>
-
-<h2><a>How to resize and Position ViewPorts</a></h2>
-<div>
-
-<p>
-
-The default viewPort is as big as the window. If you have several, the must be of different sizes, either overlapping or adjacent to one another. How do you tell jME which of the ViewPorts should appear where on the screen, and how big it should be?
-</p>
-
-<p>
-Imagine the window as a 1.0f x 1.0f rectangle. The default cam&#039;s viewPort is set to 
-
-</p>
-<pre>cam.setViewPort&#40;0f, 1f, 0f, 1f&#41;;</pre>
-
-<p>
-
-This setting makes the ViewPort take up the whole rectangle. 
-</p>
-
-<p>
-The four values are read in the following order: 
-</p>
-<pre>cam.setViewPort&#40;x1,x2 , y1,y2&#41;;</pre>
-<ul>
-<li><div> <strong>X-axis</strong> from left to right</div>
-</li>
-<li><div> <strong>Y-axis</strong> upwards from bottom to top</div>
-</li>
-</ul>
-
-<p>
-
-Here are a few examples:
-
-</p>
-<pre>cam1.setViewPort&#40; 0.0f , 1.0f   ,   0.0f , 1.0f &#41;;
-cam2.setViewPort&#40; 0.5f , 1.0f   ,   0.0f , 0.5f &#41;;</pre>
-
-<p>
-These viewport parameters are, (in this order) the left-right extend, and the bottom-top extend of a views&#039;s rectangle on the screen. 
-</p>
-<pre>0.0 , 1.0       1.0 , 1.0
+<h1><a>Multiple Camera Views</a></h1><div><p>You can split the screen and look into the 3D scene from different camera angles at the same time.</p><p>The packages used in this example are <code>com.jme3.renderer.Camera</code> and <code>com.jme3.renderer.ViewPort</code>. You can get the full sample code here: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/renderer/TestMultiViews.java"><param name="text" value="<html><u>TestMultiViews.java</u></html>"><param name="textColor" value="blue"></object></p></div><h2><a>How to resize and Position ViewPorts</a></h2><div><p>The default viewPort is as big as the window. If you have several, the must be of different sizes, either overlapping or adjacent to one another. How do you tell jME which of the ViewPorts should appear where on the screen, and how big it should be?</p><p>Imagine the window as a 1.0f x 1.0f rectangle. The default cam&#039;s viewPort is set to</p><pre>cam.setViewPort&#40;0f, 1f, 0f, 1f&#41;;</pre><p>This setting makes the ViewPort take up the whole rectangle.</p><p>The four values are read in the following order:</p><pre>cam.setViewPort&#40;x1,x2 , y1,y2&#41;;</pre><ul><li><div><strong>X-axis</strong> from left to right</div></li><li><div><strong>Y-axis</strong> upwards from bottom to top</div></li></ul><p>Here are a few examples:</p><pre>cam1.setViewPort&#40; 0.0f , 1.0f   ,   0.0f , 1.0f &#41;;
+cam2.setViewPort&#40; 0.5f , 1.0f   ,   0.0f , 0.5f &#41;;</pre><p>These viewport parameters are, (in this order) the left-right extend, and the bottom-top extend of a views&#039;s rectangle on the screen.</p><pre>0.0 , 1.0       1.0 , 1.0
        +-----+-----+
        |cam1       |
        |           |
@@ -62,79 +7,8 @@ These viewport parameters are, (in this order) the left-right extend, and the bo
        |     |     |
        |     |cam2 |
        +-----+-----+
-0.0 , 0.0       1.0 , 0.0</pre>
-
-<p>
-Example: Cam2&#039;s rectangle is int he bottom right: It extends from mid (x1=0.5f) bottom (y1=0.0f), to right (x2=1.0f) mid (y2=0.5f)
-</p>
-
-<p>
-<p><div>If you scale the views in a way so that the aspect ratio of a ViewPort is different than the window&#039;s aspect ratio, then the ViewPort appears distorted. In these cases, you must recreate (not clone) the ViewPort&#039;s cam object with the right aspect ratio. For example: <code>Camera cam5 = new Camera(100,100);</code> 
-</div></p>
-</p>
-
-</div>
-
-<h2><a>Four-Time Split Screen</a></h2>
-<div>
-
-<p>
-
-In this example, you create four views (2x2) with the same aspect ratio as the window, but each is only half the width and height. 
-</p>
-
-</div>
-
-<h3><a>Set up the First View</a></h3>
-<div>
-
-<p>
-
-You use the preconfigured Camera <code>cam</code> and <code>viewPort</code> from <code>SimpleApplication</code> for the first view. It&#039;s in the bottom right.
-
-</p>
-<pre>cam.setViewPort&#40;.5f, 1f, 0f, 0.5f&#41;; // Resize the viewPort to half its size, bottom right.</pre>
-
-<p>
-
-Optionally, place the main camera in the scene and rotate it in its start position. 
-
-</p>
-<pre>cam.setLocation&#40;new Vector3f&#40;3.32f, 4.48f, 4.28f&#41;&#41;;
-cam.setRotation&#40;new Quaternion &#40;-0.07f, 0.92f, -0.25f, -0.27f&#41;&#41;;</pre>
-
-</div>
-
-<h3><a>Set Up Three More Views</a></h3>
-<div>
-
-<p>
-
-Here is the outline for how you create the three other cams and viewPorts (<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/renderer/TestMultiViews.java"><param name="text" value="<html><u>Full code sample is here</u></html>"><param name="textColor" value="blue"></object>.) In the code snippet, <code>cam_n</code> stand for <code>cam_2</code> - <code>cam_4</code>, respectively, same for <code>view_n</code>.
-
-</p>
-<ol>
-<li><div> Clone the first cam to reuse its settings</div>
-</li>
-<li><div> Resize and position the cam&#039;s viewPort with setViewPort().</div>
-</li>
-<li><div> (Optionally) Move the cameras in the scene and rotate them so they face what you want to see.</div>
-</li>
-<li><div> Create a ViewPort for each camera</div>
-</li>
-<li><div> Reset the camera&#039;s enabled statuses</div>
-</li>
-<li><div> Attach the Node to be displayed to this ViewPort. <br/>
-The camera doesn&#039;t have to look at the rootNode, but that is the most common use case.</div>
-</li>
-</ol>
-
-<p>
-
-Here is the abstract code sample for camera <code>n</code>:
-
-</p>
-<pre>Camera cam_n    = cam.clone&#40;&#41;;
+0.0 , 0.0       1.0 , 0.0</pre><p>Example: Cam2&#039;s rectangle is int he bottom right: It extends from mid (x1=0.5f) bottom (y1=0.0f), to right (x2=1.0f) mid (y2=0.5f)</p><p><p><div>If you scale the views in a way so that the aspect ratio of a ViewPort is different than the window&#039;s aspect ratio, then the ViewPort appears distorted. In these cases, you must recreate (not clone) the ViewPort&#039;s cam object with the right aspect ratio. For example: <code>Camera cam5 = new Camera(100,100);</code></div></p></p></div><h2><a>Four-Time Split Screen</a></h2><div><p>In this example, you create four views (2x2) with the same aspect ratio as the window, but each is only half the width and height.</p></div><h3><a>Set up the First View</a></h3><div><p>You use the preconfigured Camera <code>cam</code> and <code>viewPort</code> from <code>SimpleApplication</code> for the first view. It&#039;s in the bottom right.</p><pre>cam.setViewPort&#40;.5f, 1f, 0f, 0.5f&#41;; // Resize the viewPort to half its size, bottom right.</pre><p>Optionally, place the main camera in the scene and rotate it in its start position. </p><pre>cam.setLocation&#40;new Vector3f&#40;3.32f, 4.48f, 4.28f&#41;&#41;;
+cam.setRotation&#40;new Quaternion &#40;-0.07f, 0.92f, -0.25f, -0.27f&#41;&#41;;</pre></div><h3><a>Set Up Three More Views</a></h3><div><p>Here is the outline for how you create the three other cams and viewPorts (<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/renderer/TestMultiViews.java"><param name="text" value="<html><u>Full code sample is here</u></html>"><param name="textColor" value="blue"></object>.) In the code snippet, <code>cam_n</code> stand for <code>cam_2</code> - <code>cam_4</code>, respectively, same for <code>view_n</code>.</p><ol><li><div>Clone the first cam to reuse its settings</div></li><li><div>Resize and position the cam&#039;s viewPort with setViewPort().</div></li><li><div>(Optionally) Move the cameras in the scene and rotate them so they face what you want to see.</div></li><li><div>Create a ViewPort for each camera</div></li><li><div>Reset the camera&#039;s enabled statuses</div></li><li><div>Attach the Node to be displayed to this ViewPort. <br/> The camera doesn&#039;t have to look at the rootNode, but that is the most common use case.</div></li></ol><p>Here is the abstract code sample for camera <code>n</code>:</p><pre>Camera cam_n    = cam.clone&#40;&#41;;
 cam_n.setViewPort&#40;...&#41;; // resize the viewPort
 cam_n.setLocation&#40;new Vector3f&#40;...&#41;&#41;;
 cam_n.setRotation&#40;new Quaternion&#40;...&#41;&#41;;
@@ -142,12 +16,7 @@ cam_n.setRotation&#40;new Quaternion&#40;...&#41;&#41;;
 ViewPort view_n = renderManager.createMainView&#40;&quot;View of camera #n&quot;, cam_n&#41;;
 view_n.setClearEnabled&#40;true&#41;;
 view_n.attachScene&#40;rootNode&#41;;
-view_n.setBackgroundColor&#40;ColorRGBA.Black&#41;;</pre>
-
-<p>
-To visualize what you do, use the following drawing of the viewport positions:
-</p>
-<pre>0.0 , 1.0       1.0 , 1.0
+view_n.setBackgroundColor&#40;ColorRGBA.Black&#41;;</pre><p>To visualize what you do, use the following drawing of the viewport positions:</p><pre>0.0 , 1.0       1.0 , 1.0
        +-----+-----+
        |     |     |
        |cam3 |cam4 |
@@ -155,36 +24,19 @@ To visualize what you do, use the following drawing of the viewport positions:
        |     |     |
        |cam2 |cam1 |
        +-----+-----+
-0.0 , 0.0       1.0 , 0.0</pre>
-
-<p>
-This are the lines of code that set the four cameras to create a four-times split screen.
-</p>
-<pre>cam1.setViewPort&#40; 0.5f , 1.0f  ,  0.0f , 0.5f&#41;;
+0.0 , 0.0       1.0 , 0.0</pre><p>This are the lines of code that set the four cameras to create a four-times split screen.</p><pre>cam1.setViewPort&#40; 0.5f , 1.0f  ,  0.0f , 0.5f&#41;;
 ...
 cam2.setViewPort&#40; 0.0f , 0.5f  ,  0.0f , 0.5f&#41;;
 ...
 cam3.setViewPort&#40; 0.0f , 0.5f  ,  0.5f , 1.0f&#41;;
 ...
-cam4.setViewPort&#40; 0.5f , 1.0f  ,  0.5f , 1.0f&#41;;</pre>
-
-</div>
-
-<h2><a>Picture in Picture</a></h2>
-<div>
-
-<p>
-
-The following code snippet sets up two views, one covers the whole screen, and the second is a small view in the top center.
-</p>
-<pre>       +-----+-----+
+cam4.setViewPort&#40; 0.5f , 1.0f  ,  0.5f , 1.0f&#41;;</pre></div><h2><a>Picture in Picture</a></h2><div><p>The following code snippet sets up two views, one covers the whole screen, and the second is a small view in the top center.</p><pre>       +-----+-----+
        |   |cam|   |
        |   | 2 |   |
        +   +---+   +
        |           |
        |    cam    |
-       +-----+-----+</pre>
-<pre>// Setup first full-window view
+       +-----+-----+</pre><pre>// Setup first full-window view
 cam.setViewPort&#40;0f, 1f, 0f, 1f&#41;;
 cam.setLocation&#40;new Vector3f&#40;3.32f, 4.48f, 4.28f&#41;&#41;;
 cam.setRotation&#40;new Quaternion&#40;-0.07f, 0.92f, -0.25f, -0.27f&#41;&#41;;
@@ -196,16 +48,7 @@ cam2.setLocation&#40;new Vector3f&#40;-0.10f, 1.57f, 4.81f&#41;&#41;;
 cam2.setRotation&#40;new Quaternion&#40;0.00f, 0.99f, -0.04f, 0.02f&#41;&#41;;
 ViewPort viewPort2 = renderManager.createMainView&#40;&quot;PiP&quot;, cam2&#41;;
 viewPort2.setClearFlags&#40;true, true, true&#41;;
-viewPort2.attachScene&#40;rootNode&#41;;</pre>
-
-</div>
-
-<h2><a>Settings</a></h2>
-<div>
-
-<p>
-
-You can customize the camera and the viewPort of each view individually. For example, each view can have a different background color:
+viewPort2.attachScene&#40;rootNode&#41;;</pre></div><h2><a>Settings</a></h2><div><p>You can customize the camera and the viewPort of each view individually. For example, each view can have a different background color:
 
 </p>
 <pre>viewPort.setBackgroundColor&#40;ColorRGBA.Blue&#41;;</pre>

File diff suppressed because it is too large
+ 0 - 84
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/multithreading.html


File diff suppressed because it is too large
+ 0 - 69
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/networking.html


+ 1 - 18
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui.html

@@ -1,21 +1,4 @@
-
-<h1><a>Creating User Interfaces with Nifty GUI</a></h1>
-<div>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/nifty-gui-13.png">
-</p>
-
-<p>
-You may want your players to press a button to save a game, you want a scrolling text field for highscores, a text label to display the score, drop-downs to select keymap preferences, or checkboxes to specify multi-media options. Usually you solve these tasks by using Swing controls. Although it is possible to embed a <a href="/com/jme3/gde/core/docs/jme3/advanced/swing_canvas.html">jME3 canvas</a> in a Swing <acronym title="Graphical User Interface">GUI</acronym>, a 3D game typically runs full-screen, or in a window of its own. 
-</p>
-
-<p>
-This document introduces you to <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://nifty-gui.lessvoid.com/"><param name="text" value="<html><u>Nifty GUI</u></html>"><param name="textColor" value="blue"></object>, a Java library for building interactive graphical user interfaces (GUIs) for games or similar applications. Nifty <acronym title="Graphical User Interface">GUI</acronym> (the <code>de.lessvoid.nifty</code> package) is well integrated with jME3 through the <code>com.jme3.niftygui</code> package. You define the base <acronym title="Graphical User Interface">GUI</acronym> layout in <acronym title="Extensible Markup Language">XML</acronym>, and control it dynamically from your Java code. The necessary JAR libraries are included in your jME3 download, you do not need to install anything extra. (Just make sure they are on the classpath.)
-
-</p>
-<ul>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://vimeo.com/25637085"><param name="text" value="<html><u>Video demo of Nifty GUI 1.3</u></html>"><param name="textColor" value="blue"></object> </div>
+<h1><a>Creating User Interfaces with Nifty GUI</a></h1><div><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/nifty-gui-13.png"></p><p>You may want your players to press a button to save a game, you want a scrolling text field for highscores, a text label to display the score, drop-downs to select keymap preferences, or checkboxes to specify multi-media options. Usually you solve these tasks by using Swing controls. Although it is possible to embed a <a href="/com/jme3/gde/core/docs/jme3/advanced/swing_canvas.html">jME3 canvas</a> in a Swing <acronym title="Graphical User Interface">GUI</acronym>, a 3D game typically runs full-screen, or in a window of its own.</p><p>This document introduces you to <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://nifty-gui.lessvoid.com/"><param name="text" value="<html><u>Nifty GUI</u></html>"><param name="textColor" value="blue"></object>, a Java library for building interactive graphical user interfaces (GUIs) for games or similar applications. Nifty <acronym title="Graphical User Interface">GUI</acronym> (the <code>de.lessvoid.nifty</code> package) is well integrated with jME3 through the <code>com.jme3.niftygui</code> package. You define the base <acronym title="Graphical User Interface">GUI</acronym> layout in <acronym title="Extensible Markup Language">XML</acronym>, and control it dynamically from your Java code. The necessary JAR libraries are included in your jME3 download, you do not need to install anything extra. (Just make sure they are on the classpath.)</p><ul><li><div><object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://vimeo.com/25637085"><param name="text" value="<html><u>Video demo of Nifty GUI 1.3</u></html>"><param name="textColor" value="blue"></object> </div>
 </li>
 </ul>
 

+ 4 - 68
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_java_interaction.html

@@ -1,36 +1,4 @@
-
-<h1><a>Interacting with the GUI from Java</a></h1>
-<div>
-<ol>
-<li><div> <a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui.html">Nifty GUI Concepts</a></div>
-</li>
-<li><div> <a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_xml_layout.html">Nifty GUI XML Layout</a> or <a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_java_layout.html">Nifty GUI Java Layout</a></div>
-</li>
-<li><div> <a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_overlay.html">Nifty GUI Overlay</a> or <a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_projection.html">Nifty GUI Projection</a></div>
-</li>
-<li><div> <strong>Nifty <acronym title="Graphical User Interface">GUI</acronym> Java Interaction</strong></div>
-</li>
-</ol>
-
-<p>
-
-In the previous parts of the tutorial, you created a two-screen user interface. But it is still static, and when you click the buttons, nothing happens yet. The purpose of the <acronym title="Graphical User Interface">GUI</acronym> is to communicate with your Java classes: Your game needs to know what the users clicked, which settings they chose, which values they entered into a field, etc. Similarly, the user needs to know what the currently game state is (score, health, etc). 
-</p>
-
-</div>
-
-<h2><a>Connect GUI to Java Controller</a></h2>
-<div>
-
-<p>
-
-To let a Nifty screen communicate with the Java application, you register a <code>ScreenController</code> to every NiftyGUI screen. You create a ScreenController by creating a Java class that implements the <code>de.lessvoid.nifty.screen.ScreenController</code> interface and its abtract methods.
-</p>
-
-<p>
-<strong>Pro Tip:</strong> Since you are writing a jME3 application, you can additionally make the ScreenController class extend the <a href="/com/jme3/gde/core/docs/jme3/advanced/application_states.html">AbstractAppState</a> class! This gives the ScreenController access to the application object and to the update loop!
-</p>
-<pre>package tutorial;
+<h1><a>Interacting with the GUI from Java</a></h1><div><ol><li><div><a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui.html">Nifty GUI Concepts</a></div></li><li><div><a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_xml_layout.html">Nifty GUI XML Layout</a> or <a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_java_layout.html">Nifty GUI Java Layout</a></div></li><li><div><a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_overlay.html">Nifty GUI Overlay</a> or <a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_projection.html">Nifty GUI Projection</a></div></li><li><div><strong>Nifty <acronym title="Graphical User Interface">GUI</acronym> Java Interaction</strong></div></li></ol><p>In the previous parts of the tutorial, you created a two-screen user interface. But it is still static, and when you click the buttons, nothing happens yet. The purpose of the <acronym title="Graphical User Interface">GUI</acronym> is to communicate with your Java classes: Your game needs to know what the users clicked, which settings they chose, which values they entered into a field, etc. Similarly, the user needs to know what the currently game state is (score, health, etc).</p></div><h2><a>Connect GUI to Java Controller</a></h2><div><p>To let a Nifty screen communicate with the Java application, you register a <code>ScreenController</code> to every NiftyGUI screen. You create a ScreenController by creating a Java class that implements the <code>de.lessvoid.nifty.screen.ScreenController</code> interface and its abtract methods.</p><p><strong>Pro Tip:</strong> Since you are writing a jME3 application, you can additionally make the ScreenController class extend the <a href="/com/jme3/gde/core/docs/jme3/advanced/application_states.html">AbstractAppState</a> class! This gives the ScreenController access to the application object and to the update loop!</p><pre>package tutorial;
 &nbsp;
 import com.jme3.app.Application;
 import com.jme3.app.SimpleApplication;
@@ -76,44 +44,12 @@ public class MyStartScreen extends AbstractAppState implements ScreenController
     /** jME update loop! */ 
   &#125;
 &nbsp;
-&#125;</pre>
-
-<p>
-The name and package of your custom ScreenController class (here <code>tutorial.MyStartScreen</code>) goes into the controller parameter of the respective <acronym title="Extensible Markup Language">XML</acronym> screen it belongs to. For example:
-</p>
-<pre><span><span>&lt;nifty&gt;</span></span>
+&#125;</pre><p>The name and package of your custom ScreenController class (here <code>tutorial.MyStartScreen</code>) goes into the controller parameter of the respective <acronym title="Extensible Markup Language">XML</acronym> screen it belongs to. For example:</p><pre><span><span>&lt;nifty&gt;</span></span>
   <span>&lt;screen id=&quot;start&quot; controller=&quot;tutorial.MyStartScreen&quot;&gt;</span>
       &lt;!-- layer and panel code ... --&gt;
   <span><span>&lt;/screen&gt;</span></span>
-<span><span>&lt;/nifty&gt;</span></span></pre>
-
-<p>
-Or the same in a Java syntax, respectively:
-</p>
-<pre>    nifty.addScreen&#40;&quot;start&quot;, new ScreenBuilder&#40;&quot;start&quot;&#41; &#123;&#123;
-        controller&#40;new tutorial.MyStartScreen&#40;&#41;&#41;;</pre>
-
-<p>
-Now the Java class <code>MyStartScreen</code> and this <acronym title="Graphical User Interface">GUI</acronym> screen (<code>start</code>) are connected. For this example you can also connect the <code>hud</code> screen to MyStartScreen.
-</p>
-
-</div>
-
-<h2><a>Make GUI and Java Interact</a></h2>
-<div>
-
-<p>
-
-In most cases, you will want to pass game data in and out of the ScreenController. Note that you can pass any custom arguments from your Java class into your ScreenController constructor (<code>public MyStartScreen(GameData data) {}</code>).
-</p>
-
-<p>
-Use any combination of the three following approaches to make Java classes interact with the <acronym title="Graphical User Interface">GUI</acronym>.
-</p>
-
-</div>
-
-<h3><a>GUI Calls a Void Java Method</a></h3>
+<span><span>&lt;/nifty&gt;</span></span></pre><p>Or the same in a Java syntax, respectively:</p><pre>    nifty.addScreen&#40;&quot;start&quot;, new ScreenBuilder&#40;&quot;start&quot;&#41; &#123;&#123;
+        controller&#40;new tutorial.MyStartScreen&#40;&#41;&#41;;</pre><p>Now the Java class <code>MyStartScreen</code> and this <acronym title="Graphical User Interface">GUI</acronym> screen (<code>start</code>) are connected. For this example you can also connect the <code>hud</code> screen to MyStartScreen.</p></div><h2><a>Make GUI and Java Interact</a></h2><div><p>In most cases, you will want to pass game data in and out of the ScreenController. Note that you can pass any custom arguments from your Java class into your ScreenController constructor (<code>public MyStartScreen(GameData data) {}</code>).</p><p>Use any combination of the three following approaches to make Java classes interact with the <acronym title="Graphical User Interface">GUI</acronym>.</p></div><h3><a>GUI Calls a Void Java Method</a></h3>
 <div>
 
 <p>

File diff suppressed because it is too large
+ 0 - 47
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_overlay.html


File diff suppressed because it is too large
+ 0 - 50
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_projection.html


File diff suppressed because it is too large
+ 0 - 98
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_xml_layout.html


File diff suppressed because it is too large
+ 0 - 194
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/open_game_finder.html


+ 4 - 80
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/particle_emitters.html

@@ -1,82 +1,6 @@
-
-<h1><a>Particle Emmitter Settings</a></h1>
-<div>
-
-<p>
-
-You cannot create a 3D model for delicate things like fire, smoke, or explosions. Particle Emitters are quite an efficient solution to create these kinds of effects: The emitter renders a series of flat orthogonal images and manipulates them in a way that creates the illusion of a anything from a delicate smoke cloud to individual flames, etc.
-Creating an effect involves some trial and error to get the settings <em>just right</em>, and it&#039;s worth exploring the expressiveness of the options described below. 
-</p>
-
-<p>
-<p><div>Use the <a href="/com/jme3/gde/core/docs/sdk/scene_explorer.html">Scene Explorer</a> in the <a href="/com/jme3/gde/core/docs/sdk.html">SDK</a> to design and preview effects.
-</div></p>
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/explosion-5.png">  <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/particle.png">  <img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-effect-fire.png"> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/butterfly-particle-emitter.png">
-</p>
-
-</div>
-
-<h2><a>Create an Emitter</a></h2>
-<div>
-<ol>
-<li><div> Create one emitter for each effect: <pre>ParticleEmitter explosion = new ParticleEmitter&#40;
-&quot;My explosion effect&quot;, ParticleMesh.Type.Triangle, 30&#41;;</pre>
-</div>
-</li>
-<li><div> Attach the emitter to the rootNode and position it in the scene: <pre>rootNode.attachChild&#40;explosion&#41;;
-explosion.setLocalTranslation&#40;bomb.getLocalTranslation&#40;&#41;&#41;;</pre>
-</div>
-</li>
-<li><div> Trigger the effect by calling <pre>explosion.emitAllParticles&#40;&#41;</pre>
-</div>
-</li>
-<li><div> End the effect by calling <pre>explosion.killAllParticles&#40;&#41;</pre>
-</div>
-</li>
-</ol>
-
-<p>
-Choose one of the following mesh shapes
-</p>
-<ul>
-<li><div> ParticleMesh.Type.Triangle</div>
-</li>
-<li><div> ParticleMesh.Type.Point</div>
-</li>
-</ul>
-
-</div>
-
-<h2><a>Configure Parameters</a></h2>
-<div>
-
-<p>
-Not all of these parameters are required for all kinds of effects. If you don&#039;t specify one of them, a default value will be used.
-</p>
-<div><table>
-	<tr>
-		<th> Parameter           </th><th> Method                </th><th> Default </th><th> Description </th>
-	</tr>
-	<tr>
-		<td> number              </td><td> <code>setNumParticles()</code> </td><td>  </td><td> The maximum number of particles visible at the same time. Specified by user in constructor. </td>
-	</tr>
-	<tr>
-		<td> emission rate       </td><td> <code>setParticlesPerSec()</code> </td><td> 20 </td><td> Density of the effect, how many new particles are emitted per second. <br/>
-Set to zero to control the start/end of the effect. <br/>
-Set to a number for a constantly running effect. </td>
-	</tr>
-	<tr>
-		<td> size                </td><td> <code>setStartSize()</code>, <code>setEndSize()</code> </td><td> 0.2f, 2f </td><td> The radius of the scaled sprite image. Set both to same value for constant size effect. <br/>
-Set to different values for shrink/grow effect. </td>
-	</tr>
-	<tr>
-		<td> color               </td><td> <code>setStartColor()</code>, <code>setEndColor()</code> </td><td> gray </td><td> Controls how the opaque (non-black) parts of the texture are colorized. <br/>
-Set both to the same color for single-colored effects (e.g. fog, debris). <br/>
-Set both to different colors for a gradient effect (e.g. fire). </td>
-	</tr>
+<h1><a>Particle Emmitter Settings</a></h1><div><p>You cannot create a 3D model for delicate things like fire, smoke, or explosions. Particle Emitters are quite an efficient solution to create these kinds of effects: The emitter renders a series of flat orthogonal images and manipulates them in a way that creates the illusion of a anything from a delicate smoke cloud to individual flames, etc. Creating an effect involves some trial and error to get the settings <em>just right</em>, and it&#039;s worth exploring the expressiveness of the options described below.</p><p><p><div>Use the <a href="/com/jme3/gde/core/docs/sdk/scene_explorer.html">Scene Explorer</a> in the <a href="/com/jme3/gde/core/docs/sdk.html">SDK</a> to design and preview effects.</div></p></p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/explosion-5.png"> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/particle.png"> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-effect-fire.png"> <img src="nbdocs:/com/jme3/gde/core/docs/jme3/advanced/butterfly-particle-emitter.png"></p></div><h2><a>Create an Emitter</a></h2><div><ol><li><div>Create one emitter for each effect:<pre>ParticleEmitter explosion = new ParticleEmitter&#40;
+&quot;My explosion effect&quot;, ParticleMesh.Type.Triangle, 30&#41;;</pre></div></li><li><div>Attach the emitter to the rootNode and position it in the scene:<pre>rootNode.attachChild&#40;explosion&#41;;
+explosion.setLocalTranslation&#40;bomb.getLocalTranslation&#40;&#41;&#41;;</pre></div></li><li><div>Trigger the effect by calling<pre>explosion.emitAllParticles&#40;&#41;</pre></div></li><li><div>End the effect by calling<pre>explosion.killAllParticles&#40;&#41;</pre></div></li></ol><p>Choose one of the following mesh shapes</p><ul><li><div>ParticleMesh.Type.Triangle</div></li><li><div>ParticleMesh.Type.Point</div></li></ul></div><h2><a>Configure Parameters</a></h2><div><p>Not all of these parameters are required for all kinds of effects. If you don&#039;t specify one of them, a default value will be used.</p><div><table><tr><th>Parameter</th><th>Method</th><th>Default</th><th>Description</th></tr><tr><td>number</td><td><code>setNumParticles()</code></td><td></td><td>The maximum number of particles visible at the same time. Specified by user in constructor.</td></tr><tr><td>emission rate</td><td><code>setParticlesPerSec()</code></td><td>20</td><td>Density of the effect, how many new particles are emitted per second. <br/> Set to zero to control the start/end of the effect. <br/> Set to a number for a constantly running effect.</td></tr><tr><td>size</td><td><code>setStartSize()</code>, <code>setEndSize()</code></td><td>0.2f, 2f</td><td>The radius of the scaled sprite image. Set both to same value for constant size effect. <br/> Set to different values for shrink/grow effect.</td></tr><tr><td>color</td><td><code>setStartColor()</code>, <code>setEndColor()</code></td><td>gray</td><td>Controls how the opaque (non-black) parts of the texture are colorized. <br/> Set both to the same color for single-colored effects (e.g. fog, debris). <br/> Set both to different colors for a gradient effect (e.g. fire).</td></tr>
 	<tr>
 		<td> direction/velocity  </td><td> <code>getParticleInfluencer(). setInitialVelocity(initialVelocity)</code> </td><td> Vector3f(0,0,0) </td><td> A vector specifying the initial direction and speed of particles. The longer the vector, the faster. </td>
 	</tr>
@@ -195,7 +119,7 @@ The following effect textures are available by default from <code>test-data.jar<
 		<td> Effects/Smoke/Smoke.png          </td><td> 1*15 </td><td> <img src="/wiki/lib/exe/fetch.php"> </td>
 	</tr>
 </table></div>
-<!-- EDIT2 TABLE [7235-8512] -->
+<!-- EDIT2 TABLE [7231-8476] -->
 <p>
 
 <strong>Tip:</strong> Use the <code>setStartColor()</code>/<code>setEndColor()</code> settings described above to colorize the white and gray parts of textures.

File diff suppressed because it is too large
+ 0 - 89
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/physics.html


+ 3 - 70
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/physics_listeners.html

@@ -1,79 +1,12 @@
-
-<h1><a>Physics Listeners</a></h1>
-<div>
-
-<p>
-You can control physical objects by triggering forces. Or maybe you want to respond to collisions, e.g. by substracting health points, or by playing a sound. To specify how the game responds to such physics events, you use Physics Listeners.
-
-</p>
-
-</div>
-
-<h2><a>Physics Tick Listener</a></h2>
-<div>
-
-<p>
-The jBullet Physics implementation is stepped at a constant 60 physics ticks per second frame rate.
-Applying forces or checking for overlaps only has an effect right at a physics update cycle, which is not every frame. If you do physics interactions at arbitrary spots in the simpleUpdate() loop, calls will be dropped at irregular intervals, because they happen out of cycle.
-
-</p>
-
-</div>
-
-<h3><a>When (Not) to Use Tick Listener?</a></h3>
-<div>
-
-<p>
-When you write game mechanics that apply forces, you must implement a tick listener (com.jme3.bullet.PhysicsTickListener) for it. The tick listener makes certain the forces are not dropped, but applied in time for the next physics tick.
-Also, when you check for overlaps of physical objects with a PhysicsGhostObject, you cannot just go <code>physicsSpace.add(ghost); ghost.getOverLappingObjects()</code> somewhere. You have to make certain 1 physics tick has passed before the overlapping objects list is filled with data. Again, the PhysicsTickListener does that for you.
-When your game mechanics however just poll the current state (e.g. location) of physical objects, or if you only use the Ghost control like a sphere trigger, then you don&#039;t need a PhysicsTickListener.
-
-</p>
-
-</div>
-
-<h3><a>How to Listen to Physics Ticks</a></h3>
-<div>
-
-<p>
-Here&#039;s is the declaration of an examplary Physics Control that listens to ticks.
-
-</p>
-<pre>public class MyCustomControl
-    extends RigidBodyControl implements PhysicsTickListener &#123; ... &#125;</pre>
-
-<p>
-
-When you implement the interface, you have to implement preTick() and postTick() methods.
-</p>
-<ul>
-<li><div> <code>prePhysicsTick()</code> is called before the step, here you apply forces (change the state).</div>
-</li>
-<li><div> <code>physicsTick()</code> is called after the step, here you poll the results (get the current state).</div>
-</li>
-</ul>
-<pre>@override
+<h1><a>Physics Listeners</a></h1><div><p>You can control physical objects by triggering forces. Or maybe you want to respond to collisions, e.g. by substracting health points, or by playing a sound. To specify how the game responds to such physics events, you use Physics Listeners.</p></div><h2><a>Physics Tick Listener</a></h2><div><p>The jBullet Physics implementation is stepped at a constant 60 physics ticks per second frame rate. Applying forces or checking for overlaps only has an effect right at a physics update cycle, which is not every frame. If you do physics interactions at arbitrary spots in the simpleUpdate() loop, calls will be dropped at irregular intervals, because they happen out of cycle.</p></div><h3><a>When (Not) to Use Tick Listener?</a></h3><div><p>When you write game mechanics that apply forces, you must implement a tick listener (com.jme3.bullet.PhysicsTickListener) for it. The tick listener makes certain the forces are not dropped, but applied in time for the next physics tick. Also, when you check for overlaps of physical objects with a PhysicsGhostObject, you cannot just go <code>physicsSpace.add(ghost); ghost.getOverLappingObjects()</code> somewhere. You have to make certain 1 physics tick has passed before the overlapping objects list is filled with data. Again, the PhysicsTickListener does that for you. When your game mechanics however just poll the current state (e.g. location) of physical objects, or if you only use the Ghost control like a sphere trigger, then you don&#039;t need a PhysicsTickListener.</p></div><h3><a>How to Listen to Physics Ticks</a></h3><div><p>Here&#039;s is the declaration of an examplary Physics Control that listens to ticks.</p><pre>public class MyCustomControl
+    extends RigidBodyControl implements PhysicsTickListener &#123; ... &#125;</pre><p>When you implement the interface, you have to implement preTick() and postTick() methods.</p><ul><li><div><code>prePhysicsTick()</code> is called before the step, here you apply forces (change the state).</div></li><li><div><code>physicsTick()</code> is called after the step, here you poll the results (get the current state).</div></li></ul><pre>@override
 public void prePhysicsTick&#40;PhysicsSpace space, float f&#41;&#123;
   // apply state changes ...
 &#125;
 @override
 public void physicsTick&#40;PhysicsSpace space, float f&#41;&#123;
   // poll game state ...
-&#125;</pre>
-
-</div>
-
-<h2><a>Physics Collision Listener</a></h2>
-<div>
-
-</div>
-
-<h3><a>When (Not) to Use Collision Listener</a></h3>
-<div>
-
-<p>
-If you do not implement the Collision Listener interface (com.jme3.bullet.collision.PhysicsCollisionListener), a collisions will just mean that physical forces are applied automatically. If you just want &quot;Balls rolling, bricks falling&quot; you do not need a listener.
-If however you want to respond to a collision event (com.jme3.bullet.collision.PhysicsCollisionEvent) with a custom action, then you need to implement the PhysicsCollisionListener interface. Typical actions triggered by collisions include:
+&#125;</pre></div><h2><a>Physics Collision Listener</a></h2><div></div><h3><a>When (Not) to Use Collision Listener</a></h3><div><p>If you do not implement the Collision Listener interface (com.jme3.bullet.collision.PhysicsCollisionListener), a collisions will just mean that physical forces are applied automatically. If you just want &quot;Balls rolling, bricks falling&quot; you do not need a listener. If however you want to respond to a collision event (com.jme3.bullet.collision.PhysicsCollisionEvent) with a custom action, then you need to implement the PhysicsCollisionListener interface. Typical actions triggered by collisions include:
 </p>
 <ul>
 <li><div> Increasing a counter (e.g. score points)</div>

+ 2 - 44
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/remote-controlling_the_camera.html

@@ -1,34 +1,4 @@
-
-<h1><a>Remote-Controlling the Camera</a></h1>
-<div>
-
-</div>
-
-<h2><a>Positioning the Camera</a></h2>
-<div>
-
-<p>
-
-You can steer the camera using <a href="/com/jme3/gde/core/docs/jme3/advanced/cinematics.html">Cinematics</a>:
-</p>
-<ol>
-<li><div> Create a Cinematic.</div>
-</li>
-<li><div> Create a CameraNode and bind the camera object to the Cinematic. Note that we also give the camera node a name in this step. <pre>CameraNode camNode = cinematic.bindCamera&#40;&quot;topView&quot;, cam&#41;;</pre>
-</div>
-</li>
-<li><div> Position the camera node in its start location.</div>
-</li>
-<li><div> Use activateCamera() to give the control of the camera to this node. You now see the scene from this camera&#039;s point of view. For example to see through the camera node named &quot;topView&quot;, 6 seconds after the start of the cinematic, you&#039;d write <pre>cinematic.activateCamera&#40;6, &quot;topView&quot;&#41;;</pre>
-</div>
-</li>
-</ol>
-
-</div>
-
-<h3><a>Code Sample</a></h3>
-<div>
-<pre>flyCam.setEnabled&#40;false&#41;;
+<h1><a>Remote-Controlling the Camera</a></h1><div></div><h2><a>Positioning the Camera</a></h2><div><p>You can steer the camera using <a href="/com/jme3/gde/core/docs/jme3/advanced/cinematics.html">Cinematics</a>:</p><ol><li><div>Create a Cinematic.</div></li><li><div>Create a CameraNode and bind the camera object to the Cinematic. Note that we also give the camera node a name in this step.<pre>CameraNode camNode = cinematic.bindCamera&#40;&quot;topView&quot;, cam&#41;;</pre></div></li><li><div>Position the camera node in its start location.</div></li><li><div>Use activateCamera() to give the control of the camera to this node. You now see the scene from this camera&#039;s point of view. For example to see through the camera node named &quot;topView&quot;, 6 seconds after the start of the cinematic, you&#039;d write<pre>cinematic.activateCamera&#40;6, &quot;topView&quot;&#41;;</pre></div></li></ol></div><h3><a>Code Sample</a></h3><div><pre>flyCam.setEnabled&#40;false&#41;;
 Cinematic cinematic = new Cinematic&#40;rootNode, 20&#41;;
 &nbsp;
 CameraNode camNodeTop = cinematic.bindCamera&#40;&quot;topView&quot;, cam&#41;;
@@ -37,17 +7,5 @@ camNodeTop.getControl&#40;0&#41;.setEnabled&#40;false&#41;;
 &nbsp;
 CameraNode camNodeSide = cinematic.bindCamera&#40;&quot;sideView&quot;, cam&#41;;
 camNodeSide.setControlDir&#40;ControlDirection.CameraToSpatial&#41;;
-camNodeSide.getControl&#40;0&#41;.setEnabled&#40;false&#41;;</pre>
-
-</div>
-
-<h2><a>Moving the Camera</a></h2>
-<div>
-
-<p>
-
-If desired, attach the camNode to a MotionTrack to let it travel along waypoints. This is demonstrated in the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/animation/TestCinematic.java"><param name="text" value="<html><u>TestCameraMotionPath.java example</u></html>"><param name="textColor" value="blue"></object>.
-</p>
-
-</div>
+camNodeSide.getControl&#40;0&#41;.setEnabled&#40;false&#41;;</pre></div><h2><a>Moving the Camera</a></h2><div><p>If desired, attach the camNode to a MotionTrack to let it travel along waypoints. This is demonstrated in the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/animation/TestCinematic.java"><param name="text" value="<html><u>TestCameraMotionPath.java example</u></html>"><param name="textColor" value="blue"></object>.</p></div>
 <p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:remote-controlling_the_camera?do=export_xhtmlbody">view online version</a></em></p>

+ 3 - 42
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/save_and_load.html

@@ -1,26 +1,4 @@
-
-<h1><a>Saving and Loading Games</a></h1>
-<div>
-
-<p>
-
-You can save and load scenes and individual Nodes using com.jme3.export.binary.BinaryExporter and com.jme3.export.binary.BinaryImporter. Use standard Java serialization to load game data or use the Savable interface. The jMonkeyEngine binary file format is .j3o. You can open, view, and edit .j3o files in the jMonkeyEngine <a href="/com/jme3/gde/core/docs/jme3/advanced/sdk.html">SDK</a>.
-</p>
-
-</div>
-
-<h2><a>Sample Code</a></h2>
-<div>
-<ul>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/tools/TestSaveGame.java"><param name="text" value="<html><u>TestSaveGame.java</u></html>"><param name="textColor" value="blue"></object></div>
-</li>
-</ul>
-
-</div>
-
-<h2><a>Saving a Node</a></h2>
-<div>
-<pre>  @Override
+<h1><a>Saving and Loading Games</a></h1><div><p>You can save and load scenes and individual Nodes using com.jme3.export.binary.BinaryExporter and com.jme3.export.binary.BinaryImporter. Use standard Java serialization to load game data or use the Savable interface. The jMonkeyEngine binary file format is .j3o. You can open, view, and edit .j3o files in the jMonkeyEngine <a href="/com/jme3/gde/core/docs/jme3/advanced/sdk.html">SDK</a>.</p></div><h2><a>Sample Code</a></h2><div><ul><li><div><object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/tools/TestSaveGame.java"><param name="text" value="<html><u>TestSaveGame.java</u></html>"><param name="textColor" value="blue"></object></div></li></ul></div><h2><a>Saving a Node</a></h2><div><pre>  @Override
   public void destroy&#40;&#41; &#123;
     System.getProperty&#40;&quot;user.home&quot;&#41;;
     BinaryExporter exporter = BinaryExporter.getInstance&#40;&#41;;
@@ -31,13 +9,7 @@ You can save and load scenes and individual Nodes using com.jme3.export.binary.B
       Logger.getLogger&#40;Main.class.getName&#40;&#41;&#41;.log&#40;Level.SEVERE, &quot;Failed to save node!&quot;, ex&#41;;
     &#125;
     super.destroy&#40;&#41;;
-  &#125;</pre>
-
-</div>
-
-<h2><a>Loading a Node</a></h2>
-<div>
-<pre>  @Override
+  &#125;</pre></div><h2><a>Loading a Node</a></h2><div><pre>  @Override
   public void simpleInitApp&#40;&#41; &#123;
     System.getProperty&#40;&quot;user.home&quot;&#41;;
     BinaryImporter importer = BinaryImporter.getInstance&#40;&#41;;
@@ -51,18 +23,7 @@ You can save and load scenes and individual Nodes using com.jme3.export.binary.B
       Logger.getLogger&#40;Main.class.getName&#40;&#41;&#41;.log&#40;Level.SEVERE, &quot;No saved node loaded.&quot;, ex&#41;;
     &#125;
     ...
-&nbsp;</pre>
-
-</div>
-
-<h2><a>Custom Savable</a></h2>
-<div>
-
-<p>
-
-If you have a custom class that you want to save or assign using <code>setUserData()</code>, the class must implement the <code>com.jme3.export.Savable</code> interface.
-</p>
-<pre>import com.jme3.export.InputCapsule;
+&nbsp;</pre></div><h2><a>Custom Savable</a></h2><div><p>If you have a custom class that you want to save or assign using <code>setUserData()</code>, the class must implement the <code>com.jme3.export.Savable</code> interface.</p><pre>import com.jme3.export.InputCapsule;
 import com.jme3.export.JmeExporter;
 import com.jme3.export.JmeImporter;
 import com.jme3.export.OutputCapsule;

File diff suppressed because it is too large
+ 1 - 92
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/sky.html


+ 1 - 36
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/spatial.html

@@ -1,39 +1,4 @@
-
-<h1><a>Spatial</a></h1>
-<div>
-
-<p>
-
-This is an introduction to the concept of Spatials, the elements of the 3D scene graph. The scene graph is a data structure that manages all objects in your 3D world. For example, the scene graph keeps track of the 3D models that you load and position. When you extend a Java class from com.jme3.app.SimpleApplication, you automatically inherit the scene graph and its rootNode. 
-</p>
-
-<p>
-The rootNode is the central element of the scene graph. Even if the scenegraph is empty, it always has at least its rootNode. All other Spatials are <em>attached</em> to the rootNode in a parent-child relationship. If you think you need to understand the scene graph concept better, please read <a href="/com/jme3/gde/core/docs/jme3/scenegraph_for_dummies.html">Scenegraph for dummies</a> first.
-</p>
-
-</div>
-
-<h2><a>Node versus Geometry</a></h2>
-<div>
-
-<p>
-
-In your Java code, a Spatial is either a com.jme3.scene.Node or a com.jme3.scene.Geometry. You use the two for different purposes:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/intermediate/scene-graph.png">
-
-</p>
-<div><table>
-	<tr>
-		<td> </td><th>com.jme3.scene.Spatial </th>
-	</tr>
-	<tr>
-		<th> Purpose: </th><td> A Spatial is an abstract data structure that stores transformations (translation, rotation, scale) of elements of the scene graph. Spatials can be saved and loaded using the AssetManager. </td>
-	</tr>
-	<tr>
-		<td>  </td><th> com.jme3.scene.Geometry </th><th> com.jme3.scene.Node </th>
+<h1><a>Spatial</a></h1><div><p>This is an introduction to the concept of Spatials, the elements of the 3D scene graph. The scene graph is a data structure that manages all objects in your 3D world. For example, the scene graph keeps track of the 3D models that you load and position. When you extend a Java class from com.jme3.app.SimpleApplication, you automatically inherit the scene graph and its rootNode.</p><p>The rootNode is the central element of the scene graph. Even if the scenegraph is empty, it always has at least its rootNode. All other Spatials are <em>attached</em> to the rootNode in a parent-child relationship. If you think you need to understand the scene graph concept better, please read <a href="/com/jme3/gde/core/docs/jme3/scenegraph_for_dummies.html">Scenegraph for dummies</a> first.</p></div><h2><a>Node versus Geometry</a></h2><div><p>In your Java code, a Spatial is either a com.jme3.scene.Node or a com.jme3.scene.Geometry. You use the two for different purposes:</p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/intermediate/scene-graph.png"></p><div><table><tr><td></td><th>com.jme3.scene.Spatial</th></tr><tr><th>Purpose:</th><td>A Spatial is an abstract data structure that stores transformations (translation, rotation, scale) of elements of the scene graph. Spatials can be saved and loaded using the AssetManager.</td></tr><tr><td></td><th>com.jme3.scene.Geometry</th><th>com.jme3.scene.Node </th>
 	</tr>
 	<tr>
 		<th> Visibility: </th><td> A Geometry represents a visible 3-D object in the scene graph. </td><td> A Node is an invisible &quot;handle&quot; for a group of objects in the scene graph. </td>

File diff suppressed because it is too large
+ 0 - 111
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/terrain.html


+ 1 - 14
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/terrain_collision.html

@@ -1,17 +1,4 @@
-
-<h2><a>Terrain Collision</a></h2>
-<div>
-
-<p>
-
-This tutorial expands the HelloTerrain tutorial and makes the terrain solid. You combine what you learned in <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html">Hello Terrain</a> and <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_collision.html">Hello Collision</a> and add a CollisionShape to the terrain. The terrain&#039;s CollisionShape lets the first-person player (who is also a CollisionShape) collide with the terrain, i.e. walk on it and stand on it. 
-</p>
-
-</div>
-
-<h2><a>Sample Code</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h2><a>Terrain Collision</a></h2><div><p>This tutorial expands the HelloTerrain tutorial and makes the terrain solid. You combine what you learned in <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html">Hello Terrain</a> and <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_collision.html">Hello Collision</a> and add a CollisionShape to the terrain. The terrain&#039;s CollisionShape lets the first-person player (who is also a CollisionShape) collide with the terrain, i.e. walk on it and stand on it.</p></div><h2><a>Sample Code</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.bullet.BulletAppState;

File diff suppressed because it is too large
+ 0 - 109
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/vehicles.html


File diff suppressed because it is too large
+ 0 - 53
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/walking_character.html


+ 1 - 34
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/water.html

@@ -1,37 +1,4 @@
-
-<h1><a>Simple Water</a></h1>
-<div>
-
-<p>
-
-Here is some background info for JME3&#039;s basic water implementation:
-</p>
-<ul>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.jmonkeyengine.com/forum/index.php?topic=14740.0"><param name="text" value="<html><u>http://www.jmonkeyengine.com/forum/index.php?topic=14740.0</u></html>"><param name="textColor" value="blue"></object></div>
-</li>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.bonzaisoftware.com/water_tut.html"><param name="text" value="<html><u>http://www.bonzaisoftware.com/water_tut.html</u></html>"><param name="textColor" value="blue"></object></div>
-</li>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.gametutorials.com/Articles/RealisticWater.pdf"><param name="text" value="<html><u>http://www.gametutorials.com/Articles/RealisticWater.pdf</u></html>"><param name="textColor" value="blue"></object></div>
-</li>
-</ul>
-
-<p>
-
-<img src="/wiki/lib/exe/fetch.php">
-</p>
-
-</div>
-
-<h2><a>SimpleWaterProcessor</a></h2>
-<div>
-
-<p>
-
-A JME3 scene with water can use a <code>com.jme3.water.SimpleWaterProcessor</code> (which implements the SceneProcessor interface).
-</p>
-
-<p>
-To achieve a water effect, JME3 uses shaders and a special material, <code>Common/MatDefs/Water/SimpleWater.j3md</code>. The water surface is a quad, and we use normal map and dU/dV map texturing to simulate the waves. 
+<h1><a>Simple Water</a></h1><div><p>Here is some background info for JME3&#039;s basic water implementation:</p><ul><li><div><object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.jmonkeyengine.com/forum/index.php?topic=14740.0"><param name="text" value="<html><u>http://www.jmonkeyengine.com/forum/index.php?topic=14740.0</u></html>"><param name="textColor" value="blue"></object></div></li><li><div><object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.bonzaisoftware.com/water_tut.html"><param name="text" value="<html><u>http://www.bonzaisoftware.com/water_tut.html</u></html>"><param name="textColor" value="blue"></object></div></li><li><div><object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.gametutorials.com/Articles/RealisticWater.pdf"><param name="text" value="<html><u>http://www.gametutorials.com/Articles/RealisticWater.pdf</u></html>"><param name="textColor" value="blue"></object></div></li></ul><p><img src="/wiki/lib/exe/fetch.php"></p></div><h2><a>SimpleWaterProcessor</a></h2><div><p>A JME3 scene with water can use a <code>com.jme3.water.SimpleWaterProcessor</code> (which implements the SceneProcessor interface).</p><p>To achieve a water effect, JME3 uses shaders and a special material, <code>Common/MatDefs/Water/SimpleWater.j3md</code>. The water surface is a quad, and we use normal map and dU/dV map texturing to simulate the waves. 
 
 </p>
 <ol>

+ 7 - 154
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_animation.html

@@ -1,25 +1,4 @@
-
-<h1><a>JME 3 Tutorial (7) - Hello Animation</a></h1>
-<div>
-
-<p>
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_material.html">Hello Material</a>,
-Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_picking.html">Hello Picking</a>
-</p>
-
-<p>
-This tutorial shows how to add an animation controller and channels, and how to respond to user input by triggering an animation in a loaded model.
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-animation.png">
-</p>
-
-</div>
-
-<h2><a>Sample Code</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h1><a>JME 3 Tutorial (7) - Hello Animation</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_material.html">Hello Material</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_picking.html">Hello Picking</a></p><p>This tutorial shows how to add an animation controller and channels, and how to respond to user input by triggering an animation in a loaded model.</p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-animation.png"></p></div><h2><a>Sample Code</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.animation.AnimChannel;
 import com.jme3.animation.AnimControl;
@@ -89,22 +68,7 @@ public class HelloAnimation extends SimpleApplication
       &#125;
     &#125;
   &#125;;
-&#125;</pre>
-
-</div>
-
-<h2><a>Creating and Loading Animated Models</a></h2>
-<div>
-
-<p>
-
-You create animated models with a tool such as Blender. Take some time and learn how to create your own models in these <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.blender.org/education-help/tutorials/animation/"><param name="text" value="<html><u>Blender Animation Tutorials</u></html>"><param name="textColor" value="blue"></object>. For now, download and use a free model, such as the one included here as an example (<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/trunk/engine/src/test-data/Models/Oto/"><param name="text" value="<html><u>Oto Golem</u></html>"><param name="textColor" value="blue"></object>, and <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/trunk/engine/src/test-data/Models/Ninja/"><param name="text" value="<html><u>Ninja</u></html>"><param name="textColor" value="blue"></object>).
-</p>
-
-<p>
-Loading an animated model is pretty straight-forward, just as you have learned in the previous chapters. Animated Ogre models come as a set of files: The model is in <code>Oto.mesh.xml</code>, and the animation details are in <code>Oto.skeleton.xml</code>, plus the usual files for materials and textures. Check that all files of the model are together in the same <code>Model</code> subdirectory.
-</p>
-<pre>  public void simpleInitApp&#40;&#41; &#123;
+&#125;</pre></div><h2><a>Creating and Loading Animated Models</a></h2><div><p>You create animated models with a tool such as Blender. Take some time and learn how to create your own models in these <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.blender.org/education-help/tutorials/animation/"><param name="text" value="<html><u>Blender Animation Tutorials</u></html>"><param name="textColor" value="blue"></object>. For now, download and use a free model, such as the one included here as an example (<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/trunk/engine/test-data/Models/Oto/"><param name="text" value="<html><u>Oto Golem</u></html>"><param name="textColor" value="blue"></object>, and <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/trunk/engine/test-data/Models/Ninja/"><param name="text" value="<html><u>Ninja</u></html>"><param name="textColor" value="blue"></object>).</p><p>Loading an animated model is pretty straight-forward, just as you have learned in the previous chapters. Animated Ogre models come as a set of files: The model is in <code>Oto.mesh.xml</code>, and the animation details are in <code>Oto.skeleton.xml</code>, plus the usual files for materials and textures. Check that all files of the model are together in the same <code>Model</code> subdirectory.</p><pre>  public void simpleInitApp&#40;&#41; &#123;
     /* Displaying the model requires a light source */
     DirectionalLight dl = new DirectionalLight&#40;&#41;;
     dl.setDirection&#40;new Vector3f&#40;-0.1f, -1f, -1&#41;.normalizeLocal&#40;&#41;&#41;;
@@ -114,30 +78,7 @@ Loading an animated model is pretty straight-forward, just as you have learned i
     player.setLocalScale&#40;0.5f&#41;; // resize
     rootNode.attachChild&#40;player&#41;;
     ...
-    &#125;</pre>
-
-<p>
-Don&#039;t forget to add a light source to make the material visible.
-</p>
-
-</div>
-
-<h2><a>Animation Controler and Channel</a></h2>
-<div>
-
-<p>
-
-After you load the animated model, you register it to the Animation Controller.
-</p>
-<ul>
-<li><div> The controller object gives you access to the available animation sequences.</div>
-</li>
-<li><div> The controller can have several channels, each channel can run one animation sequence at a time.</div>
-</li>
-<li><div> To run several sequences, you create several channels, and set them each to their animation.</div>
-</li>
-</ul>
-<pre>  private AnimChannel channel;
+    &#125;</pre><p>Don&#039;t forget to add a light source to make the material visible.</p></div><h2><a>Animation Controler and Channel</a></h2><div><p>After you load the animated model, you register it to the Animation Controller.</p><ul><li><div>The controller object gives you access to the available animation sequences.</div></li><li><div>The controller can have several channels, each channel can run one animation sequence at a time.</div></li><li><div>To run several sequences, you create several channels, and set them each to their animation.</div></li></ul><pre>  private AnimChannel channel;
   private AnimControl control;
 &nbsp;
   public void simpleInitApp&#40;&#41; &#123;
@@ -148,18 +89,7 @@ After you load the animated model, you register it to the Animation Controller.
     control.addListener&#40;this&#41;;
     channel = control.createChannel&#40;&#41;;
     channel.setAnim&#40;&quot;stand&quot;&#41;;
-    ...</pre>
-
-</div>
-
-<h2><a>Responding to Animation Events</a></h2>
-<div>
-
-<p>
-
-Add <code>implements AnimEventListener</code> to the class declaration. This interface gives you access to events that notify you when a sequence is done, or when you change from one sequence to another, so you can respond to it. In this example, you reset the character to a standing position after a <code>Walk</code> cycle is done.
-</p>
-<pre>public class HelloAnimation extends SimpleApplication
+    ...</pre></div><h2><a>Responding to Animation Events</a></h2><div><p>Add <code>implements AnimEventListener</code> to the class declaration. This interface gives you access to events that notify you when a sequence is done, or when you change from one sequence to another, so you can respond to it. In this example, you reset the character to a standing position after a <code>Walk</code> cycle is done.</p><pre>public class HelloAnimation extends SimpleApplication
                          implements AnimEventListener &#123;
   ...
 &nbsp;
@@ -173,54 +103,10 @@ Add <code>implements AnimEventListener</code> to the class declaration. This int
   &#125;
   public void onAnimChange&#40;AnimControl control, AnimChannel channel, String animName&#41; &#123;
     // unused
-  &#125;</pre>
-
-</div>
-
-<h2><a>Trigger Animations After User Input</a></h2>
-<div>
-
-<p>
-
-There are ambient animations like animals or trees that you may want to trigger in the main event loop. In other cases, animations are triggered by user interaction, such as key input. You want to play the Walk animation when the player presses a certain key (here the spacebar), at the same time as the avatar performs the walk action and changes its location.
-</p>
-<ol>
-<li><div> Initialize a new input controller (in <code>simpleInitApp()</code>).</div>
-<ul>
-<li><div> Write the <code>initKey()</code> convenience method and call it from <code>simpleInitApp()</code>.</div>
-</li>
-</ul>
-</li>
-<li><div> Add a key mapping with the name as the action you want to trigger.</div>
-<ul>
-<li><div> Here for example, you map <code>Walk</code> to the Spacebar key.</div>
-</li>
-</ul>
-</li>
-<li><div> Add an input listener for the <code>Walk</code> action.</div>
-</li>
-</ol>
-<pre>  private void initKeys&#40;&#41; &#123;
+  &#125;</pre></div><h2><a>Trigger Animations After User Input</a></h2><div><p>There are ambient animations like animals or trees that you may want to trigger in the main event loop. In other cases, animations are triggered by user interaction, such as key input. You want to play the Walk animation when the player presses a certain key (here the spacebar), at the same time as the avatar performs the walk action and changes its location.</p><ol><li><div>Initialize a new input controller (in <code>simpleInitApp()</code>).</div><ul><li><div>Write the <code>initKey()</code> convenience method and call it from <code>simpleInitApp()</code>.</div></li></ul></li><li><div>Add a key mapping with the name as the action you want to trigger.</div><ul><li><div>Here for example, you map <code>Walk</code> to the Spacebar key.</div></li></ul></li><li><div>Add an input listener for the <code>Walk</code> action.</div></li></ol><pre>  private void initKeys&#40;&#41; &#123;
     inputManager.addMapping&#40;&quot;Walk&quot;, new KeyTrigger&#40;KeyInput.KEY_SPACE&#41;&#41;;
     inputManager.addListener&#40;actionListener, &quot;Walk&quot;&#41;;
-  &#125;</pre>
-
-<p>
-To use the input controller, you need to implement the actionLister:
-Test for each action by name, and set the channel to the corresponding animation to run.
-
-</p>
-<ul>
-<li><div> The second parameter of setAnim() is the blendTime (how long the current animation should overlap with the last one).</div>
-</li>
-<li><div> LoopMode can be Loop (repeat), Cycle (forward then backward), and DontLoop (only once).</div>
-</li>
-<li><div> If needed, use channel.setSpeed() to set the speed of this animation.</div>
-</li>
-<li><div> Optionally, use channel.setTime() to Fast-forward or rewind to a certain moment in time of this animation.</div>
-</li>
-</ul>
-<pre>  private ActionListener&#40;&#41; &#123;
+  &#125;</pre><p>To use the input controller, you need to implement the actionLister: Test for each action by name, and set the channel to the corresponding animation to run.</p><ul><li><div>The second parameter of setAnim() is the blendTime (how long the current animation should overlap with the last one).</div></li><li><div>LoopMode can be Loop (repeat), Cycle (forward then backward), and DontLoop (only once).</div></li><li><div>If needed, use channel.setSpeed() to set the speed of this animation.</div></li><li><div>Optionally, use channel.setTime() to Fast-forward or rewind to a certain moment in time of this animation.</div></li></ul><pre>  private ActionListener&#40;&#41; &#123;
     public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
         if &#40;name.equals&#40;&quot;Walk&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
             if &#40;!channel.getAnimationName&#40;&#41;.equals&#40;&quot;Walk&quot;&#41;&#41;&#123;
@@ -229,40 +115,7 @@ Test for each action by name, and set the channel to the corresponding animation
             &#125;
         &#125;
     &#125;
-  &#125;;</pre>
-
-</div>
-
-<h2><a>Exercises</a></h2>
-<div>
-
-</div>
-
-<h4><a>Exercise 1: Two Animations</a></h4>
-<div>
-
-<p>
-
-Make a mouse click trigger another animation sequence!
-</p>
-<ol>
-<li><div> Create a second channel in the controller</div>
-</li>
-<li><div> Create a new key trigger mapping and action (see: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input</a>)</div>
-</li>
-<li><div> Tip: Do you want to find out what animation sequences are available in the model? Use: <pre>for &#40;System.out.println&#40;anim&#41;; &#125;</pre>
-</div>
-</li>
-</ol>
-
-</div>
-
-<h4><a>Exercise 2: Revealing the Skeleton (1)</a></h4>
-<div>
-
-<p>
-
-Open the <code>skeleton.xml</code> file in a text editor of your choice. You don&#039;t have to be able to read or write these xml files (Blender does that for you) – but it is good to know how skeletons work. &quot;There&#039;s no magic to it!&quot;
+  &#125;;</pre></div><h2><a>Exercises</a></h2><div></div><h4><a>Exercise 1: Two Animations</a></h4><div><p>Make a mouse click trigger another animation sequence!</p><ol><li><div>Create a second channel in the controller</div></li><li><div>Create a new key trigger mapping and action (see: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input</a>)</div></li><li><div>Tip: Do you want to find out what animation sequences are available in the model? Use:<pre>for &#40;Exercise 2: Revealing the Skeleton (1)</h4><div><p>Open the <code>skeleton.xml</code> file in a text editor of your choice. You don&#039;t have to be able to read or write these xml files (Blender does that for you) – but it is good to know how skeletons work. &quot;There&#039;s no magic to it!&quot;
 </p>
 <ul>
 <li><div> Note how the bones are numbered and named. All names of animated models follow a naming scheme.</div>

+ 3 - 74
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html

@@ -1,31 +1,4 @@
-
-<h1><a>JME 3 Tutorial (3) - Hello Assets</a></h1>
-<div>
-
-<p>
-
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_node.html">Hello Node</a>,
-Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_main_event_loop.html">Hello Update Loop</a>
-</p>
-
-<p>
-In this tutorial we will learn to load 3-D models and text into the scene graph, using the jME asset manager. You also learn how to arrive at the correct paths, and which file formats to use.
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-assets-models.png">
-</p>
-
-<p>
-<p><div>To use the example assets in a new jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> project, right-click your project, select &quot;Properties&quot;, go to &quot;Libraries&quot;, press &quot;Add Library&quot; and add the &quot;jme3-test-data&quot; library.
-</div></p>
-</p>
-
-</div>
-
-<h2><a>Code Sample</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h1><a>JME 3 Tutorial (3) - Hello Assets</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_node.html">Hello Node</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_main_event_loop.html">Hello Update Loop</a></p><p>In this tutorial we will learn to load 3-D models and text into the scene graph, using the jME asset manager. You also learn how to arrive at the correct paths, and which file formats to use.</p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-assets-models.png"></p><p><p><div>To use the example assets in a new jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> project, right-click your project, select &quot;Properties&quot;, go to &quot;Libraries&quot;, press &quot;Add Library&quot; and add the &quot;jme3-test-data&quot; library.</div></p></p></div><h2><a>Code Sample</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.font.BitmapText;
@@ -86,36 +59,7 @@ public class HelloAssets extends SimpleApplication &#123;
         rootNode.addLight&#40;sun&#41;;
 &nbsp;
     &#125;
-&#125;</pre>
-
-<p>
-Build and run the code sample. You should see a green Ninja with a colorful teapot standing behind a wall. The text on the screen should say &quot;Hello World&quot;.
-</p>
-
-</div>
-
-<h2><a>The Asset Manager</a></h2>
-<div>
-
-<p>
-
-JME3 comes with a handy asset manager that helps you keep your assets organized. Project assets are media files such as models, materials, textures, scenes, shaders, sounds, and fonts. 
-The Asset manager can load files from:
-</p>
-<ul>
-<li><div> the current classpath (the top level of your project directory), </div>
-</li>
-<li><div> the <code>assets</code> directory of your project, and</div>
-</li>
-<li><div> optionally, custom paths.</div>
-</li>
-</ul>
-
-<p>
-
-This is our recommended directory structure for storing assets:
-</p>
-<pre>MyGame/assets/Interface/
+&#125;</pre><p>Build and run the code sample. You should see a green Ninja with a colorful teapot standing behind a wall. The text on the screen should say &quot;Hello World&quot;.</p></div><h2><a>The Asset Manager</a></h2><div><p>JME3 comes with a handy asset manager that helps you keep your assets organized. Project assets are media files such as models, materials, textures, scenes, shaders, sounds, and fonts. The Asset manager can load files from:</p><ul><li><div>the current classpath (the top level of your project directory),</div></li><li><div>the <code>assets</code> directory of your project, and</div></li><li><div>optionally, custom paths.</div></li></ul><p>This is our recommended directory structure for storing assets:</p><pre>MyGame/assets/Interface/
 MyGame/assets/MatDefs/
 MyGame/assets/Materials/
 MyGame/assets/Models/
@@ -125,22 +69,7 @@ MyGame/assets/Sounds/
 MyGame/assets/Textures/
 MyGame/build.xml
 MyGame/src/...
-MyGame/...</pre>
-
-<p>
-This is just a suggested best practice, you can name the directories in the assets directory what ever you like.
-</p>
-
-</div>
-
-<h3><a>Loading Textures</a></h3>
-<div>
-
-<p>
-
-Place your textures in a subdirectory of <code>assets/Textures/</code>. Load the texture into the material before you set the Material. The following code sample is from the <code>simpleInitApp()</code> method and loads a simple wall model:
-</p>
-<pre>// Create a wall with a simple texture from test_data
+MyGame/...</pre><p>This is just a suggested best practice, you can name the directories in the assets directory what ever you like.</p></div><h3><a>Loading Textures</a></h3><div><p>Place your textures in a subdirectory of <code>assets/Textures/</code>. Load the texture into the material before you set the Material. The following code sample is from the <code>simpleInitApp()</code> method and loads a simple wall model:</p><pre>// Create a wall with a simple texture from test_data
 Box&#40;Vector3f.ZERO, 2.5f,2.5f,1.0f&#41;;
 Spatial wall = new Geometry&#40;&quot;Box&quot;, box &#41;;
 Material mat_brick = new Material&#40; 

+ 1 - 17
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_audio.html

@@ -1,20 +1,4 @@
-
-<h1><a>JME 3 Tutorial (11) - Hello Audio</a></h1>
-<div>
-
-<p>
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html">Hello Terrain</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_effects.html">Hello Effects</a>
-</p>
-
-<p>
-This tutorial explains how to add 3D sound to a game, and how make sounds play together with events, such as clicking. You learn how to use an Audio Listener and Audio Nodes. You also make use of an Action Listener and a MouseButtonTrigger from the previous <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input</a> tutorial to make a mouse click trigger a gun shot sound.
-</p>
-
-</div>
-
-<h2><a>Sample Code</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h1><a>JME 3 Tutorial (11) - Hello Audio</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html">Hello Terrain</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_effects.html">Hello Effects</a></p><p>This tutorial explains how to add 3D sound to a game, and how make sounds play together with events, such as clicking. You learn how to use an Audio Listener and Audio Nodes. You also make use of an Action Listener and a MouseButtonTrigger from the previous <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input</a> tutorial to make a mouse click trigger a gun shot sound.</p></div><h2><a>Sample Code</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.audio.AudioNode;

+ 6 - 93
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_collision.html

@@ -1,41 +1,8 @@
-
-<h1><a>JME 3 Tutorial (9) - Hello Collision</a></h1>
-<div>
-
-<p>
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_picking.html">Hello Picking</a>,
-Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html">Hello Terrain</a>
-</p>
-
-<p>
-This tutorial demonstrates how you load a scene model and give it solid walls and floors for a character to walk around.
-You use a <code>RigidBodyControl</code> for the static collidable scene, and a <code>CharacterControl</code> for the mobile first-person character. You also learn how to set up the default first-person camera to work with physics-controlled navigation.
-You can use the solution shown here for first-person shooters, mazes, and similar games.
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-scene.png">
-</p>
-
-</div>
-
-<h2><a>Sample Code</a></h2>
-<div>
-
-<p>
-
-If you don&#039;t have it yet, <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/trunk/engine/town.zip"><param name="text" value="<html><u>download the town.zip</u></html>"><param name="textColor" value="blue"></object> sample scene.
-</p>
-<pre>jMonkeyProjects$ ls -1 BasicGame
+<h1><a>JME 3 Tutorial (9) - Hello Collision</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_picking.html">Hello Picking</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html">Hello Terrain</a></p><p>This tutorial demonstrates how you load a scene model and give it solid walls and floors for a character to walk around. You use a <code>RigidBodyControl</code> for the static collidable scene, and a <code>CharacterControl</code> for the mobile first-person character. You also learn how to set up the default first-person camera to work with physics-controlled navigation. You can use the solution shown here for first-person shooters, mazes, and similar games.</p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-scene.png"></p></div><h2><a>Sample Code</a></h2><div><p>If you don&#039;t have it yet, <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/trunk/engine/town.zip"><param name="text" value="<html><u>download the town.zip</u></html>"><param name="textColor" value="blue"></object> sample scene.</p><pre>jMonkeyProjects$ ls -1 BasicGame
 assets/
 build.xml
 town.zip
-src/</pre>
-
-<p>
-Place town.zip in the root directory of your JME3 project. Here is the code:
-</p>
-<pre>package jme3test.helloworld;
+src/</pre><p>Place town.zip in the root directory of your JME3 project. Here is the code:</p><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.asset.plugins.ZipLocator;
@@ -180,70 +147,16 @@ public class HelloCollision extends SimpleApplication
     player.setWalkDirection&#40;walkDirection&#41;;
     cam.setLocation&#40;player.getPhysicsLocation&#40;&#41;&#41;;
   &#125;
-&#125;</pre>
-
-<p>
-Run the sample. You should see a town square with houses and a monument. Use the WASD keys and the mouse to navigate around with a first-person perspective. Run forward and jump by pressing W and Space. Note how you step over the sidewalk, and up the steps to the monument. You can walk in the alleys between the houses, but the walls are solid. Don&#039;t walk over the edge of the world! <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)" />
-</p>
-
-</div>
-
-<h2><a>Understanding the Code</a></h2>
-<div>
-
-<p>
-
-Let&#039;s start with the class declaration:
-</p>
-<pre>public class HelloCollision extends SimpleApplication
-        implements ActionListener &#123; ... &#125;</pre>
-
-<p>
-You already know that SimpleApplication is the base class for all jME3 games. You make this class implement the <code>ActionListener</code> interface because you want to customize the navigational inputs later.
-</p>
-<pre>  private Spatial sceneModel;
+&#125;</pre><p>Run the sample. You should see a town square with houses and a monument. Use the WASD keys and the mouse to navigate around with a first-person perspective. Run forward and jump by pressing W and Space. Note how you step over the sidewalk, and up the steps to the monument. You can walk in the alleys between the houses, but the walls are solid. Don&#039;t walk over the edge of the world! <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)" /></p></div><h2><a>Understanding the Code</a></h2><div><p>Let&#039;s start with the class declaration:</p><pre>public class HelloCollision extends SimpleApplication
+        implements ActionListener &#123; ... &#125;</pre><p>You already know that SimpleApplication is the base class for all jME3 games. You make this class implement the <code>ActionListener</code> interface because you want to customize the navigational inputs later.</p><pre>  private Spatial sceneModel;
   private BulletAppState bulletAppState;
   private RigidBodyControl landscape;
   private CharacterControl player;
   private Vector3f walkDirection = new Vector3f&#40;&#41;;
-  private boolean left = false, right = false, up = false, down = false;</pre>
-
-<p>
-You initialize a few private fields:
-</p>
-<ul>
-<li><div> The BulletAppState gives this SimpleApplication access to physics features (such as collision detection) supplied by jME3&#039;s jBullet integration</div>
-</li>
-<li><div> The Spatial sceneModel is for loading an OgreXML model of a town.</div>
-</li>
-<li><div> You need a RigidBodyControl to make the town model solid.</div>
-</li>
-<li><div> The (invisible) first-person player is represented by a CharacterControl object.</div>
-</li>
-<li><div> The fields <code>walkDirection</code> and the four Booleans are used for physics-controlled navigation.</div>
-</li>
-</ul>
-
-<p>
-
-Let&#039;s have a look at all the details:
-</p>
-
-</div>
-
-<h2><a>Initializing the Game</a></h2>
-<div>
-
-<p>
-
-As usual, you initialize the game in the <code>simpleInitApp()</code> method.
-</p>
-<pre>    viewPort.setBackgroundColor&#40;new ColorRGBA&#40;0.7f,0.8f,1f,1f&#41;&#41;;
+  private boolean left = false, right = false, up = false, down = false;</pre><p>You initialize a few private fields:</p><ul><li><div>The BulletAppState gives this SimpleApplication access to physics features (such as collision detection) supplied by jME3&#039;s jBullet integration</div></li><li><div>The Spatial sceneModel is for loading an OgreXML model of a town.</div></li><li><div>You need a RigidBodyControl to make the town model solid.</div></li><li><div>The (invisible) first-person player is represented by a CharacterControl object.</div></li><li><div>The fields <code>walkDirection</code> and the four Booleans are used for physics-controlled navigation.</div></li></ul><p>Let&#039;s have a look at all the details:</p></div><h2><a>Initializing the Game</a></h2><div><p>As usual, you initialize the game in the <code>simpleInitApp()</code> method.</p><pre>    viewPort.setBackgroundColor&#40;new ColorRGBA&#40;0.7f,0.8f,1f,1f&#41;&#41;;
     flyCam.setMoveSpeed&#40;100&#41;;
     setUpKeys&#40;&#41;;
-    setUpLight&#40;&#41;;</pre>
-<ol>
-<li><div> You set the background color to light blue, since this is a scene with a sky.</div>
+    setUpLight&#40;&#41;;</pre><ol><li><div> You set the background color to light blue, since this is a scene with a sky.</div>
 </li>
 <li><div> You repurpose the default camera control &quot;flyCam&quot; as first-person camera and set its speed.</div>
 </li>

+ 5 - 150
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_effects.html

@@ -1,56 +1,4 @@
-
-<h1><a>JME 3 Tutorial (12) - Hello Effects</a></h1>
-<div>
-
-<p>
-
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_audio.html">Hello Audio</a>,
-Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_physics.html">Hello Physics</a>
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-effect-fire.png">
-</p>
-
-<p>
-When you see one of the following in a game, then a particle system is likely behind it:
-</p>
-<ul>
-<li><div> Fire, flames, sparks;</div>
-</li>
-<li><div> Rain, snow, waterfalls, leaves;</div>
-</li>
-<li><div> Explosions, debris, shockwaves;</div>
-</li>
-<li><div> Dust, fog, clouds, smoke;</div>
-</li>
-<li><div> Insects swarms, meteor showers;</div>
-</li>
-<li><div> Magic spells.</div>
-</li>
-</ul>
-
-<p>
-
-These scene elements cannot be modeled by meshes. In very simple terms:
-</p>
-<ul>
-<li><div> The difference between an explosion and a dust cloud is the speed of the particle effect. </div>
-</li>
-<li><div> The difference between flames and a waterfall is the direction and the color of the particle effect. </div>
-</li>
-</ul>
-
-<p>
-
-Particle effects can be animated (e.g. sparks, drops) and static (strands of grass, hair). Non-particle effects include bloom/glow, and motion blur/afterimage. In this tutorial you learn how to make animated particles (com.jme3.effect). 
-</p>
-
-</div>
-
-<h2><a>Sample Code</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h1><a>JME 3 Tutorial (12) - Hello Effects</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_audio.html">Hello Audio</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_physics.html">Hello Physics</a></p><p><img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-effect-fire.png"></p><p>When you see one of the following in a game, then a particle system is likely behind it:</p><ul><li><div>Fire, flames, sparks;</div></li><li><div>Rain, snow, waterfalls, leaves;</div></li><li><div>Explosions, debris, shockwaves;</div></li><li><div>Dust, fog, clouds, smoke;</div></li><li><div>Insects swarms, meteor showers;</div></li><li><div>Magic spells.</div></li></ul><p>These scene elements cannot be modeled by meshes. In very simple terms:</p><ul><li><div>The difference between an explosion and a dust cloud is the speed of the particle effect.</div></li><li><div>The difference between flames and a waterfall is the direction and the color of the particle effect.</div></li></ul><p>Particle effects can be animated (e.g. sparks, drops) and static (strands of grass, hair). Non-particle effects include bloom/glow, and motion blur/afterimage. In this tutorial you learn how to make animated particles (com.jme3.effect).</p></div><h2><a>Sample Code</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.effect.ParticleEmitter;
@@ -108,31 +56,7 @@ public class HelloEffects extends SimpleApplication &#123;
     rootNode.attachChild&#40;debris&#41;;
     debris.emitAllParticles&#40;&#41;;
   &#125;
-&#125;</pre>
-
-<p>
-You should see an explosion that sends debris flying, and a fire.
-<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/trunk/engine/src/test/jme3test/effect/"><param name="text" value="<html><u>More example code is here.</u></html>"><param name="textColor" value="blue"></object>
-</p>
-
-</div>
-
-<h3><a>Texture Animation and Variation</a></h3>
-<div>
-
-<p>
-
-<img src="/wiki/lib/exe/fetch.php">
-</p>
-
-<p>
-Start by choosing a material texture for your effect. If you provide the emitter with a set of textures (see image), it can use them either for variation (random order), or as animation steps (fixed order). 
-</p>
-
-<p>
-Setting emitter textures works just as you have already learned in previous chapters. This time you base the material on the <code>Particle.j3md</code> material definition. Let&#039;s have a closer look at the material for the Debris effect. 
-</p>
-<pre>    ParticleEmitter debris = 
+&#125;</pre><p>You should see an explosion that sends debris flying, and a fire. <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/trunk/engine/src/test/jme3test/effect/"><param name="text" value="<html><u>More example code is here.</u></html>"><param name="textColor" value="blue"></object></p></div><h3><a>Texture Animation and Variation</a></h3><div><p><img src="/wiki/lib/exe/fetch.php"></p><p>Start by choosing a material texture for your effect. If you provide the emitter with a set of textures (see image), it can use them either for variation (random order), or as animation steps (fixed order).</p><p>Setting emitter textures works just as you have already learned in previous chapters. This time you base the material on the <code>Particle.j3md</code> material definition. Let&#039;s have a closer look at the material for the Debris effect.</p><pre>    ParticleEmitter debris = 
             new ParticleEmitter&#40;&quot;Debris&quot;, ParticleMesh.Type.Triangle, 10&#41;;
     Material debris_mat = new Material&#40;assetManager, 
             &quot;Common/MatDefs/Misc/Particle.j3md&quot;&#41;;
@@ -142,73 +66,7 @@ Setting emitter textures works just as you have already learned in previous chap
     debris.setImagesX&#40;3&#41;; 
     debris.setImagesY&#40;3&#41;; // 3x3 texture animation
     debris.setSelectRandomImage&#40;true&#41;;
-        ...</pre>
-<ol>
-<li><div> Create a material and load the texture.</div>
-</li>
-<li><div> Tell the Emitter into how many animation steps (x*y) the texture is divided. <br/>
-The debris texture has 3x3 frames.</div>
-</li>
-<li><div> Optionally, tell the Emitter whether the animation steps are to be at random, or in order. <br/>
-For the debris, the frames play at random.</div>
-</li>
-</ol>
-
-<p>
-
-As you see in the debris example, texture animations improve effects because each &quot;flame&quot; or &quot;piece of debris&quot; now looks different. Also think of electric or magic effects, where you can create very interesting animations by using an ordered morphing series of lightning bolts; or flying leaves or snow flakes, for instance.
-</p>
-
-<p>
-The fire material is created the same way, just using &quot;Effects/Explosion/flame.png&quot; texture, which has with 2x2 ordered animation steps.
-</p>
-
-</div>
-
-<h3><a>Default Particle Textures</a></h3>
-<div>
-
-<p>
-
-The following particle textures included in <code>test-data.jar</code>. You can copy and use them in your own effects.
-
-</p>
-<div><table>
-	<tr>
-		<th> Texture Path                     </th><th> Dimension </th><th> Preview </th>
-	</tr>
-	<tr>
-		<td> Effects/Explosion/Debris.png     </td><td> 3*3  </td><td> <img src="/wiki/lib/exe/fetch.php"> </td>
-	</tr>
-	<tr>
-		<td> Effects/Explosion/flame.png      </td><td> 2*2  </td><td> <img src="/wiki/lib/exe/fetch.php"> </td>
-	</tr>
-	<tr>
-		<td> Effects/Explosion/shockwave.png  </td><td> 1*1  </td><td> <img src="/wiki/lib/exe/fetch.php"> </td>
-	</tr>
-	<tr>
-		<td> Effects/Explosion/smoketrail.png </td><td> 1*3  </td><td> <img src="/wiki/lib/exe/fetch.php"> </td>
-	</tr>
-	<tr>
-		<td> Effects/Smoke/Smoke.png          </td><td> 1*15 </td><td> <img src="/wiki/lib/exe/fetch.php"> </td>
-	</tr>
-</table></div>
-<!-- EDIT1 TABLE [5323-6142] -->
-<p>
-
-Copy them into you <code>assets/Effects</code> directory to use them.
-</p>
-
-</div>
-
-<h2><a>Creating Custom Textures</a></h2>
-<div>
-
-<p>
-
-For your game, you will likely create custom particle textures. Look at the fire example again.
-</p>
-<pre>    ParticleEmitter fire = 
+        ...</pre><ol><li><div>Create a material and load the texture.</div></li><li><div>Tell the Emitter into how many animation steps (x*y) the texture is divided. <br/> The debris texture has 3x3 frames.</div></li><li><div>Optionally, tell the Emitter whether the animation steps are to be at random, or in order. <br/> For the debris, the frames play at random.</div></li></ol><p>As you see in the debris example, texture animations improve effects because each &quot;flame&quot; or &quot;piece of debris&quot; now looks different. Also think of electric or magic effects, where you can create very interesting animations by using an ordered morphing series of lightning bolts; or flying leaves or snow flakes, for instance.</p><p>The fire material is created the same way, just using &quot;Effects/Explosion/flame.png&quot; texture, which has with 2x2 ordered animation steps.</p></div><h3><a>Default Particle Textures</a></h3><div><p>The following particle textures included in <code>test-data.jar</code>. You can copy and use them in your own effects.</p><div><table><tr><th>Texture Path</th><th>Dimension</th><th>Preview</th></tr><tr><td>Effects/Explosion/Debris.png</td><td>3*3</td><td><img src="/wiki/lib/exe/fetch.php"></td></tr><tr><td>Effects/Explosion/flame.png</td><td>2*2</td><td><img src="/wiki/lib/exe/fetch.php"></td></tr><tr><td>Effects/Explosion/shockwave.png</td><td>1*1</td><td><img src="/wiki/lib/exe/fetch.php"></td></tr><tr><td>Effects/Explosion/smoketrail.png</td><td>1*3</td><td><img src="/wiki/lib/exe/fetch.php"></td></tr><tr><td>Effects/Smoke/Smoke.png</td><td>1*15</td><td><img src="/wiki/lib/exe/fetch.php"></td></tr></table></div><p>Copy them into you <code>assets/Effects</code> directory to use them.</p></div><h2><a>Creating Custom Textures</a></h2><div><p>For your game, you will likely create custom particle textures. Look at the fire example again.</p><pre>    ParticleEmitter fire = 
             new ParticleEmitter&#40;&quot;Emitter&quot;, ParticleMesh.Type.Triangle, 30&#41;;
     Material mat_red = new Material&#40;assetManager, 
             &quot;Common/MatDefs/Misc/Particle.j3md&quot;&#41;;
@@ -219,10 +77,7 @@ For your game, you will likely create custom particle textures. Look at the fire
     fire.setImagesY&#40;2&#41;; // 2x2 texture animation
     fire.setEndColor&#40;  new ColorRGBA&#40;1f, 0f, 0f, 1f&#41;&#41;;   // red
     fire.setStartColor&#40;new ColorRGBA&#40;1f, 1f, 0f, 0.5f&#41;&#41;; // yellow
-&nbsp;</pre>
-
-<p>
-<img src="/wiki/lib/exe/fetch.php">
+&nbsp;</pre><p><img src="/wiki/lib/exe/fetch.php">
 </p>
 
 <p>
@@ -318,7 +173,7 @@ Vector3f.NAN <br/>
 		<td> gravity             </td><td> <code>setGravity()</code> </td><td> 0,1,0 </td><td> Whether particles fall down (positive) or fly up (negative). Set to 0f for a zero-g effect where particles keep flying. </td>
 	</tr>
 </table></div>
-<!-- EDIT2 TABLE [8178-9650] -->
+<!-- EDIT2 TABLE [8150-9622] -->
 <p>
 
 You can find details about <a href="/com/jme3/gde/core/docs/jme3/advanced/particle_emitters#configure_parameters.html">effect parameters</a> here.

+ 3 - 86
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html

@@ -1,26 +1,4 @@
-
-<h1><a>JME 3 Tutorial (5) - Hello Input System</a></h1>
-<div>
-
-<p>
-
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_main_event_loop.html">Hello Update Loop</a>,
-Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_material.html">Hello Material</a>
-</p>
-
-<p>
-By default, SimpleApplication sets up an input system that allows you to steer the camera with the WASD keys, the arrow keys, and the mouse. You can use it as a flying first-person camera right away. But what if you need a third-person camera, or you want keys to trigger special game actions? 
-</p>
-
-<p>
-Every game has its custom keybindings, and this tutorial explains how you define them. We first define the key presses and mouse events, and then we define the actions they should trigger.
-</p>
-
-</div>
-
-<h2><a>Sample Code</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h1><a>JME 3 Tutorial (5) - Hello Input System</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_main_event_loop.html">Hello Update Loop</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_material.html">Hello Material</a></p><p>By default, SimpleApplication sets up an input system that allows you to steer the camera with the WASD keys, the arrow keys, and the mouse. You can use it as a flying first-person camera right away. But what if you need a third-person camera, or you want keys to trigger special game actions?</p><p>Every game has its custom keybindings, and this tutorial explains how you define them. We first define the key presses and mouse events, and then we define the actions they should trigger.</p></div><h2><a>Sample Code</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.material.Material;
@@ -97,73 +75,12 @@ public class HelloInput extends SimpleApplication &#123;
       &#125;
     &#125;
   &#125;;
-&#125;</pre>
-
-<p>
-Build and run the example.
-</p>
-<ul>
-<li><div> Press the Spacebar or click to rotate the cube. </div>
-</li>
-<li><div> Press the J and K keys to move the cube.</div>
-</li>
-<li><div> Press P to pause and unpause the game. While paused, the game should not respond to any input, other than <code>P</code>.</div>
-</li>
-</ul>
-
-</div>
-
-<h2><a>Defining Mappings and Triggers</a></h2>
-<div>
-
-<p>
-
-First you register each mapping name with its trigger(s). Remember the following:
-</p>
-<ul>
-<li><div> An input trigger can be a key press or mouse action. <br/>
-For example a mouse movement, a mouse click, or pressing the letter &quot;P&quot;.</div>
-</li>
-<li><div> The mapping name is a string that you can choose. <br/>
-The name should describe the action (e.g. &quot;Rotate&quot;), and not the trigger. Because the trigger can change.</div>
-</li>
-<li><div> One named mapping can have several triggers. <br/>
-For example, the &quot;Rotate&quot; action can be triggered by a click and by pressing the spacebar.</div>
-</li>
-</ul>
-
-<p>
-
-Have a look at the code:
-</p>
-<ol>
-<li><div> You register the mapping named &quot;Rotate&quot; to the Spacebar key trigger. <br/>
-<code>new KeyTrigger(KeyInput.KEY_SPACE)</code>). </div>
-</li>
-<li><div> In the same line, you also register &quot;Rotate&quot; to an alternative mouse click trigger. <br/>
-<code>new MouseButtonTrigger(MouseInput.BUTTON_LEFT)</code></div>
-</li>
-<li><div> You map the <code>Pause</code>, <code>Left</code>, <code>Right</code> mappings to the P, J, K keys, respectively. </div>
-</li>
-</ol>
-<pre>    // You can map one or several inputs to one named action
+&#125;</pre><p>Build and run the example.</p><ul><li><div>Press the Spacebar or click to rotate the cube.</div></li><li><div>Press the J and K keys to move the cube.</div></li><li><div>Press P to pause and unpause the game. While paused, the game should not respond to any input, other than <code>P</code>.</div></li></ul></div><h2><a>Defining Mappings and Triggers</a></h2><div><p>First you register each mapping name with its trigger(s). Remember the following:</p><ul><li><div>An input trigger can be a key press or mouse action. <br/> For example a mouse movement, a mouse click, or pressing the letter &quot;P&quot;.</div></li><li><div>The mapping name is a string that you can choose. <br/> The name should describe the action (e.g. &quot;Rotate&quot;), and not the trigger. Because the trigger can change.</div></li><li><div>One named mapping can have several triggers. <br/> For example, the &quot;Rotate&quot; action can be triggered by a click and by pressing the spacebar.</div></li></ul><p>Have a look at the code:</p><ol><li><div>You register the mapping named &quot;Rotate&quot; to the Spacebar key trigger. <br/> <code>new KeyTrigger(KeyInput.KEY_SPACE)</code>).</div></li><li><div>In the same line, you also register &quot;Rotate&quot; to an alternative mouse click trigger. <br/> <code>new MouseButtonTrigger(MouseInput.BUTTON_LEFT)</code></div></li><li><div>You map the <code>Pause</code>, <code>Left</code>, <code>Right</code> mappings to the P, J, K keys, respectively.</div></li></ol><pre>    // You can map one or several inputs to one named action
     inputManager.addMapping&#40;&quot;Pause&quot;,  new KeyTrigger&#40;KeyInput.KEY_P&#41;&#41;;
     inputManager.addMapping&#40;&quot;Left&quot;,   new KeyTrigger&#40;KeyInput.KEY_J&#41;&#41;;
     inputManager.addMapping&#40;&quot;Right&quot;,  new KeyTrigger&#40;KeyInput.KEY_K&#41;&#41;;
     inputManager.addMapping&#40;&quot;Rotate&quot;, new KeyTrigger&#40;KeyInput.KEY_SPACE&#41;,
-                                      new MouseButtonTrigger&#40;MouseInput.BUTTON_LEFT&#41;&#41;;</pre>
-
-<p>
-
-Now you need to register your trigger mappings.
-</p>
-<ol>
-<li><div> You register the pause action to the ActionListener, because it is an &quot;on/off&quot; action.</div>
-</li>
-<li><div> You register the movement actions to the AnalogListener, because they are gradual actions.</div>
-</li>
-</ol>
-<pre>    // Add the names to the action listener.
+                                      new MouseButtonTrigger&#40;MouseInput.BUTTON_LEFT&#41;&#41;;</pre><p>Now you need to register your trigger mappings.</p><ol><li><div>You register the pause action to the ActionListener, because it is an &quot;on/off&quot; action.</div></li><li><div>You register the movement actions to the AnalogListener, because they are gradual actions.</div></li></ol><pre>    // Add the names to the action listener.
     inputManager.addListener&#40;actionListener, new String&#91;&#93;&#123;&quot;Pause&quot;&#125;&#41;;
     inputManager.addListener&#40;analogListener, new String&#91;&#93;&#123;&quot;Left&quot;, &quot;Right&quot;, &quot;Rotate&quot;&#125;&#41;;</pre>
 

+ 1 - 19
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_main_event_loop.html

@@ -1,22 +1,4 @@
-
-<h1><a>JME 3 Tutorial (4) - Hello Update Loop</a></h1>
-<div>
-
-<p>
-
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html">Hello Assets</a>,
-Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input System</a>
-</p>
-
-<p>
-Now that you know how to load assets, such as 3D models, you want to implement some gameplay that uses these assets. In this tutorial we look at the update loop. The update loop of your game is where the action happens.
-</p>
-
-</div>
-
-<h2><a>Code Sample</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h1><a>JME 3 Tutorial (4) - Hello Update Loop</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html">Hello Assets</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input System</a></p><p>Now that you know how to load assets, such as 3D models, you want to implement some gameplay that uses these assets. In this tutorial we look at the update loop. The update loop of your game is where the action happens.</p></div><h2><a>Code Sample</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.material.Material;

+ 2 - 20
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_material.html

@@ -1,22 +1,4 @@
-
-<h1><a>JME 3 Tutorial (6) - Hello Materials</a></h1>
-<div>
-
-<p>
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input System</a>,
-Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_animation.html">Hello Animation</a>
-</p>
-
-<p>
-The term Material includes everything that influences what the surface of a 3D model looks like: The color, texture, shininess, and opacity/transparency. Plain coloring is covered in <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_node.html">Hello Node</a>. Loading models that come with materials is covered in <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html">Hello Asset</a>. In this tutorial you learn to create and use custom JME3 Material Definitions.
-<img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-materials.png">
-</p>
-
-</div>
-
-<h2><a>Sample Code</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h1><a>JME 3 Tutorial (6) - Hello Materials</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input System</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_animation.html">Hello Animation</a></p><p>The term Material includes everything that influences what the surface of a 3D model looks like: The color, texture, shininess, and opacity/transparency. Plain coloring is covered in <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_node.html">Hello Node</a>. Loading models that come with materials is covered in <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html">Hello Asset</a>. In this tutorial you learn to create and use custom JME3 Material Definitions. <img src="nbdocs:/com/jme3/gde/core/docs/jme3/beginner/beginner-materials.png"></p></div><h2><a>Sample Code</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.light.DirectionalLight;
@@ -295,7 +277,7 @@ DiffuseMap, NormalMap, SpecularMap : Texture2D <br/>
 Shininess : Float </td>
 	</tr>
 </table></div>
-<!-- EDIT1 TABLE [11037-11507] -->
+<!-- EDIT1 TABLE [11029-11499] -->
 <p>
 
 For a game, you create custom Materials based on these existing MaterialDefintions – as you have just seen in the example with the shiny rock&#039;s material.

+ 2 - 88
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_node.html

@@ -1,46 +1,4 @@
-
-<h1><a>JME 3 Tutorial (2) - Hello Node</a></h1>
-<div>
-
-<p>
-
-Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_simpleapplication.html">Hello SimpleApplication</a>,
-Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html">Hello Assets</a>. 
-</p>
-
-<p>
-In this tutorial we will have a look at the creation of a 3D scene.
-</p>
-<ul>
-<li><div> This tutorial assumes that you know what <a href="/com/jme3/gde/core/docs/jme3/the_scene_graph.html">the Scene Graph</a> is.</div>
-</li>
-<li><div> For a visual introduction, check out <a href="/com/jme3/gde/core/docs/jme3/scenegraph_for_dummies.html">Scene Graph for Dummies</a>.</div>
-</li>
-</ul>
-
-<p>
-
-When creating a 3D game
-</p>
-<ol>
-<li><div> You create some scene objects like players, buildings, etc. </div>
-</li>
-<li><div> You add the objects to the scene.</div>
-</li>
-<li><div> You move, resize, rotate, color, and animate them. </div>
-</li>
-</ol>
-
-<p>
-
-You will learn that the scene graph represents the 3D world, and why the rootNode is important. You will learn how to create simple objects, how to let them carry custom data (such as health points), and how to &quot;transform&quot; them by moving, scaling, and rotating. You will understand the difference between the two types of &quot;Spatials&quot; in the scene graph: Nodes and Geometries. 
-</p>
-
-</div>
-
-<h2><a>Code Sample</a></h2>
-<div>
-<pre>package jme3test.helloworld;
+<h1><a>JME 3 Tutorial (2) - Hello Node</a></h1><div><p>Previous: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_simpleapplication.html">Hello SimpleApplication</a>, Next: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html">Hello Assets</a>.</p><p>In this tutorial we will have a look at the creation of a 3D scene.</p><ul><li><div>This tutorial assumes that you know what <a href="/com/jme3/gde/core/docs/jme3/the_scene_graph.html">the Scene Graph</a> is.</div></li><li><div>For a visual introduction, check out <a href="/com/jme3/gde/core/docs/jme3/scenegraph_for_dummies.html">Scene Graph for Dummies</a>.</div></li></ul><p>When creating a 3D game</p><ol><li><div>You create some scene objects like players, buildings, etc.</div></li><li><div>You add the objects to the scene.</div></li><li><div>You move, resize, rotate, color, and animate them.</div></li></ol><p>You will learn that the scene graph represents the 3D world, and why the rootNode is important. You will learn how to create simple objects, how to let them carry custom data (such as health points), and how to &quot;transform&quot; them by moving, scaling, and rotating. You will understand the difference between the two types of &quot;Spatials&quot; in the scene graph: Nodes and Geometries.</p></div><h2><a>Code Sample</a></h2><div><pre>package jme3test.helloworld;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.material.Material;
@@ -89,51 +47,7 @@ public class HelloNode extends SimpleApplication &#123;
         /** Rotate the pivot node: Note that both boxes have rotated! */
         pivot.rotate&#40;.4f,.4f,0f&#41;;
     &#125;
-&#125;</pre>
-
-<p>
-Build and run the code sample. You should see two colored boxes tilted at the same angle.
-</p>
-
-</div>
-
-<h2><a>Understanding the Terminology</a></h2>
-<div>
-
-<p>
-
-In this tutorial, you learn some new terms:
-
-</p>
-<div><table>
-	<tr>
-		<th>What you want to do</th><th>How you say it in JME3 terminology</th>
-	</tr>
-	<tr>
-		<td>Lay out the 3D scene</td><td>Populate the scene graph</td>
-	</tr>
-	<tr>
-		<td>Create scene objects</td><td>Create Spatials (e.g. create Geometries)</td>
-	</tr>
-	<tr>
-		<td>Make an object appear in the scene</td><td>Attach a Spatial to the rootNode</td>
-	</tr>
-	<tr>
-		<td>Make an object disappear from the scene</td><td>Detach the Spatial from the rootNode</td>
-	</tr>
-	<tr>
-		<td>Position/move, turn, or resize an object</td><td>Translate, rotate, scale an object. Transform an object.</td>
-	</tr>
-</table></div>
-<!-- EDIT1 TABLE [3079-3496] -->
-<p>
-
-Every JME3 application has a rootNode: Your game automatically inherits the <code>rootNode</code> object from SimpleApplication. Everything attached to the rootNode is part of the scene graph. The elements of the scene graph are Spatials.
-</p>
-<ul>
-<li><div> A Spatial contains the location, rotation, and scale of an object.</div>
-</li>
-<li><div> A Spatial can be loaded, transformed, and saved.</div>
+&#125;</pre><p>Build and run the code sample. You should see two colored boxes tilted at the same angle.</p></div><h2><a>Understanding the Terminology</a></h2><div><p>In this tutorial, you learn some new terms:</p><div><table><tr><th>What you want to do</th><th>How you say it in JME3 terminology</th></tr><tr><td>Lay out the 3D scene</td><td>Populate the scene graph</td></tr><tr><td>Create scene objects</td><td>Create Spatials (e.g. create Geometries)</td></tr><tr><td>Make an object appear in the scene</td><td>Attach a Spatial to the rootNode</td></tr><tr><td>Make an object disappear from the scene</td><td>Detach the Spatial from the rootNode</td></tr><tr><td>Position/move, turn, or resize an object</td><td>Translate, rotate, scale an object. Transform an object.</td></tr></table></div><p>Every JME3 application has a rootNode: Your game automatically inherits the <code>rootNode</code> object from SimpleApplication. Everything attached to the rootNode is part of the scene graph. The elements of the scene graph are Spatials.</p><ul><li><div>A Spatial contains the location, rotation, and scale of an object.</div></li><li><div> A Spatial can be loaded, transformed, and saved.</div>
 </li>
 <li><div> There are two types of Spatials: Nodes and Geometries.</div>
 </li>

+ 5 - 19
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html

@@ -83,8 +83,7 @@ public class HelloTerrain extends SimpleApplication &#123;
     AbstractHeightMap heightmap = null;
     Texture heightMapImage = assetManager.loadTexture&#40;
             &quot;Textures/Terrain/splat/mountains512.png&quot;&#41;;
-    heightmap = new ImageBasedHeightMap&#40;
-      ImageToAwt.convert&#40;heightMapImage.getImage&#40;&#41;, false, true, 0&#41;&#41;;
+    heightmap = new ImageBasedHeightMap&#40;heightMapImage.getImage&#40;&#41;&#41;;
     heightmap.load&#40;&#41;;
 &nbsp;
     <span>/** 3. We have prepared material and heightmap. 
@@ -105,9 +104,7 @@ public class HelloTerrain extends SimpleApplication &#123;
     rootNode.attachChild&#40;terrain&#41;;
 &nbsp;
     /** 5. The LOD (level of detail) depends on were the camera is: */
-    List&lt;Camera&gt; cameras = new ArrayList&lt;Camera&gt;&#40;&#41;;
-    cameras.add&#40;getCamera&#40;&#41;&#41;;
-    TerrainLodControl control = new TerrainLodControl&#40;terrain, cameras&#41;;
+    TerrainLodControl control = new TerrainLodControl&#40;terrain, getCamera&#40;&#41;&#41;;
     terrain.addControl&#40;control&#41;;
   &#125;
 &#125;</pre>
@@ -214,15 +211,7 @@ Here is how you create the heightmap object in your jME code:
 <li><div> Load your prepared heightmap image into the texture object.</div>
 </li>
 <li><div> Create an AbstractHeightmap object from an ImageBasedHeightMap. <br/>
-ImageBasedHeightMap expects the following parameters:</div>
-<ol>
-<li><div> An <code>ImageToAwt.convert()</code>ed image file.</div>
-</li>
-<li><div> A boolean whether you are using 16-bit – here: false, this image is 8-bit.</div>
-</li>
-<li><div> A boolean whether you are using an alphamap – here: true, you will use one.</div>
-</li>
-</ol>
+It requires an image from a JME Texture.</div>
 </li>
 <li><div> Load the heightmap.</div>
 </li>
@@ -230,8 +219,7 @@ ImageBasedHeightMap expects the following parameters:</div>
 <pre>AbstractHeightMap heightmap = null;
     Texture heightMapImage = assetManager.loadTexture&#40;
             &quot;Textures/Terrain/splat/mountains512.png&quot;&#41;;
-    heightmap = new ImageBasedHeightMap&#40;
-      ImageToAwt.convert&#40;heightMapImage.getImage&#40;&#41;, false, true, 0&#41;&#41;;
+    heightmap = new ImageBasedHeightMap&#40;heightMapImage.getImage&#40;&#41;&#41;;
     heightmap.load&#40;&#41;;</pre>
 
 </div>
@@ -440,9 +428,7 @@ You have created the terrain object.
 
 JME3 includes an optimization that adjusts the level of detail (LOD) of the rendered terrain depending on how close or far the camera is.
 </p>
-<pre>    List&lt;Camera&gt; cameras = new ArrayList&lt;Camera&gt;&#40;&#41;;
-    cameras.add&#40;getCamera&#40;&#41;&#41;;
-    TerrainLodControl control = new TerrainLodControl&#40;terrain, cameras&#41;;
+<pre>    TerrainLodControl control = new TerrainLodControl&#40;terrain, getCamera&#40;&#41;&#41;;
     terrain.addControl&#40;control&#41;;</pre>
 
 <p>

File diff suppressed because it is too large
+ 0 - 55
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/build_from_sources.html


File diff suppressed because it is too large
+ 0 - 109
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/faq.html


File diff suppressed because it is too large
+ 1 - 98
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/appsettings.html


+ 1 - 45
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/best_practices.html

@@ -1,48 +1,4 @@
-
-<h1><a>Best Practices For jME3 Developers</a></h1>
-<div>
-
-<p>
-
-A collection of recommendations and expert tips. Feel free to add your own!
-If you are a beginner, you should first <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.hobbygamedev.com/digests/?page=free"><param name="text" value="<html><u>read some</u></html>"><param name="textColor" value="blue"></object> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://gamasutra.com/"><param name="text" value="<html><u>articles about</u></html>"><param name="textColor" value="blue"></object> game development. We cannot cover all general tips here.
-</p>
-
-</div>
-
-<h2><a>Requirements Gathering</a></h2>
-<div>
-
-<p>
-
-As a quick overview, answer yourself the following questions:
-</p>
-<ul>
-<li><div> Motivation</div>
-<ul>
-<li><div> Sum up your game idea in one sentence. If you can&#039;t, it&#039;s too complicated.</div>
-</li>
-<li><div> Who&#039;s the target group? Why would they choose your game over the million others that exist?</div>
-</li>
-</ul>
-</li>
-<li><div> Game type</div>
-<ul>
-<li><div> Point of view (camera)? What character(s) does the player control (if any)?</div>
-</li>
-<li><div> Time- or turn-based?</div>
-</li>
-<li><div> Genre, setting, background story? (If applicable)</div>
-</li>
-</ul>
-</li>
-<li><div> Gameplay</div>
-<ul>
-<li><div> What is the start state, what is the end state?</div>
-</li>
-<li><div> What resources does the player manage? How are resources gained, transformed, spent? E.g. speed, gold, health, &quot;points&quot;.</div>
-</li>
-<li><div> How does the player interact? I.e. rules, challenges, game mechanics.</div>
+<h1><a>Best Practices For jME3 Developers</a></h1><div><p>A collection of recommendations and expert tips. Feel free to add your own! If you are a beginner, you should first <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.hobbygamedev.com/digests/?page=free"><param name="text" value="<html><u>read some</u></html>"><param name="textColor" value="blue"></object> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://gamasutra.com/"><param name="text" value="<html><u>articles about</u></html>"><param name="textColor" value="blue"></object> Requirements Gathering</h2><div><p>As a quick overview, answer yourself the following questions:</p><ul><li><div>Motivation</div><ul><li><div>Sum up your game idea in one sentence. If you can&#039;t, it&#039;s too complicated.</div></li><li><div>Who&#039;s the target group? Why would they choose your game over the million others that exist?</div></li></ul></li><li><div>Game type</div><ul><li><div>Point of view (camera)? What character(s) does the player control (if any)?</div></li><li><div>Time- or turn-based?</div></li><li><div>Genre, setting, background story? (If applicable)</div></li></ul></li><li><div>Gameplay</div><ul><li><div>What is the start state, what is the end state?</div></li><li><div>What resources does the player manage? How are resources gained, transformed, spent? E.g. speed, gold, health, &quot;points&quot;.</div></li><li><div> How does the player interact? I.e. rules, challenges, game mechanics.</div>
 </li>
 <li><div> What state is considered winning, and what losing?</div>
 </li>

File diff suppressed because it is too large
+ 0 - 77
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/file_types.html


File diff suppressed because it is too large
+ 1 - 281
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/headlessserver.html


+ 1 - 44
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/optimization.html

@@ -1,47 +1,4 @@
-
-<h1><a>Optimization reference</a></h1>
-<div>
-
-<p>
-This page is intended as a reference collection of optimization tricks that can be used to speed up JME3 applications.
-
-</p>
-
-</div>
-
-<h2><a>Maintain low Geometry count</a></h2>
-<div>
-
-<p>
-The more Geometry objects are added to the scene, the harder it gets to handle them in a speedy fashion.
-The reason for this is, that for every object a render command must be done, here is a bottleneck between the CPU and the graphics card.
-</p>
-
-<p>
-<strong>Possible optimization techniques</strong>
-</p>
-<ul>
-<li><div> Use GeometryBatchFactory.optimize(node) to merge the meshes of the geometries contained in the given node into fewer batches (based on common Material used). You can do this using the SceneComposer in the <acronym title="Software Development Kit">SDK</acronym> as well, just right-click a node and select &quot;Optimize Geometry&quot;</div>
-</li>
-</ul>
-
-<p>
-<strong>Side-effects</strong>
-</p>
-<ul>
-<li><div> Using GeometryBatchFactory merges individual Geometries into a single mesh. Thereby it becomes hard to apply specific Materials or to remove a single Geometry. Therefore it should be used for static Geometry only that does not require frequent changes or individual materials/texturing.</div>
-</li>
-<li><div>Using Texture atlases might be a way to provide a limited individual texturing.</div>
-</li>
-</ul>
-
-</div>
-
-<h2><a>Avoid creating new objects</a></h2>
-<div>
-
-<p>
-When you use math operations like vectorA.mult(vectorB); new objects are created that have to be garbage collected when you don&#039;t use them anymore. Check your math operations for opportunities to use the local version of the math operations, e.g. vectorA.multLocal(vectorB). This way the result is stored in vectorA and no new object needs to be created.
+<h1><a>Optimization reference</a></h1><div><p>This page is intended as a reference collection of optimization tricks that can be used to speed up JME3 applications.</p></div><h2><a>Maintain low Geometry count</a></h2><div><p>The more Geometry objects are added to the scene, the harder it gets to handle them in a speedy fashion. The reason for this is, that for every object a render command must be done, here is a bottleneck between the CPU and the graphics card.</p><p><strong>Possible optimization techniques</strong></p><ul><li><div>Use GeometryBatchFactory.optimize(node) to merge the meshes of the geometries contained in the given node into fewer batches (based on common Material used). You can do this using the SceneComposer in the <acronym title="Software Development Kit">SDK</acronym> as well, just right-click a node and select &quot;Optimize Geometry&quot;</div></li></ul><p><strong>Side-effects</strong></p><ul><li><div>Using GeometryBatchFactory merges individual Geometries into a single mesh. Thereby it becomes hard to apply specific Materials or to remove a single Geometry. Therefore it should be used for static Geometry only that does not require frequent changes or individual materials/texturing.</div></li><li><div>Using Texture atlases might be a way to provide a limited individual texturing.</div></li></ul></div><h2><a>Avoid creating new objects</a></h2><div><p>When you use math operations like vectorA.mult(vectorB); new objects are created that have to be garbage collected when you don&#039;t use them anymore. Check your math operations for opportunities to use the local version of the math operations, e.g. vectorA.multLocal(vectorB). This way the result is stored in vectorA and no new object needs to be created.
 
 </p>
 

+ 2 - 40
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/simpleapplication.html

@@ -1,20 +1,4 @@
-
-<h1><a>SimpleApplication and Application</a></h1>
-<div>
-
-<p>
-
-The base class of the jMonkeyEngine3 is <code>com.jme3.app.SimpleApplication</code>. Your first game&#039;s Main class extends SimpleApplication directly. When you feel confident you understand the features, you will typically extend SimpleApplication to create a custom base class for the type of games that you want to develop. 
-</p>
-
-<p>
-SimpleApplication offers standard game features such as a scene graph, input handling, and a fly-by camera. You call app.start() and app.stop() on your game instance to start or quit the application. 
-</p>
-
-<p>
-The following code sample shows the typical base structure of a jME3 game:
-</p>
-<pre>import com.jme3.app.SimpleApplication;
+<h1><a>SimpleApplication and Application</a></h1><div><p>The base class of the jMonkeyEngine3 is <code>com.jme3.app.SimpleApplication</code>. Your first game&#039;s Main class extends SimpleApplication directly. When you feel confident you understand the features, you will typically extend SimpleApplication to create a custom base class for the type of games that you want to develop.</p><p>SimpleApplication offers standard game features such as a scene graph, input handling, and a fly-by camera. You call app.start() and app.stop() on your game instance to start or quit the application.</p><p>The following code sample shows the typical base structure of a jME3 game:</p><pre>import com.jme3.app.SimpleApplication;
 &nbsp;
 public class MyBaseGame extends SimpleApplication &#123;
 &nbsp;
@@ -37,29 +21,7 @@ public class MyBaseGame extends SimpleApplication &#123;
     public void simpleRender&#40;RenderManager rm&#41; &#123;
        /* (optional) Make advanced modifications to frameBuffer and scene graph. */
     &#125;
-&#125;</pre>
-
-<p>
-Let&#039;s have a look at the <acronym title="Application Programming Interface">API</acronym> of the base class.
-</p>
-
-</div>
-
-<h2><a>Application Class</a></h2>
-<div>
-
-<p>
-
-Internally, com.jme3.app.SimpleApplication extends com.jme3.app.Application. The Application class represents a generic real-time 3D rendering jME3 application (i.e., not necessarily a game). Typically, you do not extend com.jme3.app.Application directly to create a game.
-
-</p>
-<div><table>
-	<tr>
-		<th>Application class fields</th><th>Purpose</th>
-	</tr>
-	<tr>
-		<td>viewPort <br/>
-getViewPort()</td><td>The view object for the default camera. You can register advanced <a href="/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html">post-processor filters</a> here.</td>
+&#125;</pre><p>Let&#039;s have a look at the <acronym title="Application Programming Interface">API</acronym> of the base class.</p></div><h2><a>Application Class</a></h2><div><p>Internally, com.jme3.app.SimpleApplication extends com.jme3.app.Application. The Application class represents a generic real-time 3D rendering jME3 application (i.e., not necessarily a game). Typically, you do not extend com.jme3.app.Application directly to create a game.</p><div><table><tr><th>Application class fields</th><th>Purpose</th></tr><tr><td>viewPort <br/> getViewPort()</td><td>The view object for the default camera. You can register advanced <a href="/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html">post-processor filters</a> here.</td>
 	</tr>
 	<tr>
 		<td>settings <br/>

File diff suppressed because it is too large
+ 0 - 145
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/math.html


+ 7 - 82
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/simpleapplication_from_the_commandline.html

@@ -1,21 +1,4 @@
-
-<h1><a>Starting a JME3 application from the Commandline</a></h1>
-<div>
-
-<p>
-
-Although we recommend the jMonkeyEngine <a href="/com/jme3/gde/core/docs/sdk.html">SDK</a> for developing JME3 games, you can use any IDE (integrated development environment) such as <a href="/com/jme3/gde/core/docs/jme3/setting_up_netbeans_and_jme3.html">NetBeans</a> or <a href="/com/jme3/gde/core/docs/jme3/setting_up_jme3_in_eclipse.html">Eclipse</a>, and even work freely from the commandline. Here is a generic IDE-independent &quot;getting started&quot; tutorial. 
-</p>
-
-<p>
-This example shows how to set up and run a simple application (HelloJME3) that depends on the jMonkeyEngine3 libraries. 
-</p>
-
-<p>
-The directory structure will look as follows:
-
-</p>
-<pre>jme3/
+<h1><a>Starting a JME3 application from the Commandline</a></h1><div><p>Although we recommend the jMonkeyEngine <a href="/com/jme3/gde/core/docs/sdk.html">SDK</a> for developing JME3 games, you can use any IDE (integrated development environment) such as <a href="/com/jme3/gde/core/docs/jme3/setting_up_netbeans_and_jme3.html">NetBeans</a> or <a href="/com/jme3/gde/core/docs/jme3/setting_up_jme3_in_eclipse.html">Eclipse</a>, and even work freely from the commandline. Here is a generic IDE-independent &quot;getting started&quot; tutorial.</p><p>This example shows how to set up and run a simple application (HelloJME3) that depends on the jMonkeyEngine3 libraries.</p><p>The directory structure will look as follows:</p><pre>jme3/
 jme3/lib
 jme3/src
 ...
@@ -23,76 +6,18 @@ HelloJME3/
 HelloJME3/lib
 HelloJME3/assets
 HelloJME3/src
-...</pre>
-
-</div>
-
-<h2><a>Installing the JME3 Framework</a></h2>
-<div>
-
-<p>
-
-To install the development version of jme3, <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.jmonkeyengine.com/nightly/"><param name="text" value="<html><u>download the nightly build</u></html>"><param name="textColor" value="blue"></object>, unzip the folder into a directory named <code>jme3</code>. The filenames here are just an example, but they will always be something like <code>jME3_xx-xx-2011</code>. 
-</p>
-<pre>mkdir jme3
+...</pre></div><h2><a>Installing the JME3 Framework</a></h2><div><p>To install the development version of jme3, <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.jmonkeyengine.com/nightly/"><param name="text" value="<html><u>download the nightly build</u></html>"><param name="textColor" value="blue"></object>, unzip the folder into a directory named <code>jme3</code>. The filenames here are just an example, but they will always be something like <code>jME3_xx-xx-2011</code>.</p><pre>mkdir jme3
 cd jme3
-unzip jME3_01-18-2011.zip</pre>
-
-<p>
-Alternatively, you can build JME3 from the sources. (Recommended for JME3 developers.)
-</p>
-<pre>svn checkout https://jmonkeyengine.googlecode.com/svn/trunk/engine jme3
+unzip jME3_01-18-2011.zip</pre><p>Alternatively, you can build JME3 from the sources. (Recommended for JME3 developers.)</p><pre>svn checkout https://jmonkeyengine.googlecode.com/svn/trunk/engine jme3
 cd jme3
 ant run
-cd ..</pre>
-
-<p>
-If you see a Test Chooser open now, the build was successful. <strong>Tip:</strong> Use <code>ant</code> to build the libraries without running the demos.
-</p>
-
-</div>
-
-<h2><a>Sample Project Directory Structure</a></h2>
-<div>
-
-<p>
-
-First we set up the directory and source package structure for your game project. Note that the game project directory <code>HelloJME3</code> is on the same level as your <code>jme3</code> checkout. In this example, we create a Java package that we call <code>hello</code> in the source directory.
-</p>
-<pre>mkdir HelloJME3
+cd ..</pre><p>If you see a Test Chooser open now, the build was successful. <strong>Tip:</strong> Use <code>ant</code> to build the libraries without running the demos.</p></div><h2><a>Sample Project Directory Structure</a></h2><div><p>First we set up the directory and source package structure for your game project. Note that the game project directory <code>HelloJME3</code> is on the same level as your <code>jme3</code> checkout. In this example, we create a Java package that we call <code>hello</code> in the source directory.</p><pre>mkdir HelloJME3
 mkdir HelloJME3/src
-mkdir HelloJME3/src/hello</pre>
-
-</div>
-
-<h2><a>Libraries</a></h2>
-<div>
-
-<p>
-
-Next you copy the necessary JAR libraries from the download to your project. You only have to do this set of steps once every time you download a new JME3 build.
-</p>
-<pre>mkdir HelloJME3/build 
+mkdir HelloJME3/src/hello</pre></div><h2><a>Libraries</a></h2><div><p>Next you copy the necessary JAR libraries from the download to your project. You only have to do this set of steps once every time you download a new JME3 build.</p><pre>mkdir HelloJME3/build 
 mkdir HelloJME3/lib
-cp jme3/lib/*.* HelloJME3/lib</pre>
-
-<p>
-If you have built JME3 from the sources, then the copy paths are different:
-</p>
-<pre>mkdir HelloJME3/build 
+cp jme3/lib/*.* HelloJME3/lib</pre><p>If you have built JME3 from the sources, then the copy paths are different:</p><pre>mkdir HelloJME3/build 
 mkdir HelloJME3/lib
-cp jme3/dist/*.* HelloJME3/lib</pre>
-
-</div>
-
-<h3><a>Sample Code</a></h3>
-<div>
-
-<p>
-
-To test your setup, create the file <code>HelloJME3/src/hello/HelloJME3.java</code> with any text editor, paste the following sample code, and save.
-</p>
-<pre>package hello;
+cp jme3/dist/*.* HelloJME3/lib</pre></div><h3><a>Sample Code</a></h3><div><p>To test your setup, create the file <code>HelloJME3/src/hello/HelloJME3.java</code> with any text editor, paste the following sample code, and save.</p><pre>package hello;
 &nbsp;
 import com.jme3.app.SimpleApplication;
 import com.jme3.material.Material;

File diff suppressed because it is too large
+ 0 - 115
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/terminology.html


File diff suppressed because it is too large
+ 0 - 97
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/the_scene_graph.html


+ 5 - 94
jme3-core/javahelp/com/jme3/gde/core/docs/jme3/webstart.html

@@ -1,60 +1,4 @@
-
-<h1><a>WebStart (JNLP) Deployment</a></h1>
-<div>
-
-<p>
-
-When you <a href="/com/jme3/gde/core/docs/sdk/application_deployment.html">use the jMonkeyEngine SDK to deploy your application</a>, you can configure the project to build files required for WebStart automatically. If you use another IDE, or work on the command line, use the following tips to set up WebStart correctly:
-</p>
-
-</div>
-
-<h2><a>Problem Statement</a></h2>
-<div>
-
-<p>
-
-<strong>Problem:</strong>
-</p>
-
-<p>
-When running under WebStart, jMonkeyEngine may not have permission to extract the native libraries to the current directory. 
-</p>
-
-<p>
-<strong>Solution: </strong>
-</p>
-
-<p>
-You can instruct WebStart to load the native libraries itself using the JNLP file, and then instruct jME3 not to try to do so itself.
-</p>
-
-</div>
-
-<h2><a>Simple way</a></h2>
-<div>
-
-<p>
-
-You can import the LWJGL JNLP extension directly into your extension, however be aware that your application will break whenever they update their jars. Simply add this line to your JNLP:
-</p>
-<pre><span>&lt;extension name=&quot;lwjgl&quot; href=&quot;http://lwjgl.org/webstart/2.7.1/extension.jnlp&quot; /&gt;</span></pre>
-
-</div>
-
-<h2><a>Reliable way</a></h2>
-<div>
-
-</div>
-
-<h3><a>Native jars</a></h3>
-<div>
-
-<p>
-
-You can download the LWJGL native jars from their site, or to ensure you&#039;re using the exact same version as bundled with your jME3 release, make your own:
-</p>
-<pre>mkdir tmp
+<h1><a>WebStart (JNLP) Deployment</a></h1><div><p>When you <a href="/com/jme3/gde/core/docs/sdk/application_deployment.html">use the jMonkeyEngine SDK to deploy your application</a>, you can configure the project to build files required for WebStart automatically. If you use another IDE, or work on the command line, use the following tips to set up WebStart correctly:</p></div><h2><a>Problem Statement</a></h2><div><p><strong>Problem:</strong></p><p>When running under WebStart, jMonkeyEngine may not have permission to extract the native libraries to the current directory.</p><p><strong>Solution: </strong></p><p>You can instruct WebStart to load the native libraries itself using the JNLP file, and then instruct jME3 not to try to do so itself.</p></div><h2><a>Simple way</a></h2><div><p>You can import the LWJGL JNLP extension directly into your extension, however be aware that your application will break whenever they update their jars. Simply add this line to your JNLP:</p><pre><span>&lt;extension name=&quot;lwjgl&quot; href=&quot;http://lwjgl.org/webstart/2.7.1/extension.jnlp&quot; /&gt;</span></pre></div><h2><a>Reliable way</a></h2><div></div><h3><a>Native jars</a></h3><div><p>You can download the LWJGL native jars from their site, or to ensure you&#039;re using the exact same version as bundled with your jME3 release, make your own:</p><pre>mkdir tmp
 cd tmp
 jar xfv ../jME3-lwjgl-natives.jar
 cd native
@@ -62,12 +6,7 @@ for i in *; do
   cd $i
   jar cfv ../../native_$i.jar .
   cd ..
-done</pre>
-
-<p>
-For Windows:
-</p>
-<pre>@echo off
+done</pre><p>For Windows:</p><pre>@echo off
 md tmp
 cd tmp
 &quot;%JDK_HOME%\bin\jar&quot; -xfv ..\jME3-lwjgl-natives.jar
@@ -77,22 +16,7 @@ for /D %%i in (&quot;*&quot;) do (
   &quot;%JDK_HOME%\bin\jar&quot; -cfv ..\..\native_%%i%.jar .
   cd ..
 )
-cd ..</pre>
-
-<p>
-Remember to sign all the jar files and move them into the right place from the tmp directory.
-</p>
-
-</div>
-
-<h3><a>JNLP file</a></h3>
-<div>
-
-<p>
-
-Add the following to your JNLP file:
-</p>
-<pre>  <span>&lt;resources os=&quot;Windows&quot;&gt;</span>
+cd ..</pre><p>Remember to sign all the jar files and move them into the right place from the tmp directory.</p></div><h3><a>JNLP file</a></h3><div><p>Add the following to your JNLP file:</p><pre>  <span>&lt;resources os=&quot;Windows&quot;&gt;</span>
     <span>&lt;j2se version=&quot;1.4+&quot;/&gt;</span>
     <span>&lt;nativelib href=&quot;native_windows.jar&quot;/&gt;</span>
   <span><span>&lt;/resources&gt;</span></span>
@@ -107,22 +31,9 @@ Add the following to your JNLP file:
   <span>&lt;resources os=&quot;SunOS&quot; arch=&quot;x86&quot;&gt;</span>
     <span>&lt;j2se version=&quot;1.4+&quot;/&gt;</span>
     <span>&lt;nativelib href=&quot;native_solaris.jar&quot;/&gt;</span>
-  <span><span>&lt;/resources&gt;</span></span></pre>
-
-</div>
-
-<h3><a>Set low-permissions mode</a></h3>
-<div>
-
-<p>
-
-In your main() method, if running under WebStart, tell jME3 it is running in a low-permission environment so that it doesn&#039;t try to load the natives itself:
-</p>
-<pre>  public static void main&#40;String&#91;&#93; args&#41;
+  <span><span>&lt;/resources&gt;</span></span></pre></div><h3><a>Set low-permissions mode</a></h3><div><p>In your main() method, if running under WebStart, tell jME3 it is running in a low-permission environment so that it doesn&#039;t try to load the natives itself:</p><pre>  public static void main&#40;String&#91;&#93; args&#41;
   &#123;
       if &#40;System.getProperty&#40;&quot;javawebstart.version&quot;&#41; != null&#41; &#123;
         JmeSystem.setLowPermissions&#40;true&#41;;
-      &#125;</pre>
-
-</div>
+      &#125;</pre></div>
 <p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:webstart?do=export_xhtmlbody">view online version</a></em></p>

+ 1 - 45
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/application_deployment.html

@@ -1,48 +1,4 @@
-
-<h1><a>jMonkeyEngine SDK: Application Deployment</a></h1>
-<div>
-
-<p>
-
-After you have written and tested your game, you want to brand it and distribute it to your users. If you use the build script provided by the  jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>&#039;s BaseGame, you have the following deployment options:
-</p>
-<ul>
-<li><div> Desktop application (.JAR)</div>
-</li>
-<li><div> WebStart from <acronym title="Uniform Resource Locator">URL</acronym> (.JNLP + .JAR)</div>
-</li>
-<li><div> Applet in web browser (.JNLP + .JAR)</div>
-</li>
-<li><div> Android mobile device (.APK)</div>
-</li>
-</ul>
-
-</div>
-
-<h2><a>Requirements</a></h2>
-<div>
-
-<p>
-
-Since JAR files are platform independent, your customers can play your jMonkeyEngine application on Windows, Mac <acronym title="Operating System">OS</acronym>, or Linux. The only requirement is that the user has the free Java 5 or 6 Runtime (or browser plugin) installed. For more information see <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://java.com"><param name="text" value="<html><u>http://java.com</u></html>"><param name="textColor" value="blue"></object>.
-</p>
-
-</div>
-
-<h2><a>Branding</a></h2>
-<div>
-
-<p>
-
-<img src="nbdocs:/com/jme3/gde/core/docs/sdk/jmonkey-branding.png">
-Make your game unique and recognizable:
-</p>
-<ol>
-<li><div> Open your game project in the <acronym title="Software Development Kit">SDK</acronym>&#039;s Projects window.</div>
-</li>
-<li><div> Right-click the project and open the Properties</div>
-</li>
-<li><div> Open the Properties → Application section. Here you configure your branding:</div>
+<h1><a>jMonkeyEngine SDK: Application Deployment</a></h1><div><p>After you have written and tested your game, you want to brand it and distribute it to your users. If you use the build script provided by the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>&#039;s BaseGame, you have the following deployment options:</p><ul><li><div>Desktop application (.JAR)</div></li><li><div>WebStart from <acronym title="Uniform Resource Locator">URL</acronym> (.JNLP + .JAR)</div></li><li><div>Applet in web browser (.JNLP + .JAR)</div></li><li><div>Android mobile device (.APK)</div></li></ul></div><h2><a>Requirements</a></h2><div><p>Since JAR files are platform independent, your customers can play your jMonkeyEngine application on Windows, Mac <acronym title="Operating System">OS</acronym>, or Linux. The only requirement is that the user has the free Java 5 or 6 Runtime (or browser plugin) installed. For more information see <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://java.com"><param name="text" value="<html><u>http://java.com</u></html>"><param name="textColor" value="blue"></object>.</p></div><h2><a>Branding</a></h2><div><p><img src="nbdocs:/com/jme3/gde/core/docs/sdk/jmonkey-branding.png"> Make your game unique and recognizable:</p><ol><li><div>Open your game project in the <acronym title="Software Development Kit">SDK</acronym>&#039;s Projects window.</div></li><li><div>Right-click the project and open the Properties</div></li><li><div> Open the Properties → Application section. Here you configure your branding:</div>
 <ol>
 <li><div> Title: Enter the game&#039;s name</div>
 </li>

+ 1 - 24
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/asset_packs.html

@@ -1,27 +1,4 @@
-
-<h1><a>jMonkeyEngine SDK AssetPacks</a></h1>
-<div>
-
-<p>
-AssetPacks are a way to package jME3 compatible assets like models, textures, sounds and whole scenes into a package that contains publisher info, license info, descriptions etc. for all of the assets. An AssetPack basically consists of an <code>assetpack.xml</code> file that describes the content and an <code>assets</code> folder that contains the content. The integrated browser in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> allows you to add the assets of installed AssetPacks to any project you are doing. 
-</p>
-
-</div>
-
-<h2><a>The AssetPack Browser</a></h2>
-<div>
-
-<p>
-
-<img src="/wiki/lib/exe/fetch.php">
-</p>
-
-<p>
-The AssetPack browser in jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> makes browsing the installed AssetPacks easy. Browse categories, search for tags and find the right asset for your project. When you have found it, you can add it with one click to your current scene. The AssetPack manager will automagically copy all needed textures, sounds etc. to your projects assets folder.
-</p>
-
-<p>
-You can also browse a selection of online assetpacks that are available on jMonkeyEngine.org for download and install them to your jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>&#039;s AssetPack browser.
+<h1><a>jMonkeyEngine SDK AssetPacks</a></h1><div><p>AssetPacks are a way to package jME3 compatible assets like models, textures, sounds and whole scenes into a package that contains publisher info, license info, descriptions etc. for all of the assets. An AssetPack basically consists of an <code>assetpack.xml</code> file that describes the content and an <code>assets</code> folder that contains the content. The integrated browser in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> allows you to add the assets of installed AssetPacks to any project you are doing.</p></div><h2><a>The AssetPack Browser</a></h2><div><p><img src="/wiki/lib/exe/fetch.php"></p><p>The AssetPack browser in jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> makes browsing the installed AssetPacks easy. Browse categories, search for tags and find the right asset for your project. When you have found it, you can add it with one click to your current scene. The AssetPack manager will automagically copy all needed textures, sounds etc. to your projects assets folder.</p><p>You can also browse a selection of online assetpacks that are available on jMonkeyEngine.org for download and install them to your jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>&#039;s AssetPack browser.
 </p>
 
 <p>

+ 1 - 41
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/blender.html

@@ -1,44 +1,4 @@
-
-<h1><a>Blender importer for jMonkeyEngine 3</a></h1>
-<div>
-
-</div>
-
-<h2><a>Introduction</a></h2>
-<div>
-
-<p>
-Importing models to any game engine is as important as using them. The quality of the models depends on the abilities of the people who create it and on the tools they use.
-Blender is one of the best free tools for creating 3D enviroments. Its high amount of features attract many model designers.
-So far jMonkeyEngine used Ogre mesh files to import 3D data. These files were created by the python script that exported data from blender.
-It was important to have always the lates version of the script that is compatible with the version of blender and to use it before importing data to jme.
-Now we have an opportunity to simplify the import process by loading data directly from blender binary files: *.blend.
-</p>
-
-</div>
-
-<h2><a>Usage</a></h2>
-<div>
-
-<p>
-To use it in your game or the <acronym title="Software Development Kit">SDK</acronym> you should follow the standard asset loading instructions.
-By default a BlenderModelLoader is registered with your assetManager to load blend files. This means you can load and convert .blend model files to .j3o format, just like any other supported model format.
-</p>
-
-</div>
-
-<h2><a>Currently supported features</a></h2>
-<div>
-<ol>
-<li><div> Loading scene (only the current scene is loaded and imported as a node)</div>
-</li>
-<li><div> Loading mesh objects.</div>
-<ul>
-<li><div> Meshes are split into several geometries when they have several materials applied.</div>
-</li>
-<li><div> All faces are stored as triangles (even if blender uses quads).</div>
-</li>
-<li><div> The mesh is &#039;Smooth&#039; aware.</div>
+<h1><a>Blender importer for jMonkeyEngine 3</a></h1><div></div><h2><a>Introduction</a></h2><div><p>Importing models to any game engine is as important as using them. The quality of the models depends on the abilities of the people who create it and on the tools they use. Blender is one of the best free tools for creating 3D enviroments. Its high amount of features attract many model designers. So far jMonkeyEngine used Ogre mesh files to import 3D data. These files were created by the python script that exported data from blender. It was important to have always the lates version of the script that is compatible with the version of blender and to use it before importing data to jme. Now we have an opportunity to simplify the import process by loading data directly from blender binary files: *.blend.</p></div><h2><a>Usage</a></h2><div><p>To use it in your game or the <acronym title="Software Development Kit">SDK</acronym> you should follow the standard asset loading instructions. By default a BlenderModelLoader is registered with your assetManager to load blend files. This means you can load and convert .blend model files to .j3o format, just like any other supported model format.</p></div><h2><a>Currently supported features</a></h2><div><ol><li><div>Loading scene (only the current scene is loaded and imported as a node)</div></li><li><div>Loading mesh objects.</div><ul><li><div>Meshes are split into several geometries when they have several materials applied.</div></li><li><div>All faces are stored as triangles (even if blender uses quads).</div></li><li><div>The mesh is &#039;Smooth&#039; aware.</div>
 </li>
 <li><div> User defined UV coordinates are read.</div>
 </li>

File diff suppressed because it is too large
+ 0 - 91
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/code_editor.html


+ 1 - 37
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/debugging_profiling_testing.html

@@ -1,40 +1,4 @@
-
-<h1><a>jMonkeyEngine SDK: Debugging, Profiling, Testing</a></h1>
-<div>
-
-<p>
-
-Debugging, testing and profiling are important parts of the development cycle. This documentation shows you how to make the most of the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>&#039;s assistive features.
-</p>
-
-<p>
-<strong>Note:</strong> Since the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> is based on the NetBeans Platform framework, you can learn about certain jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> features by reading the corresponding NetBeans IDE tutorials (in the &quot;see also links&quot;). 
-</p>
-
-</div>
-
-<h2><a>Testing</a></h2>
-<div>
-
-<p>
-
-The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> supports the JUnit testing framework. It is a good practice to write tests (assertions) for each of your classes. Each test makes certain this &quot;unit&quot; (e.g. method) meets its design and behaves as intended. Run your tests after each major change and you immediately see if you broke something.
-</p>
-
-</div>
-
-<h4><a>Creating Tests</a></h4>
-<div>
-<ol>
-<li><div> Right-click a Java file in the Projects window and choose Tools &gt; Create JUnit Tests.</div>
-</li>
-<li><div> Click OK. The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> creates a JUnit test skeleton in the Test Package directory.</div>
-</li>
-<li><div> The body of each generated test method is provided solely as a guide. In their place, you need to write your actual test cases!</div>
-</li>
-<li><div> You can use tests such as <code>assertTrue(), assertFalse(), assertEquals()</code>, or <code>assert()</code>.</div>
-<ul>
-<li><div> The following example assertions test an addition method: <code>assert( add(1, 1) == 2); assertTrue( add(7,-5) == add(-5,7) )…</code></div>
+<h1><a>jMonkeyEngine SDK: Debugging, Profiling, Testing</a></h1><div><p>Debugging, testing and profiling are important parts of the development cycle. This documentation shows you how to make the most of the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>&#039;s assistive features.</p><p><strong>Note:</strong> Since the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> is based on the NetBeans Platform framework, you can learn about certain jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> features by reading the corresponding NetBeans IDE tutorials (in the &quot;see also links&quot;).</p></div><h2><a>Testing</a></h2><div><p>The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> supports the JUnit testing framework. It is a good practice to write tests (assertions) for each of your classes. Each test makes certain this &quot;unit&quot; (e.g. method) meets its design and behaves as intended. Run your tests after each major change and you immediately see if you broke something.</p></div><h4><a>Creating Tests</a></h4><div><ol><li><div>Right-click a Java file in the Projects window and choose Tools &gt; Create JUnit Tests.</div></li><li><div>Click OK. The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> creates a JUnit test skeleton in the Test Package directory.</div></li><li><div>The body of each generated test method is provided solely as a guide. In their place, you need to write your actual test cases!</div></li><li><div>You can use tests such as <code>assertTrue(), assertFalse(), assertEquals()</code>, or <code>assert()</code>.</div><ul><li><div> The following example assertions test an addition method: <code>assert( add(1, 1) == 2); assertTrue( add(7,-5) == add(-5,7) )…</code></div>
 </li>
 </ul>
 </li>

File diff suppressed because it is too large
+ 0 - 59
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development.html


+ 1 - 29
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development/model_loader.html

@@ -1,30 +1,2 @@
-
-<h1><a>Creating a model importer</a></h1>
-<div>
-<ol>
-<li><div> Create plugin</div>
-</li>
-<li><div> Add importer jar file (wrap jar file)</div>
-</li>
-<li><div> Add filetype (Template)</div>
-</li>
-<li><div> Change DataObject to extend SpatialAssetDataObject</div>
-</li>
-<li><div> Implement loadAsset method in DataObject (if necessary, most model formats should load normally via the loader)</div>
-</li>
-<li><div> Create AssetManagerConfigurator \</div>
-</li>
-</ol>
-
-<p>
-See also:
-</p>
-<ul>
-<li><div> <a href="/com/jme3/gde/core/docs/sdk/development/projects_assets.html">Projects and Assets</a></div>
-</li>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://platform.netbeans.org/tutorials/nbm-filetype.html"><param name="text" value="<html><u>http://platform.netbeans.org/tutorials/nbm-filetype.html</u></html>"><param name="textColor" value="blue"></object></div>
-</li>
-</ul>
-
-</div>
+<h1><a>Creating a model importer</a></h1><div><ol><li><div>Create plugin</div></li><li><div>Add importer jar file (wrap jar file)</div></li><li><div>Add filetype (Template)</div></li><li><div>Change DataObject to extend SpatialAssetDataObject</div></li><li><div>Implement loadAsset method in DataObject (if necessary, most model formats should load normally via the loader)</div></li><li><div>Create AssetManagerConfigurator \</div></li></ol><p>See also:</p><ul><li><div><a href="/com/jme3/gde/core/docs/sdk/development/projects_assets.html">Projects and Assets</a></div></li><li><div><object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://platform.netbeans.org/tutorials/nbm-filetype.html"><param name="text" value="<html><u>http://platform.netbeans.org/tutorials/nbm-filetype.html</u></html>"><param name="textColor" value="blue"></object></div></li></ul></div>
 <p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:model_loader?do=export_xhtmlbody">view online version</a></em></p>

+ 1 - 42
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development/projects_assets.html

@@ -1,45 +1,4 @@
-
-<h1><a>Projects and Assets</a></h1>
-<div>
-
-<p>
-The <acronym title="Software Development Kit">SDK</acronym> heavily uses the systems provided by the base platform for the handling of assets and projects and extends the system with jME3 specific features.
-
-</p>
-
-</div>
-
-<h2><a>ProjectAssetManager</a></h2>
-<div>
-
-<p>
-All AssetDataObjects and SceneExplorerNodes allow access to the ProjectAssetManager of the project they were loaded from.
-
-</p>
-<pre>ProjectAssetManager pm = node.getLookup&#40;&#41;.lookup&#40;ProjectAssetManager.class&#41;</pre>
-
-<p>
-
-The ProjectAssetManager is basically a normal DesktopAssetManager for each project with some added functionality:
-</p>
-<ul>
-<li><div> Access to the FileObject of the assets folder of the project to load and save data</div>
-</li>
-<li><div> Convert absolute file paths to relative asset paths and vice versa</div>
-</li>
-<li><div> Get lists of all textures, materials etc. in the project</div>
-</li>
-<li><div> more convenient stuff.. :)</div>
-</li>
-</ul>
-
-</div>
-
-<h2><a>AssetDataObject</a></h2>
-<div>
-
-<p>
-Most &quot;files&quot; that you encounter in the <acronym title="Software Development Kit">SDK</acronym> come in the form of AssetDataObjects. All Nodes that you encounter contain the AssetDataObject they were loaded from. It provides not just access to the FileObject of the specific file but also an AssetData object that allows access to jME specific properties and data. The AssetData object also allows loading the object via the jME3 assetManager. It is accessible via the lookup of the Node or AssetDataObject:
+<h1><a>Projects and Assets</a></h1><div><p>The <acronym title="Software Development Kit">SDK</acronym> heavily uses the systems provided by the base platform for the handling of assets and projects and extends the system with jME3 specific features.</p></div><h2><a>ProjectAssetManager</a></h2><div><p>All AssetDataObjects and SceneExplorerNodes allow access to the ProjectAssetManager of the project they were loaded from.</p><pre>ProjectAssetManager pm = node.getLookup&#40;&#41;.lookup&#40;ProjectAssetManager.class&#41;</pre><p>The ProjectAssetManager is basically a normal DesktopAssetManager for each project with some added functionality:</p><ul><li><div>Access to the FileObject of the assets folder of the project to load and save data</div></li><li><div>Convert absolute file paths to relative asset paths and vice versa</div></li><li><div>Get lists of all textures, materials etc. in the project</div></li><li><div>more convenient stuff.. :)</div></li></ul></div><h2><a>AssetDataObject</a></h2><div><p>Most &quot;files&quot; that you encounter in the <acronym title="Software Development Kit">SDK</acronym> come in the form of AssetDataObjects. All Nodes that you encounter contain the AssetDataObject they were loaded from. It provides not just access to the FileObject of the specific file but also an AssetData object that allows access to jME specific properties and data. The AssetData object also allows loading the object via the jME3 assetManager. It is accessible via the lookup of the Node or AssetDataObject:
 
 </p>
 <pre>assetDataObject.getLookup&#40;&#41;.lookup&#40;AssetData.class&#41;</pre>

+ 6 - 90
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development/scene.html

@@ -1,42 +1,4 @@
-
-<h1><a>jMonkeyEngine SDK -- The Scene</a></h1>
-<div>
-
-<p>
-
-To reduce system overhead the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> Core supplies one scene/jme3 application that is shared between plugins. Furthermore there&#039;s the &quot;SceneExplorer&quot; that shows a visual representation of the scenegraph and its objects properties across plugins.
-</p>
-
-</div>
-
-<h2><a>How to access the Scene</a></h2>
-<div>
-
-<p>
-
-There are several ways for your plugin to interact with the Scene:
-</p>
-<ul>
-<li><div> It listens for selected spatials / objects and offers options for those</div>
-</li>
-<li><div> It requests the whole scene for itself and loads/arranges the content in it (e.g. a terrain editor or model animation plugin).</div>
-</li>
-</ul>
-
-</div>
-
-<h2><a>Listening for Node selection</a></h2>
-<div>
-
-<p>
-
-In the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>, all objects are wrapped into NetBeans &quot;Nodes&quot; (different thing than jme Nodes!). Such nodes can have properties and icons and can be displayed and selected in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> UI. The SceneExplorer shows a tree of Nodes that wrap the Spatials of the current scene and allows manipulating their properties on selection. A jME &quot;Spatial&quot; is wrapped by a &quot;JmeSpatial&quot; node, for example. One advantage of these Nodes is that one can manipulate properties of Spatials directly from the AWT thread.
-</p>
-
-<p>
-To listen to the current selection, implement org.openide.util.LookupListener and register like this:
-</p>
-<pre>private final Result&lt;JmeSpatial&gt; result;
+<h1><a>jMonkeyEngine SDK -- The Scene</a></h1><div><p>To reduce system overhead the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> Core supplies one scene/jme3 application that is shared between plugins. Furthermore there&#039;s the &quot;SceneExplorer&quot; that shows a visual representation of the scenegraph and its objects properties across plugins.</p></div><h2><a>How to access the Scene</a></h2><div><p>There are several ways for your plugin to interact with the Scene:</p><ul><li><div>It listens for selected spatials / objects and offers options for those</div></li><li><div>It requests the whole scene for itself and loads/arranges the content in it (e.g. a terrain editor or model animation plugin).</div></li></ul></div><h2><a>Listening for Node selection</a></h2><div><p>In the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>, all objects are wrapped into NetBeans &quot;Nodes&quot; (different thing than jme Nodes!). Such nodes can have properties and icons and can be displayed and selected in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> UI. The SceneExplorer shows a tree of Nodes that wrap the Spatials of the current scene and allows manipulating their properties on selection. A jME &quot;Spatial&quot; is wrapped by a &quot;JmeSpatial&quot; node, for example. One advantage of these Nodes is that one can manipulate properties of Spatials directly from the AWT thread.</p><p>To listen to the current selection, implement org.openide.util.LookupListener and register like this:</p><pre>private final Result&lt;JmeSpatial&gt; result;
 &nbsp;
 //method to register the listener;
 private void registerListener&#40;&#41;&#123;
@@ -52,12 +14,7 @@ public void resultChanged&#40;LookupEvent ev&#41; &#123;
         spatial.getPropertySets&#40;&#41;&#91;0&#93;.setValue&#40;&quot;Local Translation&quot;, Vector3f.ZERO&#41;;
         return;
     &#125;
-&#125;</pre>
-
-<p>
-You can also access the &quot;real&quot; spatial but since its part of the scenegraph you will have to modify it on that thread:
-</p>
-<pre>//retrieve the &quot;real&quot; spatial class from the JmeNode
+&#125;</pre><p>You can also access the &quot;real&quot; spatial but since its part of the scenegraph you will have to modify it on that thread:</p><pre>//retrieve the &quot;real&quot; spatial class from the JmeNode
 for &#40;JmeSpatial jmeSpatial : items&#41; &#123;
     //the spatial is stored inside the JmeSpatials &quot;Lookup&quot;, a general container for Objects
     final Spatial realSpatial = jmeSpatial.getLookup&#40;&#41;.lookup&#40;Spatial.class&#41;;
@@ -69,24 +26,7 @@ for &#40;JmeSpatial jmeSpatial : items&#41; &#123;
         &#125;
     &#125;&#41;;
     return;
-&#125;</pre>
-
-</div>
-
-<h2><a>Requesting the Scene</a></h2>
-<div>
-
-<p>
-
-If your plugin wants to use the scene by itself, it first has to implement SceneListener and register at the scene and then send a SceneRequest to the SceneApplication. When the SceneRequest has been approved and the current Scene has been closed, the SceneListener (your class) is called with its own SceneRequest as a parameter. When another plugin sends a SceneRequest it is also reported to you and its a hint that your RootNode has been removed from the Scene and you are no longer in control of it. You could also hook into the SceneRequests of other plugins to see if/when they are activated to display add-on plugins for that plugin.
-</p>
-
-<p>
-<br/>
-
-The SceneRequest object has to contain several things. A thing that you must supply is a jme &quot;Node&quot; wrapped into a &quot;JmeNode&quot; object. This is your rootNode that you use to display and build your scene. As soon as you control the scene, you will have to control the camera etc. yourself.
-</p>
-<pre>com.jme3.scene.Node rootNode = new com.jme3.scene.Node&#40;&quot;MyRootNode&quot;&#41;;
+&#125;</pre></div><h2><a>Requesting the Scene</a></h2><div><p>If your plugin wants to use the scene by itself, it first has to implement SceneListener and register at the scene and then send a SceneRequest to the SceneApplication. When the SceneRequest has been approved and the current Scene has been closed, the SceneListener (your class) is called with its own SceneRequest as a parameter. When another plugin sends a SceneRequest it is also reported to you and its a hint that your RootNode has been removed from the Scene and you are no longer in control of it. You could also hook into the SceneRequests of other plugins to see if/when they are activated to display add-on plugins for that plugin.</p><p><br/> The SceneRequest object has to contain several things. A thing that you must supply is a jme &quot;Node&quot; wrapped into a &quot;JmeNode&quot; object. This is your rootNode that you use to display and build your scene. As soon as you control the scene, you will have to control the camera etc. yourself.</p><pre>com.jme3.scene.Node rootNode = new com.jme3.scene.Node&#40;&quot;MyRootNode&quot;&#41;;
 &nbsp;
 private void registerSceneListener&#40;&#41;&#123;
     SceneApplication.getApplication&#40;&#41;.addSceneListener&#40;this&#41;;
@@ -113,27 +53,10 @@ public void sceneClosed&#40;SceneRequest request&#41; &#123;
     if &#40;request.getRequester&#40;&#41; == this&#41; &#123;
         //we have to close the scene,  any operations on the scene have to be done via Callables
     &#125;
-&#125;</pre>
-
-</div>
-
-<h2><a>Undo/Redo support</a></h2>
-<div>
-
-<p>
-The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> has a global undo/redo queue that activates the undo/redo buttons. To use it in your TopComponent, add the following method:
-
-</p>
-<pre>@Override 
+&#125;</pre></div><h2><a>Undo/Redo support</a></h2><div><p>The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> has a global undo/redo queue that activates the undo/redo buttons. To use it in your TopComponent, add the following method:</p><pre>@Override 
 public UndoRedo getUndoRedo&#40;&#41; &#123; 
 return Lookup.getDefault&#40;&#41;.lookup&#40;SceneUndoRedoManager.class&#41;; 
-&#125; </pre>
-
-<p>
-To add a undo/redo event that modifies objects on the Scenegraph, theres a special version of AbstractUndoableEdit which executes the undo/redo calls on the scene thread. Simply implement that class and add it to the queue like this:
-
-</p>
-<pre>Lookup.getDefault&#40;&#41;.lookup&#40;SceneUndoRedoManager.class&#41;.addEdit&#40;this, new AbstractUndoableSceneEdit&#40;&#41; &#123; 
+&#125; </pre><p>To add a undo/redo event that modifies objects on the Scenegraph, theres a special version of AbstractUndoableEdit which executes the undo/redo calls on the scene thread. Simply implement that class and add it to the queue like this:</p><pre>Lookup.getDefault&#40;&#41;.lookup&#40;SceneUndoRedoManager.class&#41;.addEdit&#40;this, new AbstractUndoableSceneEdit&#40;&#41; &#123; 
 &nbsp;
 @Override 
 public void sceneUndo&#40;&#41; &#123; 
@@ -154,12 +77,5 @@ public void awtUndo&#40;&#41; &#123;
 public void awtRedo&#40;&#41; &#123; 
     //redo stuff on awt thread here
 &#125; 
-&#125;&#41;;</pre>
-
-<p>
-Note: Its important that you use the method addEdit(Object source, UndoableEdit edit);
-
-</p>
-
-</div>
+&#125;&#41;;</pre><p>Note: Its important that you use the method addEdit(Object source, UndoableEdit edit);</p></div>
 <p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:scene?do=export_xhtmlbody">view online version</a></em></p>

+ 5 - 80
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/development/sceneexplorer.html

@@ -1,44 +1,4 @@
-
-<h1><a>The SceneExplorer</a></h1>
-<div>
-
-</div>
-
-<h2><a>Adding Node types to SceneExplorer</a></h2>
-<div>
-
-<p>
-
-If your plugin brings in its own SceneGraph objects you can still have them work like any other SceneExplorer item, including its special properties.
-</p>
-
-<p>
-You will have to create your own class that extends org.openide.nodes.Node and implement the interface com.jme3.gde.core.sceneexplorer.nodes.SceneExplorerNode. Then you register that class by adding 
-</p>
-<pre>@org.openide.util.lookup.ServiceProvider(service=SceneExplorerNode.class)</pre>
-
-<p>
- above the body of your class. Thats all, your Spatial type will automatically be used and displayed in the SceneExplorer. Make sure you register a jar with the used classes in the plugin preferences under &quot;wrapped libraries&quot;, otherwise the IDE cannot access those classes.
-</p>
-
-<p>
-Theres also AbstractSceneExplorerNode which brings some other useful features you might want to include like automatic creation of properly threaded properties etc. JmeSpatial for example bases on it. A simple SceneExplorerNode example for an object extending Spatial would be JmeGeometry (see below). Editors for special variable types can be added using the SceneExplorerPropertyEditor interface, which can be registered as a ServiceProvider as well.
-</p>
-
-<p>
-The SceneExplorerNode can be used for Spatial and Control type objects.
-
-</p>
-<ul>
-<li><div><em>Add the &quot;Nodes <acronym title="Application Programming Interface">API</acronym>&quot; and &quot;Lookup <acronym title="Application Programming Interface">API</acronym>&quot; libraries to your project when you want to use this</em></div>
-</li>
-</ul>
-
-</div>
-
-<h3><a>Spatial Example</a></h3>
-<div>
-<pre>@org.openide.util.lookup.ServiceProvider&#40;service=SceneExplorerNode.class&#41;
+<h1><a>The SceneExplorer</a></h1><div></div><h2><a>Adding Node types to SceneExplorer</a></h2><div><p>If your plugin brings in its own SceneGraph objects you can still have them work like any other SceneExplorer item, including its special properties.</p><p>You will have to create your own class that extends org.openide.nodes.Node and implement the interface com.jme3.gde.core.sceneexplorer.nodes.SceneExplorerNode. Then you register that class by adding</p><pre>@org.openide.util.lookup.ServiceProvider(service=SceneExplorerNode.class)</pre><p>above the body of your class. Thats all, your Spatial type will automatically be used and displayed in the SceneExplorer. Make sure you register a jar with the used classes in the plugin preferences under &quot;wrapped libraries&quot;, otherwise the IDE cannot access those classes.</p><p>Theres also AbstractSceneExplorerNode which brings some other useful features you might want to include like automatic creation of properly threaded properties etc. JmeSpatial for example bases on it. A simple SceneExplorerNode example for an object extending Spatial would be JmeGeometry (see below). Editors for special variable types can be added using the SceneExplorerPropertyEditor interface, which can be registered as a ServiceProvider as well.</p><p>The SceneExplorerNode can be used for Spatial and Control type objects.</p><ul><li><div><em>Add the &quot;Nodes <acronym title="Application Programming Interface">API</acronym>&quot; and &quot;Lookup <acronym title="Application Programming Interface">API</acronym>&quot; libraries to your project when you want to use this</em></div></li></ul></div><h3><a>Spatial Example</a></h3><div><pre>@org.openide.util.lookup.ServiceProvider&#40;service=SceneExplorerNode.class&#41;
 public class JmeGeometry extends JmeSpatial &#123;
 &nbsp;
     private static Image smallImage =
@@ -98,13 +58,7 @@ public class JmeGeometry extends JmeSpatial &#123;
         children.setReadOnly&#40;readOnly&#41;;
         return new org.openide.nodes.Node&#91;&#93;&#123;new JmeGeometry&#40;&#40;Geometry&#41; key, children&#41;.setReadOnly&#40;readOnly&#41;&#125;;
     &#125;
-&#125;</pre>
-
-</div>
-
-<h3><a>Control Example</a></h3>
-<div>
-<pre>@org.openide.util.lookup.ServiceProvider&#40;service=SceneExplorerNode.class&#41;
+&#125;</pre></div><h3><a>Control Example</a></h3><div><pre>@org.openide.util.lookup.ServiceProvider&#40;service=SceneExplorerNode.class&#41;
 public class JmeGhostControl extends AbstractSceneExplorerNode &#123;
 &nbsp;
     private static Image smallImage =
@@ -200,26 +154,7 @@ public class JmeGhostControl extends AbstractSceneExplorerNode &#123;
     public org.openide.nodes.Node&#91;&#93; createNodes&#40;Object key, DataObject key2, boolean cookie&#41; &#123;
         return new org.openide.nodes.Node&#91;&#93;&#123;new JmeGhostControl&#40;&#40;GhostControl&#41; key, key2&#41;.setReadOnly&#40;cookie&#41;&#125;;
     &#125;
-&#125;</pre>
-
-</div>
-
-<h2><a>Adding items to the add and tools menus</a></h2>
-<div>
-
-<p>
-For adding Spatials, Contols and for general tools theres premade abstract classes that you can use to extend the options. Undo/Redo is handled by the abstract class. AbstractNewSpatial<strong>Wizard</strong>Action allows you to show an AWT wizard before creating the Spatial. You can also just implement the base ServiceProvider class and return any kind of action (such as a wizard), in this case you have to handle the threading yourself!
-</p>
-
-<p>
-<p><div>Note that the classes you create are singletons which are used across multiple nodes and you should not store any data in local variables!
-</div></p>
-</p>
-
-<p>
-To add a new Tool, create a new AbstractToolAction:
-</p>
-<pre>@org.openide.util.lookup.ServiceProvider&#40;service = ToolAction.class&#41;
+&#125;</pre></div><h2><a>Adding items to the add and tools menus</a></h2><div><p>For adding Spatials, Contols and for general tools theres premade abstract classes that you can use to extend the options. Undo/Redo is handled by the abstract class. AbstractNewSpatial<strong>Wizard</strong>Action allows you to show an AWT wizard before creating the Spatial. You can also just implement the base ServiceProvider class and return any kind of action (such as a wizard), in this case you have to handle the threading yourself!</p><p><p><div>Note that the classes you create are singletons which are used across multiple nodes and you should not store any data in local variables! </div></p></p><p>To add a new Tool, create a new AbstractToolAction:</p><pre>@org.openide.util.lookup.ServiceProvider&#40;service = ToolAction.class&#41;
 public class GenerateTangentsTool extends AbstractToolAction &#123;
 &nbsp;
     public GenerateTangentsTool&#40;&#41; &#123;
@@ -249,12 +184,7 @@ public class GenerateTangentsTool extends AbstractToolAction &#123;
         return JmeGeometry.class;
     &#125;
 &nbsp;
-&#125;</pre>
-
-<p>
-For a new Spatial or Control, use AbstractNewSpatialAction
-</p>
-<pre>@org.openide.util.lookup.ServiceProvider&#40;service = NewSpatialAction.class&#41;
+&#125;</pre><p>For a new Spatial or Control, use AbstractNewSpatialAction</p><pre>@org.openide.util.lookup.ServiceProvider&#40;service = NewSpatialAction.class&#41;
 public class NewSpecialSpatialAction extends AbstractNewSpatialAction &#123;
 &nbsp;
     public NewSpecialSpatialAction&#40;&#41; &#123;
@@ -266,12 +196,7 @@ public class NewSpecialSpatialAction extends AbstractNewSpatialAction &#123;
         Spatial spatial=new Node&#40;&#41;;
         return spatial;
     &#125;
-&#125;</pre>
-
-<p>
-or AbstractNewControlAction:
-</p>
-<pre>@org.openide.util.lookup.ServiceProvider&#40;service = NewControlAction.class&#41;
+&#125;</pre><p>or AbstractNewControlAction:</p><pre>@org.openide.util.lookup.ServiceProvider&#40;service = NewControlAction.class&#41;
 public class NewRigidBodyAction extends AbstractNewControlAction &#123;
 &nbsp;
     public NewRigidBodyAction&#40;&#41; &#123;

+ 1 - 34
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/material_editing.html

@@ -1,37 +1,4 @@
-
-<h1><a>The Material Editor</a></h1>
-<div>
-
-<p>
-
-If you are looking for background information, read about <a href="/com/jme3/gde/core/docs/jme3/advanced/material_definitions.html">Material Definitions</a> and <a href="/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html">j3M Material Files</a>. 
-You can <a href="/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html">write .j3m files in a text editor</a>, or <span><a href="/com/jme3/gde/core/docs/sdk/material_editing.html">use the jMonkeyEngine SDK to generate</a></span> them for you as described in this article.
-</p>
-
-</div>
-
-<h2><a>Materials</a></h2>
-<div>
-
-<p>
-
-The jMonkeyEngine uses a special Material format, which comes in .j3m files. You use .j3m files to store sets of material properties that you use repeatedly. This enables you write one short line of code that simply loads the presets from a custom .j3m file. Without a .j3m file you need to write several lines of material property setters every time when you want to use a non-default material. 
-</p>
-
-</div>
-
-<h2><a>Creating .j3m Materials</a></h2>
-<div>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/core/docs/sdk/material-editor.png">
-</p>
-
-<p>
-To create new .j3m files in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>,
-</p>
-<ol>
-<li><div> Right-click the <code>assets/Materials</code> directory and choose New… &gt; Other.</div>
+<h1><a>The Material Editor</a></h1><div><p>If you are looking for background information, read about <a href="/com/jme3/gde/core/docs/jme3/advanced/material_definitions.html">Material Definitions</a> and <a href="/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html">j3M Material Files</a>. You can <a href="/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html">write .j3m files in a text editor</a>, or <span><a href="/com/jme3/gde/core/docs/sdk/material_editing.html">use the jMonkeyEngine SDK to generate</a></span> them for you as described in this article.</p></div><h2><a>Materials</a></h2><div><p>The jMonkeyEngine uses a special Material format, which comes in .j3m files. You use .j3m files to store sets of material properties that you use repeatedly. This enables you write one short line of code that simply loads the presets from a custom .j3m file. Without a .j3m file you need to write several lines of material property setters every time when you want to use a non-default material.</p></div><h2><a>Creating .j3m Materials</a></h2><div><p><img src="nbdocs:/com/jme3/gde/core/docs/sdk/material-editor.png"></p><p>To create new .j3m files in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>,</p><ol><li><div>Right-click the <code>assets/Materials</code> directory and choose New… &gt; Other.</div>
 </li>
 <li><div> In the New File Wizard, choose Material &gt; Empty Material File, and click Next.</div>
 </li>

+ 1 - 46
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/project_creation.html

@@ -1,49 +1,4 @@
-
-<h1><a>jMonkeyEngine SDK: Creating Projects</a></h1>
-<div>
-
-<p>
-
-The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> makes it easy to get started with developing 3-D games based on the jMonkeyEngine.
-</p>
-
-</div>
-
-<h2><a>Creating a New jMonkeyEngine Project</a></h2>
-<div>
-<ol>
-<li><div> Choose File &gt; New Project from the main menu.</div>
-</li>
-<li><div> In the New Project Wizard, select the template JME3 &gt; Basic Game</div>
-</li>
-<li><div> Click next to specify a project name, and the path where to store your new project.</div>
-</li>
-<li><div> Click Finish. A skeleton application is created and opens in the Project Explorer.</div>
-<ul>
-<li><div> This basic jme3 application is based on the SimpleApplication class to allow an easy start with jme3.</div>
-</li>
-<li><div> You can click the run button to run it: You will see a jMonkey cube.</div>
-</li>
-</ul>
-</li>
-</ol>
-
-</div>
-
-<h4><a>Project Structure</a></h4>
-<div>
-
-<p>
-
-<img src="nbdocs:/com/jme3/gde/core/docs/sdk/jmonkeyplatform-docu-4.png">
-</p>
-
-<p>
-Let&#039;s have a look at the abstract project structure in the Project Explorer (ctrl-1).
-
-</p>
-<ul>
-<li><div> <strong>Project Assets node:</strong> These directories have been created for you to store your games assets, such as fonts, materials, models, shaders, sounds, and textures. For a newly created project, these directories are empty.</div>
+<h1><a>jMonkeyEngine SDK: Creating Projects</a></h1><div><p>The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> makes it easy to get started with developing 3-D games based on the jMonkeyEngine.</p></div><h2><a>Creating a New jMonkeyEngine Project</a></h2><div><ol><li><div>Choose File &gt; New Project from the main menu.</div></li><li><div>In the New Project Wizard, select the template JME3 &gt; Basic Game</div></li><li><div>Click next to specify a project name, and the path where to store your new project.</div></li><li><div>Click Finish. A skeleton application is created and opens in the Project Explorer.</div><ul><li><div>This basic jme3 application is based on the SimpleApplication class to allow an easy start with jme3.</div></li><li><div>You can click the run button to run it: You will see a jMonkey cube.</div></li></ul></li></ol></div><h4><a>Project Structure</a></h4><div><p><img src="nbdocs:/com/jme3/gde/core/docs/sdk/jmonkeyplatform-docu-4.png"></p><p>Let&#039;s have a look at the abstract project structure in the Project Explorer (ctrl-1).</p><ul><li><div><strong>Project Assets node:</strong> These directories have been created for you to store your games assets, such as fonts, materials, models, shaders, sounds, and textures. For a newly created project, these directories are empty.</div>
 </li>
 <li><div> <strong>Source Packages node:</strong> This is where you manage your packages and classes. For a newly created project, it contains one package and one class, <code>Main.java</code>. Double click <code>Main.java</code> to open it in the editor.</div>
 </li>

+ 1 - 33
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/terrain_editor.html

@@ -1,36 +1,4 @@
-
-<h1><a>Overview</a></h1>
-<div>
-
-<p>
-The terrain editor lets you create, modify, and paint terrain.
-<img src="/wiki/lib/exe/fetch.php">
-</p>
-
-</div>
-
-<h2><a>Controls</a></h2>
-<div>
-
-<p>
-Terrain controls are the same as the Scene Composer, you rotate the camera with the left mouse button and pan the camera with the right mouse button. Until you select one of the terrain tools in the toolbar, then the controls change for that tool. Then left mouse button will use that tool: painting, raising/lowering terrain, etc. The right mouse button might do something, depending on the tool.
-</p>
-
-</div>
-
-<h2><a>Creating Terrain</a></h2>
-<div>
-
-<p>
-To create terrain, first select a node (probably your root node) in your scene.<br/>
-
-<img src="nbdocs:/com/jme3/gde/core/docs/sdk/sdk-terrain-tut-selectnode.png"><br/>
-
-Then click the add terrain button.<br/>
-
-<img src="nbdocs:/com/jme3/gde/core/docs/sdk/sdk-terrain-tut-addterrain.png"><br/>
-
-This will pop up the Create Terrain wizard that will walk you through the steps for creating terrain. Make sure you decide now how large you want your terrain to be and how detailed you want the textures to be as you cannot change it later on!
+<h1><a>Overview</a></h1><div><p>The terrain editor lets you create, modify, and paint terrain. <img src="/wiki/lib/exe/fetch.php"></p></div><h2><a>Controls</a></h2><div><p>Terrain controls are the same as the Scene Composer, you rotate the camera with the left mouse button and pan the camera with the right mouse button. Until you select one of the terrain tools in the toolbar, then the controls change for that tool. Then left mouse button will use that tool: painting, raising/lowering terrain, etc. The right mouse button might do something, depending on the tool.</p></div><h2><a>Creating Terrain</a></h2><div><p>To create terrain, first select a node (probably your root node) in your scene.<br/> <img src="nbdocs:/com/jme3/gde/core/docs/sdk/sdk-terrain-tut-selectnode.png"><br/> Then click the add terrain button.<br/> <img src="nbdocs:/com/jme3/gde/core/docs/sdk/sdk-terrain-tut-addterrain.png"><br/> This will pop up the Create Terrain wizard that will walk you through the steps for creating terrain. Make sure you decide now how large you want your terrain to be and how detailed you want the textures to be as you cannot change it later on!
 </p>
 
 <p>

+ 1 - 30
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/troubleshooting.html

@@ -1,31 +1,2 @@
-
-<h2><a>Troubleshooting jMonkeyEngine3 SDK</a></h2>
-<div>
-
-</div>
-
-<h3><a>Specifying the JDK location</a></h3>
-<div>
-
-<p>
-If jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> cannot find a valid <acronym title="Java Development Kit">JDK</acronym> although you have it installed you have to specify the location manually.
-</p>
-
-<p>
-To do that edit the file <code>jmonkeyplatform.conf</code> in the <code>etc</code> directory of your jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> installation location.
-Mac users have to right-click the application and select &quot;Show package contents&quot; and then navigate to <code>Contents/Resources/jmonkeyplatform</code>.
-</p>
-
-</div>
-
-<h3><a>Known Issues</a></h3>
-<div>
-
-<p>
-For a list of known issues and possible workarounds see the following link:
-<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/issues/list?can=2&amp;q=label%3AProduct-Platform+Type%3DDefect+&amp;colspec=ID+Type+Status+Component+Priority+Product+Milestone+Owner+Summary&amp;cells=tiles"><param name="text" value="<html><u>List of known issues on googlecode</u></html>"><param name="textColor" value="blue"></object>
-
-</p>
-
-</div>
+<h2><a>Troubleshooting jMonkeyEngine3 SDK</a></h2><div></div><h3><a>Specifying the JDK location</a></h3><div><p>If jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> cannot find a valid <acronym title="Java Development Kit">JDK</acronym> although you have it installed you have to specify the location manually.</p><p>To do that edit the file <code>jmonkeyplatform.conf</code> in the <code>etc</code> directory of your jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> installation location. Mac users have to right-click the application and select &quot;Show package contents&quot; and then navigate to <code>Contents/Resources/jmonkeyplatform</code>.</p></div><h3><a>Known Issues</a></h3><div><p>For a list of known issues and possible workarounds see the following link: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/issues/list?can=2&amp;q=label%3AProduct-Platform+Type%3DDefect+&amp;colspec=ID+Type+Status+Component+Priority+Product+Milestone+Owner+Summary&amp;cells=tiles"><param name="text" value="<html><u>List of known issues on googlecode</u></html>"><param name="textColor" value="blue"></object></p></div>
 <p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:troubleshooting?do=export_xhtmlbody">view online version</a></em></p>

File diff suppressed because it is too large
+ 0 - 125
jme3-core/javahelp/com/jme3/gde/core/docs/sdk/version_control.html


Some files were not shown because too many files changed in this diff