Browse Source

Travis build 1635 pushed to gh-pages at 088a28e

Travis 5 năm trước cách đây
mục cha
commit
7c95335602
100 tập tin đã thay đổi với 97 bổ sung97 xóa
  1. 1 1
      bsd_license.html
  2. 1 1
      bugtest.html
  3. 1 1
      documentation.html
  4. 1 1
      github_tips.html
  5. 1 1
      index.html
  6. 1 1
      jme3.html
  7. 1 1
      jme3/advanced/3d_models.html
  8. 1 1
      jme3/advanced/android.html
  9. 1 1
      jme3/advanced/animation.html
  10. 1 1
      jme3/advanced/anisotropic_filtering.html
  11. 1 1
      jme3/advanced/application_states.html
  12. 1 1
      jme3/advanced/asset_manager.html
  13. 1 1
      jme3/advanced/audio.html
  14. 1 1
      jme3/advanced/audio_environment_presets.html
  15. 1 1
      jme3/advanced/bloom_and_glow.html
  16. 1 1
      jme3/advanced/building_recast.html
  17. 1 1
      jme3/advanced/bullet_multithreading.html
  18. 1 1
      jme3/advanced/bullet_pitfalls.html
  19. 0 0
      jme3/advanced/camera.html
  20. 1 1
      jme3/advanced/capture_audio_video_to_a_file.html
  21. 1 1
      jme3/advanced/cinematics.html
  22. 1 1
      jme3/advanced/collision_and_intersection.html
  23. 1 1
      jme3/advanced/combo_moves.html
  24. 1 1
      jme3/advanced/custom_controls.html
  25. 1 1
      jme3/advanced/custom_meshes.html
  26. 1 1
      jme3/advanced/debugging.html
  27. 1 1
      jme3/advanced/effects_overview.html
  28. 1 1
      jme3/advanced/endless_terraingrid.html
  29. 1 1
      jme3/advanced/fade.html
  30. 1 1
      jme3/advanced/free_skymaps.html
  31. 1 1
      jme3/advanced/headless_server.html
  32. 1 1
      jme3/advanced/hinges_and_joints.html
  33. 1 1
      jme3/advanced/hud.html
  34. 1 1
      jme3/advanced/input_handling.html
  35. 1 1
      jme3/advanced/j3m_material_files.html
  36. 1 1
      jme3/advanced/jme3_ai.html
  37. 1 1
      jme3/advanced/jme3_renderbuckets.html
  38. 1 1
      jme3/advanced/jme3_shadernodes.html
  39. 0 0
      jme3/advanced/jme3_shaders.html
  40. 1 1
      jme3/advanced/jme3_srgbpipeline.html
  41. 1 1
      jme3/advanced/level_of_detail.html
  42. 1 1
      jme3/advanced/light_and_shadow.html
  43. 1 1
      jme3/advanced/loading_screen.html
  44. 1 1
      jme3/advanced/localization.html
  45. 1 1
      jme3/advanced/logging.html
  46. 1 1
      jme3/advanced/makehuman_blender_ogrexml_toolchain.html
  47. 1 1
      jme3/advanced/making_the_camera_follow_a_character.html
  48. 1 1
      jme3/advanced/material_definitions.html
  49. 1 1
      jme3/advanced/material_specification.html
  50. 1 1
      jme3/advanced/materials_overview.html
  51. 0 0
      jme3/advanced/mesh.html
  52. 1 1
      jme3/advanced/mixamo.html
  53. 1 1
      jme3/advanced/monkey_brains.html
  54. 1 1
      jme3/advanced/monkey_zone.html
  55. 1 1
      jme3/advanced/motionpath.html
  56. 1 1
      jme3/advanced/mouse_picking.html
  57. 1 1
      jme3/advanced/multiple_camera_views.html
  58. 1 1
      jme3/advanced/multithreading.html
  59. 1 1
      jme3/advanced/networking.html
  60. 1 1
      jme3/advanced/networking_video_tutorials.html
  61. 1 1
      jme3/advanced/nifty_gui.html
  62. 1 1
      jme3/advanced/nifty_gui_best_practices.html
  63. 1 1
      jme3/advanced/nifty_gui_java_interaction.html
  64. 1 1
      jme3/advanced/nifty_gui_java_layout.html
  65. 1 1
      jme3/advanced/nifty_gui_overlay.html
  66. 1 1
      jme3/advanced/nifty_gui_popup_menu.html
  67. 1 1
      jme3/advanced/nifty_gui_projection.html
  68. 1 1
      jme3/advanced/nifty_gui_scenarios.html
  69. 1 1
      jme3/advanced/nifty_gui_xml_layout.html
  70. 1 1
      jme3/advanced/open_game_finder.html
  71. 1 1
      jme3/advanced/particle_emitters.html
  72. 1 1
      jme3/advanced/pbr_part1.html
  73. 1 1
      jme3/advanced/pbr_part2.html
  74. 1 1
      jme3/advanced/pbr_part3.html
  75. 1 1
      jme3/advanced/physics.html
  76. 1 1
      jme3/advanced/physics_listeners.html
  77. 1 1
      jme3/advanced/post-processor_water.html
  78. 1 1
      jme3/advanced/ragdoll.html
  79. 1 1
      jme3/advanced/read_graphic_card_capabilites.html
  80. 1 1
      jme3/advanced/recast.html
  81. 1 1
      jme3/advanced/remote-controlling_the_camera.html
  82. 1 1
      jme3/advanced/save_and_load.html
  83. 1 1
      jme3/advanced/screenshots.html
  84. 1 1
      jme3/advanced/shape.html
  85. 1 1
      jme3/advanced/sky.html
  86. 1 1
      jme3/advanced/softbody.html
  87. 1 1
      jme3/advanced/sourcecode.html
  88. 1 1
      jme3/advanced/spatial.html
  89. 1 1
      jme3/advanced/statsview.html
  90. 1 1
      jme3/advanced/steer_behaviours.html
  91. 1 1
      jme3/advanced/swing_canvas.html
  92. 1 1
      jme3/advanced/terrain.html
  93. 1 1
      jme3/advanced/terrain_collision.html
  94. 1 1
      jme3/advanced/texture_atlas.html
  95. 1 1
      jme3/advanced/traverse_scenegraph.html
  96. 1 1
      jme3/advanced/update_loop.html
  97. 1 1
      jme3/advanced/vehicles.html
  98. 1 1
      jme3/advanced/video.html
  99. 1 1
      jme3/advanced/walking_character.html
  100. 1 1
      jme3/advanced/water.html

+ 1 - 1
bsd_license.html

@@ -28,7 +28,7 @@ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
bugtest.html

@@ -5,7 +5,7 @@
 khjg akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh
 khjg akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh
 ii askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh
 ii askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh
 lkjhg akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh
 lkjhg akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh
-akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh</p></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh askjdhaskjdh akjdh akjdsh akjdhakjsdh</p></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
documentation.html

@@ -15,7 +15,7 @@
 <div class="sect1"><h2 id="contact">Contact</h2><div class="sectionbody"><div class="paragraph"><p>You are welcome to contribute and inquire about the project: Please contact the <a href="https://hub.jmonkeyengine.org/badges/103/core-developer">developers</a> or ask on the <a href="http://hub.jmonkeyengine.org/">forums</a>.</p></div>
 <div class="sect1"><h2 id="contact">Contact</h2><div class="sectionbody"><div class="paragraph"><p>You are welcome to contribute and inquire about the project: Please contact the <a href="https://hub.jmonkeyengine.org/badges/103/core-developer">developers</a> or ask on the <a href="http://hub.jmonkeyengine.org/">forums</a>.</p></div>
 <div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/badges/103/core-developer">Contact the jME team</a></p><div class="ulist"><ul><li><p><a href="team.html">[Core team - Who are we?]</a></p></li></ul></div></li><li><p><a href="report_bugs.html">Report a bug</a></p></li><li><p><a href="http://hub.jmonkeyengine.org/c/documentation-jme3">Report unclear or missing documentation</a></p></li></ul></div></div></div>
 <div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/badges/103/core-developer">Contact the jME team</a></p><div class="ulist"><ul><li><p><a href="team.html">[Core team - Who are we?]</a></p></li></ul></div></li><li><p><a href="report_bugs.html">Report a bug</a></p></li><li><p><a href="http://hub.jmonkeyengine.org/c/documentation-jme3">Report unclear or missing documentation</a></p></li></ul></div></div></div>
 <div class="sect1"><h2 id="languages">Languages</h2><div class="sectionbody"><div class="paragraph"><p>The team is looking for other monkeys that would be interested in a wiki translation of [insert your favorite language here]. If you&#8217;re interested in hosting translations see <a href="wiki/wiki_translation.html">Wiki Translation Repositories</a>.</p></div>
 <div class="sect1"><h2 id="languages">Languages</h2><div class="sectionbody"><div class="paragraph"><p>The team is looking for other monkeys that would be interested in a wiki translation of [insert your favorite language here]. If you&#8217;re interested in hosting translations see <a href="wiki/wiki_translation.html">Wiki Translation Repositories</a>.</p></div>
-<div class="paragraph"><p><a href="http://www.jmecn.net/wiki/">简体中文</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p><a href="http://www.jmecn.net/wiki/">简体中文</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
github_tips.html

@@ -29,7 +29,7 @@
 <div class="paragraph"><p>To make the Canonical URL just select the <kbd>y</kbd> hot key after selecting the line number or numbers. Once you have done this, all links from thereafter will be Canonical URLs.</p></div>
 <div class="paragraph"><p>To make the Canonical URL just select the <kbd>y</kbd> hot key after selecting the line number or numbers. Once you have done this, all links from thereafter will be Canonical URLs.</p></div>
 <hr>
 <hr>
 <div class="paragraph"><p>Suggested reading:</p></div>
 <div class="paragraph"><p>Suggested reading:</p></div>
-<div class="ulist"><ul><li><p><a href="https://help.github.com/en/articles/keyboard-shortcuts#source-code-editing">Source code browsing</a></p></li><li><p><a href="https://help.github.com/en/articles/getting-permanent-links-to-files">Getting permanent links to files</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="https://help.github.com/en/articles/keyboard-shortcuts#source-code-editing">Source code browsing</a></p></li><li><p><a href="https://help.github.com/en/articles/getting-permanent-links-to-files">Getting permanent links to files</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
index.html

@@ -15,7 +15,7 @@
 <div class="sect1"><h2 id="contact">Contact</h2><div class="sectionbody"><div class="paragraph"><p>You are welcome to contribute and inquire about the project: Please contact the <a href="https://hub.jmonkeyengine.org/badges/103/core-developer">developers</a> or ask on the <a href="http://hub.jmonkeyengine.org/">forums</a>.</p></div>
 <div class="sect1"><h2 id="contact">Contact</h2><div class="sectionbody"><div class="paragraph"><p>You are welcome to contribute and inquire about the project: Please contact the <a href="https://hub.jmonkeyengine.org/badges/103/core-developer">developers</a> or ask on the <a href="http://hub.jmonkeyengine.org/">forums</a>.</p></div>
 <div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/badges/103/core-developer">Contact the jME team</a></p><div class="ulist"><ul><li><p><a href="team.html">[Core team - Who are we?]</a></p></li></ul></div></li><li><p><a href="report_bugs.html">Report a bug</a></p></li><li><p><a href="http://hub.jmonkeyengine.org/c/documentation-jme3">Report unclear or missing documentation</a></p></li></ul></div></div></div>
 <div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/badges/103/core-developer">Contact the jME team</a></p><div class="ulist"><ul><li><p><a href="team.html">[Core team - Who are we?]</a></p></li></ul></div></li><li><p><a href="report_bugs.html">Report a bug</a></p></li><li><p><a href="http://hub.jmonkeyengine.org/c/documentation-jme3">Report unclear or missing documentation</a></p></li></ul></div></div></div>
 <div class="sect1"><h2 id="languages">Languages</h2><div class="sectionbody"><div class="paragraph"><p>The team is looking for other monkeys that would be interested in a wiki translation of [insert your favorite language here]. If you&#8217;re interested in hosting translations see <a href="wiki/wiki_translation.html">Wiki Translation Repositories</a>.</p></div>
 <div class="sect1"><h2 id="languages">Languages</h2><div class="sectionbody"><div class="paragraph"><p>The team is looking for other monkeys that would be interested in a wiki translation of [insert your favorite language here]. If you&#8217;re interested in hosting translations see <a href="wiki/wiki_translation.html">Wiki Translation Repositories</a>.</p></div>
-<div class="paragraph"><p><a href="http://www.jmecn.net/wiki/">简体中文</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p><a href="http://www.jmecn.net/wiki/">简体中文</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3.html

@@ -47,7 +47,7 @@ or try searching the wiki (search box is at the top of every wiki page) or using
 <div class="paragraph"><p>These code examples are not supported by the core team and we cannot guarantee their correctness:</p></div>
 <div class="paragraph"><p>These code examples are not supported by the core team and we cannot guarantee their correctness:</p></div>
 <div class="ulist"><ul><li><p><a href="jme3/shaderblow_project.html">ShaderBlow Project</a> – The jME3 users shaders project.</p></li><li><p><a href="jme3/rise_of_mutants_project.html">Rise of Mutants Project</a> – Rise of Mutants Project by BigBoots Team.</p></li></ul></div></div></div>
 <div class="ulist"><ul><li><p><a href="jme3/shaderblow_project.html">ShaderBlow Project</a> – The jME3 users shaders project.</p></li><li><p><a href="jme3/rise_of_mutants_project.html">Rise of Mutants Project</a> – Rise of Mutants Project by BigBoots Team.</p></li></ul></div></div></div>
 <div class="sect1"><h2 id="feedback">Feedback</h2><div class="sectionbody"><div class="paragraph"><p>jME3 is in development; if a tutorial doesn&#8217;t work as expected, try using the latest daily build. If that doesn&#8217;t &#8220;fix&#8221; it then:</p></div>
 <div class="sect1"><h2 id="feedback">Feedback</h2><div class="sectionbody"><div class="paragraph"><p>jME3 is in development; if a tutorial doesn&#8217;t work as expected, try using the latest daily build. If that doesn&#8217;t &#8220;fix&#8221; it then:</p></div>
-<div class="ulist"><ul><li><p><a href="report_bugs.html">Report bugs or issues</a></p></li><li><p><a href="https://hub.jmonkeyengine.org/">Ask (and Answer!) Questions on the Forum</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="report_bugs.html">Report bugs or issues</a></p></li><li><p><a href="https://hub.jmonkeyengine.org/">Ask (and Answer!) Questions on the Forum</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/3d_models.html

@@ -8,7 +8,7 @@
 <div class="sect1"><h2 id="creating-models-and-scenes">Creating Models and Scenes</h2><div class="sectionbody"><div class="paragraph"><p>To create 3D models and scenes, you need a 3D Mesh Editor such as <a href="http://www.blender.org/">Blender</a>.</p></div>
 <div class="sect1"><h2 id="creating-models-and-scenes">Creating Models and Scenes</h2><div class="sectionbody"><div class="paragraph"><p>To create 3D models and scenes, you need a 3D Mesh Editor such as <a href="http://www.blender.org/">Blender</a>.</p></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Learn how to create <a href="http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV_Map_Basics">UV textures</a> for more complex models, it looks more professional.</p></div></td></tr></table></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Learn how to create <a href="http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV_Map_Basics">UV textures</a> for more complex models, it looks more professional.</p></div></td></tr></table></div>
 <div class="paragraph"><p>3D model editors are third-party products, so please consult their documentation for instructions how to use them. Here is an example workflow for Blender users:</p></div>
 <div class="paragraph"><p>3D model editors are third-party products, so please consult their documentation for instructions how to use them. Here is an example workflow for Blender users:</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/external/blender.html">Creating assets in Blender3D</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/external/blender.html">Creating assets in Blender3D</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/android.html

@@ -44,7 +44,7 @@ addContentView(ll, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PAREN
 <div class="paragraph"><p>This does absolutely nothing, but help with consistency.</p></div>
 <div class="paragraph"><p>This does absolutely nothing, but help with consistency.</p></div>
 <div class="paragraph"><p>So, to actually change the package name, you will want to:</p></div>
 <div class="paragraph"><p>So, to actually change the package name, you will want to:</p></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Open the <code>Android Manifest</code></p></li><li><p>Edit the manifest tag key pair: <code>package="&lt;THE NEW PACKAGE NAME&gt;"</code></p></li><li><p>In <code>File view</code>, navigate to nbproject and open the <code>project.properties</code> file.</p></li><li><p>Edit the value of <code>mobile.android.package</code>.</p></li></ol></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Open the <code>Android Manifest</code></p></li><li><p>Edit the manifest tag key pair: <code>package="&lt;THE NEW PACKAGE NAME&gt;"</code></p></li><li><p>In <code>File view</code>, navigate to nbproject and open the <code>project.properties</code> file.</p></li><li><p>Edit the value of <code>mobile.android.package</code>.</p></li></ol></div>
-<div class="paragraph"><p>Take a moment or 4 to navigate through the directory structure in file view and remove any artifacts left from the previous package name build. Alternately, you can run <code>Clean</code> on the project prior to updating the package name.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>Take a moment or 4 to navigate through the directory structure in file view and remove any artifacts left from the previous package name build. Alternately, you can run <code>Clean</code> on the project prior to updating the package name.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/animation.html

@@ -98,7 +98,7 @@ The float value specifies the time how long the animation should overlap with th
       <span class="comment">// respond to the event here, e.g. ...</span>
       <span class="comment">// respond to the event here, e.g. ...</span>
       channel.setAnim(<span class="string"><span class="delimiter">&quot;</span><span class="content">Reset</span><span class="delimiter">&quot;</span></span>, <span class="float">0.50f</span>);
       channel.setAnim(<span class="string"><span class="delimiter">&quot;</span><span class="content">Reset</span><span class="delimiter">&quot;</span></span>, <span class="float">0.50f</span>);
     }
     }
-  }</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+  }</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/anisotropic_filtering.html

@@ -24,7 +24,7 @@ Anisotropy makes a performance draw back about 10-40 fps, but the result looks m
             }
             }
         };
         };
 
 
-        assetManager.addAssetEventListener(asl);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+        assetManager.addAssetEventListener(asl);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/application_states.html

@@ -145,7 +145,7 @@ stateDetached(asm)</p></div></div></td><td class="tableblock halign-left valign-
     <span class="local-variable">this</span>.viewPort     = <span class="local-variable">this</span>.app.getViewPort();
     <span class="local-variable">this</span>.viewPort     = <span class="local-variable">this</span>.app.getViewPort();
     <span class="local-variable">this</span>.physics      = <span class="local-variable">this</span>.stateManager.getState(BulletAppState.class);
     <span class="local-variable">this</span>.physics      = <span class="local-variable">this</span>.stateManager.getState(BulletAppState.class);
   }
   }
-}</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+}</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/asset_manager.html

@@ -94,7 +94,7 @@ java.lang.NullPointerException</code></pre></div></div>
 Store your assets there as described above.</p></li><li><p>Download and install the jMonkeyEngine SDK.</p></li><li><p>In the SDK, go to <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="submenu">Import Projects</span>&#160;&#9656; <span class="menuitem">External Project Assets</span></span></code>.</p></li><li><p>Select your (Eclipse or whatever) project and your assets folder in the Import Wizard.</p></li><li><p>You can now open this (Eclipse or whatever) project in the jMonkeyEngine SDK.<br>
 Store your assets there as described above.</p></li><li><p>Download and install the jMonkeyEngine SDK.</p></li><li><p>In the SDK, go to <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="submenu">Import Projects</span>&#160;&#9656; <span class="menuitem">External Project Assets</span></span></code>.</p></li><li><p>Select your (Eclipse or whatever) project and your assets folder in the Import Wizard.</p></li><li><p>You can now open this (Eclipse or whatever) project in the jMonkeyEngine SDK.<br>
 Convert assets as described above.</p></li></ol></div>
 Convert assets as described above.</p></li></ol></div>
 <div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>If you don&#8217;t use the SDK for some reason, you can still convert models to j3o format: Load any model in Ogre3D or Wavefront format with the AssetManager.loadModel() as a spatial. Then save the spatial as j3o file using <a href="../../jme3/advanced/save_and_load.html">BinaryExporter</a>.</p></div></td></tr></table></div>
 <div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>If you don&#8217;t use the SDK for some reason, you can still convert models to j3o format: Load any model in Ogre3D or Wavefront format with the AssetManager.loadModel() as a spatial. Then save the spatial as j3o file using <a href="../../jme3/advanced/save_and_load.html">BinaryExporter</a>.</p></div></td></tr></table></div>
-<div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Use file version control and let team members check out the project. Your developers open the project in Eclipse (etc) as they are used to. Additionally to their graphic tools, ask your graphic designers to install the jMonkeyEngine SDK, and to check out the codeless project that you just prepared. This makes it easy for non-coding team member to browse and preview game assets, to arrange scenes, and to convert files. At the same time, non-coders don&#8217;t accidentally mess with code, and developers don&#8217;t accidentally mess with assets. :)</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Use file version control and let team members check out the project. Your developers open the project in Eclipse (etc) as they are used to. Additionally to their graphic tools, ask your graphic designers to install the jMonkeyEngine SDK, and to check out the codeless project that you just prepared. This makes it easy for non-coding team member to browse and preview game assets, to arrange scenes, and to convert files. At the same time, non-coders don&#8217;t accidentally mess with code, and developers don&#8217;t accidentally mess with assets. :)</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/audio.html

@@ -44,7 +44,7 @@ setOuterAngle()</p></div></div></td><td class="tableblock halign-left valign-top
 footstepsAudio.setReverbEnabled(<span class="predefined-constant">true</span>);</code></pre></div></div></li></ol></div>
 footstepsAudio.setReverbEnabled(<span class="predefined-constant">true</span>);</code></pre></div></div></li></ol></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>A sound engineer can create a custom <code>com.​jme3.​audio.Environment</code> object and specify custom environment values such as density, diffusion, gain, decay, delay… You can find many <a href="../../jme3/advanced/audio_environment_presets.html">examples of custom audio environment presets</a> here.</p></div></td></tr></table></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>A sound engineer can create a custom <code>com.​jme3.​audio.Environment</code> object and specify custom environment values such as density, diffusion, gain, decay, delay… You can find many <a href="../../jme3/advanced/audio_environment_presets.html">examples of custom audio environment presets</a> here.</p></div></td></tr></table></div>
 <div class="paragraph"><p>Advanced users find more info about OpenAL and its features here: <a href="http://web.archive.org/web/20130327063429/http://connect.creativelabs.com/openal/Documentation/OpenAL_Programmers_Guide.pdf">OpenAL 1.1 Specification</a>.</p></div>
 <div class="paragraph"><p>Advanced users find more info about OpenAL and its features here: <a href="http://web.archive.org/web/20130327063429/http://connect.creativelabs.com/openal/Documentation/OpenAL_Programmers_Guide.pdf">OpenAL 1.1 Specification</a>.</p></div>
-<div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>It depends on the hardware whether audio effects are supported (if not, you get the message <code>OpenAL EFX not available! Audio effects won&#8217;t work.</code>)</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>It depends on the hardware whether audio effects are supported (if not, you get the message <code>OpenAL EFX not available! Audio effects won&#8217;t work.</code>)</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/audio_environment_presets.html

@@ -117,7 +117,7 @@ Mountains     = <span class="keyword">new</span> Environment ( <span class="keyw
 Quarry        = <span class="keyword">new</span> Environment ( <span class="keyword">new</span> <span class="type">float</span><span class="type">[]</span>{ <span class="integer">18</span>, <span class="float">17.5f</span>, <span class="float">1f</span>, -<span class="integer">1000</span>, -<span class="integer">1000</span>, <span class="integer">0</span>, <span class="float">1.49f</span>, <span class="float">0.83f</span>, <span class="float">1f</span>, -<span class="integer">10000</span>, <span class="float">0.061f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="integer">500</span>, <span class="float">0.025f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0.125f</span>, <span class="float">0.700f</span>, <span class="float">0.250f</span>, <span class="float">0f</span>, -<span class="float">5f</span>, <span class="float">5000f</span>, <span class="float">250f</span>, <span class="float">0f</span>, <span class="hex">0x3f</span>} );
 Quarry        = <span class="keyword">new</span> Environment ( <span class="keyword">new</span> <span class="type">float</span><span class="type">[]</span>{ <span class="integer">18</span>, <span class="float">17.5f</span>, <span class="float">1f</span>, -<span class="integer">1000</span>, -<span class="integer">1000</span>, <span class="integer">0</span>, <span class="float">1.49f</span>, <span class="float">0.83f</span>, <span class="float">1f</span>, -<span class="integer">10000</span>, <span class="float">0.061f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="integer">500</span>, <span class="float">0.025f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0.125f</span>, <span class="float">0.700f</span>, <span class="float">0.250f</span>, <span class="float">0f</span>, -<span class="float">5f</span>, <span class="float">5000f</span>, <span class="float">250f</span>, <span class="float">0f</span>, <span class="hex">0x3f</span>} );
 Parkinglot    = <span class="keyword">new</span> Environment ( <span class="keyword">new</span> <span class="type">float</span><span class="type">[]</span>{ <span class="integer">20</span>, <span class="float">8.3f</span>, <span class="float">1f</span>, -<span class="integer">1000</span>, <span class="integer">0</span>, <span class="integer">0</span>, <span class="float">1.65f</span>, <span class="float">1.50f</span>, <span class="float">1f</span>, -<span class="integer">1363</span>, <span class="float">0.008f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, -<span class="integer">1153</span>, <span class="float">0.012f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0.250f</span>, <span class="float">0f</span>, <span class="float">0.250f</span>, <span class="float">0f</span>, -<span class="float">5f</span>, <span class="float">5000f</span>, <span class="float">250f</span>, <span class="float">0f</span>, <span class="hex">0x1f</span>} );</code></pre></div></div></div></div>
 Parkinglot    = <span class="keyword">new</span> Environment ( <span class="keyword">new</span> <span class="type">float</span><span class="type">[]</span>{ <span class="integer">20</span>, <span class="float">8.3f</span>, <span class="float">1f</span>, -<span class="integer">1000</span>, <span class="integer">0</span>, <span class="integer">0</span>, <span class="float">1.65f</span>, <span class="float">1.50f</span>, <span class="float">1f</span>, -<span class="integer">1363</span>, <span class="float">0.008f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, -<span class="integer">1153</span>, <span class="float">0.012f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0.250f</span>, <span class="float">0f</span>, <span class="float">0.250f</span>, <span class="float">0f</span>, -<span class="float">5f</span>, <span class="float">5000f</span>, <span class="float">250f</span>, <span class="float">0f</span>, <span class="hex">0x1f</span>} );</code></pre></div></div></div></div>
 <div class="sect1"><h2 id="water">Water</h2><div class="sectionbody"><div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">Underwater     = <span class="keyword">new</span> Environment ( <span class="keyword">new</span> <span class="type">float</span><span class="type">[]</span>{ <span class="integer">22</span>, <span class="float">1.8f</span>, <span class="float">1f</span>, -<span class="integer">1000</span>, -<span class="integer">4000</span>, <span class="integer">0</span>, <span class="float">1.49f</span>, <span class="float">0.10f</span>, <span class="float">1f</span>, -<span class="integer">449</span>, <span class="float">0.007f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="integer">1700</span>, <span class="float">0.011f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0.250f</span>, <span class="float">0f</span>, <span class="float">1.180f</span>, <span class="float">0.348f</span>, -<span class="float">5f</span>, <span class="float">5000f</span>, <span class="float">250f</span>, <span class="float">0f</span>, <span class="hex">0x3f</span>} );
 <div class="sect1"><h2 id="water">Water</h2><div class="sectionbody"><div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">Underwater     = <span class="keyword">new</span> Environment ( <span class="keyword">new</span> <span class="type">float</span><span class="type">[]</span>{ <span class="integer">22</span>, <span class="float">1.8f</span>, <span class="float">1f</span>, -<span class="integer">1000</span>, -<span class="integer">4000</span>, <span class="integer">0</span>, <span class="float">1.49f</span>, <span class="float">0.10f</span>, <span class="float">1f</span>, -<span class="integer">449</span>, <span class="float">0.007f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="integer">1700</span>, <span class="float">0.011f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0.250f</span>, <span class="float">0f</span>, <span class="float">1.180f</span>, <span class="float">0.348f</span>, -<span class="float">5f</span>, <span class="float">5000f</span>, <span class="float">250f</span>, <span class="float">0f</span>, <span class="hex">0x3f</span>} );
-Smallwaterroom = <span class="keyword">new</span> Environment ( <span class="keyword">new</span> <span class="type">float</span><span class="type">[]</span>{ <span class="integer">26</span>, <span class="float">36.2f</span>, <span class="float">0.700f</span>, -<span class="integer">1000</span>, -<span class="integer">698</span>, <span class="integer">0</span>, <span class="float">1.51f</span>, <span class="float">1.25f</span>, <span class="float">1.14f</span>, -<span class="integer">100</span>, <span class="float">0.020f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="integer">300</span>, <span class="float">0.030f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0.179f</span>, <span class="float">0.150f</span>, <span class="float">0.895f</span>, <span class="float">0.190f</span>, -<span class="float">7f</span>, <span class="float">5000f</span>, <span class="float">250f</span>, <span class="float">0f</span>, <span class="hex">0x0</span>} );</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+Smallwaterroom = <span class="keyword">new</span> Environment ( <span class="keyword">new</span> <span class="type">float</span><span class="type">[]</span>{ <span class="integer">26</span>, <span class="float">36.2f</span>, <span class="float">0.700f</span>, -<span class="integer">1000</span>, -<span class="integer">698</span>, <span class="integer">0</span>, <span class="float">1.51f</span>, <span class="float">1.25f</span>, <span class="float">1.14f</span>, -<span class="integer">100</span>, <span class="float">0.020f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="integer">300</span>, <span class="float">0.030f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0f</span>, <span class="float">0.179f</span>, <span class="float">0.150f</span>, <span class="float">0.895f</span>, <span class="float">0.190f</span>, -<span class="float">7f</span>, <span class="float">5000f</span>, <span class="float">250f</span>, <span class="float">0f</span>, <span class="hex">0x0</span>} );</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/bloom_and_glow.html

@@ -95,7 +95,7 @@ In your material definition you need to add those lines in the MaterialParameter
 <div class="sect2"><h3 id="make-a-glowing-object-stop-to-glow">Make a glowing object stop to glow</h3><div class="paragraph"><p>If you are using a glow map, remove the texture from the material.</p></div>
 <div class="sect2"><h3 id="make-a-glowing-object-stop-to-glow">Make a glowing object stop to glow</h3><div class="paragraph"><p>If you are using a glow map, remove the texture from the material.</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>material.clearTextureParam("GlowMap");</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>material.clearTextureParam("GlowMap");</code></pre></div></div>
 <div class="paragraph"><p>If you are using a glow color, set it to black</p></div>
 <div class="paragraph"><p>If you are using a glow color, set it to black</p></div>
-<div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>material.setColor("GlowColor",ColorRGBA.Black);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>material.setColor("GlowColor",ColorRGBA.Black);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/building_recast.html

@@ -84,7 +84,7 @@ In jNavigation project in class <code>com.jme3.ai.navigation.utils.RecastJNI.jav
   }
   }
 %}</code></pre></div></div>
 %}</code></pre></div></div>
 <div class="paragraph"><p>If there are more headers at some moment, include them in both places.</p></div>
 <div class="paragraph"><p>If there are more headers at some moment, include them in both places.</p></div>
-<div class="olist arabic"><ol class="arabic"><li><p>Save script as Recast.i into temp folder with rest of the headers</p></li><li><p>Install SWIG if not already</p></li><li><p>Open terminal and go to folder where the script is</p></li><li><p>Execute command <code>swig -c++ -java Recast.i</code></p></li><li><p>Now SWIG will generate Java classes and new Recast_wrap.cxx</p></li><li><p>Recast_wrap.cxx put in jNavigationNative with new headers and source files, as previously mentioned</p></li><li><p>Build that project</p></li><li><p>For jNavigation side, put only new methods in RecastJNI, and use where they are being used. For that you can see in Java class that are build with SWIG.</p></li><li><p>If method uses some explicit SWIG type, try to use some method for converting it into jME type, or similar. You can probably find something in package <code>com.jme3.ai.navigation.utils</code></p></li></ol></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="olist arabic"><ol class="arabic"><li><p>Save script as Recast.i into temp folder with rest of the headers</p></li><li><p>Install SWIG if not already</p></li><li><p>Open terminal and go to folder where the script is</p></li><li><p>Execute command <code>swig -c++ -java Recast.i</code></p></li><li><p>Now SWIG will generate Java classes and new Recast_wrap.cxx</p></li><li><p>Recast_wrap.cxx put in jNavigationNative with new headers and source files, as previously mentioned</p></li><li><p>Build that project</p></li><li><p>For jNavigation side, put only new methods in RecastJNI, and use where they are being used. For that you can see in Java class that are build with SWIG.</p></li><li><p>If method uses some explicit SWIG type, try to use some method for converting it into jME type, or similar. You can probably find something in package <code>com.jme3.ai.navigation.utils</code></p></li></ol></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/bullet_multithreading.html

@@ -10,7 +10,7 @@ bulletAppState.setThreadingType(BulletAppState.ThreadingType.PARALLEL);
 stateManager.attach(bulletAppState);</code></pre></div></div>
 stateManager.attach(bulletAppState);</code></pre></div></div>
 <div class="paragraph"><p>Now the physics update happens in parallel to render(), that is, after the user&#8217;s changes in the update() call have been applied. During update() the physics update loop pauses. 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. This allows you to use physics methods in update() as if it was single-threaded.</p></div>
 <div class="paragraph"><p>Now the physics update happens in parallel to render(), that is, after the user&#8217;s changes in the update() call have been applied. During update() the physics update loop pauses. 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. This allows you to use physics methods in update() as if it was single-threaded.</p></div>
 <table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 50%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">PARALLEL</th><th class="tableblock halign-left valign-top">SEQUENTIAL</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top"><div><div class="olist arabic"><ol class="arabic"><li><p>update(), 2. render() and physics update().</p></li></ol></div></div></td><td class="tableblock halign-left valign-top"><div><div class="olist arabic"><ol class="arabic"><li><p>update(), 2. render(), 3. physics update().</p></li></ol></div></div></td></tr><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Physics Debug View is rendered inaccurately (out of sync)</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Physics Debug View is rendered accurately.</p></div></div></td></tr></tbody></table>
 <table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 50%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">PARALLEL</th><th class="tableblock halign-left valign-top">SEQUENTIAL</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top"><div><div class="olist arabic"><ol class="arabic"><li><p>update(), 2. render() and physics update().</p></li></ol></div></div></td><td class="tableblock halign-left valign-top"><div><div class="olist arabic"><ol class="arabic"><li><p>update(), 2. render(), 3. physics update().</p></li></ol></div></div></td></tr><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Physics Debug View is rendered inaccurately (out of sync)</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Physics Debug View is rendered accurately.</p></div></div></td></tr></tbody></table>
-<div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>You can add more physics spaces by using multiple PARALLEL bulletAppStates. You would do that if you have sets physical objects that never collide (for example, underground bolders and flying cannon balls above ground), so you put those into separate physics spaces, which improves performances (less collisions to check!).</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>You can add more physics spaces by using multiple PARALLEL bulletAppStates. You would do that if you have sets physical objects that never collide (for example, underground bolders and flying cannon balls above ground), so you put those into separate physics spaces, which improves performances (less collisions to check!).</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/bullet_pitfalls.html

@@ -7,7 +7,7 @@
 Please use PhysicsSpace.sweepTest() instead, or kinematic physics objects with <a href="http://jmonkeyengine.org/javadoc/com/jme3/bullet/PhysicsSpace.html#addCollisionListener(com.jme3.bullet.collision.PhysicsCollisionListener)">collision listeners</a>.</p></div></div></div>
 Please use PhysicsSpace.sweepTest() instead, or kinematic physics objects with <a href="http://jmonkeyengine.org/javadoc/com/jme3/bullet/PhysicsSpace.html#addCollisionListener(com.jme3.bullet.collision.PhysicsCollisionListener)">collision listeners</a>.</p></div></div></div>
 <div class="sect1"><h2 id="rigid-bodies-fall-through-ground">Rigid bodies fall through ground</h2><div class="sectionbody"><div class="paragraph"><p>This usually happens if the ground physics object has large triangles or consists of a large BoxCollisionShape.</p></div>
 <div class="sect1"><h2 id="rigid-bodies-fall-through-ground">Rigid bodies fall through ground</h2><div class="sectionbody"><div class="paragraph"><p>This usually happens if the ground physics object has large triangles or consists of a large BoxCollisionShape.</p></div>
 <div class="paragraph"><p><strong>Workaround:</strong>+</p></div>
 <div class="paragraph"><p><strong>Workaround:</strong>+</p></div>
-<div class="ulist"><ul><li><p>For meshes with large triangles - Subdivide the mesh in a model editor such as Blender.</p></li><li><p>For large boxes - seperate into smaller boxes or use a MeshCollisionShape for terrain instead of BoxCollisionShape.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p>For meshes with large triangles - Subdivide the mesh in a model editor such as Blender.</p></li><li><p>For large boxes - seperate into smaller boxes or use a MeshCollisionShape for terrain instead of BoxCollisionShape.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
jme3/advanced/camera.html


+ 1 - 1
jme3/advanced/capture_audio_video_to_a_file.html

@@ -467,7 +467,7 @@ distribution.</p></div>
 <div class="paragraph"><p><a href="http://hg.bortreb.com/jmeCapture">http://hg.bortreb.com/jmeCapture</a></p></div>
 <div class="paragraph"><p><a href="http://hg.bortreb.com/jmeCapture">http://hg.bortreb.com/jmeCapture</a></p></div>
 <div class="paragraph"><p>More information on the modifications to OpenAL to support multiple
 <div class="paragraph"><p>More information on the modifications to OpenAL to support multiple
 listeners can be found here.</p></div>
 listeners can be found here.</p></div>
-<div class="paragraph"><p><a href="http://aurellem.org/audio-send/html/ear.html">http://aurellem.org/audio-send/html/ear.html</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p><a href="http://aurellem.org/audio-send/html/ear.html">http://aurellem.org/audio-send/html/ear.html</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/cinematics.html

@@ -72,7 +72,7 @@ In the above example, I want it to be a top view of the scene looking at the wor
   }
   }
 }
 }
 cinematic.addListener(cel);</code></pre></div></div></div>
 cinematic.addListener(cel);</code></pre></div></div></div>
-<div class="sect2"><h3 id="physics-interaction">Physics Interaction</h3><div class="paragraph"><p>Upcoming.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect2"><h3 id="physics-interaction">Physics Interaction</h3><div class="paragraph"><p>Upcoming.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/collision_and_intersection.html

@@ -63,7 +63,7 @@ mesh.updateBound();</code></pre></div></div></div></div>
 <div class="paragraph"><p>Learn the details of how to implement <a href="../../jme3/advanced/mouse_picking.html">Mouse Picking</a> here.</p></div>
 <div class="paragraph"><p>Learn the details of how to implement <a href="../../jme3/advanced/mouse_picking.html">Mouse Picking</a> here.</p></div>
 <hr>
 <hr>
 <div class="paragraph"><p>TODO:</p></div>
 <div class="paragraph"><p>TODO:</p></div>
-<div class="ulist"><ul><li><p>Bounding Interval Hierarchy (<code>com.jme3.collision.bih.BIHNode</code>)</p></li><li><p>com.jme3.scene.CollisionData</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p>Bounding Interval Hierarchy (<code>com.jme3.collision.bih.BIHNode</code>)</p></li><li><p>com.jme3.scene.CollisionData</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/combo_moves.html

@@ -93,7 +93,7 @@ public <span class="type">void</span> onAction(<span class="predefined-type">Str
 }</code></pre></div></div>
 }</code></pre></div></div>
 <div class="paragraph"><p>Test <code>currentMove.getMoveName()</code> and proceed to call methods that implement any special actions and bonuses. This is up to you and depends individually on your game.</p></div></div></div>
 <div class="paragraph"><p>Test <code>currentMove.getMoveName()</code> and proceed to call methods that implement any special actions and bonuses. This is up to you and depends individually on your game.</p></div></div></div>
 <div class="sect1"><h2 id="why-combos">Why Combos?</h2><div class="sectionbody"><div class="paragraph"><p>Depending on the game genre, the designer can reward the players' intrinsical or extrinsical skills:</p></div>
 <div class="sect1"><h2 id="why-combos">Why Combos?</h2><div class="sectionbody"><div class="paragraph"><p>Depending on the game genre, the designer can reward the players' intrinsical or extrinsical skills:</p></div>
-<div class="ulist"><ul><li><p>(intrinsical:) RPGs typically calculate the success of an attack from the character&#8217;s in-game training level: The player plays the role of a character whose skill level is defined in numbers. RPGs typically do not offer any Combos.</p></li><li><p>(extrinsical:) Sport and fighter games typically choose to reward the player&#8217;s “manual skills: The success of a special move solely depends on the player&#8217;s own dexterity. These games typically offer optional Combos.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p>(intrinsical:) RPGs typically calculate the success of an attack from the character&#8217;s in-game training level: The player plays the role of a character whose skill level is defined in numbers. RPGs typically do not offer any Combos.</p></li><li><p>(extrinsical:) Sport and fighter games typically choose to reward the player&#8217;s “manual skills: The success of a special move solely depends on the player&#8217;s own dexterity. These games typically offer optional Combos.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/custom_controls.html

@@ -190,7 +190,7 @@ vehicleSpatial.addControl(<span class="keyword">new</span> ManualVehicleControl(
 ...</code></pre></div></div>
 ...</code></pre></div></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Use the getControl() method on a Spatial to get a specific Control object, and activate its behaviour!</p></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Use the getControl() method on a Spatial to get a specific Control object, and activate its behaviour!</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">ManualControl c = mySpatial.getControl(ManualControl.class);
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">ManualControl c = mySpatial.getControl(ManualControl.class);
-c.steerX(steerX);</code></pre></div></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+c.steerX(steerX);</code></pre></div></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/custom_meshes.html

@@ -128,7 +128,7 @@ rootNode.attachChild(geo);</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre>int[] indexes = { 2,0,1, 1,3,2, 2,3,1, 1,0,2 };</pre></div></div>
 <div class="listingblock"><div class="content"><pre>int[] indexes = { 2,0,1, 1,3,2, 2,3,1, 1,0,2 };</pre></div></div>
 <hr>
 <hr>
 <div class="paragraph"><p>See also:</p></div>
 <div class="paragraph"><p>See also:</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/spatial.html">Spatial</a> – contains more info about how to debug custom meshes (that do not render as expected) by changing the default culling behaviour.</p></li><li><p><a href="../../jme3/advanced/mesh.html">Mesh</a> – more details about advanced Mesh properties</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/spatial.html">Spatial</a> – contains more info about how to debug custom meshes (that do not render as expected) by changing the default culling behaviour.</p></li><li><p><a href="../../jme3/advanced/mesh.html">Mesh</a> – more details about advanced Mesh properties</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/debugging.html

@@ -177,7 +177,7 @@ inputManager.addListener(actionListener, <span class="string"><span class="delim
 }</code></pre></div></div>
 }</code></pre></div></div>
 <div class="paragraph"><p>Then attach the scene processor to the <abbr title="Graphical User Interface">GUI</abbr> Viewport.</p></div>
 <div class="paragraph"><p>Then attach the scene processor to the <abbr title="Graphical User Interface">GUI</abbr> Viewport.</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">getViewPort().addProcessor(<span class="keyword">new</span> WireProcessor());</code></pre></div></div></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">getViewPort().addProcessor(<span class="keyword">new</span> WireProcessor());</code></pre></div></div></div></div>
-<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/advanced/spatial.html">Spatial</a> – if you can&#8217;t see certain spatials, you can modify the culling behaviour to identify problems (such as inside-out custom meshes)</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/advanced/spatial.html">Spatial</a> – if you can&#8217;t see certain spatials, you can modify the culling behaviour to identify problems (such as inside-out custom meshes)</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/effects_overview.html

@@ -88,7 +88,7 @@ It can be a post pass to do after the main filter has been rendered to screen (f
 <div class="paragraph"><p>Filters in a nutshell.</p></div>
 <div class="paragraph"><p>Filters in a nutshell.</p></div>
 <hr>
 <hr>
 <div class="paragraph"><p>See also:</p></div>
 <div class="paragraph"><p>See also:</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/particle_emitters.html">Particle Emitters</a></p></li><li><p><a href="../../jme3/advanced/bloom_and_glow.html">Bloom and Glow</a></p></li><li><p><a href="http://www.smashingmagazine.com/2008/08/07/50-photoshop-tutorials-for-sky-and-space-effects/">Photoshop Tutorial for Sky and space effects (article)</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/particle_emitters.html">Particle Emitters</a></p></li><li><p><a href="../../jme3/advanced/bloom_and_glow.html">Bloom and Glow</a></p></li><li><p><a href="http://www.smashingmagazine.com/2008/08/07/50-photoshop-tutorials-for-sky-and-space-effects/">Photoshop Tutorial for Sky and space effects (article)</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/endless_terraingrid.html

@@ -16,7 +16,7 @@ There exist also two basic HeightMapGrid implementations:</p></div>
 <div class="ulist"><ul><li><p>ImageBasedHeightMapGrid: uses a sequentially numbered, 16 bit grayscale heightmaps. The physical filename of these files can be generated through the Namer interface. When a tile cannot be found by the assetManager, an empty (all-zero) heightmap is created, and a warning is added to the log.</p></li><li><p>FractalHeightMapGrid: uses a noise library to create a landscape on the fly. The shape of the terrain can be controlled by the various parameters and postfilters of the fractals. With the help of this grid implementation there’s no limitation – above of floating point precision limits – how far the camera can get. The tiles generated this way can be cached to the filesystem, for later modification. The FractalHeightMapGrid will always load from cache if a tile exists there!</p></li></ul></div></div></div>
 <div class="ulist"><ul><li><p>ImageBasedHeightMapGrid: uses a sequentially numbered, 16 bit grayscale heightmaps. The physical filename of these files can be generated through the Namer interface. When a tile cannot be found by the assetManager, an empty (all-zero) heightmap is created, and a warning is added to the log.</p></li><li><p>FractalHeightMapGrid: uses a noise library to create a landscape on the fly. The shape of the terrain can be controlled by the various parameters and postfilters of the fractals. With the help of this grid implementation there’s no limitation – above of floating point precision limits – how far the camera can get. The tiles generated this way can be cached to the filesystem, for later modification. The FractalHeightMapGrid will always load from cache if a tile exists there!</p></li></ul></div></div></div>
 <div class="sect1"><h2 id="usage">Usage</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>instantiate a TerrainGrid object</p></li><li><p>set material, listeners, translation, scale, etc.</p></li><li><p>add a LODControl instance to the object</p></li><li><p>call initialize with the camera location</p></li><li><p>(optional) add it to the physicsSpace as you would a TerrainQuad</p></li></ol></div>
 <div class="sect1"><h2 id="usage">Usage</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>instantiate a TerrainGrid object</p></li><li><p>set material, listeners, translation, scale, etc.</p></li><li><p>add a LODControl instance to the object</p></li><li><p>call initialize with the camera location</p></li><li><p>(optional) add it to the physicsSpace as you would a TerrainQuad</p></li></ol></div>
 <div class="paragraph"><p>Further information about terrain and TerrainQuad can be found in the wiki at:</p></div>
 <div class="paragraph"><p>Further information about terrain and TerrainQuad can be found in the wiki at:</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/beginner/hello_terrain.html">jme3:beginner:hello_terrain</a></p></li><li><p><a href="../../jme3/advanced/terrain.html">jme3:advanced:terrain</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/beginner/hello_terrain.html">jme3:beginner:hello_terrain</a></p></li><li><p><a href="../../jme3/advanced/terrain.html">jme3:advanced:terrain</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/fade.html

@@ -14,7 +14,7 @@ The effect uses com.jme3.post.FilterPostProcessor and com.jme3.post.filters.Fade
   ...
   ...
 }</code></pre></div></div></div></div>
 }</code></pre></div></div></div></div>
 <div class="sect1"><h2 id="fading-in-and-out">Fading in and out</h2><div class="sectionbody"><div class="paragraph"><p>Now call the <code>fade.fadeIn()</code> and <code>fade.fadeOut()</code> methods to trigger the effect.
 <div class="sect1"><h2 id="fading-in-and-out">Fading in and out</h2><div class="sectionbody"><div class="paragraph"><p>Now call the <code>fade.fadeIn()</code> and <code>fade.fadeOut()</code> methods to trigger the effect.
-You can also change the fade duration using <code>fade.setDuration()</code>.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+You can also change the fade duration using <code>fade.setDuration()</code>.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/free_skymaps.html

@@ -37,7 +37,7 @@ getRootNode().attachChild(SkyFactory.createSky(getAssetManager(), west, east, no
 <div class="ulist"><ul><li><p><a href="https://code.google.com/archive/p/gimp-dds/">Gimp-dds</a></p></li><li><p><a href="http://registry.gimp.org/node/25532">Cubemap Layers Generator</a></p></li></ul></div>
 <div class="ulist"><ul><li><p><a href="https://code.google.com/archive/p/gimp-dds/">Gimp-dds</a></p></li><li><p><a href="http://registry.gimp.org/node/25532">Cubemap Layers Generator</a></p></li></ul></div>
 <div class="paragraph"><p>After installing the scripts you open a image in gimp. This script works by slicing up the image into 6 layers of equal size, each by the power of 2.</p></div>
 <div class="paragraph"><p>After installing the scripts you open a image in gimp. This script works by slicing up the image into 6 layers of equal size, each by the power of 2.</p></div>
 <div class="olist arabic"><ol class="arabic"><li><p>After you open the image you select <code><span class="menuseq"><span class="menu">Filters</span>&#160;&#9656; <span class="submenu">Generic</span>&#160;&#9656; <span class="menuitem">Cubemap Layers Generator</span></span></code>.</p></li><li><p>Fill in the details as follows.</p><div class="ulist"><ul><li><p>Source: navigate to the image you are slicing.</p></li><li><p>Cubemap layout: <code>Cross Horizontal</code></p></li><li><p>2 to the power of: <code>10</code> (for 1024 sized Layers)</p></li></ul></div></li><li><p>Press <b class="button">OK</b> to slice up the image.</p></li><li><p>Select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="menuitem">Export As</span></span></code> and change the <code>Name</code> and <code>File Type</code> to <code>.dds</code>. Choose your save location, typically <code>Assets/Textures</code>.</p></li><li><p>Press <b class="button">Export</b>.</p></li><li><p>A DDS panel will open. Apply the following settings:</p><div class="ulist"><ul><li><p>Compression: <code>None</code></p></li><li><p>Format: <code>RGB8</code></p></li><li><p>Save: <code>As cube map</code></p></li><li><p>MipMaps: <code>No mipmaps</code></p></li></ul></div></li><li><p>Press <b class="button">OK</b> to export.</p></li></ol></div>
 <div class="olist arabic"><ol class="arabic"><li><p>After you open the image you select <code><span class="menuseq"><span class="menu">Filters</span>&#160;&#9656; <span class="submenu">Generic</span>&#160;&#9656; <span class="menuitem">Cubemap Layers Generator</span></span></code>.</p></li><li><p>Fill in the details as follows.</p><div class="ulist"><ul><li><p>Source: navigate to the image you are slicing.</p></li><li><p>Cubemap layout: <code>Cross Horizontal</code></p></li><li><p>2 to the power of: <code>10</code> (for 1024 sized Layers)</p></li></ul></div></li><li><p>Press <b class="button">OK</b> to slice up the image.</p></li><li><p>Select <code><span class="menuseq"><span class="menu">File</span>&#160;&#9656; <span class="menuitem">Export As</span></span></code> and change the <code>Name</code> and <code>File Type</code> to <code>.dds</code>. Choose your save location, typically <code>Assets/Textures</code>.</p></li><li><p>Press <b class="button">Export</b>.</p></li><li><p>A DDS panel will open. Apply the following settings:</p><div class="ulist"><ul><li><p>Compression: <code>None</code></p></li><li><p>Format: <code>RGB8</code></p></li><li><p>Save: <code>As cube map</code></p></li><li><p>MipMaps: <code>No mipmaps</code></p></li></ul></div></li><li><p>Press <b class="button">OK</b> to export.</p></li></ol></div>
-<div class="paragraph"><p>You attach the exported image to your scene as is explained in the <a href="../../jme3/advanced/sky.html">How to add a Sky to your Scene</a> tutorial.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>You attach the exported image to your scene as is explained in the <a href="../../jme3/advanced/sky.html">How to add a Sky to your Scene</a> tutorial.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/headless_server.html

@@ -18,7 +18,7 @@
   app.start(JmeContext.Type.Headless);
   app.start(JmeContext.Type.Headless);
 }</code></pre></div></div></div></div>
 }</code></pre></div></div></div></div>
 <div class="sect1"><h2 id="next-steps">Next steps</h2><div class="sectionbody"><div class="paragraph"><p>Okay, so you can now start your game in a headless 'server mode', where to go from here?</p></div>
 <div class="sect1"><h2 id="next-steps">Next steps</h2><div class="sectionbody"><div class="paragraph"><p>Okay, so you can now start your game in a headless 'server mode', where to go from here?</p></div>
-<div class="ulist"><ul><li><p>Parse <code>String[] args</code> from the <code>main</code>-method to enable server mode on demand (e.g. start your server like <code>java -jar mygame.jar –server</code>.</p></li><li><p>Integrate <a href="../../jme3/advanced/networking.html">SpiderMonkey</a>, to provide game updates to the server over a network.</p></li><li><p>Only execute code that&#8217;s needed. (E.g. place all rendering code inside an <code>if (servermode)</code>-block) (or <code>if (!servermode)</code> for the client).</p></li><li><p>Add decent <a href="../../jme3/advanced/logging.html">logging</a> so your server actually makes sense.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p>Parse <code>String[] args</code> from the <code>main</code>-method to enable server mode on demand (e.g. start your server like <code>java -jar mygame.jar –server</code>.</p></li><li><p>Integrate <a href="../../jme3/advanced/networking.html">SpiderMonkey</a>, to provide game updates to the server over a network.</p></li><li><p>Only execute code that&#8217;s needed. (E.g. place all rendering code inside an <code>if (servermode)</code>-block) (or <code>if (!servermode)</code> for the client).</p></li><li><p>Add decent <a href="../../jme3/advanced/logging.html">logging</a> so your server actually makes sense.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/hinges_and_joints.html

@@ -53,7 +53,7 @@ getPhysicsSpace().add(pendulumNode);</code></pre></div></div>
 joint.enableMotor(<span class="predefined-constant">true</span>, -<span class="integer">1</span>, <span class="float">.1f</span>);</code></pre></div></div>
 joint.enableMotor(<span class="predefined-constant">true</span>, -<span class="integer">1</span>, <span class="float">.1f</span>);</code></pre></div></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Switch the motor on by supplying <code>true</code></p></li><li><p>Specify the velocity with which the joint should rotate around the specified axis.</p><div class="ulist"><ul><li><p>Use positive and negative numbers to change direction.</p></li></ul></div></li><li><p>Specify the impulse for this motor. Heavier masses need a bigger impulse to be moved.</p></li></ol></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Switch the motor on by supplying <code>true</code></p></li><li><p>Specify the velocity with which the joint should rotate around the specified axis.</p><div class="ulist"><ul><li><p>Use positive and negative numbers to change direction.</p></li></ul></div></li><li><p>Specify the impulse for this motor. Heavier masses need a bigger impulse to be moved.</p></li></ol></div>
 <div class="paragraph"><p>When you disable the motor, the chained nodes are exposed to gravity again:</p></div>
 <div class="paragraph"><p>When you disable the motor, the chained nodes are exposed to gravity again:</p></div>
-<div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">joint.enableMotor(<span class="predefined-constant">false</span>, <span class="integer">0</span>, <span class="integer">0</span>);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">joint.enableMotor(<span class="predefined-constant">false</span>, <span class="integer">0</span>, <span class="integer">0</span>);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/hud.html

@@ -50,7 +50,7 @@ hudText = new BitmapText(myFont, false);</code></pre></div></div></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Lay out the <abbr title="Graphical User Interface">GUI</abbr> in one or several Nifty XML or Java files.</p></li><li><p>Write the controller classes in Java.</p></li><li><p>Load the XML file with the controller object in your game&#8217;s simpleInit() method.</p></li></ol></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Lay out the <abbr title="Graphical User Interface">GUI</abbr> in one or several Nifty XML or Java files.</p></li><li><p>Write the controller classes in Java.</p></li><li><p>Load the XML file with the controller object in your game&#8217;s simpleInit() method.</p></li></ol></div>
 <div class="paragraph"><p>The advantage of Nifty <abbr title="Graphical User Interface">GUI</abbr> is that it is well integrated into jME and the jMonkeyEngine SDK, and that it offers all the features that you expect from a professional modern user interface.</p></div>
 <div class="paragraph"><p>The advantage of Nifty <abbr title="Graphical User Interface">GUI</abbr> is that it is well integrated into jME and the jMonkeyEngine SDK, and that it offers all the features that you expect from a professional modern user interface.</p></div>
 <div class="paragraph"><p>For HUDs, you basically follow the same instructions as for creating a normal <a href="../../jme3/advanced/nifty_gui.html">Nifty GUI</a>, you just don&#8217;t pause the game while the HUD is up.</p></div></div></div>
 <div class="paragraph"><p>For HUDs, you basically follow the same instructions as for creating a normal <a href="../../jme3/advanced/nifty_gui.html">Nifty GUI</a>, you just don&#8217;t pause the game while the HUD is up.</p></div></div></div>
-<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/external/fonts.html">Fonts</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/external/fonts.html">Fonts</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/input_handling.html

@@ -80,7 +80,7 @@ inputManager.addMapping(<span class="string"><span class="delimiter">&quot;</spa
   };</code></pre></div></div></div></div>
   };</code></pre></div></div></div></div>
 <div class="sect1"><h2 id="let-users-remap-keys">Let Users Remap Keys</h2><div class="sectionbody"><div class="paragraph"><p>It is likely that your players have different keyboard layouts, are used to “reversed mouse navigation, or prefer different navigational keys than the ones that you defined. You should create an options screen that lets users customize their mouse/key triggers for your mappings. Replace the trigger literals in the <code>inputManager.addMapping()</code> lines with variables, and load sets of triggers when the game starts.</p></div>
 <div class="sect1"><h2 id="let-users-remap-keys">Let Users Remap Keys</h2><div class="sectionbody"><div class="paragraph"><p>It is likely that your players have different keyboard layouts, are used to “reversed mouse navigation, or prefer different navigational keys than the ones that you defined. You should create an options screen that lets users customize their mouse/key triggers for your mappings. Replace the trigger literals in the <code>inputManager.addMapping()</code> lines with variables, and load sets of triggers when the game starts.</p></div>
 <div class="paragraph"><p>The abstraction of separating triggers and mappings has the advantage that you can remap triggers easily. Your code only needs to remove and add some trigger mappings. The core of the code (the listeners and actions) remains unchanged.</p></div></div></div>
 <div class="paragraph"><p>The abstraction of separating triggers and mappings has the advantage that you can remap triggers easily. Your code only needs to remove and add some trigger mappings. The core of the code (the listeners and actions) remains unchanged.</p></div></div></div>
-<div class="sect1"><h2 id="detecting-joystick-connection-states">Detecting Joystick Connection States</h2><div class="sectionbody"><div class="paragraph"><p>For information regarding the connection state of a joystick see <a href="../../jme3/beginner/hello_input_system.html#listening-for-joystick-connections">Listening for Joystick Connections</a>.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="detecting-joystick-connection-states">Detecting Joystick Connection States</h2><div class="sectionbody"><div class="paragraph"><p>For information regarding the connection state of a joystick see <a href="../../jme3/beginner/hello_input_system.html#listening-for-joystick-connections">Listening for Joystick Connections</a>.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/j3m_material_files.html

@@ -87,7 +87,7 @@ mat.setBoolean(<span class="string"><span class="delimiter">&quot;</span><span c
     }
     }
 }</code></pre></div></div>
 }</code></pre></div></div>
 <div class="paragraph"><p>The PNG file is in the same directory, <code>assets/Models/Tree/…</code></p></div></div></div>
 <div class="paragraph"><p>The PNG file is in the same directory, <code>assets/Models/Tree/…</code></p></div></div></div>
-<div class="sect1"><h2 id="related-links">Related Links</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/advanced/material_specification.html">Developer specification of the jME3 material system (.j3md,.j3m)</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="related-links">Related Links</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/advanced/material_specification.html">Developer specification of the jME3 material system (.j3md,.j3m)</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/jme3_ai.html

@@ -528,7 +528,7 @@ picked = navControl;</code></pre></div></div>
 <div class="paragraph"><p>The <code>PCControl</code> will then set the walk direction, based off spatials world rotation, and set the speed.</p></div></div></div>
 <div class="paragraph"><p>The <code>PCControl</code> will then set the walk direction, based off spatials world rotation, and set the speed.</p></div></div></div>
 <div class="sect1"><h2 id="conclusion">Conclusion</h2><div class="sectionbody"><div class="paragraph"><p>The intent of this tutorial was to give you a general breakdown of how the Jme3AI navigation system works as well as demonstrate how flexible its implementation is. All the code in this tutorial is free for your use and can be found in the <a href="https://github.com/jMonkeyEngine/doc-examples">jme3 documentation repository</a>. The implementations design is such that you can easily change each of the parameters and then visually see how they affect the NavMesh. If you have questions or suggestions on improving this tutorial you can do so in the <a href="https://hub.jmonkeyengine.org/">jMonkeyEngine forum</a>.</p></div></div></div>
 <div class="sect1"><h2 id="conclusion">Conclusion</h2><div class="sectionbody"><div class="paragraph"><p>The intent of this tutorial was to give you a general breakdown of how the Jme3AI navigation system works as well as demonstrate how flexible its implementation is. All the code in this tutorial is free for your use and can be found in the <a href="https://github.com/jMonkeyEngine/doc-examples">jme3 documentation repository</a>. The implementations design is such that you can easily change each of the parameters and then visually see how they affect the NavMesh. If you have questions or suggestions on improving this tutorial you can do so in the <a href="https://hub.jmonkeyengine.org/">jMonkeyEngine forum</a>.</p></div></div></div>
 <div class="sect1"><h2 id="other-ai-options">Other AI Options</h2><div class="sectionbody"><div class="paragraph"><p>There are other jME3 specific options available you can read about in the wiki under the topic <a href="https://wiki.jmonkeyengine.org/jme3.html#artificial-intelligence-ai">Artificial Intelligence (AI)</a>.</p></div></div></div>
 <div class="sect1"><h2 id="other-ai-options">Other AI Options</h2><div class="sectionbody"><div class="paragraph"><p>There are other jME3 specific options available you can read about in the wiki under the topic <a href="https://wiki.jmonkeyengine.org/jme3.html#artificial-intelligence-ai">Artificial Intelligence (AI)</a>.</p></div></div></div>
-<div class="sect1"><h2 id="further-reading">Further Reading</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="http://www.policyalmanac.org/games/aStarTutorial.htm">A* path-finding for Beginners</a> by Patrick Lester</p></li><li><p><a href="http://natureofcode.com/book/">The Nature of Code</a> by Daniel Shiffman</p></li><li><p><a href="http://www.red3d.com/cwr/steer/gdc99/">Steering Behaviors For Autonomous Characters</a> by Craig W. Reynolds</p></li><li><p><a href="http://www.critterai.org/projects/nmgen_study/">Study: Navigation Mesh Generation Java</a> by Stephen Pratt</p></li></ul></div></div></div></div><div id="footnotes"><hr><div class="footnote" id="_footnote_1"><a href="#_footnoteref_1">1</a>. Path-finding means computing the shortest route between two points. Usually mazes.</div><div class="footnote" id="_footnote_2"><a href="#_footnoteref_2">2</a>. Path-following is taking a path that already exists and then following that path.</div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="further-reading">Further Reading</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="http://www.policyalmanac.org/games/aStarTutorial.htm">A* path-finding for Beginners</a> by Patrick Lester</p></li><li><p><a href="http://natureofcode.com/book/">The Nature of Code</a> by Daniel Shiffman</p></li><li><p><a href="http://www.red3d.com/cwr/steer/gdc99/">Steering Behaviors For Autonomous Characters</a> by Craig W. Reynolds</p></li><li><p><a href="http://www.critterai.org/projects/nmgen_study/">Study: Navigation Mesh Generation Java</a> by Stephen Pratt</p></li></ul></div></div></div></div><div id="footnotes"><hr><div class="footnote" id="_footnote_1"><a href="#_footnoteref_1">1</a>. Path-finding means computing the shortest route between two points. Usually mazes.</div><div class="footnote" id="_footnote_2"><a href="#_footnoteref_2">2</a>. Path-following is taking a path that already exists and then following that path.</div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/jme3_renderbuckets.html

@@ -6,7 +6,7 @@
 <div class="paragraph"><p>Post processors are not applied to this bucket with one exception : the FilterPostProcessor.</p></div>
 <div class="paragraph"><p>Post processors are not applied to this bucket with one exception : the FilterPostProcessor.</p></div>
 <div class="paragraph"><p>The filter post processor hijacks the rendering process and renders a full screen quad with the texture of the scene applied on it.</p></div>
 <div class="paragraph"><p>The filter post processor hijacks the rendering process and renders a full screen quad with the texture of the scene applied on it.</p></div>
 <div class="paragraph"><p>Once it’s done the depth buffer is 0, so it’s impossible to render a queue over it with proper depth test so if you use a FilterPostProcessor you have to add at the end of your filter stack the TranslucentBucketFilter. It will handle the translucent bucket rendering instead of the RenderManager. (Of course the correct depth information is passed to the filter).</p></div>
 <div class="paragraph"><p>Once it’s done the depth buffer is 0, so it’s impossible to render a queue over it with proper depth test so if you use a FilterPostProcessor you have to add at the end of your filter stack the TranslucentBucketFilter. It will handle the translucent bucket rendering instead of the RenderManager. (Of course the correct depth information is passed to the filter).</p></div>
-<div class="paragraph"><p>The nice side effect of this is that if you want to apply a post filter to your translucent bucket (like bloom for example) you can just push up the translucent bucket filter in the filter stack.</p></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>The nice side effect of this is that if you want to apply a post filter to your translucent bucket (like bloom for example) you can just push up the translucent bucket filter in the filter stack.</p></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/jme3_shadernodes.html

@@ -284,7 +284,7 @@ Note that most glsl compiler will optimize this when compiling the shader on the
 <div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>As a rule of thumb you should not assign a value to an input. Inputs are likely to be material paramters or outputs from other shaders and modifying them may cause unexpected behavior, even failure in your resulting shader.</p></div></td></tr></table></div>
 <div class="admonitionblock important"><table><tr><td class="icon"><i class="fa icon-important" title="Important"></i></td><td class="content"><div class="paragraph"><p>As a rule of thumb you should not assign a value to an input. Inputs are likely to be material paramters or outputs from other shaders and modifying them may cause unexpected behavior, even failure in your resulting shader.</p></div></td></tr></table></div>
 <div class="paragraph"><p>For more explanations and design decisions please refer to the <abbr title="specification">spec</abbr> here
 <div class="paragraph"><p>For more explanations and design decisions please refer to the <abbr title="specification">spec</abbr> here
 <a href="https://docs.google.com/document/d/1S6xO3d1TBz0xcKe_MPTqY9V-QI59AKdg1OGy3U-HeVY/edit?usp=sharing">https://docs.google.com/document/d/1S6xO3d1TBz0xcKe_MPTqY9V-QI59AKdg1OGy3U-HeVY/edit?usp=sharing</a>.</p></div>
 <a href="https://docs.google.com/document/d/1S6xO3d1TBz0xcKe_MPTqY9V-QI59AKdg1OGy3U-HeVY/edit?usp=sharing">https://docs.google.com/document/d/1S6xO3d1TBz0xcKe_MPTqY9V-QI59AKdg1OGy3U-HeVY/edit?usp=sharing</a>.</p></div>
-<div class="paragraph"><p>Thank you for the brave ones that came through all this reading. I&#8217;m not gonna offer you a prize in exchange of a password, because we ran out of JME thongs…</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>Thank you for the brave ones that came through all this reading. I&#8217;m not gonna offer you a prize in exchange of a password, because we ran out of JME thongs…</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
jme3/advanced/jme3_shaders.html


+ 1 - 1
jme3/advanced/jme3_srgbpipeline.html

@@ -71,7 +71,7 @@ You can see in some games some Gamma calibration screens, that are here to help
 <div class="sect2"><h3 id="should-you-use-this">Should you use this?</h3><div class="paragraph"><p>Yes. Mostly because it&#8217;s the only way to have proper lighting.
 <div class="sect2"><h3 id="should-you-use-this">Should you use this?</h3><div class="paragraph"><p>Yes. Mostly because it&#8217;s the only way to have proper lighting.
 If you&#8217;re starting a new project it&#8217;s a no brainer…use it, period. And don&#8217;t allow the player to turn it off.</p></div>
 If you&#8217;re starting a new project it&#8217;s a no brainer…use it, period. And don&#8217;t allow the player to turn it off.</p></div>
 <div class="paragraph"><p>Now if you already spent time to adjust lighting in your scenes, without gamma correction, turning it on will make everything too bright, and you&#8217;ll have to adjust all your lighting and colors again.
 <div class="paragraph"><p>Now if you already spent time to adjust lighting in your scenes, without gamma correction, turning it on will make everything too bright, and you&#8217;ll have to adjust all your lighting and colors again.
-That&#8217;s why we kept a way to turn it off, for backward compatibility.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+That&#8217;s why we kept a way to turn it off, for backward compatibility.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/level_of_detail.html

@@ -37,7 +37,7 @@ Level 3</p></div></div></td><td class="tableblock halign-left valign-top"><div><
 the further away.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>The higher the level,<br>
 the further away.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>The higher the level,<br>
 the faster.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>The higher the level,<br>
 the faster.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>The higher the level,<br>
 the lower the quality.</p></div></div></td></tr></tbody></table></div></div>
 the lower the quality.</p></div></div></td></tr></tbody></table></div></div>
-<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/t/brand-new-lod-generator/26341">https://hub.jmonkeyengine.org/t/brand-new-lod-generator/26341</a></p></li><li><p><a href="https://github.com/worldforge/ember/tree/master/src/components/ogre/lod">https://github.com/worldforge/ember/tree/master/src/components/ogre/lod</a></p></li><li><p><a href="http://www.melax.com/polychop">http://www.melax.com/polychop</a></p></li><li><p><a href="http://sajty.elementfx.com/progressivemesh/GSoC2012.pdf">http://sajty.elementfx.com/progressivemesh/GSoC2012.pdf</a></p></li><li><p><a href="../../jme3/advanced/terrain.html">JME3 TerraMonkey Terrain</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/t/brand-new-lod-generator/26341">https://hub.jmonkeyengine.org/t/brand-new-lod-generator/26341</a></p></li><li><p><a href="https://github.com/worldforge/ember/tree/master/src/components/ogre/lod">https://github.com/worldforge/ember/tree/master/src/components/ogre/lod</a></p></li><li><p><a href="http://www.melax.com/polychop">http://www.melax.com/polychop</a></p></li><li><p><a href="http://sajty.elementfx.com/progressivemesh/GSoC2012.pdf">http://sajty.elementfx.com/progressivemesh/GSoC2012.pdf</a></p></li><li><p><a href="../../jme3/advanced/terrain.html">JME3 TerraMonkey Terrain</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/light_and_shadow.html

@@ -95,7 +95,7 @@ viewPort.addProcessor(fpp);</code></pre></div></div>
 SSAOFilter ssaoFilter = <span class="keyword">new</span> SSAOFilter(<span class="float">12.94f</span>, <span class="float">43.92f</span>, <span class="float">0.33f</span>, <span class="float">0.61f</span>);
 SSAOFilter ssaoFilter = <span class="keyword">new</span> SSAOFilter(<span class="float">12.94f</span>, <span class="float">43.92f</span>, <span class="float">0.33f</span>, <span class="float">0.61f</span>);
 fpp.addFilter(ssaoFilter);
 fpp.addFilter(ssaoFilter);
 viewPort.addProcessor(fpp);</code></pre></div></div>
 viewPort.addProcessor(fpp);</code></pre></div></div>
-<div class="imageblock"><div class="content"><img src="../../jme3/advanced/shading-textured-ani.gif" alt="Shading with and without Ambient Occlusion" width="" height=""></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="imageblock"><div class="content"><img src="../../jme3/advanced/shading-textured-ani.gif" alt="Shading with and without Ambient Occlusion" width="" height=""></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/loading_screen.html

@@ -533,7 +533,7 @@ update_bar(<span class="integer">100</span>%);</code></pre></div></div>
     <span class="directive">public</span> <span class="type">void</span> init(Parameters prmtrs) {
     <span class="directive">public</span> <span class="type">void</span> init(Parameters prmtrs) {
     }
     }
 
 
-}</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+}</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/localization.html

@@ -26,7 +26,7 @@ inputManager.addListener(actionListener, <span class="string"><span class="delim
 <div class="sect1"><h2 id="common-localization-problems">Common Localization Problems</h2><div class="sectionbody"><div class="paragraph"><p>Typical problems include:</p></div>
 <div class="sect1"><h2 id="common-localization-problems">Common Localization Problems</h2><div class="sectionbody"><div class="paragraph"><p>Typical problems include:</p></div>
 <div class="ulist"><ul><li><p>Localized strings will be of vastly different lengths and will totally break your UI layout. ⇒ Test every localization.</p></li><li><p>Strings with variable text or numbers don&#8217;t work the same in different languages. ⇒ Either work in grammatical cases/numbers/gender for each language, or use <a href="http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms">gettext</a> or <a href="http://userguide.icu-project.org/formatparse/messages">ICU4J</a>.</p></li><li><p>The localizer only sees the strings, without any context. E.g. does “Search History mean “display the history of searches, or “search through the history? ⇒ Use clear key labels. Work closely with the localizers if they require extra info, and add that info as comments to the translation file.</p></li><li><p>Broken international characters ⇒ Make sure the files are saved with the same character encoding as the font file(s) you&#8217;re using. Nowadays, that usually means UTF-8 since font files tend to come for Unicode.</p></li><li><p>Missing international characters ⇒ Make sure that there&#8217;s a glyph for every needed character in your font, either by using more complete font files or by having the translation changed.</p></li></ul></div></div></div>
 <div class="ulist"><ul><li><p>Localized strings will be of vastly different lengths and will totally break your UI layout. ⇒ Test every localization.</p></li><li><p>Strings with variable text or numbers don&#8217;t work the same in different languages. ⇒ Either work in grammatical cases/numbers/gender for each language, or use <a href="http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms">gettext</a> or <a href="http://userguide.icu-project.org/formatparse/messages">ICU4J</a>.</p></li><li><p>The localizer only sees the strings, without any context. E.g. does “Search History mean “display the history of searches, or “search through the history? ⇒ Use clear key labels. Work closely with the localizers if they require extra info, and add that info as comments to the translation file.</p></li><li><p>Broken international characters ⇒ Make sure the files are saved with the same character encoding as the font file(s) you&#8217;re using. Nowadays, that usually means UTF-8 since font files tend to come for Unicode.</p></li><li><p>Missing international characters ⇒ Make sure that there&#8217;s a glyph for every needed character in your font, either by using more complete font files or by having the translation changed.</p></li></ul></div></div></div>
 <div class="sect1"><h2 id="more-documentation">More Documentation</h2><div class="sectionbody"><div class="paragraph"><p><a href="http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/">http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/</a></p></div>
 <div class="sect1"><h2 id="more-documentation">More Documentation</h2><div class="sectionbody"><div class="paragraph"><p><a href="http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/">http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/</a></p></div>
-<div class="paragraph"><p><a href="http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Localisation">http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Localisation</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p><a href="http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Localisation">http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Localisation</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/logging.html

@@ -18,7 +18,7 @@ Example: <code>Vector3f a = cam.getLocation();</code></p></li><li><p>Put the var
 <div class="paragraph"><p>To activate full logging, e.g. for debugging and testing, use the <code>fine</code> level:</p></div>
 <div class="paragraph"><p>To activate full logging, e.g. for debugging and testing, use the <code>fine</code> level:</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">Logger</span>.getLogger(<span class="error">”</span><span class="error">”</span>).setLevel(<span class="predefined-type">Level</span>.FINE);</code></pre></div></div></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java"><span class="predefined-type">Logger</span>.getLogger(<span class="error">”</span><span class="error">”</span>).setLevel(<span class="predefined-type">Level</span>.FINE);</code></pre></div></div></div></div>
 <div class="sect1"><h2 id="advanced-error-handling">Advanced Error Handling</h2><div class="sectionbody"><div class="paragraph"><p>When an uncaught exception reaches certain parts of the jME3 system then the default response is to log the error and then exit the application. This is because an error happening every frame will rapidly fill logs with repeated failings and potentially mask or over-write the original cause of the problem or even the application may continue for a while and then suffer other errors caused by the first and make the root cause hard to determine.</p></div>
 <div class="sect1"><h2 id="advanced-error-handling">Advanced Error Handling</h2><div class="sectionbody"><div class="paragraph"><p>When an uncaught exception reaches certain parts of the jME3 system then the default response is to log the error and then exit the application. This is because an error happening every frame will rapidly fill logs with repeated failings and potentially mask or over-write the original cause of the problem or even the application may continue for a while and then suffer other errors caused by the first and make the root cause hard to determine.</p></div>
-<div class="paragraph"><p>This behaviour can be partially modified by overriding the method handleError in SimpleApplication, for example to display a custom message to users, or to provide users with information on how to report a bug or even to change the way that the error is logged.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>This behaviour can be partially modified by overriding the method handleError in SimpleApplication, for example to display a custom message to users, or to provide users with information on how to report a bug or even to change the way that the error is logged.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/makehuman_blender_ogrexml_toolchain.html

@@ -13,7 +13,7 @@
 <div class="sect1"><h2 id="exporting-character-model-from-blender-to-ogre-xml">Exporting Character Model from Blender to Ogre XML</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>Make sure that your scene objects in Blender do not have any spaces or special characters in their names. Rename them if they do.</p></li><li><p>Arrange all your animations in single NLA track after each other without overlaps or touching in the timeline.</p></li><li><p>Unlink any animations linked directly to your character armature or mesh.</p></li><li><p>Export using <code><span class="menuseq"><span class="menu">Blender</span>&#160;&#9656; <span class="submenu">File</span>&#160;&#9656; <span class="menuitem">Export Ogre3D</span></span></code> (scene and mesh) and tick the following options:<br></p><div class="ulist checklist"><ul class="checklist"><li><p><input type="checkbox" data-item-complete="1" checked=> copy shader programs</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Export Scen</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Export Meshes</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Export Meshes (overwrite)</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Armature Animation</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Optimize Arrays</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Export Materials</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Tangents</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Reorganize Buffers</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Optimize Animations</p></li></ul></div></li></ol></div></div></div>
 <div class="sect1"><h2 id="exporting-character-model-from-blender-to-ogre-xml">Exporting Character Model from Blender to Ogre XML</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>Make sure that your scene objects in Blender do not have any spaces or special characters in their names. Rename them if they do.</p></li><li><p>Arrange all your animations in single NLA track after each other without overlaps or touching in the timeline.</p></li><li><p>Unlink any animations linked directly to your character armature or mesh.</p></li><li><p>Export using <code><span class="menuseq"><span class="menu">Blender</span>&#160;&#9656; <span class="submenu">File</span>&#160;&#9656; <span class="menuitem">Export Ogre3D</span></span></code> (scene and mesh) and tick the following options:<br></p><div class="ulist checklist"><ul class="checklist"><li><p><input type="checkbox" data-item-complete="1" checked=> copy shader programs</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Export Scen</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Export Meshes</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Export Meshes (overwrite)</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Armature Animation</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Optimize Arrays</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Export Materials</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Tangents</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Reorganize Buffers</p></li><li><p><input type="checkbox" data-item-complete="1" checked=> Optimize Animations</p></li></ul></div></li></ol></div></div></div>
 <div class="sect1"><h2 id="importing-ogre-xml-to-jme3">Importing Ogre XML to JME3</h2><div class="sectionbody"><div class="paragraph"><p>You can load the ogre XML with asset manager or import them to SDK and hence convert them to JME3 asset format.</p></div>
 <div class="sect1"><h2 id="importing-ogre-xml-to-jme3">Importing Ogre XML to JME3</h2><div class="sectionbody"><div class="paragraph"><p>You can load the ogre XML with asset manager or import them to SDK and hence convert them to JME3 asset format.</p></div>
 <div class="paragraph"><p>You can test the animations by making your own version of AnimationPreviewer:</p></div>
 <div class="paragraph"><p>You can test the animations by making your own version of AnimationPreviewer:</p></div>
-<div class="paragraph"><p><a href="https://github.com/bubblecloud/jme3-open-asset-pack/blob/master/src/main/java/com/jme3/asset/AnimationPreview.java">https://github.com/bubblecloud/jme3-open-asset-pack/blob/master/src/main/java/com/jme3/asset/AnimationPreview.java</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p><a href="https://github.com/bubblecloud/jme3-open-asset-pack/blob/master/src/main/java/com/jme3/asset/AnimationPreview.java">https://github.com/bubblecloud/jme3-open-asset-pack/blob/master/src/main/java/com/jme3/asset/AnimationPreview.java</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/making_the_camera_follow_a_character.html

@@ -38,7 +38,7 @@ new KeyTrigger(KeyInput.KEY_SPACE))</p></div></div></td><td class="tableblock ha
 <div class="paragraph"><p><strong>Code sample:</strong></p></div>
 <div class="paragraph"><p><strong>Code sample:</strong></p></div>
 <div class="ulist"><ul><li><p><a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/input/TestChaseCamera.java">TestChaseCamera.java</a> – Press the WASD or arrow keys to move. Drag with the left mouse button to rotate.</p></li></ul></div></div></div>
 <div class="ulist"><ul><li><p><a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/input/TestChaseCamera.java">TestChaseCamera.java</a> – Press the WASD or arrow keys to move. Drag with the left mouse button to rotate.</p></li></ul></div></div></div>
 <div class="sect1"><h2 id="which-to-choose">Which to Choose?</h2><div class="sectionbody"><div class="paragraph"><p>What is the difference of the two code samples above?</p></div>
 <div class="sect1"><h2 id="which-to-choose">Which to Choose?</h2><div class="sectionbody"><div class="paragraph"><p>What is the difference of the two code samples above?</p></div>
-<table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 50%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">CameraNode</th><th class="tableblock halign-left valign-top">ChaseCam</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Camera follows immediately, flies at same speed as target.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Camera moves smoothly and accelerates and decelerates, flies more slowly than the target and catches up.</p></div></div></td></tr><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Camera stays attached to the target at a constant distance.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Camera orbits the target and approaches slowly.</p></div></div></td></tr><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Drag-to-Rotate rotates the target and the camera. You always see the target from behind.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Drag-to-Rotate rotates only the camera. You can see the target from various sides.</p></div></div></td></tr></tbody></table></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<table class="tableblock frame-all grid-all spread"><colgroup><col style="width: 50%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">CameraNode</th><th class="tableblock halign-left valign-top">ChaseCam</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Camera follows immediately, flies at same speed as target.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Camera moves smoothly and accelerates and decelerates, flies more slowly than the target and catches up.</p></div></div></td></tr><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Camera stays attached to the target at a constant distance.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Camera orbits the target and approaches slowly.</p></div></div></td></tr><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Drag-to-Rotate rotates the target and the camera. You always see the target from behind.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Drag-to-Rotate rotates only the camera. You can see the target from various sides.</p></div></div></td></tr></tbody></table></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/material_definitions.html

@@ -37,7 +37,7 @@ rootNode.attachChild(geom);</code></pre></div></div>
 <div class="sect1"><h2 id="creating-a-custom-material-definition">Creating a Custom Material Definition</h2><div class="sectionbody"><div class="paragraph"><p>First read the <a href="../../jme3/advanced/material_specification.html">developer specification of the jME3 material system (.j3md,.j3m)</a>. Also check out the <a href="../../jme3/build_from_sources.html">engine source code</a> and have a look at how some Material Definitions are implemented.</p></div>
 <div class="sect1"><h2 id="creating-a-custom-material-definition">Creating a Custom Material Definition</h2><div class="sectionbody"><div class="paragraph"><p>First read the <a href="../../jme3/advanced/material_specification.html">developer specification of the jME3 material system (.j3md,.j3m)</a>. Also check out the <a href="../../jme3/build_from_sources.html">engine source code</a> and have a look at how some Material Definitions are implemented.</p></div>
 <div class="paragraph"><p>You can create your own Material Definitions and place them in your project&#8217;s <code>assets/MatDefs</code> directory.</p></div>
 <div class="paragraph"><p>You can create your own Material Definitions and place them in your project&#8217;s <code>assets/MatDefs</code> directory.</p></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Find the existing MatDefs in <code>engine/src/core-data/Common/MatDefs/</code>.</p></li><li><p>Open a Something.j3md file in a text editor. You see that this .j3md file defines Material Parameters and Techniques.</p><div class="ulist"><ul><li><p>Material Parameters are the ones that you set in Materials, as shown in the examples above.</p></li><li><p>The Techniques rely on VertexShaders and FragmentShaders: You find those in the files Something.vert and Something.frag in the same directory.</p></li></ul></div></li><li><p>Learn about GLSL (OpenGL Shading Language) to understand the .vert and .frag syntax, then write your own.</p></li></ol></div></div></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Find the existing MatDefs in <code>engine/src/core-data/Common/MatDefs/</code>.</p></li><li><p>Open a Something.j3md file in a text editor. You see that this .j3md file defines Material Parameters and Techniques.</p><div class="ulist"><ul><li><p>Material Parameters are the ones that you set in Materials, as shown in the examples above.</p></li><li><p>The Techniques rely on VertexShaders and FragmentShaders: You find those in the files Something.vert and Something.frag in the same directory.</p></li></ul></div></li><li><p>Learn about GLSL (OpenGL Shading Language) to understand the .vert and .frag syntax, then write your own.</p></li></ol></div></div></div>
-<div class="sect1"><h2 id="related-links">Related Links</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/advanced/material_specification.html">Developer specification of the jME3 material system (.j3md,.j3m)</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="related-links">Related Links</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/advanced/material_specification.html">Developer specification of the jME3 material system (.j3md,.j3m)</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/material_specification.html

@@ -128,7 +128,7 @@ assetManager.loadTexture(<span class="keyword">new</span> TextureKey(<span class
 <span class="comment">// Set the parameters</span>
 <span class="comment">// Set the parameters</span>
 mat.setTexture(<span class="string"><span class="delimiter">&quot;</span><span class="content">MyTex</span><span class="delimiter">&quot;</span></span>, tex);
 mat.setTexture(<span class="string"><span class="delimiter">&quot;</span><span class="content">MyTex</span><span class="delimiter">&quot;</span></span>, tex);
 mat.setFloat(<span class="string"><span class="delimiter">&quot;</span><span class="content">Shininess</span><span class="delimiter">&quot;</span></span>, <span class="float">20.0f</span>);</code></pre></div></div></div></div>
 mat.setFloat(<span class="string"><span class="delimiter">&quot;</span><span class="content">Shininess</span><span class="delimiter">&quot;</span></span>, <span class="float">20.0f</span>);</code></pre></div></div></div></div>
-<div class="sect1"><h2 id="conclusion">Conclusion</h2><div class="sectionbody"><div class="paragraph"><p>Congratulations on being able to read this entire document! To reward your efforts, jMonkeyEngine.com will offer a free prize, please contact Momoko_Fan aka &#8220;Kirill&#8221; Vainer with the password &#8220;bananapie&#8221; to claim.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="conclusion">Conclusion</h2><div class="sectionbody"><div class="paragraph"><p>Congratulations on being able to read this entire document! To reward your efforts, jMonkeyEngine.com will offer a free prize, please contact Momoko_Fan aka &#8220;Kirill&#8221; Vainer with the password &#8220;bananapie&#8221; to claim.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/materials_overview.html

@@ -182,7 +182,7 @@ setBlendMode(BlendMode.Off);</p></div></div></td><td class="tableblock halign-le
 <div class="paragraph"><p>Note that gl_PointCoord must be set in the shader.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Point sprites are used internally for hardware accelerated particle effects.</p></div></div></td></tr><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>getAdditionalRenderState()<br>
 <div class="paragraph"><p>Note that gl_PointCoord must be set in the shader.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Point sprites are used internally for hardware accelerated particle effects.</p></div></div></td></tr><tr><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>getAdditionalRenderState()<br>
 .setPolyOffset();</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Enable polygon offset.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Use this when you have meshes that have triangles really close to each over (e.g. <a href="http://en.wikipedia.org/wiki/Coplanarity">Coplanar</a>), it will shift the depth values to prevent <a href="http://en.wikipedia.org/wiki/Z-fighting">Z-fighting</a>.</p></div></div></td></tr></tbody></table>
 .setPolyOffset();</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Enable polygon offset.</p></div></div></td><td class="tableblock halign-left valign-top"><div><div class="paragraph"><p>Use this when you have meshes that have triangles really close to each over (e.g. <a href="http://en.wikipedia.org/wiki/Coplanarity">Coplanar</a>), it will shift the depth values to prevent <a href="http://en.wikipedia.org/wiki/Z-fighting">Z-fighting</a>.</p></div></div></td></tr></tbody></table>
 <div class="paragraph"><p><strong>Related Links</strong></p></div>
 <div class="paragraph"><p><strong>Related Links</strong></p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/material_specification.html">Developer specification of the jME3 material system (.j3md,.j3m)</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/material_specification.html">Developer specification of the jME3 material system (.j3md,.j3m)</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
jme3/advanced/mesh.html


+ 1 - 1
jme3/advanced/mixamo.html

@@ -38,7 +38,7 @@ Set <code>End:</code> to this value.</p></li><li><p>Click the <b class="button">
 <div class="paragraph"><p>Some export methods bake your actions automatically on export, others don&#8217;t. Test the animation in-game and if your animations are all messed up, try <a href="../../jme3/external/blender/blender_action_baking.html">baking them</a> or use a different exporter.</p></div></td></tr></table></div>
 <div class="paragraph"><p>Some export methods bake your actions automatically on export, others don&#8217;t. Test the animation in-game and if your animations are all messed up, try <a href="../../jme3/external/blender/blender_action_baking.html">baking them</a> or use a different exporter.</p></div></td></tr></table></div>
 <div class="paragraph"><p>Your NLA strip should look something like this:</p></div>
 <div class="paragraph"><p>Your NLA strip should look something like this:</p></div>
 <div class="imageblock"><div class="content"><img src="../../jme3/advanced/MixamoNLA.png" alt="MixamoNLA.png" width="" height=""></div></div></div></div>
 <div class="imageblock"><div class="content"><img src="../../jme3/advanced/MixamoNLA.png" alt="MixamoNLA.png" width="" height=""></div></div></div></div>
-<div class="sect1"><h2 id="notes">Notes</h2><div class="sectionbody"><div class="ulist"><ul><li><p>You can see a similar video demonstration of this entire process in <a href="../../jme3.html#animations-and-scenes">Animations And Scenes</a> under the CadNav <span class="icon"><i class="fa fa-long-arrow-right"></i></span>  Mixamo <span class="icon"><i class="fa fa-long-arrow-right"></i></span> JME Workflow heading.</p></li><li><p>See <a href="../../jme3/beginner/hello_animation.html">Hello Animation</a> and <a href="../../jme3/advanced/animation.html">Animation in JME3</a> to learn how to use your animated model.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="notes">Notes</h2><div class="sectionbody"><div class="ulist"><ul><li><p>You can see a similar video demonstration of this entire process in <a href="../../jme3.html#animations-and-scenes">Animations And Scenes</a> under the CadNav <span class="icon"><i class="fa fa-long-arrow-right"></i></span>  Mixamo <span class="icon"><i class="fa fa-long-arrow-right"></i></span> JME Workflow heading.</p></li><li><p>See <a href="../../jme3/beginner/hello_animation.html">Hello Animation</a> and <a href="../../jme3/advanced/animation.html">Animation in JME3</a> to learn how to use your animated model.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/monkey_brains.html

@@ -4,7 +4,7 @@
 Download MonkeyBrains from the GitHub <a href="https://github.com/QuietOne/MonkeyBrains">repository</a>.</p></div></div></div>
 Download MonkeyBrains from the GitHub <a href="https://github.com/QuietOne/MonkeyBrains">repository</a>.</p></div></div></div>
 <div class="sect1"><h2 id="monkeybrains-wiki">MonkeyBrains Wiki</h2><div class="sectionbody"><div class="paragraph"><p>User guide for MonkeyBrains is moved to <a href="https://github.com/QuietOne/MonkeyBrains/wiki">MonkeyBrains Wiki</a></p></div></div></div>
 <div class="sect1"><h2 id="monkeybrains-wiki">MonkeyBrains Wiki</h2><div class="sectionbody"><div class="paragraph"><p>User guide for MonkeyBrains is moved to <a href="https://github.com/QuietOne/MonkeyBrains/wiki">MonkeyBrains Wiki</a></p></div></div></div>
 <div class="sect1"><h2 id="working-games">Working games:</h2><div class="sectionbody"><div class="paragraph"><p>For more examples of working games built with MonkeyBrains see: <a href="https://github.com/QuietOne/MonkeyBrainsDemoGames">https://github.com/QuietOne/MonkeyBrainsDemoGames</a></p></div></div></div>
 <div class="sect1"><h2 id="working-games">Working games:</h2><div class="sectionbody"><div class="paragraph"><p>For more examples of working games built with MonkeyBrains see: <a href="https://github.com/QuietOne/MonkeyBrainsDemoGames">https://github.com/QuietOne/MonkeyBrainsDemoGames</a></p></div></div></div>
-<div class="sect1"><h2 id="suggestions-and-questions">Suggestions and questions:</h2><div class="sectionbody"><div class="paragraph"><p>If you have suggestion or any questions, please see forum: <a href="http://hub.jmonkeyengine.org/forum/board/projects/monkeybrains/">http://hub.jmonkeyengine.org/forum/board/projects/monkeybrains/</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="suggestions-and-questions">Suggestions and questions:</h2><div class="sectionbody"><div class="paragraph"><p>If you have suggestion or any questions, please see forum: <a href="http://hub.jmonkeyengine.org/forum/board/projects/monkeybrains/">http://hub.jmonkeyengine.org/forum/board/projects/monkeybrains/</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/monkey_zone.html

@@ -43,7 +43,7 @@ The sync manager basically puts a timestamp on every message sent from the serve
 <div class="sect1"><h2 id="the-future">The Future</h2><div class="sectionbody"><div class="paragraph"><p>Have a look at the code and feel free to ask about it, if you want any new features, you are free to implement them. ;)
 <div class="sect1"><h2 id="the-future">The Future</h2><div class="sectionbody"><div class="paragraph"><p>Have a look at the code and feel free to ask about it, if you want any new features, you are free to implement them. ;)
 MonkeyZone is hosted at GoogleCode, where you can check out the jMonkeyEngine SDK-ready project via svn:</p></div>
 MonkeyZone is hosted at GoogleCode, where you can check out the jMonkeyEngine SDK-ready project via svn:</p></div>
 <div class="olist arabic"><ol class="arabic"><li><p>jMonkeyEngine SDK→Team→Subversion→Checkout,</p></li><li><p>Enter the SVN <abbr title="Uniform Resource Locator">URL</abbr> <code><a href="http://monkeyzone.googlecode.com/svn/trunk/">http://monkeyzone.googlecode.com/svn/trunk/</a></code></p></li><li><p>Download, open, and build the project</p></li><li><p>Run the server first (com.jme3.monkeyzone.ServerMain), and then a client (com.jme3.monkeyzone.ClientMain).</p></li></ol></div></div></div>
 <div class="olist arabic"><ol class="arabic"><li><p>jMonkeyEngine SDK→Team→Subversion→Checkout,</p></li><li><p>Enter the SVN <abbr title="Uniform Resource Locator">URL</abbr> <code><a href="http://monkeyzone.googlecode.com/svn/trunk/">http://monkeyzone.googlecode.com/svn/trunk/</a></code></p></li><li><p>Download, open, and build the project</p></li><li><p>Run the server first (com.jme3.monkeyzone.ServerMain), and then a client (com.jme3.monkeyzone.ClientMain).</p></li></ol></div></div></div>
-<div class="sect1"><h2 id="troubleshooting">Troubleshooting</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>After download, errors could appear because jme3tools.navmesh.util\NavMeshGenerator.java import com.jme3.terrain.Terrain is not known, you should correct this by setting Project Properties &gt; Libraries &gt; Add Library &gt; jme3-libraries-terrain</p></li></ol></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="troubleshooting">Troubleshooting</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>After download, errors could appear because jme3tools.navmesh.util\NavMeshGenerator.java import com.jme3.terrain.Terrain is not known, you should correct this by setting Project Properties &gt; Libraries &gt; Add Library &gt; jme3-libraries-terrain</p></li></ol></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/motionpath.html

@@ -25,7 +25,7 @@ removeWayPoint(index)</p></div></div></td><td class="tableblock halign-left vali
       println(control.getSpatial().getName() + <span class="string"><span class="delimiter">&quot;</span><span class="content"> has reached way point </span><span class="delimiter">&quot;</span></span> + wayPointIndex);
       println(control.getSpatial().getName() + <span class="string"><span class="delimiter">&quot;</span><span class="content"> has reached way point </span><span class="delimiter">&quot;</span></span> + wayPointIndex);
     }
     }
   }
   }
-});</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+});</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/mouse_picking.html

@@ -75,7 +75,7 @@
         }
         }
       } <span class="comment">// else if ...</span>
       } <span class="comment">// else if ...</span>
     }
     }
-  };</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+  };</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/multiple_camera_views.html

@@ -87,7 +87,7 @@ viewPort2.attachScene(rootNode);</code></pre></div></div></div></div>
 <div class="paragraph"><p>You have full control to determine which Nodes the camera can see! It can see the full rootNode…</p></div>
 <div class="paragraph"><p>You have full control to determine which Nodes the camera can see! It can see the full rootNode…</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">viewPort1.attachScene(rootNode);</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">viewPort1.attachScene(rootNode);</code></pre></div></div>
 <div class="paragraph"><p>… or you can give each camera a special node whose content it can see:</p></div>
 <div class="paragraph"><p>… or you can give each camera a special node whose content it can see:</p></div>
-<div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">viewPort2.attachScene(spookyGhostDetectorNode);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">viewPort2.attachScene(spookyGhostDetectorNode);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/multithreading.html

@@ -102,7 +102,7 @@ The following example gets the object <code>Data data = myWorld.getData();</code
 <a href="http://jahej.com/alt/2011_07_03_threading-and-your-game-loop.html">Threading and your game loop</a>.<br>
 <a href="http://jahej.com/alt/2011_07_03_threading-and-your-game-loop.html">Threading and your game loop</a>.<br>
 A C++ example can be found at:<br>
 A C++ example can be found at:<br>
 <a href="http://gamasutra.com/blogs/AndreaMagnorsky/20130527/193087/Multithreading_rendering_in_a_game_engine_with_CDouble_buffer_implementation.php">Multithreading-rendering in a game engine with CDouble buffer implementation</a>.</p></div></div>
 <a href="http://gamasutra.com/blogs/AndreaMagnorsky/20130527/193087/Multithreading_rendering_in_a_game_engine_with_CDouble_buffer_implementation.php">Multithreading-rendering in a game engine with CDouble buffer implementation</a>.</p></div></div>
-<div class="sect2"><h3 id="conclusion">Conclusion</h3><div class="paragraph"><p>The cool thing about this approach is that every entity creates one self-contained Callable for the Executor, and they are all executed in parallel. In theory, you can have one thread per entity without changing anything else but the settings of the executor.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect2"><h3 id="conclusion">Conclusion</h3><div class="paragraph"><p>The cool thing about this approach is that every entity creates one self-contained Callable for the Executor, and they are all executed in parallel. In theory, you can have one thread per entity without changing anything else but the settings of the executor.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/networking.html

@@ -165,7 +165,7 @@ message2.setReliable(<span class="predefined-constant">false</span>); <span clas
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">app.enqueue(callable);</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">app.enqueue(callable);</code></pre></div></div>
 <div class="paragraph"><p>Learn more about using <a href="../../jme3/advanced/multithreading.html">multithreading</a> in jME3 here.</p></div>
 <div class="paragraph"><p>Learn more about using <a href="../../jme3/advanced/multithreading.html">multithreading</a> in jME3 here.</p></div>
 <div class="paragraph"><p>For general advice, see the articles <a href="https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking">MultiPlayer Networking</a> and <a href="https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization">Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization</a> by the Valve Developer Community.</p></div></div></div>
 <div class="paragraph"><p>For general advice, see the articles <a href="https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking">MultiPlayer Networking</a> and <a href="https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization">Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization</a> by the Valve Developer Community.</p></div></div></div>
-<div class="sect1"><h2 id="troubleshooting">Troubleshooting</h2><div class="sectionbody"><div class="paragraph"><p>If you have set up a server in your home network, and the game clients cannot reach the server from the outside, it&#8217;s time to learn about <a href="http://portforward.com/">port forwarding</a>.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="troubleshooting">Troubleshooting</h2><div class="sectionbody"><div class="paragraph"><p>If you have set up a server in your home network, and the game clients cannot reach the server from the outside, it&#8217;s time to learn about <a href="http://portforward.com/">port forwarding</a>.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/networking_video_tutorials.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="Asciidoctor 1.5.4"><title>networking_video_tutorials</title><link rel="stylesheet" href="./asciidoctor.css">
 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="Asciidoctor 1.5.4"><title>networking_video_tutorials</title><link rel="stylesheet" href="./asciidoctor.css">
 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
 <link rel="stylesheet" href="./coderay-asciidoctor.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"><link rel="stylesheet" href="/home/travis/build/jMonkeyEngine/wiki/build/asciidoc/html5/jme3/advanced/twemoji-awesome.css"></head><body class="article toc2 toc-left"><div id="header"><div id="toolbar"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc/jme3/advanced/networking_video_tutorials.adoc"><i class="fa fa-pencil-square" aria-hidden="true"></i></a><a href="https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc/jme3/advanced/"><i class="fa fa-plus-square" aria-hidden="true"></i></a><input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search"></div><h1>networking_video_tutorials</h1><div class="details"><span class="author" id="author"></span><br><span id="revnumber">version ,</span> <span id="revdate">2016/03/17 20:48</span></div><div id="toc" class="toc2"><div id="toctitle">Table of Contents</div></div></div><div id="content"><div class="paragraph"><p><strong>jME3 Networking Video Tutorials</strong></p></div>
 <link rel="stylesheet" href="./coderay-asciidoctor.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"><link rel="stylesheet" href="/home/travis/build/jMonkeyEngine/wiki/build/asciidoc/html5/jme3/advanced/twemoji-awesome.css"></head><body class="article toc2 toc-left"><div id="header"><div id="toolbar"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc/jme3/advanced/networking_video_tutorials.adoc"><i class="fa fa-pencil-square" aria-hidden="true"></i></a><a href="https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc/jme3/advanced/"><i class="fa fa-plus-square" aria-hidden="true"></i></a><input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search"></div><h1>networking_video_tutorials</h1><div class="details"><span class="author" id="author"></span><br><span id="revnumber">version ,</span> <span id="revdate">2016/03/17 20:48</span></div><div id="toc" class="toc2"><div id="toctitle">Table of Contents</div></div></div><div id="content"><div class="paragraph"><p><strong>jME3 Networking Video Tutorials</strong></p></div>
-<div class="ulist"><ul><li><p><a href="http://www.youtube.com/watch?v=5IbmPL_m9t4">Video: General Introduction to the networking series</a></p></li><li><p><a href="http://www.youtube.com/watch?v=-fzMIOUIKGo">Video: Introduction to the internet</a></p></li><li><p><a href="http://www.youtube.com/watch?v=vm4BtptrmRc">Video: Introduction to the web</a></p></li><li><p><a href="http://www.youtube.com/watch?v=1v8aplAFlFs">Video: Cheating in games</a></p></li><li><p><a href="http://www.youtube.com/watch?v=e4MheUDfxJg">Video: Introduction to SpiderMonkey (Part 1/2)</a></p></li><li><p><a href="http://www.youtube.com/watch?v=uJuO-JPl14I">Video: Introduction to SpiderMonkey (Part 2/2)</a></p></li><li><p><a href="http://www.youtube.com/watch?v=4medGxTsz_U">Video: Our first Networked game (Part 1/3)</a></p></li><li><p><a href="http://www.youtube.com/watch?v=IuYDNS8qGeo">Video: Our first Networked game (Part 2/3)</a></p></li><li><p><a href="http://www.youtube.com/watch?v=mvORSLiYRuo">Video: Our first Networked game (Part 3/3)</a></p></li></ul></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="http://www.youtube.com/watch?v=5IbmPL_m9t4">Video: General Introduction to the networking series</a></p></li><li><p><a href="http://www.youtube.com/watch?v=-fzMIOUIKGo">Video: Introduction to the internet</a></p></li><li><p><a href="http://www.youtube.com/watch?v=vm4BtptrmRc">Video: Introduction to the web</a></p></li><li><p><a href="http://www.youtube.com/watch?v=1v8aplAFlFs">Video: Cheating in games</a></p></li><li><p><a href="http://www.youtube.com/watch?v=e4MheUDfxJg">Video: Introduction to SpiderMonkey (Part 1/2)</a></p></li><li><p><a href="http://www.youtube.com/watch?v=uJuO-JPl14I">Video: Introduction to SpiderMonkey (Part 2/2)</a></p></li><li><p><a href="http://www.youtube.com/watch?v=4medGxTsz_U">Video: Our first Networked game (Part 1/3)</a></p></li><li><p><a href="http://www.youtube.com/watch?v=IuYDNS8qGeo">Video: Our first Networked game (Part 2/3)</a></p></li><li><p><a href="http://www.youtube.com/watch?v=mvORSLiYRuo">Video: Our first Networked game (Part 3/3)</a></p></li></ul></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui.html

@@ -14,7 +14,7 @@
 <div class="ulist"><ul><li><p><a href="https://github.com/nifty-gui/nifty-gui/raw/1.4/nifty-core/manual/nifty-gui-the-manual-1.3.2.pdf">Nifty GUI - the Manual</a></p></li><li><p><a href="https://github.com/nifty-gui/nifty-gui/wiki">Nifty GUI - Wiki</a></p></li><li><p><a href="http://nifty-gui.sourceforge.net/projects/1.4.2/nifty/nifty/apidocs/index.html">Nifty 1.4.2 JavaDoc</a></p></li><li><p><a href="http://nifty-gui.sourceforge.net/projects/1.4.2/nifty/nifty-default-controls/apidocs/index.html">Nifty 1.4.2 Controls JavaDoc</a></p></li><li><p><a href="https://hub.jmonkeyengine.org/t/anyone-succeeded-in-changing-text-in-nifty-programatically/14424">Forum post: Changing Text in Nifty GUIs programmatically</a></p></li></ul></div></div></div>
 <div class="ulist"><ul><li><p><a href="https://github.com/nifty-gui/nifty-gui/raw/1.4/nifty-core/manual/nifty-gui-the-manual-1.3.2.pdf">Nifty GUI - the Manual</a></p></li><li><p><a href="https://github.com/nifty-gui/nifty-gui/wiki">Nifty GUI - Wiki</a></p></li><li><p><a href="http://nifty-gui.sourceforge.net/projects/1.4.2/nifty/nifty/apidocs/index.html">Nifty 1.4.2 JavaDoc</a></p></li><li><p><a href="http://nifty-gui.sourceforge.net/projects/1.4.2/nifty/nifty-default-controls/apidocs/index.html">Nifty 1.4.2 Controls JavaDoc</a></p></li><li><p><a href="https://hub.jmonkeyengine.org/t/anyone-succeeded-in-changing-text-in-nifty-programatically/14424">Forum post: Changing Text in Nifty GUIs programmatically</a></p></li></ul></div></div></div>
 <div class="sect1"><h2 id="nifty-logging-nifty-1-4-2">Nifty Logging (Nifty 1.4.2)</h2><div class="sectionbody"><div class="paragraph"><p>If you want to disable the nifty log lines, add this code after you created nifty:</p></div>
 <div class="sect1"><h2 id="nifty-logging-nifty-1-4-2">Nifty Logging (Nifty 1.4.2)</h2><div class="sectionbody"><div class="paragraph"><p>If you want to disable the nifty log lines, add this code after you created nifty:</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>Logger.getLogger("de.lessvoid.nifty").setLevel(Level.SEVERE);
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>Logger.getLogger("de.lessvoid.nifty").setLevel(Level.SEVERE);
-Logger.getLogger("NiftyInputEventHandlingLog").setLevel(Level.SEVERE);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+Logger.getLogger("NiftyInputEventHandlingLog").setLevel(Level.SEVERE);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui_best_practices.html

@@ -20,7 +20,7 @@ You can use temporary colors during the design phase to highlight which containe
 In the finished <abbr title="Graphical User Interface">GUI</abbr>, screens, layers, and panels are typically transparent; the visible elements are the images, text fields, and controls, inside the panels.</p></li></ul></div>
 In the finished <abbr title="Graphical User Interface">GUI</abbr>, screens, layers, and panels are typically transparent; the visible elements are the images, text fields, and controls, inside the panels.</p></li></ul></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>During development (and during a tutorial), the following debug code makes all panels visible. This helps you arrange them and find errors.</p></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>During development (and during a tutorial), the following debug code makes all panels visible. This helps you arrange them and find errors.</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">nifty.setDebugOptionPanelColors(<span class="predefined-constant">true</span>);</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">nifty.setDebugOptionPanelColors(<span class="predefined-constant">true</span>);</code></pre></div></div>
-<div class="paragraph"><p>Before the release, and during testing, set the debug view to false again.</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>Before the release, and during testing, set the debug view to false again.</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui_java_interaction.html

@@ -205,7 +205,7 @@ niftyElement.getElementInteraction().getPrimary().setOnMouseOver(<span class="ke
 <div class="paragraph"><p>For this to work, there already needs to be a (possibly inactive) <code>&lt;interact /&gt;</code> tag inside your xml element:</p></div>
 <div class="paragraph"><p>For this to work, there already needs to be a (possibly inactive) <code>&lt;interact /&gt;</code> tag inside your xml element:</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;interact</span> <span class="attribute-name">onClick</span>=<span class="string"><span class="delimiter">&quot;</span>doNothing()<span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span></code></pre></div></div></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;interact</span> <span class="attribute-name">onClick</span>=<span class="string"><span class="delimiter">&quot;</span>doNothing()<span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span></code></pre></div></div></div></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>You&#8217;re done with the basic Nifty <abbr title="Graphical User Interface">GUI</abbr> for jME3 tutorial. You can proceed to advanced topics and learn how add controls and effects:</p></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>You&#8217;re done with the basic Nifty <abbr title="Graphical User Interface">GUI</abbr> for jME3 tutorial. You can proceed to advanced topics and learn how add controls and effects:</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_scenarios.html">Nifty GUI Scenarios</a></p></li><li><p><a href="https://github.com/nifty-gui/nifty-gui/raw/1.4/nifty-core/manual/nifty-gui-the-manual-1.3.2.pdf">Nifty GUI - the Manual</a></p></li><li><p><a href="https://github.com/nifty-gui/nifty-gui/wiki/Controls">Controls</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_scenarios.html">Nifty GUI Scenarios</a></p></li><li><p><a href="https://github.com/nifty-gui/nifty-gui/raw/1.4/nifty-core/manual/nifty-gui-the-manual-1.3.2.pdf">Nifty GUI - the Manual</a></p></li><li><p><a href="https://github.com/nifty-gui/nifty-gui/wiki/Controls">Controls</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui_java_layout.html

@@ -652,7 +652,7 @@ panel(<span class="keyword">new</span> PanelBuilder(<span class="string"><span c
 <div class="paragraph"><p>Example:</p></div>
 <div class="paragraph"><p>Example:</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">nifty.registerMouseCursor(<span class="string"><span class="delimiter">&quot;</span><span class="content">hand</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">Interface/mouse-cursor-hand.png</span><span class="delimiter">&quot;</span></span>, <span class="integer">5</span>, <span class="integer">4</span>);</code></pre></div></div></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">nifty.registerMouseCursor(<span class="string"><span class="delimiter">&quot;</span><span class="content">hand</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">Interface/mouse-cursor-hand.png</span><span class="delimiter">&quot;</span></span>, <span class="integer">5</span>, <span class="integer">4</span>);</code></pre></div></div></div></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>Integrate the <abbr title="Graphical User Interface">GUI</abbr> into the game. Typically, you will overlay the <abbr title="Graphical User Interface">GUI</abbr>.</p></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>Integrate the <abbr title="Graphical User Interface">GUI</abbr> into the game. Typically, you will overlay the <abbr title="Graphical User Interface">GUI</abbr>.</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_overlay.html">Nifty GUI Overlay</a> (recommended)</p></li><li><p><a href="../../jme3/advanced/nifty_gui_projection.html">Nifty GUI Projection</a> (optional)</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_overlay.html">Nifty GUI Overlay</a> (recommended)</p></li><li><p><a href="../../jme3/advanced/nifty_gui_projection.html">Nifty GUI Projection</a> (optional)</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui_overlay.html

@@ -26,7 +26,7 @@ flyCam.setDragToRotate(<span class="predefined-constant">true</span>);</code></p
 simply added to whatever XML data has been loaded before.</p></div>
 simply added to whatever XML data has been loaded before.</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">nifty.addXml(<span class="string"><span class="delimiter">&quot;</span><span class="content">Interface/mysecondscreen.xml</span><span class="delimiter">&quot;</span></span>);</code></pre></div></div></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">nifty.addXml(<span class="string"><span class="delimiter">&quot;</span><span class="content">Interface/mysecondscreen.xml</span><span class="delimiter">&quot;</span></span>);</code></pre></div></div></div></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>Now that you have layed out and integrated the <abbr title="Graphical User Interface">GUI</abbr> in your app, you want to respond to user input and display the current game. Time to create a ScreenController!</p></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>Now that you have layed out and integrated the <abbr title="Graphical User Interface">GUI</abbr> in your app, you want to respond to user input and display the current game. Time to create a ScreenController!</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_java_interaction.html">Interact with the GUI from Java</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_java_interaction.html">Interact with the GUI from Java</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui_popup_menu.html

@@ -56,7 +56,7 @@ public <span class="type">void</span> createMyPopupMenu(){
                 <span class="comment">//do something !!!</span>
                 <span class="comment">//do something !!!</span>
        }
        }
     }
     }
-  };</code></pre></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+  };</code></pre></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui_projection.html

@@ -37,7 +37,7 @@ rootNode.attachChild(geom);</code></pre></div></div>
 <div class="paragraph"><p>The MySettingsScreen class is a custom de.lessvoid.nifty.screen.ScreenController in which you implement your <abbr title="Graphical User Interface">GUI</abbr> behaviour.  The variable <code>data</code> contains an object that you use to exchange state info with the game. See <a href="../../jme3/advanced/nifty_gui_java_interaction.html">Nifty GUI Java Interaction</a> for details on how to create this class.</p></div>
 <div class="paragraph"><p>The MySettingsScreen class is a custom de.lessvoid.nifty.screen.ScreenController in which you implement your <abbr title="Graphical User Interface">GUI</abbr> behaviour.  The variable <code>data</code> contains an object that you use to exchange state info with the game. See <a href="../../jme3/advanced/nifty_gui_java_interaction.html">Nifty GUI Java Interaction</a> for details on how to create this class.</p></div>
 <div class="paragraph"><p>Run the code sample. You select buttons on this <abbr title="Graphical User Interface">GUI</abbr> with the arrow keys and then press return. Note that clicking on the texture will not work!</p></div></div></div>
 <div class="paragraph"><p>Run the code sample. You select buttons on this <abbr title="Graphical User Interface">GUI</abbr> with the arrow keys and then press return. Note that clicking on the texture will not work!</p></div></div></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>Now that you have layed out and integrated the <abbr title="Graphical User Interface">GUI</abbr> in your app, you want to respond to user input and display the current game.</p></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>Now that you have layed out and integrated the <abbr title="Graphical User Interface">GUI</abbr> in your app, you want to respond to user input and display the current game.</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_java_interaction.html">Interact with the GUI from Java</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_java_interaction.html">Interact with the GUI from Java</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui_scenarios.html

@@ -151,7 +151,7 @@ nifty.addXml(<span class="string"><span class="delimiter">&quot;</span><span cla
 <div class="paragraph"><p>Learn more about how to create styles by looking at the <a href="https://github.com/nifty-gui/nifty-gui/wiki/Working-from-Source">Nifty GUI source code</a> for “nifty-style-black”. Copy it as a template and change it to create your own style.</p></div>
 <div class="paragraph"><p>Learn more about how to create styles by looking at the <a href="https://github.com/nifty-gui/nifty-gui/wiki/Working-from-Source">Nifty GUI source code</a> for “nifty-style-black”. Copy it as a template and change it to create your own style.</p></div>
 <hr>
 <hr>
 <div class="paragraph"><p>Learn more from the NiftyGUI page:</p></div>
 <div class="paragraph"><p>Learn more from the NiftyGUI page:</p></div>
-<div class="ulist"><ul><li><p><a href="https://github.com/nifty-gui/nifty-gui/wiki/Effects">https://github.com/nifty-gui/nifty-gui/wiki/Effects</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="https://github.com/nifty-gui/nifty-gui/wiki/Effects">https://github.com/nifty-gui/nifty-gui/wiki/Effects</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/nifty_gui_xml_layout.html

@@ -213,7 +213,7 @@ In the <code>hud</code> screen&#8217;s <code>foreground</code> layer, add the fo
 <div style="text-align: center;" class="imageblock"><div class="content"><img src="../../jme3/advanced/nifty-gui-simple-demo.png" alt="nifty-gui-simple-demo.png" width="" height=""></div></div>
 <div style="text-align: center;" class="imageblock"><div class="content"><img src="../../jme3/advanced/nifty-gui-simple-demo.png" alt="nifty-gui-simple-demo.png" width="" height=""></div></div>
 <div class="paragraph"><p>Compare this result with the layout draft above.</p></div></div></div>
 <div class="paragraph"><p>Compare this result with the layout draft above.</p></div></div></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>Integrate the <abbr title="Graphical User Interface">GUI</abbr> into the game. Typically, you will overlay the <abbr title="Graphical User Interface">GUI</abbr>.</p></div>
 <div class="sect1"><h2 id="next-steps">Next Steps</h2><div class="sectionbody"><div class="paragraph"><p>Integrate the <abbr title="Graphical User Interface">GUI</abbr> into the game. Typically, you will overlay the <abbr title="Graphical User Interface">GUI</abbr>.</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_overlay.html">Nifty GUI Overlay</a> (recommended)</p></li><li><p><a href="../../jme3/advanced/nifty_gui_projection.html">Nifty GUI Projection</a> (optional)</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/nifty_gui_overlay.html">Nifty GUI Overlay</a> (recommended)</p></li><li><p><a href="../../jme3/advanced/nifty_gui_projection.html">Nifty GUI Projection</a> (optional)</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/open_game_finder.html

@@ -29,7 +29,7 @@ A: The following sample code demos the typical use case: <a href="http://code.go
 In a JME3 Application&#8217;s init method:</p></div>
 In a JME3 Application&#8217;s init method:</p></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Create a com.ractoc.opengamefinder.client.GUIContainer object.</p></li><li><p>Create a game instance using the GUIContainer (via a ClientFactory).</p></li><li><p>Check the com.ractoc.pffj.api.BasePluginMessageResult for success or failure.</p></li></ol></div>
 <div class="olist arabic"><ol class="arabic"><li><p>Create a com.ractoc.opengamefinder.client.GUIContainer object.</p></li><li><p>Create a game instance using the GUIContainer (via a ClientFactory).</p></li><li><p>Check the com.ractoc.pffj.api.BasePluginMessageResult for success or failure.</p></li></ol></div>
 <div class="paragraph"><p>After this, continue writing your JME3 init method.</p></div></div></div>
 <div class="paragraph"><p>After this, continue writing your JME3 init method.</p></div></div></div>
-<div class="sect1"><h2 id="configuration">Configuration</h2><div class="sectionbody"><div class="ulist"><ul><li><p>Q: How can I offer more avatars to choose from? +A: Save the image files in the path <code>jMonkeyProjects/OGF-Client-1.0-bin/OGF/resources/avatars/</code></p></li><li><p>Q: How do I configure servers addresses? +A: TBD</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="configuration">Configuration</h2><div class="sectionbody"><div class="ulist"><ul><li><p>Q: How can I offer more avatars to choose from? +A: Save the image files in the path <code>jMonkeyProjects/OGF-Client-1.0-bin/OGF/resources/avatars/</code></p></li><li><p>Q: How do I configure servers addresses? +A: TBD</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/particle_emitters.html

@@ -61,7 +61,7 @@ The following effect textures are available by default from <code>test-data.jar<
     rootNode.attachChild(fire);</code></pre></div></div>
     rootNode.attachChild(fire);</code></pre></div></div>
 <div class="paragraph"><p>Browse the full source code of all <a href="https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/effect">effect examples</a> here.</p></div>
 <div class="paragraph"><p>Browse the full source code of all <a href="https://github.com/jMonkeyEngine/jmonkeyengine/tree/master/jme3-examples/src/main/java/jme3test/effect">effect examples</a> here.</p></div>
 <hr>
 <hr>
-<div class="paragraph"><p>See also: <a href="../../jme3/advanced/effects_overview.html">Effects Overview</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>See also: <a href="../../jme3/advanced/effects_overview.html">Effects Overview</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/pbr_part1.html

@@ -57,7 +57,7 @@
 <div class="paragraph"><p>IMO, the metalness workflow is more suited to real time 3D engine. And as an artist I find it more intuitive.</p></div>
 <div class="paragraph"><p>IMO, the metalness workflow is more suited to real time 3D engine. And as an artist I find it more intuitive.</p></div>
 <div class="paragraph"><p>That  said, as a developer making his PBR pipeline; especially for an engine mainly used by Indie devs; whatever pipeline you choose, you can’t ignore the other. Free or charged PBR ready model you can find are done with whatever workflow suited the artist. Some conversion are possible, but that’s easier for user to be able to use the model as is. That’s why I decided to support both in my implementation.</p></div>
 <div class="paragraph"><p>That  said, as a developer making his PBR pipeline; especially for an engine mainly used by Indie devs; whatever pipeline you choose, you can’t ignore the other. Free or charged PBR ready model you can find are done with whatever workflow suited the artist. Some conversion are possible, but that’s easier for user to be able to use the model as is. That’s why I decided to support both in my implementation.</p></div>
 <hr>
 <hr>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/pbr_part2.html">Physically Based Rendering – Part Two</a></p></li><li><p><a href="../../jme3/advanced/pbr_part3.html#image-based-lighting-in-pbr">Physically Based Rendering – Part Three</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/pbr_part2.html">Physically Based Rendering – Part Two</a></p></li><li><p><a href="../../jme3/advanced/pbr_part3.html#image-based-lighting-in-pbr">Physically Based Rendering – Part Three</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/pbr_part2.html

@@ -73,7 +73,7 @@ Lighting = directLighting + indirectLighting</code></pre></div></div>
 <div class="paragraph"><p><strong>Fresnel factor called F</strong>. Discovered by Augustin Fresnel (frenchies are sooo clever), it describes how light reflects and refracts at the intersection of two different media (most often in computer graphics : Air and the shaded surface)</p></div>
 <div class="paragraph"><p><strong>Fresnel factor called F</strong>. Discovered by Augustin Fresnel (frenchies are sooo clever), it describes how light reflects and refracts at the intersection of two different media (most often in computer graphics : Air and the shaded surface)</p></div>
 <div class="paragraph"><p><strong>Geometry shadowing term G</strong>. Defines the shadowing from the micro facets</p></div>
 <div class="paragraph"><p><strong>Geometry shadowing term G</strong>. Defines the shadowing from the micro facets</p></div>
 <hr>
 <hr>
-<div class="ulist"><ul><li><p><a href="../../jme3\advanced\pbr_part1.html">Physically Based Rendering – Part one</a></p></li><li><p><a href="../../jme3\advanced\pbr_part3.html">Physically Based Rendering – Part Three</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3\advanced\pbr_part1.html">Physically Based Rendering – Part one</a></p></li><li><p><a href="../../jme3\advanced\pbr_part3.html">Physically Based Rendering – Part Three</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/pbr_part3.html

@@ -96,7 +96,7 @@ indirectLighting = indirectDiffuse + indirectSpecular</code></pre></div></div>
 <div class="paragraph"><p><strong>Importance Sampling :</strong> A math technique to approximate the result of an integral.</p></div>
 <div class="paragraph"><p><strong>Importance Sampling :</strong> A math technique to approximate the result of an integral.</p></div>
 <div class="paragraph"><p><strong>Split Sum Approximation :</strong> A way,used in Unreal Engine 4, to transform the specular radiance integral into 2 sums that can be easily baked into prefiltered textures.</p></div>
 <div class="paragraph"><p><strong>Split Sum Approximation :</strong> A way,used in Unreal Engine 4, to transform the specular radiance integral into 2 sums that can be easily baked into prefiltered textures.</p></div>
 <hr>
 <hr>
-<div class="ulist"><ul><li><p><a href="../../jme3\advanced\pbr_part1.html">Physically Based Rendering – Part one</a></p></li><li><p><a href="../../jme3/advanced/pbr_part2.html">Physically Based Rendering – Part Two</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3\advanced\pbr_part1.html">Physically Based Rendering – Part one</a></p></li><li><p><a href="../../jme3/advanced/pbr_part2.html">Physically Based Rendering – Part Two</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/physics.html

@@ -163,7 +163,7 @@ removeCollideWithGroup(COLLISION_GROUP_01)</p></div></div></td><td class="tableb
 <div class="listingblock"><div class="content"><pre>bulletAppState.getPhysicsSpace().enableDebug(assetManager);</pre></div></div>
 <div class="listingblock"><div class="content"><pre>bulletAppState.getPhysicsSpace().enableDebug(assetManager);</pre></div></div>
 <div class="ulist"><ul><li><p><strong>Buggy?</strong> If you get weird behaviour, such as physical nodes passing through one another, or getting stuck for no reason.<br>
 <div class="ulist"><ul><li><p><strong>Buggy?</strong> If you get weird behaviour, such as physical nodes passing through one another, or getting stuck for no reason.<br>
 <strong>Solution:</strong> Look at the physics space accessors and change the acuracy and other parameters.</p></li><li><p><strong>Need more interactivity?</strong> You can actively <em>control</em> a physical game by triggering forces. You may also want to be able <em>respond</em> to collisions, e.g. by substracting health, awarding points, or by playing a sound.<br>
 <strong>Solution:</strong> Look at the physics space accessors and change the acuracy and other parameters.</p></li><li><p><strong>Need more interactivity?</strong> You can actively <em>control</em> a physical game by triggering forces. You may also want to be able <em>respond</em> to collisions, e.g. by substracting health, awarding points, or by playing a sound.<br>
-<strong>Solution:</strong> To specify how the game responds to collisions, you use <a href="../../jme3/advanced/physics_listeners.html">Physics Listeners</a>.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<strong>Solution:</strong> To specify how the game responds to collisions, you use <a href="../../jme3/advanced/physics_listeners.html">Physics Listeners</a>.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/physics_listeners.html

@@ -63,7 +63,7 @@ getObjectB()</p></div></div></td><td class="tableblock halign-left valign-top"><
 <div class="sect2"><h3 id="collision-groups">Collision Groups</h3><div class="paragraph"><p>You can improve performance by resricting the number of tests that collision detection has to perform. If you have a case where you are only interested in collisions between certain objects but not others, you can assign sets of physical obejcts to different collision groups.</p></div>
 <div class="sect2"><h3 id="collision-groups">Collision Groups</h3><div class="paragraph"><p>You can improve performance by resricting the number of tests that collision detection has to perform. If you have a case where you are only interested in collisions between certain objects but not others, you can assign sets of physical obejcts to different collision groups.</p></div>
 <div class="paragraph"><p>For example, for a click-to-select, you only care if the selection ray collides with a few selectable objects such as dropped weapons or powerups (one group), but not with non-selectables such as floors or walls (different group).</p></div>
 <div class="paragraph"><p>For example, for a click-to-select, you only care if the selection ray collides with a few selectable objects such as dropped weapons or powerups (one group), but not with non-selectables such as floors or walls (different group).</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">myNode.getControl(RigidBodyControl.class).setCollisionGroup(PhysicsCollisionObject.COLLISION_GROUP_02);
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">myNode.getControl(RigidBodyControl.class).setCollisionGroup(PhysicsCollisionObject.COLLISION_GROUP_02);
-myNode.getControl(RigidBodyControl.class).setCollideWithGroups(PhysicsCollisionObject.COLLISION_GROUP_02);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+myNode.getControl(RigidBodyControl.class).setCollideWithGroups(PhysicsCollisionObject.COLLISION_GROUP_02);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/post-processor_water.html

@@ -62,7 +62,7 @@ audioRenderer.playSource(waves);</code></pre></div></div>
 <div class="paragraph"><p>See also: <a href="../../jme3/advanced/audio.html">audio</a>.</p></div>
 <div class="paragraph"><p>See also: <a href="../../jme3/advanced/audio.html">audio</a>.</p></div>
 <hr>
 <hr>
 <div class="paragraph"><p>See also:</p></div>
 <div class="paragraph"><p>See also:</p></div>
-<div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/t/monkeys-at-the-beach/15000">JME3&#8217;s Water Post-Process Effect</a> by Nehon</p></li><li><p><a href="../../jme3/advanced/water.html">Simple water</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/t/monkeys-at-the-beach/15000">JME3&#8217;s Water Post-Process Effect</a> by Nehon</p></li><li><p><a href="../../jme3/advanced/water.html">Simple water</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/ragdoll.html

@@ -99,7 +99,7 @@ getPhysicsSpace().add(ragdoll);</code></pre></div></div>
 <div class="paragraph"><p>As long as a link is in kinematic mode, its physics objects will mimic the motion of the bones, including skeletal animations.  When it&#8217;s time to simulate a ragdoll, you can invoke</p></div>
 <div class="paragraph"><p>As long as a link is in kinematic mode, its physics objects will mimic the motion of the bones, including skeletal animations.  When it&#8217;s time to simulate a ragdoll, you can invoke</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">ragdoll.setRagdollMode();</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">ragdoll.setRagdollMode();</code></pre></div></div>
 <div class="paragraph"><p>to put all links into dynamic mode.  Thereafter, physical forces will override any skeletal animation.</p></div>
 <div class="paragraph"><p>to put all links into dynamic mode.  Thereafter, physical forces will override any skeletal animation.</p></div>
-<div class="sect2"><h3 id="sample-code-3">Sample Code</h3><div class="ulist"><ul><li><p><a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bullet/TestBoneRagdoll.java">master-branch TestBoneRagdoll.java</a>  Press the left mouse button to shoot a cannonball at the model.  Ragdoll physics starts when a cannonball touches the model.  Press the spacebar to resume kinematic mode and cause the model to rise to his feet.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect2"><h3 id="sample-code-3">Sample Code</h3><div class="ulist"><ul><li><p><a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bullet/TestBoneRagdoll.java">master-branch TestBoneRagdoll.java</a>  Press the left mouse button to shoot a cannonball at the model.  Ragdoll physics starts when a cannonball touches the model.  Press the spacebar to resume kinematic mode and cause the model to rise to his feet.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/read_graphic_card_capabilites.html

@@ -39,7 +39,7 @@ TextureCompressionLATC, NonPowerOfTwoTextures]</code></pre></div></div>
 <div class="paragraph"><p>This next example is lacking <code>NonPowerOfTwoTextures</code>, this tells you that this user&#8217;s graphic card cannot handle textures with sizes that are not square powers of two (such as “128x128).</p></div>
 <div class="paragraph"><p>This next example is lacking <code>NonPowerOfTwoTextures</code>, this tells you that this user&#8217;s graphic card cannot handle textures with sizes that are not square powers of two (such as “128x128).</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>INFO: Capabilities: [FrameBuffer, FrameBufferMRT, FrameBufferMultisample,
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>INFO: Capabilities: [FrameBuffer, FrameBufferMRT, FrameBufferMultisample,
 OpenGL20, ARBprogram, GLSL100, GLSL110, GLSL120,
 OpenGL20, ARBprogram, GLSL100, GLSL110, GLSL120,
-VertexTextureFetch, FloatTexture, TextureCompressionLATC]</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+VertexTextureFetch, FloatTexture, TextureCompressionLATC]</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/recast.html

@@ -197,7 +197,7 @@ status = query.init(navMesh, <span class="integer">2048</span>);
 <div class="paragraph"><p>If there is problem with building C++ project see <a href="../../jme3/advanced/building_recast.html">link</a>.</p></div></div>
 <div class="paragraph"><p>If there is problem with building C++ project see <a href="../../jme3/advanced/building_recast.html">link</a>.</p></div></div>
 <div class="sect2"><h3 id="questions-suggestions">Questions &amp; Suggestions</h3><div class="ulist"><ul><li><p>For suggestion and/or question on jNavigation post on <a href="http://hub.jmonkeyengine.org/forum/board/development/summer-of-code/">forum</a></p></li><li><p>For question on Recast (C++ library) ask on <a href="https://groups.google.com/forum/#!forum/recastnavigation">Google groups</a></p></li></ul></div></div>
 <div class="sect2"><h3 id="questions-suggestions">Questions &amp; Suggestions</h3><div class="ulist"><ul><li><p>For suggestion and/or question on jNavigation post on <a href="http://hub.jmonkeyengine.org/forum/board/development/summer-of-code/">forum</a></p></li><li><p>For question on Recast (C++ library) ask on <a href="https://groups.google.com/forum/#!forum/recastnavigation">Google groups</a></p></li></ul></div></div>
 <div class="sect2"><h3 id="source">Source</h3><div class="ulist"><ul><li><p><a href="https://github.com/QuietOne/jNavigationPlugin/tree/master">jNavigation plugin repository</a></p></li><li><p><a href="https://github.com/QuietOne/jNavigation">Developmental jNavigation repository</a></p></li><li><p><a href="https://github.com/QuietOne/jNavigation-native">Developmental jNavigationNative repository</a></p></li></ul></div>
 <div class="sect2"><h3 id="source">Source</h3><div class="ulist"><ul><li><p><a href="https://github.com/QuietOne/jNavigationPlugin/tree/master">jNavigation plugin repository</a></p></li><li><p><a href="https://github.com/QuietOne/jNavigation">Developmental jNavigation repository</a></p></li><li><p><a href="https://github.com/QuietOne/jNavigation-native">Developmental jNavigationNative repository</a></p></li></ul></div>
-<div class="sect3"><h4 id="useful-links">Useful links</h4><div class="ulist"><ul><li><p><a href="../../jme3/advanced/building_recast.html">How to build the native recast bindings</a></p></li><li><p><a href="http://www.critterai.org/projects/nmgen_study/">Study: Navigation Mesh Generation</a></p></li><li><p><a href="http://www.stevefsp.org/projects/rcndoc/prod/index.html">Documentation of C++ Recast library</a> It can be useful for tracing bugs.</p></li></ul></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect3"><h4 id="useful-links">Useful links</h4><div class="ulist"><ul><li><p><a href="../../jme3/advanced/building_recast.html">How to build the native recast bindings</a></p></li><li><p><a href="http://www.critterai.org/projects/nmgen_study/">Study: Navigation Mesh Generation</a></p></li><li><p><a href="http://www.stevefsp.org/projects/rcndoc/prod/index.html">Documentation of C++ Recast library</a> It can be useful for tracing bugs.</p></li></ul></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/remote-controlling_the_camera.html

@@ -12,7 +12,7 @@ camNodeTop.getControl(<span class="integer">0</span>).setEnabled(<span class="pr
 CameraNode camNodeSide = cinematic.bindCamera(<span class="string"><span class="delimiter">&quot;</span><span class="content">sideView</span><span class="delimiter">&quot;</span></span>, cam);
 CameraNode camNodeSide = cinematic.bindCamera(<span class="string"><span class="delimiter">&quot;</span><span class="content">sideView</span><span class="delimiter">&quot;</span></span>, cam);
 camNodeSide.setControlDir(ControlDirection.CameraToSpatial);
 camNodeSide.setControlDir(ControlDirection.CameraToSpatial);
 camNodeSide.getControl(<span class="integer">0</span>).setEnabled(<span class="predefined-constant">false</span>);</code></pre></div></div></div></div>
 camNodeSide.getControl(<span class="integer">0</span>).setEnabled(<span class="predefined-constant">false</span>);</code></pre></div></div></div></div>
-<div class="sect1"><h2 id="moving-the-camera">Moving the Camera</h2><div class="sectionbody"><div class="paragraph"><p>If desired, attach the camNode to a MotionEvent to let it travel along waypoints. This is demonstrated in the <a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/animation/TestCameraMotionPath.java">TestCameraMotionPath.java</a> example.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="moving-the-camera">Moving the Camera</h2><div class="sectionbody"><div class="paragraph"><p>If desired, attach the camNode to a MotionEvent to let it travel along waypoints. This is demonstrated in the <a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/animation/TestCameraMotionPath.java">TestCameraMotionPath.java</a> example.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/save_and_load.html

@@ -94,7 +94,7 @@ Example: You used something like <code>mySpatial.setUserData("inventory", myInve
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">capsule.write(someIntValue,   <span class="string"><span class="delimiter">&quot;</span><span class="content">someIntValue</span><span class="delimiter">&quot;</span></span>,   <span class="integer">1</span>);</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">capsule.write(someIntValue,   <span class="string"><span class="delimiter">&quot;</span><span class="content">someIntValue</span><span class="delimiter">&quot;</span></span>,   <span class="integer">1</span>);</code></pre></div></div>
 <div class="paragraph"><p>If you let the compiler initialize <code>someIntValue</code>, it will initialize to zero and if it&#8217;s not changed after initialization, zero will be written to file.</p></div>
 <div class="paragraph"><p>If you let the compiler initialize <code>someIntValue</code>, it will initialize to zero and if it&#8217;s not changed after initialization, zero will be written to file.</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">someIntValue   = capsule.readInt(    <span class="string"><span class="delimiter">&quot;</span><span class="content">someIntValue</span><span class="delimiter">&quot;</span></span>,   <span class="integer">1</span>);</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">someIntValue   = capsule.readInt(    <span class="string"><span class="delimiter">&quot;</span><span class="content">someIntValue</span><span class="delimiter">&quot;</span></span>,   <span class="integer">1</span>);</code></pre></div></div>
-<div class="paragraph"><p>Now when <code>read</code> is called, it will see the &#8220;someIntValue&#8221; name and set the <code>someIntValue</code> variable to zero. Not one, as you were expecting. Keep this in mind when using Savable.</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>Now when <code>read</code> is called, it will see the &#8220;someIntValue&#8221; name and set the <code>someIntValue</code> variable to zero. Not one, as you were expecting. Keep this in mind when using Savable.</p></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/screenshots.html

@@ -5,7 +5,7 @@
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">ScreenshotAppState screenShotState = <span class="keyword">new</span> ScreenshotAppState();
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">ScreenshotAppState screenShotState = <span class="keyword">new</span> ScreenshotAppState();
 <span class="local-variable">this</span>.stateManager.attach(screenShotState);</code></pre></div></div>
 <span class="local-variable">this</span>.stateManager.attach(screenShotState);</code></pre></div></div>
 <div class="paragraph"><p>The default screenshot key is KeyInput.KEY_SYSRQ, alos known as “System Request / Print Screen key. On Mac keyboards, this key does not exist, so on Mac <abbr title="Operating System">OS</abbr> you take screenshots using Command+Shift+3 (fullscreen) or Command+Shift+4 (windowed: press space to select a window and then click).</p></div>
 <div class="paragraph"><p>The default screenshot key is KeyInput.KEY_SYSRQ, alos known as “System Request / Print Screen key. On Mac keyboards, this key does not exist, so on Mac <abbr title="Operating System">OS</abbr> you take screenshots using Command+Shift+3 (fullscreen) or Command+Shift+4 (windowed: press space to select a window and then click).</p></div>
-<div class="paragraph"><p>The screenshot is saved to the user directory.</p></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>The screenshot is saved to the user directory.</p></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/shape.html

@@ -44,7 +44,7 @@ Material mat = <span class="keyword">new</span> Material(assetManager,
 geom.setMaterial(mat);                         <span class="comment">// assign material to geometry</span>
 geom.setMaterial(mat);                         <span class="comment">// assign material to geometry</span>
 <span class="comment">// if you want, transform (move, rotate, scale) the geometry.</span>
 <span class="comment">// if you want, transform (move, rotate, scale) the geometry.</span>
 rootNode.attachChild(geom);                    <span class="comment">// attach geometry to a node</span></code></pre></div></div></div></div>
 rootNode.attachChild(geom);                    <span class="comment">// attach geometry to a node</span></code></pre></div></div></div></div>
-<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/intermediate/optimization.html">Optimization</a> – The GeometryBatchFactory class combines several of your shapes with the same texture into one mesh with one texture.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/intermediate/optimization.html">Optimization</a> – The GeometryBatchFactory class combines several of your shapes with the same texture into one mesh with one texture.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/sky.html

@@ -16,7 +16,7 @@ Of course the higher the resolution, the better it will look. On the other hand,
 <div class="paragraph"><p>Box or Sphere?</p></div>
 <div class="paragraph"><p>Box or Sphere?</p></div>
 <div class="ulist"><ul><li><p>If you have access to cube map textures, then use a SkyBox</p><div class="ulist"><ul><li><p><a href="http://1.bp.blogspot.com/_uVsWqMqIGQU/SN0IZEE117I/AAAAAAAAAPs/4lfHx1Erdqg/s1600/skybox">SkyBox examples</a></p></li></ul></div></li><li><p>If you have access to sphere map textures – specially projected sky images that fit inside a sphere – then you use a SkySphere or SkyDome.</p><div class="ulist"><ul><li><p><a href="http://wiki.delphigl.com/index.php/Datei:Skysphere.jpg">SkySphere example</a></p></li></ul></div></li></ul></div>
 <div class="ulist"><ul><li><p>If you have access to cube map textures, then use a SkyBox</p><div class="ulist"><ul><li><p><a href="http://1.bp.blogspot.com/_uVsWqMqIGQU/SN0IZEE117I/AAAAAAAAAPs/4lfHx1Erdqg/s1600/skybox">SkyBox examples</a></p></li></ul></div></li><li><p>If you have access to sphere map textures – specially projected sky images that fit inside a sphere – then you use a SkySphere or SkyDome.</p><div class="ulist"><ul><li><p><a href="http://wiki.delphigl.com/index.php/Datei:Skysphere.jpg">SkySphere example</a></p></li></ul></div></li></ul></div>
 <div class="paragraph"><p>For more information on Skymap creation see:</p></div>
 <div class="paragraph"><p>For more information on Skymap creation see:</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/advanced/free_skymaps.html">How to create free skymaps</a></p></li><li><p><a href="../../jme3/external/blender.html#skybox-baking">SkyBox baking</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/advanced/free_skymaps.html">How to create free skymaps</a></p></li><li><p><a href="../../jme3/external/blender.html#skybox-baking">SkyBox baking</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/softbody.html

@@ -137,7 +137,7 @@ softBodyAppState.getPhysicsSpace().add(rigid);
 softBodyAppState.getPhysicsSoftSpace().add(soft);
 softBodyAppState.getPhysicsSoftSpace().add(soft);
 
 
 joint = <span class="keyword">new</span> SoftAngularJoint(Vector3f.UNIT_X, soft, rigid, <span class="keyword">new</span> Vector3f(<span class="integer">0</span>,<span class="integer">0</span>,<span class="integer">2</span>), <span class="keyword">new</span> Vector3f(<span class="integer">0</span>, <span class="integer">0</span>, <span class="integer">2</span>));
 joint = <span class="keyword">new</span> SoftAngularJoint(Vector3f.UNIT_X, soft, rigid, <span class="keyword">new</span> Vector3f(<span class="integer">0</span>,<span class="integer">0</span>,<span class="integer">2</span>), <span class="keyword">new</span> Vector3f(<span class="integer">0</span>, <span class="integer">0</span>, <span class="integer">2</span>));
-softBodyAppState.getPhysicsSoftSpace().add(joint);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+softBodyAppState.getPhysicsSoftSpace().add(joint);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/sourcecode.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="Asciidoctor 1.5.4"><title>Source Code</title><link rel="stylesheet" href="./asciidoctor.css">
 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="Asciidoctor 1.5.4"><title>Source Code</title><link rel="stylesheet" href="./asciidoctor.css">
 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
 <link rel="stylesheet" href="./coderay-asciidoctor.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"><link rel="stylesheet" href="/home/travis/build/jMonkeyEngine/wiki/build/asciidoc/html5/jme3/advanced/twemoji-awesome.css"></head><body class="article toc2 toc-left"><div id="header"><div id="toolbar"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc/jme3/advanced/sourcecode.adoc"><i class="fa fa-pencil-square" aria-hidden="true"></i></a><a href="https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc/jme3/advanced/"><i class="fa fa-plus-square" aria-hidden="true"></i></a><input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search"></div><h1>Source Code</h1><div class="details"><span class="author" id="author"></span><br><span id="revnumber">version ,</span> <span id="revdate">2016/03/17 20:48</span></div><div id="toc" class="toc2"><div id="toctitle">Table of Contents</div><ul class="sectlevel1"><li><a href="#normen-hansen-videos">Normen Hansen Videos</a></li></ul></div></div><div id="content"><div class="sect1"><h2 id="normen-hansen-videos">Normen Hansen Videos</h2><div class="sectionbody"><div class="paragraph"><p>The source code and assets for the Normen Hansen video <a href="http://www.youtube.com/watch?v=MNDiZ9YHIpM">How to control any scene node</a> and <a href="http://www.youtube.com/watch?v=-OzRZscLlHY">How to remote control a character in a scene</a> can be found in the zip archive <a href="https://github.com/jMonkeyEngine/wiki/raw/master/src/docs/resources/Scenes/SDK-UsecaseDemo_1.zip">SDK-UsecaseDemo_1.zip</a>.</p></div>
 <link rel="stylesheet" href="./coderay-asciidoctor.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"><link rel="stylesheet" href="/home/travis/build/jMonkeyEngine/wiki/build/asciidoc/html5/jme3/advanced/twemoji-awesome.css"></head><body class="article toc2 toc-left"><div id="header"><div id="toolbar"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc/jme3/advanced/sourcecode.adoc"><i class="fa fa-pencil-square" aria-hidden="true"></i></a><a href="https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc/jme3/advanced/"><i class="fa fa-plus-square" aria-hidden="true"></i></a><input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search"></div><h1>Source Code</h1><div class="details"><span class="author" id="author"></span><br><span id="revnumber">version ,</span> <span id="revdate">2016/03/17 20:48</span></div><div id="toc" class="toc2"><div id="toctitle">Table of Contents</div><ul class="sectlevel1"><li><a href="#normen-hansen-videos">Normen Hansen Videos</a></li></ul></div></div><div id="content"><div class="sect1"><h2 id="normen-hansen-videos">Normen Hansen Videos</h2><div class="sectionbody"><div class="paragraph"><p>The source code and assets for the Normen Hansen video <a href="http://www.youtube.com/watch?v=MNDiZ9YHIpM">How to control any scene node</a> and <a href="http://www.youtube.com/watch?v=-OzRZscLlHY">How to remote control a character in a scene</a> can be found in the zip archive <a href="https://github.com/jMonkeyEngine/wiki/raw/master/src/docs/resources/Scenes/SDK-UsecaseDemo_1.zip">SDK-UsecaseDemo_1.zip</a>.</p></div>
-<div class="paragraph"><p>You can read about this code on the jMonkeyEngine forum thread, <a href="https://hub.jmonkeyengine.org/t/new-sdk-video-tutorial-latest-vol2/25185">New Sdk Video Tutorial (Latest:Vol2)</a>.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>You can read about this code on the jMonkeyEngine forum thread, <a href="https://hub.jmonkeyengine.org/t/new-sdk-video-tutorial-latest-vol2/25185">New Sdk Video Tutorial (Latest:Vol2)</a>.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/spatial.html

@@ -56,7 +56,7 @@ playerNode.getControl(PlayerControl.class).setHealth(<span class="integer">99</s
 <div class="ulist"><ul><li><p><code>CullHint.Dynamic</code> – Default, faster because it doesn&#8217;t waste time with objects that are out of view.</p></li><li><p><code>CullHint.Never</code> – Calculate and draw everything always (even if it does not end up on the user&#8217;s screen because it&#8217;s out of sight). Slower, but can be used while debugging custom meshes.</p></li><li><p><code>CullHint.Always</code> – The whole spatial is culled and is not visible. A fast way to hide a Spatial temporarily. Culling a Spatial is faster then detaching it, but it uses more memory.</p></li><li><p><code>CullHint.Inherit</code> – Inherit culling behaviour from parent node.</p></li></ul></div>
 <div class="ulist"><ul><li><p><code>CullHint.Dynamic</code> – Default, faster because it doesn&#8217;t waste time with objects that are out of view.</p></li><li><p><code>CullHint.Never</code> – Calculate and draw everything always (even if it does not end up on the user&#8217;s screen because it&#8217;s out of sight). Slower, but can be used while debugging custom meshes.</p></li><li><p><code>CullHint.Always</code> – The whole spatial is culled and is not visible. A fast way to hide a Spatial temporarily. Culling a Spatial is faster then detaching it, but it uses more memory.</p></li><li><p><code>CullHint.Inherit</code> – Inherit culling behaviour from parent node.</p></li></ul></div>
 <div class="paragraph"><p>Example:</p></div>
 <div class="paragraph"><p>Example:</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">spatial.setCullHint(CullHint.Never); <span class="comment">// always drawn</span></code></pre></div></div></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">spatial.setCullHint(CullHint.Never); <span class="comment">// always drawn</span></code></pre></div></div></div></div>
-<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/intermediate/optimization.html">Optimization</a> – The GeometryBatchFactory class batches several Geometries into meshes with each their own texture.</p></li><li><p><a href="../../jme3/advanced/traverse_scenegraph.html">Traverse SceneGraph</a> – Find any Node or Geometry in the scenegraph.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="see-also">See also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/intermediate/optimization.html">Optimization</a> – The GeometryBatchFactory class batches several Geometries into meshes with each their own texture.</p></li><li><p><a href="../../jme3/advanced/traverse_scenegraph.html">Traverse SceneGraph</a> – Find any Node or Geometry in the scenegraph.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/statsview.html

@@ -37,7 +37,7 @@ setDisplayStatView(<span class="predefined-constant">false</span>);  <span class
 <div class="olist arabic"><ol class="arabic"><li><p>The values for (M) and (F) should be within the same order of magnitude. This means your code only loads objects that it actually needs, and that the hardware can actually handle.</p></li><li><p>It&#8217;s okay if Switches (S) are lower than Used in Current Frame (F).</p></li><li><p>The FPS should be 30 or more on the slowest hardware that you target.</p></li><li><p>10'000-50'000 vertices is a typical average value for a scene.</p></li></ol></div>
 <div class="olist arabic"><ol class="arabic"><li><p>The values for (M) and (F) should be within the same order of magnitude. This means your code only loads objects that it actually needs, and that the hardware can actually handle.</p></li><li><p>It&#8217;s okay if Switches (S) are lower than Used in Current Frame (F).</p></li><li><p>The FPS should be 30 or more on the slowest hardware that you target.</p></li><li><p>10'000-50'000 vertices is a typical average value for a scene.</p></li></ol></div>
 <hr>
 <hr>
 <div class="paragraph"><p>See also:</p></div>
 <div class="paragraph"><p>See also:</p></div>
-<div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/t/good-triangles-count/22843">What&#8217;s a good triangle count?</a> Forum discussion</p></li><li><p><a href="../../jme3/advanced/level_of_detail.html">Level of Detail</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/t/good-triangles-count/22843">What&#8217;s a good triangle count?</a> Forum discussion</p></li><li><p><a href="../../jme3/advanced/level_of_detail.html">Level of Detail</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/steer_behaviours.html

@@ -77,7 +77,7 @@ myAgent.setMainBehavior(mainBehavior);</code></pre></div></div></div></div>
         <span class="keyword">if</span>(value &gt; <span class="integer">5</span>) <span class="keyword">throw</span> <span class="keyword">new</span> CustomSteeringExceptions.customRuntimeException (<span class="string"><span class="delimiter">&quot;</span><span class="content">Value must be lower than 5</span><span class="delimiter">&quot;</span></span>);
         <span class="keyword">if</span>(value &gt; <span class="integer">5</span>) <span class="keyword">throw</span> <span class="keyword">new</span> CustomSteeringExceptions.customRuntimeException (<span class="string"><span class="delimiter">&quot;</span><span class="content">Value must be lower than 5</span><span class="delimiter">&quot;</span></span>);
         <span class="local-variable">this</span>.value = value;
         <span class="local-variable">this</span>.value = value;
     }</code></pre></div></div></div></div>
     }</code></pre></div></div></div></div>
-<div class="sect1"><h2 id="useful-links">Useful links</h2><div class="sectionbody"><div class="paragraph"><p>java steer behaviors project: <a href="http://jmesteer.bdevel.org/">jmesteer.bdevel.org</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="useful-links">Useful links</h2><div class="sectionbody"><div class="paragraph"><p>java steer behaviors project: <a href="http://jmesteer.bdevel.org/">jmesteer.bdevel.org</a></p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/swing_canvas.html

@@ -56,7 +56,7 @@ window.setVisible(<span class="predefined-constant">true</span>);</code></pre></
 <div class="paragraph"><p>Remember that we haven&#8217;t called start() on the jME appliation yet? For the canvas, there is a special <code>startCanvas()</code> method that you must call now:</p></div>
 <div class="paragraph"><p>Remember that we haven&#8217;t called start() on the jME appliation yet? For the canvas, there is a special <code>startCanvas()</code> method that you must call now:</p></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">canvasApplication.startCanvas();</code></pre></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">canvasApplication.startCanvas();</code></pre></div></div>
 <div class="paragraph"><p>Clean, build, and run!</p></div></div></div>
 <div class="paragraph"><p>Clean, build, and run!</p></div></div></div>
-<div class="sect1"><h2 id="navigation">Navigation</h2><div class="sectionbody"><div class="paragraph"><p>Remember, to navigate in the scene, click and drag (!) the mouse, or press the WASD keys. Depending on your game you may even want to define custom inputs to handle navigation in this untypical environment.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="navigation">Navigation</h2><div class="sectionbody"><div class="paragraph"><p>Remember, to navigate in the scene, click and drag (!) the mouse, or press the WASD keys. Depending on your game you may even want to define custom inputs to handle navigation in this untypical environment.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/terrain.html

@@ -67,7 +67,7 @@ TerrainLodControl control = <span class="keyword">new</span> TerrainLodControl(t
 terrain.addControl(control);
 terrain.addControl(control);
 rootNode.attachChild(terrain);</code></pre></div></div>
 rootNode.attachChild(terrain);</code></pre></div></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>As an alternative to an image-based height map, you can also generate a Hill hightmap:</p></div>
 <div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>As an alternative to an image-based height map, you can also generate a Hill hightmap:</p></div>
-<div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">heightmap = <span class="keyword">new</span> HillHeightMap(<span class="integer">1025</span>, <span class="integer">1000</span>, <span class="integer">50</span>, <span class="integer">100</span>, (<span class="type">byte</span>) <span class="integer">3</span>);</code></pre></div></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">heightmap = <span class="keyword">new</span> HillHeightMap(<span class="integer">1025</span>, <span class="integer">1000</span>, <span class="integer">50</span>, <span class="integer">100</span>, (<span class="type">byte</span>) <span class="integer">3</span>);</code></pre></div></div></td></tr></table></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/terrain_collision.html

@@ -216,7 +216,7 @@
 <div class="paragraph"><p>You should spawn high up in the area and fall down to the map, giving you a few seconds to survey the area.  Then walk around and see how you like the lay of the land.</p></div>
 <div class="paragraph"><p>You should spawn high up in the area and fall down to the map, giving you a few seconds to survey the area.  Then walk around and see how you like the lay of the land.</p></div>
 <hr>
 <hr>
 <div class="paragraph"><p>See also:</p></div>
 <div class="paragraph"><p>See also:</p></div>
-<div class="ulist"><ul><li><p><a href="../../jme3/beginner/hello_terrain.html">Hello Terrain</a>,</p></li><li><p><a href="../../jme3/advanced/terrain.html">Terrain</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="../../jme3/beginner/hello_terrain.html">Hello Terrain</a>,</p></li><li><p><a href="../../jme3/advanced/terrain.html">Terrain</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/texture_atlas.html

@@ -40,7 +40,7 @@ The image data is stored in a byte array for each named texture map.</p></li><li
  <span class="comment">// of this geometry to the atlas, and replace the material.</span>
  <span class="comment">// of this geometry to the atlas, and replace the material.</span>
  Geometry geom = scene.getChild(<span class="string"><span class="delimiter">&quot;</span><span class="content">MyGeometry</span><span class="delimiter">&quot;</span></span>);
  Geometry geom = scene.getChild(<span class="string"><span class="delimiter">&quot;</span><span class="content">MyGeometry</span><span class="delimiter">&quot;</span></span>);
  atlas.applyCoords(geom);
  atlas.applyCoords(geom);
- geom.setMaterial(mat);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version 1.1<br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+ geom.setMaterial(mat);</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version 1.1<br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/traverse_scenegraph.html

@@ -31,7 +31,7 @@ rootNode.breadthFirstTraversal(visitor);</code></pre></div></div>
 <div class="paragraph"><p>Which of the two methods is faster depends on how you designed the scengraph, and what tree element you are looking for. If you are searching for one single Geometry that is a “leaf of the tree, and then stop searching, depth-first may be faster. If you search for a high-level grouping Node, breadth-first may be faster.</p></div>
 <div class="paragraph"><p>Which of the two methods is faster depends on how you designed the scengraph, and what tree element you are looking for. If you are searching for one single Geometry that is a “leaf of the tree, and then stop searching, depth-first may be faster. If you search for a high-level grouping Node, breadth-first may be faster.</p></div>
 <div class="paragraph"><p>The choice of depth- vs breadth-first also influences the order in which found elements are returned (children first or parents first). If you want to modify user data that is inherited from the parent node (e.g. transformations), the order of application is important, because the side-effects add up.</p></div>
 <div class="paragraph"><p>The choice of depth- vs breadth-first also influences the order in which found elements are returned (children first or parents first). If you want to modify user data that is inherited from the parent node (e.g. transformations), the order of application is important, because the side-effects add up.</p></div>
 <div class="paragraph"><p>You can use the SceneGraphVisitorAdapter class to scan separately for Geometry and Nodes.</p></div></div></div>
 <div class="paragraph"><p>You can use the SceneGraphVisitorAdapter class to scan separately for Geometry and Nodes.</p></div></div></div>
-<div class="sect1"><h2 id="see-also">See Also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/the_scene_graph.html">The Scene Graph</a></p></li><li><p><a href="../../jme3/advanced/spatial.html">Spatial</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="sect1"><h2 id="see-also">See Also</h2><div class="sectionbody"><div class="ulist"><ul><li><p><a href="../../jme3/the_scene_graph.html">The Scene Graph</a></p></li><li><p><a href="../../jme3/advanced/spatial.html">Spatial</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/update_loop.html

@@ -9,7 +9,7 @@ The jME window closes and the loop ends.</p></li></ul></div></div></div>
 <div class="paragraph"><p>It&#8217;s a best practice to modularize your game mechanics and spread out initialization and update loop code over several Java objects:</p></div>
 <div class="paragraph"><p>It&#8217;s a best practice to modularize your game mechanics and spread out initialization and update loop code over several Java objects:</p></div>
 <div class="ulist"><ul><li><p>Move modular code blocks from the <code>simpleInitApp()</code> method into <a href="../../jme3/advanced/application_states.html">AppStates</a>. Attach AppStates to initialize custom subsets of “one dungeon, and detach it when the player exits this “dungeon.<br>
 <div class="ulist"><ul><li><p>Move modular code blocks from the <code>simpleInitApp()</code> method into <a href="../../jme3/advanced/application_states.html">AppStates</a>. Attach AppStates to initialize custom subsets of “one dungeon, and detach it when the player exits this “dungeon.<br>
 Examples: Weather/sky audio and visuals, physics collision shapes, sub-rootnodes of individual dungeons including dungeon NPCs, etc.</p></li><li><p>Move modular code blocks from the <code>simpleUpdate()</code> method into the update loops of <a href="../../jme3/advanced/custom_controls.html">Custom Controls</a> to control individual entity behavior (NPCs), and into the update method of <a href="../../jme3/advanced/application_states.html">AppStates</a> to control world events.<br>
 Examples: Weather/sky audio and visuals, physics collision shapes, sub-rootnodes of individual dungeons including dungeon NPCs, etc.</p></li><li><p>Move modular code blocks from the <code>simpleUpdate()</code> method into the update loops of <a href="../../jme3/advanced/custom_controls.html">Custom Controls</a> to control individual entity behavior (NPCs), and into the update method of <a href="../../jme3/advanced/application_states.html">AppStates</a> to control world events.<br>
-Examples: Weather behaviour, light behaviour, physics behaviour, individual NPC behaviour, trap behaviour, etc.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+Examples: Weather behaviour, light behaviour, physics behaviour, individual NPC behaviour, trap behaviour, etc.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/vehicles.html

@@ -121,7 +121,7 @@ getPhysicsSpace().add(vehicle);</code></pre></div></div>
 <div class="paragraph"><p>Remember, the standard input listener code that maps the actions to keys can be found in the code samples.</p></div></div></div>
 <div class="paragraph"><p>Remember, the standard input listener code that maps the actions to keys can be found in the code samples.</p></div></div></div>
 <div class="sect1"><h2 id="detecting-collisions">Detecting Collisions</h2><div class="sectionbody"><div class="paragraph"><p>Read the <a href="../../jme3/advanced/physics.html#responding_to_a_physicscollisionevent">Responding to a PhysicsCollisionEvent</a> chapter in the general physics documentation on how to detect collisions. You would do this if you want to react to collisions with custom events, such as adding points or substracting health.</p></div></div></div>
 <div class="sect1"><h2 id="detecting-collisions">Detecting Collisions</h2><div class="sectionbody"><div class="paragraph"><p>Read the <a href="../../jme3/advanced/physics.html#responding_to_a_physicscollisionevent">Responding to a PhysicsCollisionEvent</a> chapter in the general physics documentation on how to detect collisions. You would do this if you want to react to collisions with custom events, such as adding points or substracting health.</p></div></div></div>
 <div class="sect1"><h2 id="best-practices">Best Practices</h2><div class="sectionbody"><div class="paragraph"><p>This example shows a very simple but functional vehicle. For a game you would implement steering behaviour and acceleration with values that are typical for the type of vehicle that you want to simulate. Instead of a box, you load a chassis model. You can consider using an <a href="../../jme3/advanced/input_handling.html">AnalogListener</a> to respond to key events in a more sophisticated way.</p></div>
 <div class="sect1"><h2 id="best-practices">Best Practices</h2><div class="sectionbody"><div class="paragraph"><p>This example shows a very simple but functional vehicle. For a game you would implement steering behaviour and acceleration with values that are typical for the type of vehicle that you want to simulate. Instead of a box, you load a chassis model. You can consider using an <a href="../../jme3/advanced/input_handling.html">AnalogListener</a> to respond to key events in a more sophisticated way.</p></div>
-<div class="paragraph"><p>For a more advanced example, look at <a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bullet/TestFancyCar.java">TestFancyCar.java</a>.</p></div></div></div></div><div id="footnotes"><hr><div class="footnote" id="_footnote_1"><a href="#_footnoteref_1">1</a>. <a href="https://docs.google.com/Doc?docid=0AXVUZ5xw6XpKZGNuZG56a3FfMzU0Z2NyZnF4Zmo&amp;hl=en">https://docs.google.com/Doc?docid=0AXVUZ5xw6XpKZGNuZG56a3FfMzU0Z2NyZnF4Zmo&amp;hl=en</a></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>For a more advanced example, look at <a href="https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bullet/TestFancyCar.java">TestFancyCar.java</a>.</p></div></div></div></div><div id="footnotes"><hr><div class="footnote" id="_footnote_1"><a href="#_footnoteref_1">1</a>. <a href="https://docs.google.com/Doc?docid=0AXVUZ5xw6XpKZGNuZG56a3FfMzU0Z2NyZnF4Zmo&amp;hl=en">https://docs.google.com/Doc?docid=0AXVUZ5xw6XpKZGNuZG56a3FfMzU0Z2NyZnF4Zmo&amp;hl=en</a></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/video.html

@@ -126,7 +126,7 @@ Here is an example of video streaming in context:</p></div>
             stop();
             stop();
             <span class="keyword">return</span>;
             <span class="keyword">return</span>;
         }
         }
-    }</code></pre></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+    }</code></pre></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/walking_character.html

@@ -242,7 +242,7 @@ public <span class="type">void</span> simpleInitApp() {
 <span class="directive">public</span> <span class="type">void</span> onAnimChange(AnimControl control, AnimChannel channel, <span class="predefined-type">String</span> animName) { }</code></pre></div></div>
 <span class="directive">public</span> <span class="type">void</span> onAnimChange(AnimControl control, AnimChannel channel, <span class="predefined-type">String</span> animName) { }</code></pre></div></div>
 <hr>
 <hr>
 <div class="paragraph"><p>See also:</p></div>
 <div class="paragraph"><p>See also:</p></div>
-<div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/t/bettercharactercontrol-in-the-works/25242">https://hub.jmonkeyengine.org/t/bettercharactercontrol-in-the-works/25242</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="ulist"><ul><li><p><a href="https://hub.jmonkeyengine.org/t/bettercharactercontrol-in-the-works/25242">https://hub.jmonkeyengine.org/t/bettercharactercontrol-in-the-works/25242</a></p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

+ 1 - 1
jme3/advanced/water.html

@@ -49,7 +49,7 @@ rootNode.attachChild(water);</code></pre></div></div></div></div>
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">Geometry waterPlane = waterProcessor.createWaterGeometry(<span class="integer">10</span>, <span class="integer">10</span>);
 <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java">Geometry waterPlane = waterProcessor.createWaterGeometry(<span class="integer">10</span>, <span class="integer">10</span>);
 waterPlane.setLocalTranslation(-<span class="integer">5</span>, <span class="integer">0</span>, <span class="integer">5</span>);
 waterPlane.setLocalTranslation(-<span class="integer">5</span>, <span class="integer">0</span>, <span class="integer">5</span>);
 waterPlane.setMaterial(waterProcessor.getMaterial());</code></pre></div></div>
 waterPlane.setMaterial(waterProcessor.getMaterial());</code></pre></div></div>
-<div class="paragraph"><p>You can offer a switch to set the water Material to a static texture – for users with slow PCs.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 03:12:13 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
+<div class="paragraph"><p>You can offer a switch to set the water Material to a static texture – for users with slow PCs.</p></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2020-05-26 04:33:04 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
   indexName: 'jmonkeyengine',
   indexName: 'jmonkeyengine',
   inputSelector: '#doc-search',
   inputSelector: '#doc-search',

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác