- fix broken code examples in manual (removing google search link for classes from wiki)

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9432 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
nor..67 13 years ago
parent dc646e048e
commit 88e823ddc0
  1. 5
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/3d_models.html
  2. 41
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/animation.html
  3. 29
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/application_states.html
  4. 17
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/appstatesdemo.html
  5. 15
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/asset_manager.html
  6. 27
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio.html
  7. 35
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio_environment_presets.html
  8. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/bloom_and_glow.html
  9. 7
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/bullet_multithreading.html
  10. 13
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/camera.html
  11. 21
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/capture_audio_video_to_a_file.html
  12. 37
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/cinematics.html
  13. 15
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/collision_and_intersection.html
  14. 19
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/combo_moves.html
  15. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/custom_controls.html
  16. 25
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/custom_meshes.html
  17. 21
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/debugging.html
  18. 31
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html
  19. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/endless_terraingrid.html
  20. 5
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/fade.html
  21. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/headless_server.html
  22. 15
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hinges_and_joints.html
  23. 17
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hud.html
  24. 31
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/input_handling.html
  25. 27
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html
  26. 33
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/jme3_shaders.html
  27. 21
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/light_and_shadow.html
  28. 13
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/loading_screen.html
  29. 17
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/localization.html
  30. 7
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/logging.html
  31. 15
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/making_the_camera_follow_a_character.html
  32. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/material_definitions.html
  33. 34
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/materials_overview.html
  34. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/mesh.html
  35. 27
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/monkey_zone.html
  36. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/motionpath.html
  37. 5
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/mouse_picking.html
  38. 13
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/multiple_camera_views.html
  39. 17
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/multithreading.html
  40. 53
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/networking.html
  41. 15
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui.html
  42. 13
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_java_interaction.html
  43. 27
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_java_layout.html
  44. 7
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_overlay.html
  45. 4
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_popup_menu.html
  46. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_projection.html
  47. 25
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_scenarios.html
  48. 23
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_xml_layout.html
  49. 19
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/open_game_finder.html
  50. 15
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/particle_emitters.html
  51. 52
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/physics.html
  52. 25
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/physics_listeners.html
  53. 25
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/post-processor_water.html
  54. 19
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/ragdoll.html
  55. 7
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/remote-controlling_the_camera.html
  56. 19
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/save_and_load.html
  57. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/shape.html
  58. 5
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/sky.html
  59. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/spatial.html
  60. 19
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/swing_canvas.html
  61. 17
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/terrain.html
  62. 13
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/terrain_collision.html
  63. 3
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/update_loop.html
  64. 16
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/vehicles.html
  65. 25
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/walking_character.html
  66. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/water.html
  67. 21
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/android.html
  68. 21
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_animation.html
  69. 29
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_asset.html
  70. 31
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_audio.html
  71. 23
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_collision.html
  72. 19
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_effects.html
  73. 23
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html
  74. 15
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_main_event_loop.html
  75. 31
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_material.html
  76. 43
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_node.html
  77. 35
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_physics.html
  78. 35
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_picking.html
  79. 23
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_simpleapplication.html
  80. 27
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html
  81. 7
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/build_jme3_sources_with_netbeans.html
  82. 5
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/blender.html
  83. 137
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/faq.html
  84. 15
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/appsettings.html
  85. 41
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/best_practices.html
  86. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/file_types.html
  87. 21
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/headlessserver.html
  88. 23
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/how_to_use_materials.html
  89. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/math.html
  90. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/multi-media_asset_pipeline.html
  91. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/optimization.html
  92. 25
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/intermediate/simpleapplication.html
  93. 119
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/math.html
  94. 17
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/simpleapplication_from_the_commandline.html
  95. 81
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/terminology.html
  96. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/the_scene_graph.html
  97. 13
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/webstart.html
  98. 9
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/sdk/3ds_to_blender_to_jmp.html
  99. 24
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/sdk/application_deployment.html
  100. 11
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/sdk/asset_packs.html
  101. Some files were not shown because too many files have changed in this diff Show More

@ -8,7 +8,7 @@ Like <a href="/com/jme3/gde/core/docs/jme3/advanced/shape.html">Shape</a>s, 3D m
</p>
</div>
<!-- EDIT1 SECTION "Models and Scenes" [1-226] -->
<h2><a>Using Models and Scenes with jME3</a></h2>
<div>
@ -30,7 +30,7 @@ To use 3D models in a jME3 application:
</ol>
</div>
<!-- EDIT2 SECTION "Using Models and Scenes with jME3" [227-901] -->
<h2><a>Creating Models and Scenes</a></h2>
<div>
@ -81,4 +81,5 @@ You can now use the <a href="/com/jme3/gde/core/docs/sdk.html">jMonkeyEngine SDK
</p>
</div>
<!-- EDIT3 SECTION "Creating Models and Scenes" [902-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:3d_models?do=export_xhtmlbody">view online version</a></em></p>

@ -8,7 +8,7 @@ In 3D games, you do not only load static 3D models, you also want to be able to
</p>
</div>
<!-- EDIT1 SECTION "Animation in jME3" [1-167] -->
<h2><a>Requirements</a></h2>
<div>
@ -62,7 +62,7 @@ What is required in your JME3-based Java class?
</ul>
</div>
<!-- EDIT2 SECTION "Requirements" [168-2025] -->
<h2><a>Code Samples</a></h2>
<div>
<ul>
@ -81,12 +81,12 @@ What is required in your JME3-based Java class?
</ul>
</div>
<!-- EDIT3 SECTION "Code Samples" [2026-2934] -->
<h2><a>Controlling Animations</a></h2>
<div>
</div>
<!-- EDIT4 SECTION "Controlling Animations" [2935-2970] -->
<h3><a>The Animation Control</a></h3>
<div>
@ -100,7 +100,7 @@ Create one <code>com.jme3.animation.AnimControl</code> object in your JME3 appli
playerControl.addListener&#40;this&#41;; // add listener</pre>
</div>
<!-- EDIT5 SECTION "The Animation Control" [2971-3610] -->
<h3><a>Animation Channels</a></h3>
<div>
@ -121,7 +121,7 @@ To reset a Control, call <code>control.clearChannels();</code>
</p>
</div>
<!-- EDIT6 SECTION "Animation Channels" [3611-4244] -->
<h2><a>Animation Control Properties</a></h2>
<div>
@ -152,7 +152,7 @@ removeListener(animEventListener) <br/>
clearListeners() </td><td>Adds or removes listeners to receive animation related events.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [4347-4816] --><div><table>
<!-- EDIT8 TABLE [4347-4816] --><div><table>
<tr>
<th>AnimControl Property</th><th>Usage</th>
</tr>
@ -173,7 +173,7 @@ removeAnim(boneAnim)</td><td>Adds or removes an animation from this Control.</td
<td>getAnimationLength(&quot;anim&quot;)</td><td>Returns the length of the given named animation in seconds</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [4818-5378] --><div><table>
<!-- EDIT9 TABLE [4818-5378] --><div><table>
<tr>
<th>AnimControl Property</th><th>Usage</th>
</tr>
@ -187,9 +187,9 @@ removeAnim(boneAnim)</td><td>Adds or removes an animation from this Control.</td
<td>getAttachmentsNode(&quot;bone&quot;)</td><td>Returns the attachment node of a bone. Attach models and effects to this node to make them follow this bone&#039;s motions.</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [5380-5695] -->
<!-- EDIT10 TABLE [5380-5695] -->
</div>
<!-- EDIT7 SECTION "Animation Control Properties" [4245-5697] -->
<h2><a>Animation Channel Properties</a></h2>
<div>
@ -218,7 +218,7 @@ The following properties are set per AnimChannel.
<td>setTime(1.3f); </td><td> Fast-forward or rewind to a certain moment in time of this animation. </td>
</tr>
</table></div>
<!-- EDIT4 TABLE [5791-6415] -->
<!-- EDIT12 TABLE [5791-6415] -->
<p>
The following information is available for a channel.
@ -244,7 +244,7 @@ The following information is available for a channel.
<td>getControl()</td><td>The AnimControl that belongs to this AnimChannel.</td>
</tr>
</table></div>
<!-- EDIT5 TABLE [6472-7105] -->
<!-- EDIT13 TABLE [6472-7105] -->
<p>
Use the following methods to add or remove individual bones to an AnimChannel. This is useful when you play two animations in parallel on two channels, and each controls a subset of the bones (e.g. one the arms, and the other the legs).
@ -270,9 +270,9 @@ addToRootBone(bone1) </td><td>Add a series of bones to be influenced by this ani
addFromRootBone(bone1) </td><td>Add a series of bones to be influenced by this animation channel: Add all bones, starting from the given root bone, going towards the children bones.</td>
</tr>
</table></div>
<!-- EDIT6 TABLE [7345-7966] -->
<!-- EDIT14 TABLE [7345-7966] -->
</div>
<!-- EDIT11 SECTION "Animation Channel Properties" [5698-7968] -->
<h2><a>Playing Animations</a></h2>
<div>
@ -290,14 +290,14 @@ Animations are played by channel. <strong>Note:</strong> Whether the animation c
The float value specifies the time how long the animation should overlap with the previous one on this channel. If set to 0f, then no blending will occur and the new animation will be applied instantly.</td>
</tr>
</table></div>
<!-- EDIT7 TABLE [8154-8480] -->
<!-- EDIT16 TABLE [8154-8480] -->
<p>
<strong>Tip:</strong> Use the AnimEventLister below to react at the end or start of an animation cycle.
</p>
</div>
<!-- EDIT15 SECTION "Playing Animations" [7969-8573] -->
<h3><a>Usage Example</a></h3>
<div>
@ -312,7 +312,7 @@ In this short example, we define the space key to trigger playing the &quot;Walk
...
&#125;
&nbsp;
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Walk&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
if &#40;!channel2.getAnimationName&#40;&#41;.equals&#40;&quot;Walk&quot;&#41;&#41; &#123;
@ -324,7 +324,7 @@ In this short example, we define the space key to trigger playing the &quot;Walk
&#125;;</pre>
</div>
<!-- EDIT17 SECTION "Usage Example" [8574-9263] -->
<h2><a>Animation Event Listener</a></h2>
<div>
@ -340,7 +340,7 @@ This optional Listener enables you to respond to animation start and end events,
</p>
</div>
<!-- EDIT18 SECTION "Animation Event Listener" [9264-9667] -->
<h3><a>Responding to Animation End</a></h3>
<div>
@ -369,7 +369,7 @@ You have access to the following objects:
&#125;</pre>
</div>
<!-- EDIT19 SECTION "Responding to Animation End" [9668-10458] -->
<h3><a>Responding to Animation Start</a></h3>
<div>
@ -398,4 +398,5 @@ You have access to the following objects
&#125;</pre>
</div>
<!-- EDIT20 SECTION "Responding to Animation Start" [10459-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:animation?do=export_xhtmlbody">view online version</a></em></p>

@ -8,12 +8,12 @@ The <code>com.jme3.app.state.AppState</code> class is a customizable jME3 interf
</p>
</div>
<!-- EDIT1 SECTION "Application States" [1-324] -->
<h2><a>Overview</a></h2>
<div>
</div>
<!-- EDIT2 SECTION "Overview" [325-346] -->
<h3><a>Use Case Examples</a></h3>
<div>
@ -56,7 +56,7 @@ You can! This is what AppStates are there for. An AppState class is subset of (o
</ul>
</div>
<!-- EDIT3 SECTION "Use Case Examples" [347-2034] -->
<h3><a>Supported Features</a></h3>
<div>
@ -86,7 +86,7 @@ Each AppState has its own update loop, which hooks into the main simpleUpdate()
</p>
</div>
<!-- EDIT4 SECTION "Supported Features" [2035-3649] -->
<h3><a>Usage</a></h3>
<div>
@ -117,7 +117,7 @@ When you add several AppStates to one Application and activate them, their initi
</p>
</div>
<!-- EDIT5 SECTION "Usage" [3650-4363] -->
<h3><a>Code Samples</a></h3>
<div>
@ -137,7 +137,7 @@ JME3 comes with a BulletAppState that implements Physical behaviour (using the j
</ul>
</div>
<!-- EDIT6 SECTION "Code Samples" [4364-5144] -->
<h2><a>AppState</a></h2>
<div>
@ -182,9 +182,9 @@ stateDetached(asm)</td><td>The AppState knows when it is attached to, or detache
<td>postRender()</td><td>Called after all rendering commands are flushed, including your optional customizations. (Typically not used.)</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [5293-6855] -->
<!-- EDIT8 TABLE [5293-6855] -->
</div>
<!-- EDIT7 SECTION "AppState" [5145-6856] -->
<h2><a>AbstractAppState</a></h2>
<div>
@ -251,7 +251,7 @@ Definition:
&#125;</pre>
</div>
<!-- EDIT9 SECTION "AbstractAppState" [6857-9095] -->
<h2><a>Pausing and Unpausing</a></h2>
<div>
@ -261,7 +261,7 @@ You define what an AppState does when Paused or Unpaused, in the <code>setEnable
</p>
</div>
<!-- EDIT10 SECTION "Pausing and Unpausing" [9096-9386] -->
<h2><a>AppStateManager</a></h2>
<div>
@ -281,19 +281,19 @@ The com.jme3.app.state.AppStateManager holds the list of AppStates for an applic
<td>getState(MyAppState.class)</td><td>Returns the first attached state that is an instance of a subclass of <code>MyAppState.class</code>.</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [9796-10006] -->
<!-- EDIT12 TABLE [9796-10006] -->
<p>
The AppStateManager&#039;s <code>render(), postRender(), cleanUp()</code> methods are internal, ignore them, users never call them directly.
</p>
</div>
<!-- EDIT11 SECTION "AppStateManager" [9387-10135] -->
<h2><a>Best Practices</a></h2>
<div>
</div>
<!-- EDIT13 SECTION "Best Practices" [10136-10163] -->
<h3><a>Communication Among AppStates</a></h3>
<div>
@ -309,7 +309,7 @@ You can use custom accessors to get data from AppStates, to set data in AppState
<pre>this.app.getStateManager&#40;&#41;.getState&#40;MyAppState.class&#41;.doSomeCustomStuffInThisState&#40;&#41;;</pre>
</div>
<!-- EDIT14 SECTION "Communication Among AppStates" [10164-10919] -->
<h3><a>Initialize Familiar Class Fields</a></h3>
<div>
@ -337,4 +337,5 @@ public void initialize&#40;AppStateManager stateManager, Application app&#41; &#
&#125;</pre>
</div>
<!-- EDIT15 SECTION "Initialize Familiar Class Fields" [10920-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:application_states?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ There are four files, Main.java, GameRunningState.java, StartScreenState.java, S
</p>
</div>
<!-- EDIT1 SECTION "Simple AppStates Demo" [1-369] -->
<h2><a>Main.java</a></h2>
<div>
<pre>package chapter04.appstatedemo;
@ -72,7 +72,7 @@ public class Main extends SimpleApplication &#123;
inputManager.addListener&#40;actionListener, new String&#91;&#93;&#123;&quot;Toggle Settings&quot;&#125;&#41;;
&#125;
&nbsp;
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean isPressed, float tpf&#41; &#123;
System.out.println&#40;&quot;key&quot; + name&#41;;
if &#40;name.equals&#40;&quot;Game Pause Unpause&quot;&#41; &amp;&amp; !isPressed&#41; &#123;
@ -108,7 +108,7 @@ public class Main extends SimpleApplication &#123;
&nbsp;</pre>
</div>
<!-- EDIT2 SECTION "Main.java" [370-3778] -->
<h2><a>GameRunningState.java</a></h2>
<div>
<pre>package chapter04.appstatedemo;
@ -156,7 +156,7 @@ public class GameRunningState extends AbstractAppState &#123;
/** Load this scene */
viewPort.setBackgroundColor&#40;backgroundColor&#41;;
&nbsp;
Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Box mesh = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Geometry geom = new Geometry&#40;&quot;Box&quot;, mesh&#41;;
Material mat = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -200,7 +200,7 @@ public class GameRunningState extends AbstractAppState &#123;
&#125;</pre>
</div>
<!-- EDIT3 SECTION "GameRunningState.java" [3779-6746] -->
<h2><a>SettingsScreenState.java</a></h2>
<div>
<pre>package chapter04.appstatedemo;
@ -248,7 +248,7 @@ public class SettingsScreenState extends AbstractAppState &#123;
/** Load this scene */
viewPort.setBackgroundColor&#40;backgroundColor&#41;;
&nbsp;
Box&#40;new Vector3f&#40;-1, -1, 0&#41;, .5f, .5f, .5f&#41;;
Box mesh = new Box&#40;new Vector3f&#40;-1, -1, 0&#41;, .5f, .5f, .5f&#41;;
Geometry geom = new Geometry&#40;&quot;Box&quot;, mesh&#41;;
Material mat = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -289,7 +289,7 @@ public class SettingsScreenState extends AbstractAppState &#123;
&#125;</pre>
</div>
<!-- EDIT4 SECTION "SettingsScreenState.java" [6747-9561] -->
<h2><a>StartScreenState.java</a></h2>
<div>
<pre>package chapter04.appstatedemo;
@ -337,7 +337,7 @@ public StartScreenState&#40;SimpleApplication app&#41;&#123;
/** Init this scene */
viewPort.setBackgroundColor&#40;backgroundColor&#41;;
&nbsp;
Box&#40;new Vector3f&#40;-1,1,0&#41;, .5f,.5f,.5f&#41;;
Box mesh = new Box&#40;new Vector3f&#40;-1,1,0&#41;, .5f,.5f,.5f&#41;;
Geometry geom = new Geometry&#40;&quot;Box&quot;, mesh&#41;;
Material mat = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -378,4 +378,5 @@ public StartScreenState&#40;SimpleApplication app&#41;&#123;
&#125;</pre>
</div>
<!-- EDIT5 SECTION "StartScreenState.java" [9562-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:appstatesdemo?do=export_xhtmlbody">view online version</a></em></p>

@ -25,7 +25,7 @@ See also <a href="/com/jme3/gde/core/docs/jme3/intermediate/best_practices.html"
</p>
</div>
<!-- EDIT1 SECTION "AssetManager" [1-1167] -->
<h2><a>Usage</a></h2>
<div>
@ -53,7 +53,7 @@ Additionally, you can configure the Asset Manager and add any path to its root.
</p>
</div>
<!-- EDIT2 SECTION "Usage" [1168-2325] -->
<h2><a>Asset Directory</a></h2>
<div>
@ -91,7 +91,7 @@ After the conversion, you move the .j3o file into the <code>assets/Models/</code
</p>
</div>
<!-- EDIT3 SECTION "Asset Directory" [2326-4667] -->
<h2><a>Example Code: Loading Assets</a></h2>
<div>
@ -148,7 +148,7 @@ jME3 also offers a ClasspathLocator, ZipLocator, FileLocator, HttpZipLocator, an
</p>
</div>
<!-- EDIT4 SECTION "Example Code: Loading Assets" [4668-6140] -->
<h2><a>Comon AssetManager Tasks</a></h2>
<div>
<div><table>
@ -175,9 +175,9 @@ rootNode.attachChild&#40;scene&#41;;</pre>
</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [6179-7107] -->
<!-- EDIT6 TABLE [6179-7107] -->
</div>
<!-- EDIT5 SECTION "Comon AssetManager Tasks" [6141-7108] -->
<h2><a>NullPointerException: Cannot locate resource?</a></h2>
<div>
@ -232,7 +232,7 @@ Before building the executable, you must use the jMonkeyEngine <acronym title="S
</p>
</div>
<!-- EDIT7 SECTION "NullPointerException: Cannot locate resource?" [7109-8832] -->
<h2><a>Asset Handling For Other IDEs: Codeless Projects</a></h2>
<div>
@ -277,4 +277,5 @@ Convert assets as described above.</div>
</p>
</div>
<!-- EDIT8 SECTION "Asset Handling For Other IDEs: Codeless Projects" [8833-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:asset_manager?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ Place audio files in the <code>assets/Sound/</code> directory of your project. j
</p>
</div>
<!-- EDIT1 SECTION "Audio in jME3" [1-334] -->
<h2><a>Creating Audio Nodes: Streamed or Buffered</a></h2>
<div>
@ -31,7 +31,7 @@ The main class to look at is <code>com.jme3.audio.AudioNode</code>.
</ul>
</div>
<!-- EDIT2 SECTION "Creating Audio Nodes: Streamed or Buffered" [335-1026] -->
<h2><a>Getting AudioNode Properties</a></h2>
<div>
<div><table>
@ -48,14 +48,14 @@ The main class to look at is <code>com.jme3.audio.AudioNode</code>.
<td>getPitch()</td><td>Returns the pitch. </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1068-1240] -->
<!-- EDIT4 TABLE [1068-1240] -->
<p>
There are other obvious getters to poll the status of corresponding setters below.
</p>
</div>
<!-- EDIT3 SECTION "Getting AudioNode Properties" [1027-1325] -->
<h2><a>Setting AudioNode Properties</a></h2>
<div>
<div><table>
@ -69,7 +69,7 @@ There are other obvious getters to poll the status of corresponding setters belo
<td>setPitch(1)</td><td>Makes the sound play in a higher or lower pitch. Default is 1. 2 is twice as high, .5f is half as high. </td>
</tr>
</table></div>
<!-- EDIT2 TABLE [1368-1617] --><div><table>
<!-- EDIT6 TABLE [1368-1617] --><div><table>
<tr>
<th>AudioNode Method</th><th>Usage</th>
</tr>
@ -91,7 +91,7 @@ setDirectional(false)</td><td>All 3D effects switched off. This sound is global
<td>setMaxDistance(100f)</td><td>Maximum distance the sound can be heard, in world units. Default is 20.</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [1619-2353] --><div><table>
<!-- EDIT7 TABLE [1619-2353] --><div><table>
<tr>
<th>AudioNode Method</th><th>Usage</th>
</tr>
@ -103,7 +103,7 @@ setLocalTranslation(…)</td><td>Activates 3D audio: The sound appears to come f
<td>setReverbEnabled(true)</td><td>A 3D echo effect that only makes sense to use with positional AudioNodes. The reverb effect is influenced by the environment that the audio renderer is in. See &quot;Setting Environment Properties&quot; below. </td>
</tr>
</table></div>
<!-- EDIT4 TABLE [2355-2827] --><div><table>
<!-- EDIT8 TABLE [2355-2827] --><div><table>
<tr>
<th>AudioNode Method</th><th>Usage</th>
</tr>
@ -116,9 +116,9 @@ setDirection(…) </td><td>Activates 3D audio: This sound can only be heard from
setOuterAngle()</td><td>Set the angle in degrees for the directional audio. The angle is relative to the direction. Note: By default, both angles are 360° and the sound can be heard from all directions!</td>
</tr>
</table></div>
<!-- EDIT5 TABLE [2829-3356] -->
<!-- EDIT9 TABLE [2829-3356] -->
</div>
<!-- EDIT5 SECTION "Setting AudioNode Properties" [1326-3357] -->
<h2><a>Play, Pause, Stop</a></h2>
<div>
@ -140,7 +140,7 @@ You can also start playing an instance of this AudioNode. Use the playInstance()
<pre>myAudioNode.playInstance&#40;&#41;;</pre>
</div>
<!-- EDIT10 SECTION "Play, Pause, Stop" [3358-4062] -->
<h2><a>The Listener</a></h2>
<div>
@ -156,7 +156,7 @@ The default listener object is the user&#039;s ear in the scene. If you use posi
&#125;</pre>
</div>
<!-- EDIT11 SECTION "The Listener" [4063-4607] -->
<h2><a>Setting Environment Properties</a></h2>
<div>
@ -185,12 +185,12 @@ Optionally, You can choose from the following environmental presets from <code>c
<td>Closet </td><td>1.00f</td><td>1.0f</td><td>1.0f</td><td>1.00f</td><td>0.15f</td><td>1.0f</td><td>0.600f</td><td>0.0025f</td><td>0.500f</td><td>0.0006f</td>
</tr>
</table></div>
<!-- EDIT6 TABLE [4931-5420] -->
<!-- EDIT13 TABLE [4931-5420] -->
<p>
Activate the preset with setEnvironment(). E.g. in a dungeon environment:
</p>
<pre>audioRenderer.setEnvironment&#40;new Environment.Dungeon&#41;&#41;;</pre>
<pre>audioRenderer.setEnvironment&#40;new Environment&#40;Environment.Dungeon&#41;&#41;;</pre>
<p>
A sound engineer can create a custom <code>com.jme3.audio.Environment</code> object and specify custom environment factors. You can find many <a href="/com/jme3/gde/core/docs/jme3/advanced/audio_environment_presets.html">examples of audio environment presets</a> here. Activate your custom environment settings in the Environment constructor:
@ -209,4 +209,5 @@ You can find more info about OpenAL and its advanced features here: <object clas
</span></div>
</div>
<!-- EDIT12 SECTION "Setting Environment Properties" [4608-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:audio?do=export_xhtmlbody">view online version</a></em></p>

@ -11,14 +11,14 @@ Use these presets together with <a href="/com/jme3/gde/core/docs/jme3/advanced/a
Usage:
</p>
<pre>Environment&#40;
<pre>Environment Generic = new Environment&#40;
new float&#91;&#93;&#123; 0, 7.5f, 1f, -1000, -100, 0, 1.49f, 0.83f, 1f, -2602,
0.007f, 0f, 0f, 0f, 200, 0.011f, 0f, 0f, 0f, 0.250f,
0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
audioRenderer.setEnvironment&#40;myEnvironment&#41;;</pre>
</div>
<!-- EDIT1 SECTION "Audio Environment Presets" [1-570] -->
<h2><a>Castle</a></h2>
<div>
<pre>CastleSmallRoom = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.890f, -1000, -800, -2000, 1.22f, 0.83f, 0.31f, -100, 0.022f, 0f, 0f, 0f, 600, 0.011f, 0f, 0f, 0f, 0.138f, 0.080f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;
@ -32,7 +32,7 @@ CastleCourtyard = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0
CastleAlcove = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3f, 0.890f, -1000, -600, -2000, 1.64f, 0.87f, 0.31f, 00, 0.007f, 0f, 0f, 0f, 300, 0.034f, 0f, 0f, 0f, 0.138f, 0.080f, 0.250f, 0f, -5f, 5168.6f, 139.5f, 0f, 0x20&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT2 SECTION "Castle" [571-2650] -->
<h2><a>Warehouse, Factory</a></h2>
<div>
<pre>FactoryAlcove = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.590f, -1200, -200, -600, 3.14f, 0.65f, 1.31f, 300, 0.010f, 0f, 0f, 0f, 000, 0.038f, 0f, 0f, 0f, 0.114f, 0.100f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;
@ -46,7 +46,7 @@ FactoryCourtyard = new Environment &#40; new float&#91;&#93;&#123; 26, 1.7f,
FactorySmallroom = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.820f, -1000, -200, -600, 1.72f, 0.65f, 1.31f, -300, 0.010f, 0f, 0f, 0f, 500, 0.024f, 0f, 0f, 0f, 0.119f, 0.070f, 0.250f, 0f, -5f, 3762.6f, 362.5f, 0f, 0x20&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT3 SECTION "Warehouse, Factory" [2651-4742] -->
<h2><a>Ice Palace</a></h2>
<div>
<pre>IcepalaceAlcove = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.840f, -1000, -500, -1100, 2.76f, 1.46f, 0.28f, 100, 0.010f, 0f, 0f, 0f, -100, 0.030f, 0f, 0f, 0f, 0.161f, 0.090f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;
@ -60,7 +60,7 @@ IcepalaceCourtyard = new Environment &#40; new float&#91;&#93;&#123; 26, 2.9f
IcepalaceSmallroom = new Environment &#40; new float&#91;&#93;&#123; 26, 2.7f, 0.840f, -1000, -500, -1100, 1.51f, 1.53f, 0.27f, -100, 0.010f, 0f, 0f, 0f, 300, 0.011f, 0f, 0f, 0f, 0.164f, 0.140f, 0.250f, 0f, -5f, 12428.5f, 99.6f, 0f, 0x20&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT4 SECTION "Ice Palace" [4743-6857] -->
<h2><a>Space Station</a></h2>
<div>
<pre>SpacestationAlcove = new Environment &#40; new float&#91;&#93;&#123; 26, 1.5f, 0.780f, -1000, -300, -100, 1.16f, 0.81f, 0.55f, 300, 0.007f, 0f, 0f, 0f, 000, 0.018f, 0f, 0f, 0f, 0.192f, 0.210f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;
@ -73,7 +73,7 @@ SpacestationCupboard = new Environment &#40; new float&#91;&#93;&#123; 26, 1
SpacestationSmallroom = new Environment &#40; new float&#91;&#93;&#123; 26, 1.5f, 0.700f, -1000, -300, -100, 1.72f, 0.82f, 0.55f, -200, 0.007f, 0f, 0f, 0f, 300, 0.013f, 0f, 0f, 0f, 0.188f, 0.260f, 0.250f, 0f, -5f, 3316.1f, 458.2f, 0f, 0x20&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT5 SECTION "Space Station" [6858-8755] -->
<h2><a>Wooden Hut or Ship</a></h2>
<div>
<pre>WoodenAlcove = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 1f, -1000, -1800, -1000, 1.22f, 0.62f, 0.91f, 100, 0.012f, 0f, 0f, 0f, -300, 0.024f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;
@ -87,7 +87,7 @@ WoodenSmallroom = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5
WoodenCourtyard = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5f, 0.650f, -1000, -2200, -1000, 1.79f, 0.35f, 0.79f, -500, 0.123f, 0f, 0f, 0f, -2000, 0.032f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 4705f, 99.6f, 0f, 0x3f&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT6 SECTION "Wooden Hut or Ship" [8756-10801] -->
<h2><a>Sport</a></h2>
<div>
<pre>SportEmptystadium = new Environment &#40; new float&#91;&#93;&#123; 26, 7.2f, 1f, -1000, -700, -200, 6.26f, 0.51f, 1.10f, -2400, 0.183f, 0f, 0f, 0f, -800, 0.038f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
@ -98,7 +98,7 @@ SportGymnasium = new Environment &#40; new float&#91;&#93;&#123; 26, 7.5
SportFullstadium = new Environment &#40; new float&#91;&#93;&#123; 26, 7.2f, 1f, -1000, -2300, -200, 5.25f, 0.17f, 0.80f, -2000, 0.188f, 0f, 0f, 0f, -1100, 0.038f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT7 SECTION "Sport" [10802-12203] -->
<h2><a>Pipes</a></h2>
<div>
<pre>Sewerpipe = new Environment &#40; new float&#91;&#93;&#123; 21, 1.7f, 0.800f, -1000, -1000, 0, 2.81f, 0.14f, 1f, 429, 0.014f, 0f, 0f, 0f, 1023, 0.021f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
@ -108,7 +108,7 @@ PipeLarge = new Environment &#40; new float&#91;&#93;&#123; 26, 50.3f, 1f, -1
PipeResonant = new Environment &#40; new float&#91;&#93;&#123; 26, 1.3f, 0.910f, -1000, -700, -1100, 6.81f, 0.18f, 0.10f, -300, 0.010f, 0f, 0f, 0f, 00, 0.022f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 2854.4f, 20f, 0f, 0x0&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT8 SECTION "Pipes" [12204-13294] -->
<h2><a>Moods</a></h2>
<div>
<pre>Heaven = new Environment &#40; new float&#91;&#93;&#123; 26, 19.6f, 0.940f, -1000, -200, -700, 5.04f, 1.12f, 0.56f, -1230, 0.020f, 0f, 0f, 0f, 200, 0.029f, 0f, 0f, 0f, 0.250f, 0.080f, 2.742f, 0.050f, -2f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
@ -119,7 +119,7 @@ Dizzy = new Environment &#40; new float&#91;&#93;&#123; 24, 1.8f, 0.600f, -1
Psychotic = new Environment &#40; new float&#91;&#93;&#123; 25, 1f, 0.500f, -1000, -151, 0, 7.56f, 0.91f, 1f, -626, 0.020f, 0f, 0f, 0f, 774, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 4f, 1f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT9 SECTION "Moods" [13295-14578] -->
<h2><a>Car Racing</a></h2>
<div>
<pre>DrivingCommentator = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0f, 1000, -500, -600, 2.42f, 0.88f, 0.68f, -1400, 0.093f, 0f, 0f, 0f, -1200, 0.017f, 0f, 0f, 0f, 0.250f, 1f, 0.250f, 0f, -10f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;
@ -132,7 +132,7 @@ DrivingEmptygrandstand = new Environment &#40; new float&#91;&#93;&#123; 26, 8.3
DrivingTunnel = new Environment &#40; new float&#91;&#93;&#123; 26, 3.1f, 0.810f, -1000, -800, -100, 3.42f, 0.94f, 1.31f, -300, 0.051f, 0f, 0f, 0f, -300, 0.047f, 0f, 0f, 0f, 0.214f, 0.050f, 0.250f, 0f, -5f, 5000f, 155.3f, 0f, 0x20&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT10 SECTION "Car Racing" [14579-16389] -->
<h2><a>City</a></h2>
<div>
<pre>CityIndoors = new Environment &#40; new float&#91;&#93;&#123; 16, 7.5f, 0.500f, -1000, -800, 0, 1.49f, 0.67f, 1f, -2273, 0.007f, 0f, 0f, 0f, -1691, 0.011f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
@ -144,7 +144,7 @@ CityUnderpass = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0.820f,
CityAbandoned = new Environment &#40; new float&#91;&#93;&#123; 26, 3f, 0.690f, -1000, -200, -100, 3.28f, 1.17f, 0.91f, -700, 0.044f, 0f, 0f, 0f, -1100, 0.024f, 0f, 0f, 0f, 0.250f, 0.200f, 0.250f, 0f, -3f, 5000f, 250f, 0f, 0x20&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT11 SECTION "City" [16390-17951] -->
<h2><a>Small Indoor Rooms</a></h2>
<div>
<pre>Room = new Environment &#40; new float&#91;&#93;&#123; 2, 1.9f, 1f, -1000, -454, 0, 0.40f, 0.83f, 1f, -1646, 0.002f, 0f, 0f, 0f, 53, 0.003f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
@ -154,7 +154,7 @@ Paddedcell = new Environment &#40; new float&#91;&#93;&#123; 1, 1.4f, 1f, -100
Stoneroom = new Environment &#40; new float&#91;&#93;&#123; 5, 11.6f, 1f, -1000, -300, 0, 2.31f, 0.64f, 1f, -711, 0.012f, 0f, 0f, 0f, 83, 0.017f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT12 SECTION "Small Indoor Rooms" [17952-19013] -->
<h2><a>Medium-Sized Indoor Rooms</a></h2>
<div>
<pre>Workshop = new Environment &#40; new float&#91;&#93;&#123; 26, 1.9f, 1f, -1000, -1700, -800, 0.76f, 1f, 1f, 0, 0.012f, 0f, 0f, 0f, 100, 0.012f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;
@ -166,7 +166,7 @@ Dustyroom = new Environment &#40; new float&#91;&#93;&#123; 26, 1.8f, 0.560f,
Chapel = new Environment &#40; new float&#91;&#93;&#123; 26, 19.6f, 0.840f, -1000, -500, 0, 4.62f, 0.64f, 1.23f, -700, 0.032f, 0f, 0f, 0f, -200, 0.049f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0.110f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT13 SECTION "Medium-Sized Indoor Rooms" [19014-20574] -->
<h2><a>Large Indoor Rooms</a></h2>
<div>
<pre>Auditorium = new Environment &#40; new float&#91;&#93;&#123; 6, 21.6f, 1f, -1000, -476, 0, 4.32f, 0.59f, 1f, -789, 0.020f, 0f, 0f, 0f, -289, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
@ -178,7 +178,7 @@ DomeTomb = new Environment &#40; new float&#91;&#93;&#123; 26, 51.8f, 0.79
DomeSaintPauls = new Environment &#40; new float&#91;&#93;&#123; 26, 50.3f, 0.870f, -1000, -900, -1300, 10.48f, 0.19f, 0.10f, -1500, 0.090f, 0f, 0f, 0f, 200, 0.042f, 0f, 0f, 0f, 0.250f, 0.120f, 0.250f, 0f, -5f, 2854.4f, 20f, 0f, 0x3f&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT14 SECTION "Large Indoor Rooms" [20575-22089] -->
<h2><a>Hallways, Alleys</a></h2>
<div>
<pre>Carpettedhallway = new Environment &#40; new float&#91;&#93;&#123; 11, 1.9f, 1f, -1000, -4000, 0, 0.30f, 0.10f, 1f, -1831, 0.002f, 0f, 0f, 0f, -1630, 0.030f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
@ -187,7 +187,7 @@ Stonecorridor = new Environment &#40; new float&#91;&#93;&#123; 13, 13.5f, 1f
Alley = new Environment &#40; new float&#91;&#93;&#123; 14, 7.5f, 0.300f, -1000, -270, 0, 1.49f, 0.86f, 1f, -1204, 0.007f, 0f, 0f, 0f, -4, 0.011f, 0f, 0f, 0f, 0.125f, 0.950f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT15 SECTION "Hallways, Alleys" [22090-22975] -->
<h2><a>Outdoors</a></h2>
<div>
<pre>Backyard = new Environment &#40; new float&#91;&#93;&#123; 26, 80.3f, 0.450f, -1000, -1200, -600, 1.12f, 0.34f, 0.46f, -700, 0.069f, 0f, 0f, -0f, -300, 0.023f, 0f, 0f, 0f, 0.218f, 0.340f, 0.250f, 0f, -5f, 4399.1f, 242.9f, 0f, 0x0&#125; &#41; &#41;;
@ -202,11 +202,12 @@ Quarry = new Environment &#40; new float&#91;&#93;&#123; 18, 17.5f, 1f, -
Parkinglot = new Environment &#40; new float&#91;&#93;&#123; 20, 8.3f, 1f, -1000, 0, 0, 1.65f, 1.50f, 1f, -1363, 0.008f, 0f, 0f, 0f, -1153, 0.012f, 0f, 0f, 0f, 0.250f, 0f, 0.250f, 0f, -5f, 5000f, 250f, 0f, 0x1f&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT16 SECTION "Outdoors" [22976-25173] -->
<h2><a>Water</a></h2>
<div>
<pre>Underwater = new Environment &#40; new float&#91;&#93;&#123; 22, 1.8f, 1f, -1000, -4000, 0, 1.49f, 0.10f, 1f, -449, 0.007f, 0f, 0f, 0f, 1700, 0.011f, 0f, 0f, 0f, 0.250f, 0f, 1.180f, 0.348f, -5f, 5000f, 250f, 0f, 0x3f&#125; &#41; &#41;;
Smallwaterroom = new Environment &#40; new float&#91;&#93;&#123; 26, 36.2f, 0.700f, -1000, -698, 0, 1.51f, 1.25f, 1.14f, -100, 0.020f, 0f, 0f, 0f, 300, 0.030f, 0f, 0f, 0f, 0.179f, 0.150f, 0.895f, 0.190f, -7f, 5000f, 250f, 0f, 0x0&#125; &#41; &#41;;</pre>
</div>
<!-- EDIT17 SECTION "Water" [25174-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:audio_environment_presets?do=export_xhtmlbody">view online version</a></em></p>

@ -15,7 +15,7 @@ Those images gives an idea of what bloom does. The left image has no bloom effec
</p>
</div>
<!-- EDIT1 SECTION "Bloom and Glow" [1-484] -->
<h1><a>Bloom Usage</a></h1>
<div>
<ol>
@ -53,14 +53,14 @@ Here are the parameters that you can tweak :
<td> bloom intensity </td><td> <code>setBloomIntensity(float)</code> </td><td>2.0f </td><td> the resulting bloom value is multiplied by this intensity </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [865-1454] -->
<!-- EDIT3 TABLE [865-1454] -->
<p>
You&#039;ll probably need to adjust those parameters depending on your scene.
</p>
</div>
<!-- EDIT2 SECTION "Bloom Usage" [485-1529] -->
<h1><a>Bloom with a glow map</a></h1>
<div>
@ -135,7 +135,7 @@ Here is the result : <br/>
</p>
</div>
<!-- EDIT4 SECTION "Bloom with a glow map" [1530-3231] -->
<h1><a>Bloom with a glow color</a></h1>
<div>
@ -177,7 +177,7 @@ Here is the result on Oto&#039;s plasma ball (before and after) : <br/>
</p>
</div>
<!-- EDIT5 SECTION "Bloom with a glow color" [3232-4239] -->
<h1><a>Hints and tricks</a></h1>
<div>
@ -286,4 +286,5 @@ If you are using a glow color, set it to black
</span></div>
</div>
<!-- EDIT6 SECTION "Hints and tricks" [4240-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:bloom_and_glow?do=export_xhtmlbody">view online version</a></em></p>

@ -3,7 +3,7 @@
<div>
</div>
<!-- EDIT1 SECTION "Multithreading Bullet Physics in jme3" [1-53] -->
<h2><a>Introduction</a></h2>
<div>
@ -13,7 +13,7 @@ Since bullet is not (yet) multithreaded or GPU accelerated, the jME3 implementat
</p>
</div>
<!-- EDIT2 SECTION "Introduction" [54-261] -->
<h2><a>How is it handled in jme3 and bullet?</a></h2>
<div>
@ -48,7 +48,7 @@ Now the physics update happens in parallel to render(), that is, after the user&
<td>Physics Debug View is rendered inaccurately (out of sync)</td><td>Physics Debug View is rendered accurately.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1202-1424] -->
<!-- EDIT4 TABLE [1202-1424] -->
<p>
<p><div>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!).
@ -61,4 +61,5 @@ Now the physics update happens in parallel to render(), that is, after the user&
</span></div>
</div>
<!-- EDIT3 SECTION "How is it handled in jme3 and bullet?" [262-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:bullet_multithreading?do=export_xhtmlbody">view online version</a></em></p>

@ -3,7 +3,7 @@
<div>
</div>
<!-- EDIT1 SECTION "The jME3 Camera" [1-31] -->
<h2><a>Default Camera</a></h2>
<div>
@ -82,13 +82,13 @@ The camera object is created with the following defaults:
<td>cam.getScreenCoordinates()</td><td>?</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [583-1858] -->
<!-- EDIT3 TABLE [583-1858] -->
<p>
<strong>Tip:</strong> After you change view port, frustum, or frame, call <code>cam.update();</code>
</p>
</div>
<!-- EDIT2 SECTION "Default Camera" [32-1940] -->
<h2><a>FlyBy Camera</a></h2>
<div>
@ -114,9 +114,9 @@ The flyby camera is an AppState that extends the default camera in com.jme3.app.
<td>flyCam.setDragToRotate(true)</td><td>Forces the player to keep mouse button pressed to rotate camera, typically used for Applets. If false (default), all mouse movement will be captured and interpreted as rotations.</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [2326-2708] -->
<!-- EDIT5 TABLE [2326-2708] -->
</div>
<!-- EDIT4 SECTION "FlyBy Camera" [1941-2709] -->
<h2><a>Chase Camera</a></h2>
<div>
@ -164,10 +164,11 @@ ChaseCamera chaseCam = new ChaseCamera&#40;cam, target, inputManager&#41;;</pre>
<td>chaseCam.setDefaultHorizontalRotation(-FastMath.PI/2);</td><td>The default horizontal rotation angle of the camera around the target at the start of the application.</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [3017-4489] --><div><span>
<!-- EDIT7 TABLE [3017-4489] --><div><span>
<a href="/wiki/doku.php/tag:camera?do=showtag&amp;tag=tag%3Acamera">camera</a>,
<a href="/wiki/doku.php/tag:documentation?do=showtag&amp;tag=tag%3Adocumentation">documentation</a>
</span></div>
</div>
<!-- EDIT6 SECTION "Chase Camera" [2710-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:camera?do=export_xhtmlbody">view online version</a></em></p>

@ -21,7 +21,7 @@ feature to record high-quality game trailers!
</p>
</div>
<!-- EDIT1 SECTION "Capture Audio/Video to a File" [1-630] -->
<h2><a>Simple Way</a></h2>
<div>
@ -50,7 +50,7 @@ That&#039;s all!
</p>
</div>
<!-- EDIT2 SECTION "Simple Way" [631-1314] -->
<h2><a>Advanced Way</a></h2>
<div>
@ -153,7 +153,7 @@ a file.
</p>
</div>
<!-- EDIT3 SECTION "Advanced Way" [1315-4507] -->
<h3><a>Basic Example</a></h3>
<div>
@ -182,9 +182,9 @@ import com.jme3.app.SimpleApplication;
&nbsp;
public class Basic &#123;
&nbsp;
public static void main&#40;IOException&#123;
File.createTempFile&#40;&quot;JME-water-video&quot;, &quot;.avi&quot;&#41;;
File.createTempFile&#40;&quot;JME-water-audio&quot;, &quot;.wav&quot;&#41;;
public static void main&#40;String&#91;&#93; ignore&#41; throws IOException&#123;
File video = File.createTempFile&#40;&quot;JME-water-video&quot;, &quot;.avi&quot;&#41;;
File audio = File.createTempFile&#40;&quot;JME-water-audio&quot;, &quot;.wav&quot;&#41;;
&nbsp;
SimpleApplication app = new TestPostWater&#40;&#41;;
app.setTimer&#40;new IsoTimer&#40;60&#41;&#41;;
@ -201,7 +201,7 @@ public class Basic &#123;
&#125;</pre>
</div>
<!-- EDIT4 SECTION "Basic Example" [4508-5640] -->
<h3><a>How it works</a></h3>
<div>
@ -242,7 +242,7 @@ would be useless.
</p>
</div>
<!-- EDIT5 SECTION "How it works" [5641-7279] -->
<h3><a>Advanced Example</a></h3>
<div>
@ -596,7 +596,7 @@ The <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT6 SECTION "Advanced Example" [7280-17183] -->
<h3><a>Using Advanced features to Record from more than one perspective at once</a></h3>
<div>
@ -617,7 +617,7 @@ The <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT7 SECTION "Using Advanced features to Record from more than one perspective at once" [17184-17325] -->
<h2><a>More Information</a></h2>
<div>
@ -649,4 +649,5 @@ listeners can be found here.
</p>
</div>
<!-- EDIT8 SECTION "More Information" [17326-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:capture_audio_video_to_a_file?do=export_xhtmlbody">view online version</a></em></p>

@ -24,7 +24,7 @@ This Node can be the rootNode, or a Node that is attached to the rootNode. </div
</ol>
</div>
<!-- EDIT1 SECTION "JME3 Cinematics" [1-956] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -33,7 +33,7 @@ This Node can be the rootNode, or a Node that is attached to the rootNode. </div
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [957-1123] -->
<h2><a>How to Use a Cinematic</a></h2>
<div>
@ -85,9 +85,9 @@ stateManager.attach&#40;cinematic&#41;;</pre>
<td>cinematic.pause()</td><td>Pauses the cinematic.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [2215-2427] -->
<!-- EDIT4 TABLE [2215-2427] -->
</div>
<!-- EDIT3 SECTION "How to Use a Cinematic" [1124-2428] -->
<h2><a>Tracks (CinematicEvents)</a></h2>
<div>
@ -126,14 +126,14 @@ Here is the list of available CinematicEvents that you use as tracks. Each track
<td>AnimationTrack</td><td>Use this to start playing a model <a href="/com/jme3/gde/core/docs/jme3/advanced/animation.html">animation</a> at a given time (a character walking animation for example)</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [2723-4144] -->
<!-- EDIT6 TABLE [2723-4144] -->
<p>
The jMonkey team can add more types of tracks, just ask in the forum.
</p>
</div>
<!-- EDIT5 SECTION "Tracks (CinematicEvents)" [2429-4218] -->
<h3><a>MotionTrack</a></h3>
<div>
@ -197,14 +197,14 @@ To create a MotionTrack, do the following:
<td>track.setRotation(quaternion)</td><td>Sets the rotation. Use together with <code>MotionTrack.Direction.Rotation</code> or <code>MotionTrack.Direction.PathAndRotation</code>.</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [4701-6109] -->
<!-- EDIT8 TABLE [4701-6109] -->
<p>
<strong>Tip:</strong> Most likely you remote-control more than one object in your scene. Give the tracks and paths useful names such as <code>dragon_track</code>, <code>dragon_path</code>, <code>hero_track</code>, <code>hero_path</code>, etc.
</p>
</div>
<!-- EDIT7 SECTION "MotionTrack" [4219-6305] -->
<h3><a>PositionTrack</a></h3>
<div>
@ -236,7 +236,7 @@ The start location is always the current location of the Spatial.
</p>
</div>
<!-- EDIT9 SECTION "PositionTrack" [6306-6882] -->
<h3><a>RotationTrack</a></h3>
<div>
@ -263,7 +263,7 @@ Details of the constructor:
</ul>
</div>
<!-- EDIT10 SECTION "RotationTrack" [6883-7386] -->
<h3><a>ScaleTrack</a></h3>
<div>
@ -289,7 +289,7 @@ Details of the constructor:
</ul>
</div>
<!-- EDIT11 SECTION "ScaleTrack" [7387-7871] -->
<h3><a>SoundTrack</a></h3>
<div>
@ -316,7 +316,7 @@ Details of the constructor:
</ul>
</div>
<!-- EDIT12 SECTION "SoundTrack" [7872-8404] -->
<h3><a>GuiTrack</a></h3>
<div>
@ -347,7 +347,7 @@ Details of the constructor:
</ul>
</div>
<!-- EDIT13 SECTION "GuiTrack" [8405-8934] -->
<h3><a>AnimationTrack</a></h3>
<div>
@ -374,7 +374,7 @@ Details of the constructor:
</ul>
</div>
<!-- EDIT14 SECTION "AnimationTrack" [8935-9447] -->
<h3><a>Customizations</a></h3>
<div>
@ -388,12 +388,12 @@ You can also create new CinematicEvent by extending <object classid="java:org.ne
</p>
</div>
<!-- EDIT15 SECTION "Customizations" [9448-10493] -->
<h2><a>Interacting with Cinematics</a></h2>
<div>
</div>
<!-- EDIT16 SECTION "Interacting with Cinematics" [10494-10534] -->
<h3><a>CinematicEventListener</a></h3>
<div>
<pre>CinematicEventListener cel = new CinematicEventListener&#40;&#41; &#123;
@ -415,7 +415,7 @@ You can also create new CinematicEvent by extending <object classid="java:org.ne
cinematic.addListener&#40;cel&#41;;</pre>
</div>
<!-- EDIT17 SECTION "CinematicEventListener" [10535-11030] -->
<h3><a>Physics Interaction</a></h3>
<div>
@ -425,7 +425,7 @@ Upcoming.
</p>
</div>
<!-- EDIT18 SECTION "Physics Interaction" [11031-11072] -->
<h2><a>More Information</a></h2>
<div>
@ -435,4 +435,5 @@ See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer">
</p>
</div>
<!-- EDIT19 SECTION "More Information" [11073-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:cinematics?do=export_xhtmlbody">view online version</a></em></p>

@ -16,7 +16,7 @@ Non-physical collision detection is interesting because it uses less computing r
</p>
</div>
<!-- EDIT1 SECTION "Collision and Intersection" [1-1438] -->
<h2><a>Collidable</a></h2>
<div>
@ -48,7 +48,7 @@ Note that jME counts <em>all</em> collisions, this means a ray intersecting a bo
<td>getCollision(i) </td><td>Returns the CollisionResult at index i.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [2081-2409] -->
<!-- EDIT3 TABLE [2081-2409] -->
<p>
A CollisionResult object contains information about the second party of the collision event.
</p>
@ -75,9 +75,9 @@ A CollisionResult object contains information about the second party of the coll
<td>getTriangleIndex()</td><td>Returns the index of the triangle on the second party&#039;s mesh that was hit. (?)</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [2503-3040] -->
<!-- EDIT4 TABLE [2503-3040] -->
</div>
<!-- EDIT2 SECTION "Collidable" [1439-3041] -->
<h3><a>Code Sample</a></h3>
<div>
@ -132,7 +132,7 @@ Knowing the distance of the collisions is useful for example when you intersect
</p>
</div>
<!-- EDIT5 SECTION "Code Sample" [3042-5359] -->
<h2><a>Bounding Volumes</a></h2>
<div>
@ -167,7 +167,7 @@ Supported types:
</p>
</div>
<!-- EDIT6 SECTION "Bounding Volumes" [5360-7041] -->
<h3><a>Usage</a></h3>
<div>
@ -180,7 +180,7 @@ For example you can use Bounding Volumes on custom meshes, or complex non-physic
mesh.updateBound&#40;&#41;;</pre>
</div>
<!-- EDIT7 SECTION "Usage" [7042-7223] -->
<h2><a>Intersection</a></h2>
<div>
@ -223,4 +223,5 @@ TODO:
</ul>
</div>
<!-- EDIT8 SECTION "Intersection" [7224-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:collision_and_intersection?do=export_xhtmlbody">view online version</a></em></p>

@ -30,7 +30,7 @@ Copy the two classes ComboMoveExecution.java and ComboMove.java into your applic
</p>
</div>
<!-- EDIT1 SECTION "Combo Moves" [1-824] -->
<h2><a>Example Code</a></h2>
<div>
<ul>
@ -43,7 +43,7 @@ Copy the two classes ComboMoveExecution.java and ComboMove.java into your applic
</ul>
</div>
<!-- EDIT2 SECTION "Example Code" [825-1321] -->
<h2><a>Create Input Triggers</a></h2>
<div>
@ -64,7 +64,7 @@ inputManager.addMapping&#40;&quot;Attack1&quot;, new KeyTrigger&#40;KeyInput.KEY
inputManager.addListener&#40;this, &quot;Left&quot;, &quot;Right&quot;, &quot;Up&quot;, &quot;Down&quot;, &quot;Attack1&quot;&#41;;</pre>
</div>
<!-- EDIT3 SECTION "Create Input Triggers" [1322-2092] -->
<h2><a>Define Combos</a></h2>
<div>
@ -89,7 +89,7 @@ Also create a ComboMoveExecution object for each ComboMove. You need it later to
<pre>ComboMoveExecution fireballExec = new ComboMoveExecution&#40;fireball&#41;;</pre>
</div>
<!-- EDIT4 SECTION "Define Combos" [2093-3001] -->
<h3><a>ComboMove Class Methods</a></h3>
<div>
@ -129,7 +129,7 @@ False: Do not wait on a final state, chain combo steps. (?) <br/>
True: This is the final state, do not chain combo steps. (?)</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [3096-4090] -->
<!-- EDIT6 TABLE [3096-4090] -->
<p>
The <code>press()</code> and <code>notPress()</code> methods accept sets of Input Triggers, e.g. <code>fireball.press(&quot;A&quot;,&quot;B&quot;,&quot;C&quot;).done()</code>.
@ -153,9 +153,9 @@ The following getters give you more information about the game state:
<td>getPriority()</td><td>Returns the priority of this move</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [4283-4489] -->
<!-- EDIT7 TABLE [4283-4489] -->
</div>
<!-- EDIT5 SECTION "ComboMove Class Methods" [3002-4490] -->
<h2><a>Detect Combos in ActionListener</a></h2>
<div>
@ -214,7 +214,7 @@ public void onAction&#40;String name, boolean isPressed, float tpf&#41; &#123;
&#125;</pre>
</div>
<!-- EDIT8 SECTION "Detect Combos in ActionListener" [4491-6314] -->
<h2><a>Execute Combos in the Update Loop</a></h2>
<div>
@ -244,7 +244,7 @@ Test <code>currentMove.getMoveName()</code> and proceed to call methods that imp
</p>
</div>
<!-- EDIT9 SECTION "Execute Combos in the Update Loop" [6315-7152] -->
<h2><a>Why Combos?</a></h2>
<div>
@ -266,4 +266,5 @@ Depending on the game genre, the designer can reward the players&#039; intrinsic
</span></div>
</div>
<!-- EDIT10 SECTION "Why Combos?" [7153-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:combo_moves?do=export_xhtmlbody">view online version</a></em></p>

@ -43,7 +43,7 @@ To implement game logic for a type of spatial, you will either extend AbstractCo
</p>
</div>
<!-- EDIT1 SECTION "Custom Controls" [1-1747] -->
<h2><a>Usage</a></h2>
<div>
@ -91,7 +91,7 @@ The possibilities are endless. <img src="/wiki/lib/images/smileys/icon_smile.gif
</p>
</div>
<!-- EDIT2 SECTION "Usage" [1748-3212] -->
<h2><a>Example Code</a></h2>
<div>
@ -115,7 +115,7 @@ Existing examples in the code base include:
</ul>
</div>
<!-- EDIT3 SECTION "Example Code" [3213-4497] -->
<h2><a>AbstractControl Class</a></h2>
<div>
@ -214,7 +214,7 @@ See also:
</ul>
</div>
<!-- EDIT4 SECTION "AbstractControl Class" [4498-7443] -->
<h2><a>The Control Interface</a></h2>
<div>
@ -321,7 +321,7 @@ Usage example:
&#125;</pre>
</div>
<!-- EDIT5 SECTION "The Control Interface" [7444-10695] -->
<h2><a>Best Practices</a></h2>
<div>
@ -387,4 +387,5 @@ vehicleSpatial.addControl&#40;new ManualVehicleControl&#40;&#41;&#41;;
c.steerX&#40;steerX&#41;;</pre>
</div>
<!-- EDIT6 SECTION "Best Practices" [10696-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:custom_controls?do=export_xhtmlbody">view online version</a></em></p>

@ -13,7 +13,7 @@ In this tutorial, we (re)create a very simple rectangular mesh, and we have a lo
</ul>
</div>
<!-- EDIT1 SECTION "Custom Mesh Shapes" [1-811] -->
<h2><a>Polygon Meshes</a></h2>
<div>
@ -25,7 +25,7 @@ Sounds worse than it is – here is an example:
</p>
</div>
<!-- EDIT2 SECTION "Polygon Meshes" [812-1383] -->
<h2><a>Creating a Quad Mesh</a></h2>
<div>
@ -44,7 +44,7 @@ If you create your own Mesh-based class, replace <code>mesh</code> by <code>this
<pre>public class MyMesh extends Mesh &#123; &#125;</pre>
</div>
<!-- EDIT3 SECTION "Creating a Quad Mesh" [1384-1766] -->
<h3><a>Vertices</a></h3>
<div>
@ -59,7 +59,7 @@ vertices&#91;2&#93; = new Vector3f&#40;0,3,0&#41;;
vertices&#91;3&#93; = new Vector3f&#40;3,3,0&#41;;</pre>
</div>
<!-- EDIT4 SECTION "Vertices" [1767-2222] -->
<h3><a>Texture Coordinates</a></h3>
<div>
@ -74,7 +74,7 @@ texCoord&#91;2&#93; = new Vector2f&#40;0,1&#41;;
texCoord&#91;3&#93; = new Vector2f&#40;1,1&#41;;</pre>
</div>
<!-- EDIT5 SECTION "Texture Coordinates" [2223-2608] -->
<h3><a>Connecting the Dots</a></h3>
<div>
@ -95,7 +95,7 @@ Next we turn the unrelated coordinates into triangles – We define the order in
0--1\1</pre>
</div>
<!-- EDIT6 SECTION "Connecting the Dots" [2609-3204] -->
<h3><a>Setting the Mesh Buffer</a></h3>
<div>
@ -132,7 +132,7 @@ Our Mesh is ready! Now we want to see it.
</p>
</div>
<!-- EDIT7 SECTION "Setting the Mesh Buffer" [3205-4320] -->
<h2><a>Using the Mesh in a Scene</a></h2>
<div>
@ -153,7 +153,7 @@ Ta-daa!
</p>
</div>
<!-- EDIT8 SECTION "Using the Mesh in a Scene" [4321-4740] -->
<h2><a>Optional Mesh Features</a></h2>
<div>
@ -163,7 +163,7 @@ There are more vertex buffers in a Mesh than the three shown above. For an overv
</p>
</div>
<!-- EDIT9 SECTION "Optional Mesh Features" [4741-4879] -->
<h3><a>Example: Vertex Colors</a></h3>
<div>
@ -229,7 +229,7 @@ Now you see a gradient color extending from each vertex.
</p>
</div>
<!-- EDIT10 SECTION "Example: Vertex Colors" [4880-7029] -->
<h3><a>Example: Shaded Mesh with Normals</a></h3>
<div>
@ -247,7 +247,7 @@ You need as many normals as the polygon has vertices. For a flat quad, they poin
</p>
</div>
<!-- EDIT11 SECTION "Example: Shaded Mesh with Normals" [7030-7801] -->
<h3><a>Example: Point Mode</a></h3>
<div>
@ -273,7 +273,7 @@ This will result in a 10 px dot being rendered for each of the four vertices. Th
</p>
</div>
<!-- EDIT12 SECTION "Example: Point Mode" [7802-8456] -->
<h2><a>Tip: Front and Back Faces</a></h2>
<div>
@ -292,4 +292,5 @@ In case that your use case requires the backfaces to be visible, you have two op
</ul>
</div>
<!-- EDIT13 SECTION "Tip: Front and Back Faces" [8457-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:custom_meshes?do=export_xhtmlbody">view online version</a></em></p>

@ -24,12 +24,12 @@ Here are some different debug shapes:
</p>
</div>
<!-- EDIT1 SECTION "Debugging" [1-1259] -->
<h2><a>Debug Shapes</a></h2>
<div>
</div>
<!-- EDIT2 SECTION "Debug Shapes" [1260-1285] -->
<h3><a>Coordinate Axes</a></h3>
<div>
@ -62,7 +62,7 @@ private Geometry putShape&#40;Mesh shape, ColorRGBA color&#41;&#123;
&#125;</pre>
</div>
<!-- EDIT3 SECTION "Coordinate Axes" [1286-2353] -->
<h3><a>Wireframe Grid</a></h3>
<div>
@ -82,7 +82,7 @@ Use a wireframe grid (com.jme3.scene.debug.Grid) as a ruler or simple floor.
&#125;</pre>
</div>
<!-- EDIT4 SECTION "Wireframe Grid" [2354-2875] -->
<h3><a>Wireframe Cube</a></h3>
<div>
@ -102,7 +102,7 @@ Use a wireframe cube (com.jme3.scene.debug.WireBox) as a stand-in object to see
&#125;</pre>
</div>
<!-- EDIT5 SECTION "Wireframe Cube" [2876-3481] -->
<h3><a>Wireframe Sphere</a></h3>
<div>
@ -122,7 +122,7 @@ Use a wireframe sphere (com.jme3.scene.debug.WireSphere) as a stand-in object to
&#125;</pre>
</div>
<!-- EDIT6 SECTION "Wireframe Sphere" [3482-4090] -->
<h2><a>Wireframe for Physics</a></h2>
<div>
@ -133,7 +133,7 @@ You can display a wireframe of the (usually invisible) collision shape around al
<pre>physicsSpace.enableDebug&#40;assetManager&#41;;</pre>
</div>
<!-- EDIT7 SECTION "Wireframe for Physics" [4091-4437] -->
<h2><a>Wireframe for Animations</a></h2>
<div>
@ -150,7 +150,7 @@ Making the skeleton visible inside animated models can be handy for debugging an
player.attachChild&#40;skeletonDebug&#41;;</pre>
</div>
<!-- EDIT8 SECTION "Wireframe for Animations" [4438-5029] -->
<h2><a>Example: Toggle Wireframe on Model</a></h2>
<div>
@ -168,7 +168,7 @@ Then you can add a switch to toggle the model&#039;s wireframe on and off, like
inputManager.addListener&#40;actionListener, &quot;toggle wireframe&quot;&#41;;</pre>
</div>
</li>
<li><div> Now add the toggle action to the action listener <pre> private ActionListener&#40;&#41; &#123;
<li><div> Now add the toggle action to the action listener <pre> private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
@Override
public void onAction&#40;String name, boolean pressed, float tpf&#41; &#123;
// toggle wireframe
@ -189,7 +189,7 @@ TIP :: To set the line width of wireframe display, use mesh.setLineWidth(lineWid
</p>
</div>
<!-- EDIT9 SECTION "Example: Toggle Wireframe on Model" [5030-6089] -->
<h2><a>Example: Toggle Wireframe on the scene</a></h2>
<div>
@ -243,4 +243,5 @@ Then attach the scene processor to the <acronym title="Graphical User Interface"
<pre>getViewPort&#40;&#41;.addProcessor&#40;new WireProcessor&#40;&#41;&#41;;</pre>
</div>
<!-- EDIT10 SECTION "Example: Toggle Wireframe on the scene" [6090-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:debugging?do=export_xhtmlbody">view online version</a></em></p>

@ -24,7 +24,7 @@ For example, post-processor filter effects are typically activated after the fol
&#125;</pre>
</div>
<!-- EDIT1 SECTION "jME3 Post-Processor Filters and Effects -- Overview" [1-704] -->
<h2><a>Water</a></h2>
<div>
@ -55,12 +55,12 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT2 SECTION "Water" [705-1855] -->
<h2><a>Environment Effects</a></h2>
<div>
</div>
<!-- EDIT3 SECTION "Environment Effects" [1856-1888] -->
<h3><a>Depth of Field Blur</a></h3>
<div>
@ -74,7 +74,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT4 SECTION "Depth of Field Blur" [1889-2185] -->
<h3><a>Fog</a></h3>
<div>
<ul>
@ -83,7 +83,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT5 SECTION "Fog" [2186-2352] -->
<h3><a>Light Scattering</a></h3>
<div>
<ul>
@ -92,7 +92,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT6 SECTION "Light Scattering" [2353-2556] -->
<h3><a>Vegetation</a></h3>
<div>
<ul>
@ -103,7 +103,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT7 SECTION "Vegetation" [2557-2794] -->
<h2><a>Light and Shadows</a></h2>
<div>
@ -112,7 +112,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</p>
</div>
<!-- EDIT8 SECTION "Light and Shadows" [2795-2918] -->
<h3><a>Bloom and Glow</a></h3>
<div>
<ul>
@ -123,7 +123,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT9 SECTION "Bloom and Glow" [2919-3150] -->
<h3><a>Light</a></h3>
<div>
<ul>
@ -143,7 +143,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</p>
</div>
<!-- EDIT10 SECTION "Light" [3151-3817] -->
<h3><a>Shadow</a></h3>
<div>
<ul>
@ -160,7 +160,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT11 SECTION "Shadow" [3818-4857] -->
<h2><a>Special: Glass, Metal, Dissolve, Toon</a></h2>
<div>
@ -171,7 +171,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</p>
</div>
<!-- EDIT12 SECTION "Special: Glass, Metal, Dissolve, Toon" [4858-4950] -->
<h3><a>Toon Effect</a></h3>
<div>
<ul>
@ -182,7 +182,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT13 SECTION "Toon Effect" [4951-5329] -->
<h3><a>Fade in / Fade out</a></h3>
<div>
<ul>
@ -191,7 +191,7 @@ See also the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</ul>
</div>
<!-- EDIT14 SECTION "Fade in / Fade out" [5330-5387] -->
<h3><a>User Contributed</a></h3>
<div>
@ -226,7 +226,7 @@ Thanks for your awesome contributions! Keep them coming!
</p>
</div>
<!-- EDIT15 SECTION "User Contributed" [5388-5934] -->
<h2><a>Particles: Explosions, Fire, Smoke</a></h2>
<div>
@ -264,4 +264,5 @@ See also:
</span></div>
</div>
<!-- EDIT16 SECTION "Particles: Explosions, Fire, Smoke" [5935-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:effects_overview?do=export_xhtmlbody">view online version</a></em></p>

@ -10,7 +10,7 @@ Thanks to Gábor (@anthyon) and Brent (@sploreg) for this contribution!
</p>
</div>
<!-- EDIT1 SECTION "Endless Terrain" [1-254] -->
<h2><a>Sample Code</a></h2>
<div>
@ -27,7 +27,7 @@ The classes with source code can be found in the org.jme3.terrain.geomipmapping
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [255-1134] -->
<h2><a>Specification</a></h2>
<div>
@ -58,7 +58,7 @@ HeightMapGrid adds the possibility of loading terrain tiles on demand instead of
</p>
</div>
<!-- EDIT3 SECTION "Specification" [1135-2425] -->
<h2><a>Motivation</a></h2>
<div>
@ -68,7 +68,7 @@ After playing around with the terrain in jME3, soon comes the requirement of hav
</p>
</div>
<!-- EDIT4 SECTION "Motivation" [2426-3108] -->
<h2><a>Rationale</a></h2>
<div>
@ -84,7 +84,7 @@ There exist also two basic HeightMapGrid implementations:
</ul>
</div>
<!-- EDIT5 SECTION "Rationale" [3109-4319] -->
<h2><a>Usage</a></h2>
<div>
<ol>
@ -111,4 +111,5 @@ Further information about terrain and TerrainQuad can be found in the wiki at:
</ul>
</div>
<!-- EDIT6 SECTION "Usage" [4320-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:endless_terraingrid?do=export_xhtmlbody">view online version</a></em></p>

@ -9,7 +9,7 @@ The effect uses com.jme3.post.FilterPostProcessor and com.jme3.post.filters.Fade
</p>
</div>
<!-- EDIT1 SECTION "Fade-in / Fade-out Effect" [1-320] -->
<h2><a>Setting up</a></h2>
<div>
<ol>
@ -36,7 +36,7 @@ public void simpleInitApp&#40;&#41; &#123;
&#125;</pre>
</div>
<!-- EDIT2 SECTION "Setting up" [321-965] -->
<h2><a>Fading in and out</a></h2>
<div>
@ -46,4 +46,5 @@ You can also change the fade duration using <code>fade.setDuration()</code>.
</p>
</div>
<!-- EDIT3 SECTION "Fading in and out" [966-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:fade?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ It&#039;s very easy to change your current (client) game to function as a server
</p>
</div>
<!-- EDIT1 SECTION "jME3 Headless Server" [1-348] -->
<h2><a>What Does Headless Mean?</a></h2>
<div>
@ -32,7 +32,7 @@ A headless server…
</ul>
</div>
<!-- EDIT2 SECTION "What Does Headless Mean?" [349-748] -->
<h2><a>Client Code</a></h2>
<div>
@ -46,7 +46,7 @@ First, let&#039;s take a look at the default way of creating a new game (in its
&#125;</pre>
</div>
<!-- EDIT3 SECTION "Client Code" [749-975] -->
<h2><a>Headless Server Code</a></h2>
<div>
@ -63,7 +63,7 @@ public static void main&#40;String&#91;&#93; args&#41; &#123;
&#125;</pre>
</div>
<!-- EDIT4 SECTION "Headless Server Code" [976-1390] -->
<h2><a>Next steps</a></h2>
<div>
@ -91,4 +91,5 @@ Okay, so you can now start your game in a headless &#039;server mode&#039;, wher
</span></div>
</div>
<!-- EDIT5 SECTION "Next steps" [1391-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:headless_server?do=export_xhtmlbody">view online version</a></em></p>

@ -16,7 +16,7 @@ In this example, we will create a pendulum. The joint is the (invisible) connect
</p>
</div>
<!-- EDIT1 SECTION "Physical Hinges and Joints" [1-692] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -25,7 +25,7 @@ In this example, we will create a pendulum. The joint is the (invisible) connect
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [693-871] -->
<h2><a>Overview of this Physics Application</a></h2>
<div>
<ol>
@ -52,7 +52,7 @@ In this example, we will create a pendulum. The joint is the (invisible) connect
</ol>
</div>
<!-- EDIT3 SECTION "Overview of this Physics Application" [872-1519] -->
<h2><a>Creating a Fixed Node</a></h2>
<div>
@ -72,7 +72,7 @@ For a rope bridge, there would be two fixed nodes where the bridge is attached t
</p>
</div>
<!-- EDIT4 SECTION "Creating a Fixed Node" [1520-2039] -->
<h2><a>Creating a Dynamic Node</a></h2>
<div>
@ -91,7 +91,7 @@ For a rope bridge, each set of planks would be one dynamic node.
</p>
</div>
<!-- EDIT5 SECTION "Creating a Dynamic Node" [2040-2537] -->
<h2><a>Understanding DOF, Joints, and Hinges</a></h2>
<div>
@ -129,7 +129,7 @@ You&#039;ll understand that, when creating any type of joint, it is important to
</p>
</div>
<!-- EDIT6 SECTION "Understanding DOF, Joints, and Hinges" [2538-3728] -->
<h2><a>Creating the Joint</a></h2>
<div>
@ -187,7 +187,7 @@ Remember to add all joint objects to the physicsSpace, just like you would do wi
</p>
</div>
<!-- EDIT7 SECTION "Creating the Joint" [3729-5628] -->
<h2><a>Apply Physical Forces</a></h2>
<div>
@ -231,4 +231,5 @@ When you disable the motor, the chained nodes are exposed to gravity again:
</span></div>
</div>
<!-- EDIT8 SECTION "Apply Physical Forces" [5629-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:hinges_and_joints?do=export_xhtmlbody">view online version</a></em></p>

@ -44,14 +44,14 @@ Includes buttons, effects, controls. <br/>
Supports <acronym title="Extensible Markup Language">XML</acronym> and Java layouts.</td><td>Steeper learning curve.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [834-1259] -->
<!-- EDIT2 TABLE [834-1259] -->
<p>
Using the <acronym title="Graphical User Interface">GUI</acronym> Node is the default approach in jme3 to create simple HUDs. If you just quickly want to display a line of text, or a simple icon on the screen, use the no-frills <acronym title="Graphical User Interface">GUI</acronym> Node, it&#039;s easier.
</p>
</div>
<!-- EDIT1 SECTION "Head-Up Display (HUD)" [1-1460] -->
<h2><a>Simple HUD: GUI Node</a></h2>
<div>
@ -87,7 +87,7 @@ The BitmapTexts and Pictures appear as 2 dimensional element on the screen.
</p>
</div>
<!-- EDIT3 SECTION "Simple HUD: GUI Node" [1461-2189] -->
<h3><a>Displaying Pictures in the HUD</a></h3>
<div>
@ -107,7 +107,7 @@ When you set the last boolean in setImage() to true, the alpha channel of your i
</p>
</div>
<!-- EDIT4 SECTION "Displaying Pictures in the HUD" [2190-2714] -->
<h3><a>Displaying Text in the HUD</a></h3>
<div>
@ -129,7 +129,7 @@ The BitmapFont object <code>guiFont</code> is a default font provided by SimpleA
hudText = new BitmapText(myFont, false);</pre>
</div>
<!-- EDIT5 SECTION "Displaying Text in the HUD" [2715-3562] -->
<h3><a>Positioning HUD Elements</a></h3>
<div>
<ul>
@ -142,7 +142,7 @@ hudText = new BitmapText(myFont, false);</pre>
</ul>
</div>
<!-- EDIT6 SECTION "Positioning HUD Elements" [3563-4187] -->
<h3><a>Displaying Geometries in the HUD</a></h3>
<div>
@ -157,7 +157,7 @@ It is technically possible to attach Quads and 3D Geometries to the HUD. They sh
</p>
</div>
<!-- EDIT7 SECTION "Displaying Geometries in the HUD" [4188-4803] -->
<h3><a>Keeping the HUD Up-To-Date</a></h3>
<div>
@ -174,7 +174,7 @@ Use the update loop to keep the content up-to-date.
&#125;</pre>
</div>
<!-- EDIT8 SECTION "Keeping the HUD Up-To-Date" [4804-5078] -->
<h2><a>Advanced HUD: Nifty GUI</a></h2>
<div>
@ -207,4 +207,5 @@ For HUDs, you basically follow the same instructions as for creating a normal <a
</span></div>
</div>
<!-- EDIT9 SECTION "Advanced HUD: Nifty GUI" [5079-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:hud?do=export_xhtmlbody">view online version</a></em></p>

@ -25,7 +25,7 @@ This is how you add interaction to your game:
</ol>
</div>
<!-- EDIT1 SECTION "Input Handling" [1-561] -->
<h2><a>1. Choose Trigger</a></h2>
<div>
@ -125,14 +125,14 @@ JoyButtonTrigger(0, JoyInput.AXIS_POV_Y) ? </td>
<td> Joystick Movement: Backward</td><td> JoyAxisTrigger(0, JoyInput.AXIS_POV_Z, false) </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1098-3076] -->
<!-- EDIT3 TABLE [1098-3076] -->
<p>
In your IDE, use code completion to quickly look up Trigger literals. In the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> for example, press ctrl-space or ctrl-/ after <code>KeyInput.|</code> to choose from the list of all keys.
</p>
</div>
<!-- EDIT2 SECTION "1. Choose Trigger" [562-3271] -->
<h2><a>2. Remove Default Trigger Mappings</a></h2>
<div>
<pre>inputManager.deleteMapping( SimpleApplication.INPUT_MAPPING_MEMORY );</pre>
@ -153,9 +153,9 @@ In your IDE, use code completion to quickly look up Trigger literals. In the jMo
<td>INPUT_MAPPING_EXIT</td><td>KEY_ESCAPE</td><td>Closes the application by calling <code>stop();</code>. Typically you do not remove this, unless you replace it by another way of quitting gracefully.</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [3404-3821] -->
<!-- EDIT5 TABLE [3404-3821] -->
</div>
<!-- EDIT4 SECTION "2. Remove Default Trigger Mappings" [3272-3822] -->
<h2><a>3. Add Custom Trigger Mapping</a></h2>
<div>
@ -181,7 +181,7 @@ inputManager.addMapping&#40;&quot;Right&quot;, new KeyTrigger&#40;KeyInput.KEY_D
...</pre>
</div>
<!-- EDIT6 SECTION "3. Add Custom Trigger Mapping" [3823-4887] -->
<h2><a>4. Create Listeners</a></h2>
<div>
@ -195,7 +195,7 @@ The jME3 input manager supports two types of event listeners for inputs: AnalogL
</p>
</div>
<!-- EDIT7 SECTION "4. Create Listeners" [4888-5361] -->
<h3><a>ActionListener</a></h3>
<div>
@ -223,14 +223,14 @@ The jME3 input manager supports two types of event listeners for inputs: AnalogL
<li><div> </div>
</li>
</ul>
<pre>private ActionListener&#40;&#41; &#123;
<pre>private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
/** TODO: test for mapping names and implement actions */
&#125;
&#125;;</pre>
</div>
<!-- EDIT8 SECTION "ActionListener" [5362-6028] -->
<h3><a>AnalogListener</a></h3>
<div>
@ -263,7 +263,7 @@ The jME3 input manager supports two types of event listeners for inputs: AnalogL
&#125;;</pre>
</div>
<!-- EDIT9 SECTION "AnalogListener" [6029-6665] -->
<h2><a>4. Register Mappings to Listeners</a></h2>
<div>
@ -292,7 +292,7 @@ As you see, you can add several listeners in one String array. You can call the
</p>
</div>
<!-- EDIT10 SECTION "4. Register Mappings to Listeners" [6666-7914] -->
<h2><a>5. Implement Actions in Listeners</a></h2>
<div>
@ -312,7 +312,7 @@ Make use of the distinction between <code>if</code> and <code>else if</code> in
</ul>
</div>
<!-- EDIT11 SECTION "5. Implement Actions in Listeners" [7915-8650] -->
<h3><a>ActionListener</a></h3>
<div>
@ -320,7 +320,7 @@ Make use of the distinction between <code>if</code> and <code>else if</code> in
In the most common case, you want an action to be triggered once, in the moment when the button or key trigger is released. For example, when the player presses a key to open a door, or clicks to pick up an item. For these cases, use an ActionListener and test for <code>&amp;&amp; !keyPressed</code>, like shown in the following example.
</p>
<pre>private ActionListener&#40;&#41; &#123;
<pre>private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
&nbsp;
if &#40;name.equals&#40;&quot;Pause Game&quot;&#41; &amp;&amp; !keyPressed&#41; &#123; // test?
@ -333,7 +333,7 @@ In the most common case, you want an action to be triggered once, in the moment
&#125;;</pre>
</div>
<!-- EDIT12 SECTION "ActionListener" [8651-9322] -->
<h3><a>AnalogListener</a></h3>
<div>
@ -354,7 +354,7 @@ The following example shows how you define actions with an AnalogListener. Thies
&#125;;</pre>
</div>
<!-- EDIT13 SECTION "AnalogListener" [9323-9903] -->
<h2><a>Let Users Remap Keys</a></h2>
<div>
@ -373,4 +373,5 @@ The abstraction of separating triggers and mappings has the advantage that you c
</span></div>
</div>
<!-- EDIT14 SECTION "Let Users Remap Keys" [9904-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:input_handling?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ If you want to colorize simple shapes (one texture all around), then .j3m are th
</p>
</div>
<!-- EDIT1 SECTION "Saving and Loading Materials with .j3m Files" [1-753] -->
<h2><a>Writing the .j3m File</a></h2>
<div>
<ol>
@ -66,7 +66,7 @@ How to this file is structured:
</p>
</div>
<!-- EDIT2 SECTION "Writing the .j3m File" [754-2349] -->
<h2><a>How to Use .j3m Materials</a></h2>
<div>
@ -81,12 +81,12 @@ This is how you use the prepared .j3m Material on a Spatial. Since you have save
</p>
</div>
<!-- EDIT3 SECTION "How to Use .j3m Materials" [2350-2795] -->
<h2><a>Syntax Reference for .j3m Files</a></h2>
<div>
</div>
<!-- EDIT4 SECTION "Syntax Reference for .j3m Files" [2796-2840] -->
<h3><a>Paths</a></h3>
<div>
@ -105,7 +105,7 @@ Make sure to get the paths to the textures (.png, .jpg) and material definitions
</ul>
</div>
<!-- EDIT5 SECTION "Paths" [2841-3417] -->
<h3><a>Data Types</a></h3>
<div>
@ -180,9 +180,9 @@ All data types (except Color) are specified in com.jme3.shader.VarType.
<td> TextureArray</td><td> </td><td> (Currently not supported in J3M) </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [3565-4979] -->
<!-- EDIT7 TABLE [3565-4979] -->
</div>
<!-- EDIT6 SECTION "Data Types" [3418-4981] -->
<h3><a>Flip and Repeat Syntax</a></h3>
<div>
<ul>
@ -195,7 +195,7 @@ All data types (except Color) are specified in com.jme3.shader.VarType.
</ul>
</div>
<!-- EDIT8 SECTION "Flip and Repeat Syntax" [4982-5325] -->
<h3><a>Syntax for Additional Render States</a></h3>
<div>
<ul>
@ -244,14 +244,14 @@ See the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><p
<td> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.org/javadoc/com/jme3/material/RenderState.html#setPointSprite(boolean)"><param name="text" value="<html><u>PointSprite</u></html>"><param name="textColor" value="blue"></object> </td><td>(Boolean)</td><td> Enable point sprite rendering for point meshes </td>
</tr>
</table></div>
<!-- EDIT2 TABLE [5617-7185] -->
<!-- EDIT10 TABLE [5617-7185] -->
</div>
<!-- EDIT9 SECTION "Syntax for Additional Render States" [5326-7187] -->
<h2><a>Examples</a></h2>
<div>
</div>
<!-- EDIT11 SECTION "Examples" [7188-7209] -->
<h3><a>Example 1: Shiny</a></h3>
<div>
<pre>Spatial signpost = &#40;Spatial&#41; assetManager.loadAsset&#40;
@ -282,7 +282,7 @@ The <acronym title="Joint Photographics Experts Group">JPG</acronym> files are i
</p>
</div>
<!-- EDIT12 SECTION "Example 1: Shiny" [7210-8142] -->
<h3><a>Example 2: Repeating Texture</a></h3>
<div>
<pre>Material mat = assetManager.loadMaterial&#40;
@ -307,7 +307,7 @@ The <acronym title="Portable Network Graphics">PNG</acronym> files are in the sa
</p>
</div>
<!-- EDIT13 SECTION "Example 2: Repeating Texture" [8143-8810] -->
<h3><a>Example 3: Transparent</a></h3>
<div>
@ -349,4 +349,5 @@ The <acronym title="Portable Network Graphics">PNG</acronym> file is in the same
</span></div>
</div>
<!-- EDIT14 SECTION "Example 3: Transparent" [8811-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:j3m_material_files?do=export_xhtmlbody">view online version</a></em></p>

@ -9,7 +9,7 @@
</p>
</div>
<!-- EDIT1 SECTION "JME3 and Shaders" [1-36] -->
<h1><a>Shaders Basics</a></h1>
<div>
@ -26,7 +26,7 @@ There are multiple frequently used languages that you may encounter to code shad
</p>
</div>
<!-- EDIT2 SECTION "Shaders Basics" [37-634] -->
<h3><a>How Does it work?</a></h3>
<div>
@ -46,7 +46,7 @@ The main program sends mesh data to the vertex shader (vertex position in object
</p>
</div>
<!-- EDIT3 SECTION "How Does it work?" [635-1483] -->
<h3><a>Variables scope</a></h3>
<div>
@ -71,7 +71,7 @@ There is a large panel of variable types to be used, for more information about
</p>
</div>
<!-- EDIT4 SECTION "Variables scope" [1484-2150] -->
<h3><a>Spaces and Matrices</a></h3>
<div>
@ -88,7 +88,7 @@ The engine passes the object space coordinates to the vertex shader. We need to
</p>
</div>
<!-- EDIT5 SECTION "Spaces and Matrices" [2151-2695] -->
<h3><a>Simple example : rendering a solid color on an object</a></h3>
<div>
@ -138,7 +138,7 @@ For example applying this shader to a sphere would render a solid blue sphere on
</p>
</div>
<!-- EDIT6 SECTION "Simple example : rendering a solid color on an object" [2696-3933] -->
<h1><a>How to use shaders in JME3</a></h1>
<div>
@ -184,7 +184,7 @@ For more information on JME3 material system, i suggest you read this <object cl
</p>
</div>
<!-- EDIT7 SECTION "How to use shaders in JME3" [3934-5177] -->
<h3><a>JME3 Global uniforms</a></h3>
<div>
@ -203,7 +203,7 @@ The complete list of global uniforms that can be used in JME3 can be found <obje
</p>
</div>
<!-- EDIT8 SECTION "JME3 Global uniforms" [5178-5799] -->
<h3><a>JME3 Lighting Global uniforms</a></h3>
<div>
@ -241,7 +241,7 @@ these uniforms are passed to the shader without having to declare them in the j3
</p>
</div>
<!-- EDIT9 SECTION "JME3 Lighting Global uniforms" [5800-6890] -->
<h3><a>JME3 attributes</a></h3>
<div>
@ -258,7 +258,7 @@ Note that in the shader the attributes names will be prefixed by a “in”.<br/
</p>
</div>
<!-- EDIT10 SECTION "JME3 attributes" [6891-7273] -->
<h3><a>User&#039;s uniforms</a></h3>
<div>
@ -320,7 +320,7 @@ The uniforms will be populated at runtime with the value you sent.
</p>
</div>
<!-- EDIT11 SECTION "User's uniforms" [7274-8876] -->
<h3><a>Example: Adding Color Keying to the Lighting.j3md Material Definition</a></h3>
<div>
@ -384,7 +384,7 @@ A result preview can be seen here: <object classid="java:org.netbeans.modules.ja
</p>
</div>
<!-- EDIT12 SECTION "Example: Adding Color Keying to the Lighting.j3md Material Definition" [8877-10367] -->
<h3><a>Step by step</a></h3>
<div>
<ul>
@ -400,7 +400,7 @@ A result preview can be seen here: <object classid="java:org.netbeans.modules.ja
</li>
</ul>
<pre> // A cube
Box&#40;Vector3f.ZERO, 1f,1f,1f&#41;;
Box box= new Box&#40;Vector3f.ZERO, 1f,1f,1f&#41;;
Geometry cube = new Geometry&#40;&quot;box&quot;, box&#41;;
Material mat = new Material&#40;assetManager,&quot;Path/To/My/materialDef.j3md&quot;&#41;;
cube.setMaterial&#40;mat&#41;;
@ -414,7 +414,7 @@ A result preview can be seen here: <object classid="java:org.netbeans.modules.ja
</p>
</div>
<!-- EDIT13 SECTION "Step by step" [10368-10987] -->
<h3><a>JME3 and OpenGL 3 &amp; 4 compatibility</a></h3>
<div>
@ -452,9 +452,9 @@ Those attributes are deprecated since GLSL 1.3 (opengl 3), hence JME3 global uni
<td>gl_NormalMatrix </td><td>g_NormalMatrix</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [11313-11624] -->
<!-- EDIT15 TABLE [11313-11624] -->
</div>
<!-- EDIT14 SECTION "JME3 and OpenGL 3 & 4 compatibility" [10988-11624] -->
<h3><a>Useful links</a></h3>
<div>
@ -463,4 +463,5 @@ Those attributes are deprecated since GLSL 1.3 (opengl 3), hence JME3 global uni
</p>
</div>
<!-- EDIT16 SECTION "Useful links" [11625-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:jme3_shaders?do=export_xhtmlbody">view online version</a></em></p>

@ -24,7 +24,7 @@ Light and Shadow are two separate things in 3D engines, although we percieve the
</p>
</div>
<!-- EDIT1 SECTION "Light and Shadow" [1-1017] -->
<h2><a>Light Sources and Colors</a></h2>
<div>
@ -65,7 +65,7 @@ You can get a list of all lights added to a Spatial by calling <code>getWorldLig
</p>
</div>
<!-- EDIT2 SECTION "Light Sources and Colors" [1018-2059] -->
<h3><a>PointLight</a></h3>
<div>
@ -88,7 +88,7 @@ lamp_light.setPosition&#40;new Vector3f&#40;lamp_geo.getLocalTranslation&#40;&#4
rootNode.addLight&#40;lamp_light&#41;;</pre>
</div>
<!-- EDIT3 SECTION "PointLight" [2060-2762] -->
<h3><a>DirectionalLight</a></h3>
<div>
@ -110,7 +110,7 @@ sun.setDirection&#40;new Vector3f&#40;-.5f,-.5f,-.5f&#41;.normalizeLocal&#40;&#4
rootNode.addLight&#40;sun&#41;;</pre>
</div>
<!-- EDIT4 SECTION "DirectionalLight" [2763-3367] -->
<h3><a>SpotLight</a></h3>
<div>
@ -140,7 +140,7 @@ If you want the spotlight to follow the flycam, repeat the setDirection(…) and
</p>
</div>
<!-- EDIT5 SECTION "SpotLight" [3368-4502] -->
<h3><a>AmbientLight</a></h3>
<div>
@ -163,7 +163,7 @@ Example: <code>mylight.setColor(ColorRGBA.White.mult(1.3f));</code>
</p>
</div>
<!-- EDIT6 SECTION "AmbientLight" [4503-5325] -->
<h2><a>Light Follows Spatial</a></h2>
<div>
@ -181,7 +181,7 @@ Obviously, this does apply to AmbientLights which have no position.
</p>
</div>
<!-- EDIT7 SECTION "Light Follows Spatial" [5326-5886] -->
<h2><a>Simple Lighting</a></h2>
<div>
@ -240,7 +240,7 @@ These light effects update live when the object or light source moves. If you sh
</p>
</div>
<!-- EDIT8 SECTION "Simple Lighting" [5887-8536] -->
<h2><a>BasicShadowRenderer</a></h2>
<div>
@ -280,7 +280,7 @@ airplane.setShadowMode&#40;ShadowMode.Cast&#41;; // nothing casts shadows
ghost.setShadowMode&#40;ShadowMode.Off&#41;; // ghost is translucent anyway...</pre>
</div>
<!-- EDIT9 SECTION "BasicShadowRenderer" [8537-10206] -->
<h2><a>Parallel-Split Shadow Map</a></h2>
<div>
@ -344,7 +344,7 @@ As said above, it&#039;s more efficient to specify individual shadow behaviour f
terrain.setShadowMode&#40;ShadowMode.Receive&#41;; </pre>
</div>
<!-- EDIT10 SECTION "Parallel-Split Shadow Map" [10207-11929] -->
<h2><a>Screen Space Ambient Occlusion</a></h2>
<div>
@ -376,4 +376,5 @@ viewPort.addProcessor&#40;fpp&#41;;</pre>
</p>
</div>
<!-- EDIT11 SECTION "Screen Space Ambient Occlusion" [11930-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:light_and_shadow?do=export_xhtmlbody">view online version</a></em></p>

@ -118,7 +118,7 @@ This screen displays our custom progress bar control with a text control
<span><span>&lt;/screen&gt;</span></span></pre>
</div>
<!-- EDIT1 SECTION "Nifty Loading Screen (Progress Bar)" [1-4344] -->
<h3><a>Creating the bindings to use the Nifty XML</a></h3>
<div>
@ -327,12 +327,12 @@ public class TestLoadingScreen extends SimpleApplication implements ScreenContro
&#125;
&nbsp;
@Override
public void bind&#40;Nifty nifty, Screen screen, Attributes atrbts&#41; &#123;
public void bind&#40;Nifty nifty, Screen screen, Element elmnt, Properties prprts, Attributes atrbts&#41; &#123;
progressBarElement = elmnt.findElementByName&#40;&quot;progressbar&quot;&#41;;
&#125;
&nbsp;
@Override
public void init&#40;Attributes atrbts&#41; &#123;
public void init&#40;Properties prprts, Attributes atrbts&#41; &#123;
&#125;
&nbsp;
public void onFocus&#40;boolean getFocus&#41; &#123;
@ -508,7 +508,7 @@ public class TestLoadingScreen1 extends SimpleApplication implements ScreenContr
//since this method is called from another thread, we enqueue the changes to the progressbar to the update loop thread
enqueue&#40;new Callable&#40;&#41; &#123;
&nbsp;
public Exception &#123;
public Object call&#40;&#41; throws Exception &#123;
final int MIN_WIDTH = 32;
int pixelWidth = &#40;int&#41; &#40;MIN_WIDTH + &#40;progressBarElement.getParent&#40;&#41;.getWidth&#40;&#41; - MIN_WIDTH&#41; * progress&#41;;
progressBarElement.setConstraintWidth&#40;new SizeValue&#40;pixelWidth + &quot;px&quot;&#41;&#41;;
@ -546,12 +546,12 @@ public class TestLoadingScreen1 extends SimpleApplication implements ScreenContr
&#125;
&nbsp;
@Override
public void bind&#40;Nifty nifty, Screen screen, Attributes atrbts&#41; &#123;
public void bind&#40;Nifty nifty, Screen screen, Element elmnt, Properties prprts, Attributes atrbts&#41; &#123;
progressBarElement = elmnt.findElementByName&#40;&quot;progressbar&quot;&#41;;
&#125;
&nbsp;
@Override
public void init&#40;Attributes atrbts&#41; &#123;
public void init&#40;Properties prprts, Attributes atrbts&#41; &#123;
&#125;
&nbsp;
public void onFocus&#40;boolean getFocus&#41; &#123;
@ -569,4 +569,5 @@ TO DO
</p>
</div>
<!-- EDIT2 SECTION "Creating the bindings to use the Nifty XML" [4345-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:loading_screen?do=export_xhtmlbody">view online version</a></em></p>

@ -3,7 +3,7 @@
<div>
</div>
<!-- EDIT1 SECTION "Localizing jME 3 Games" [1-38] -->
<h2><a>Scope</a></h2>
<div>
@ -30,7 +30,7 @@ There are tools that assist you with localizing Java Swing GUIs. jME3 applicatio
</p>
</div>
<!-- EDIT2 SECTION "Scope" [39-879] -->
<h2><a>Preparing the Localization</a></h2>
<div>
@ -56,7 +56,7 @@ UiText.setText&#40;&quot;Score: &quot;+score&#41;;</pre>
score.display=Score: </pre>
</div>
</li>
<li><div> In the source code, replace every occurence of a hard-coded message with the appropriate Resource Bundle call to its unique key: <pre>ResourceBundle.getBundle&#40;&quot;Bundle&quot;&#41;.getString&#40;&quot;greeting&quot;&#41;&#41;;
<li><div> In the source code, replace every occurence of a hard-coded message with the appropriate Resource Bundle call to its unique key: <pre>System.out.print&#40;ResourceBundle.getBundle&#40;&quot;Bundle&quot;&#41;.getString&#40;&quot;greeting&quot;&#41;&#41;;
UiText.setText&#40;ResourceBundle.getBundle&#40;&quot;Bundle&quot;&#41;.getString&#40;&quot;score.display&quot;&#41;+score&#41;;</pre>
</div>
</li>
@ -69,7 +69,7 @@ The language used in the Bundle.properties files will be the default language fo
</p>
</div>
<!-- EDIT3 SECTION "Preparing the Localization" [880-2088] -->
<h2><a>Translating the Messages</a></h2>
<div>
@ -108,10 +108,10 @@ score.display=Spielstand: </pre>
To get the full list of language suffixes use
</p>
<pre>Locale.getISOLanguages&#40;&#41;&#41;&#41;;</pre>
<pre>System.out.println&#40;Arrays.toString&#40;Locale.getISOLanguages&#40;&#41;&#41;&#41;;</pre>
</div>
<!-- EDIT4 SECTION "Translating the Messages" [2089-3243] -->
<h2><a>Which Strings Not to Translate</a></h2>
<div>
@ -142,7 +142,7 @@ Only localize messages and UI text!
</p>
</div>
<!-- EDIT5 SECTION "Which Strings Not to Translate" [3244-3918] -->
<h2><a>Common Localization Problems</a></h2>
<div>
@ -162,7 +162,7 @@ Typical problems include:
</ul>
</div>
<!-- EDIT6 SECTION "Common Localization Problems" [3919-4662] -->
<h2><a>More Documentation</a></h2>
<div>
@ -177,4 +177,5 @@ Typical problems include:
</p>
</div>
<!-- EDIT7 SECTION "More Documentation" [4663-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:localization?do=export_xhtmlbody">view online version</a></em></p>

@ -3,7 +3,7 @@
<div>
</div>
<!-- EDIT1 SECTION "Logging and Monitoring" [1-38] -->
<h2><a>Logging Like a Newb</a></h2>
<div>
@ -13,7 +13,7 @@ Many developers just use System.out.println() to print diagnostic strings to the
</p>
</div>
<!-- EDIT2 SECTION "Logging Like a Newb" [39-424] -->
<h2><a>Logging Like a Pro</a></h2>
<div>
@ -67,7 +67,7 @@ More details about <object classid="java:org.netbeans.modules.javahelp.BrowserDi
</p>
</div>
<!-- EDIT3 SECTION "Logging Like a Pro" [425-2227] -->
<h2><a>Switching the Logger on and off</a></h2>
<div>
@ -95,4 +95,5 @@ To reactivate full logging, e.g. for debugging and testing:
<pre>Logger.getLogger&#40;””&#41;.setLevel&#40;Level.FINE&#41;;</pre>
</div>
<!-- EDIT4 SECTION "Switching the Logger on and off" [2228-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:logging?do=export_xhtmlbody">view online version</a></em></p>

@ -23,7 +23,7 @@ There are two ways how the camera can do that:
</p>
</div>
<!-- EDIT1 SECTION "Making the Camera Follow a 3rd-Person Character" [1-989] -->
<h2><a>Code Samples</a></h2>
<div>
@ -38,7 +38,7 @@ Press the WASD or arrow keys to move. Drag with the left mouse button to rotate.
</ul>
</div>
<!-- EDIT2 SECTION "Code Samples" [990-1371] -->
<h2><a>Camera Node</a></h2>
<div>
@ -76,7 +76,7 @@ Example: Use with <a href="/com/jme3/gde/core/docs/jme3/advanced/physics.html">C
The camera&#039;s transformation is copied over the spatial&#039;s transformation. Use with first-person flyCam.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [2445-2956] -->
<!-- EDIT4 TABLE [2445-2956] -->
<p>
<strong>Code sample:</strong>
@ -87,7 +87,7 @@ The camera&#039;s transformation is copied over the spatial&#039;s transformatio
</ul>
</div>
<!-- EDIT3 SECTION "Camera Node" [1372-3197] -->
<h2><a>Chase Camera</a></h2>
<div>
@ -137,7 +137,7 @@ new KeyTrigger(KeyInput.KEY_SPACE))</td><td>Activate mutiple triggers for the ro
<td>setRotationSensitivity(5f)</td><td>How fast the camera rotates. Use values around &lt;1.0f (all bigger values are ignored).</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [3732-5144] -->
<!-- EDIT6 TABLE [3732-5144] -->
<p>
<strong>Code sample:</strong>
@ -148,7 +148,7 @@ new KeyTrigger(KeyInput.KEY_SPACE))</td><td>Activate mutiple triggers for the ro
</ul>
</div>
<!-- EDIT5 SECTION "Chase Camera" [3198-5387] -->
<h2><a>Which to Choose?</a></h2>
<div>
@ -171,6 +171,7 @@ What is the difference of the two code samples above?
<td>Drag-to-Rotate rotates the target and the camera. You always see the target from behind.</td><td>Drag-to-Rotate rotates only the camera. You can see the target from various sides.</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [5473-5944] -->
<!-- EDIT8 TABLE [5473-5944] -->
</div>
<!-- EDIT7 SECTION "Which to Choose?" [5388-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:making_the_camera_follow_a_character?do=export_xhtmlbody">view online version</a></em></p>

@ -18,7 +18,7 @@ myGeometry.setMaterial&#40;mat&#41;; // Use material on this Geome
</p>
</div>
<!-- EDIT1 SECTION "How to Use Material Definitions (.j3md)" [1-987] -->
<h2><a>Preparing a Material</a></h2>
<div>
@ -50,7 +50,7 @@ In the <a href="/com/jme3/gde/core/docs/jme3/advanced/materials_overview.html">M
</ol>
</div>
<!-- EDIT2 SECTION "Preparing a Material" [988-1647] -->
<h2><a>Using a Material</a></h2>
<div>
@ -79,7 +79,7 @@ For details see also: <a href="/com/jme3/gde/core/docs/jme3/intermediate/how_to_
</p>
</div>
<!-- EDIT3 SECTION "Using a Material" [1648-2337] -->
<h3><a>Examples</a></h3>
<div>
@ -123,7 +123,7 @@ mat.setColor&#40;&quot;Color&quot;, ColorRGBA.Blue&#41;;</pre>
<p>
You can test these examples within the following code snippet. It creates a box and applies the material:
</p>
<pre> Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
<pre> Box b = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Geometry geom = new Geometry&#40;&quot;Box&quot;, b&#41;;
// ... insert Material definition...
geom.setMaterial&#40;mat&#41;;
@ -135,7 +135,7 @@ rootNode.attachChild&#40;geom&#41;;</pre>
</p>
</div>
<!-- EDIT4 SECTION "Examples" [2338-3711] -->
<h2><a>Creating a Custom Material Definition</a></h2>
<div>
@ -167,4 +167,5 @@ Check out the <a href="/com/jme3/gde/core/docs/jme3/build_from_sources.html">eng
</span></div>
</div>
<!-- EDIT5 SECTION "Creating a Custom Material Definition" [3712-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:material_definitions?do=export_xhtmlbody">view online version</a></em></p>

@ -22,7 +22,7 @@ Or find more background info on <a href="/com/jme3/gde/core/docs/jme3/advanced/m
</p>
</div>
<!-- EDIT1 SECTION "Material Definition Properties" [1-841] -->
<h2><a>All Materials Definition Properties</a></h2>
<div>
@ -44,7 +44,7 @@ Most Material parameters are optional. For example, it is okay to specify solely
</p>
</div>
<!-- EDIT2 SECTION "All Materials Definition Properties" [842-1717] -->
<h3><a>Unshaded Coloring and Textures</a></h3>
<div>
@ -83,7 +83,7 @@ setTexture(&quot;GlowMap&quot;, assetManager.loadTexture(&quot;&quot;)); <br/>
setColor(&quot;GlowColor&quot;, ColorRGBA.White); </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [2273-2913] -->
<!-- EDIT4 TABLE [2273-2913] -->
<p>
Other useful, but less commonly used material definitions:
@ -143,9 +143,9 @@ setColor(&quot;GlowColor&quot;, ColorRGBA.White); <br/>
setBoolean(&quot;PointSprite&quot;,true); </td>
</tr>
</table></div>
<!-- EDIT2 TABLE [2975-5491] -->
<!-- EDIT5 TABLE [2975-5491] -->
</div>
<!-- EDIT3 SECTION "Unshaded Coloring and Textures" [1718-5492] -->
<h3><a>Phong Illuminated</a></h3>
<div>
@ -203,7 +203,7 @@ setColor(&quot;Specular&quot;, ColorRGBA.White); <br/>
setBoolean(&quot;WardIso&quot;,true);<sup><a href="#fn__4">4)</a></sup> </td>
</tr>
</table></div>
<!-- EDIT3 TABLE [6152-7870] --><div><table>
<!-- EDIT7 TABLE [6152-7870] --><div><table>
<tr>
<th>Special Illuminated Material Definitions </th><th> Usage </th><th> Material Parameters </th>
</tr>
@ -250,9 +250,9 @@ setBoolean(&quot;WardIso&quot;,true); <br/>
setBoolean(&quot;SphereMap&quot;,true); </td>
</tr>
</table></div>
<!-- EDIT4 TABLE [7872-10158] -->
<!-- EDIT8 TABLE [7872-10158] -->
</div>
<!-- EDIT6 SECTION "Phong Illuminated" [5493-10159] -->
<h3><a>Other: Test and Debug</a></h3>
<div>
<div><table>
@ -263,14 +263,14 @@ setBoolean(&quot;WardIso&quot;,true); <br/>
<td> Common/MatDefs/Misc/ShowNormals.j3md </td><td> A color gradient calculated from the model&#039;s surface normals. You can use this built-in material to debug the generation of normals in meshes, to preview models that have no material and no lights, or as fall-back default material. This built-in material has no parameters. </td>
</tr>
</table></div>
<!-- EDIT5 TABLE [10193-10564] -->
<!-- EDIT10 TABLE [10193-10564] -->
</div>
<!-- EDIT9 SECTION "Other: Test and Debug" [10160-10565] -->
<h2><a>RenderStates</a></h2>
<div>
</div>
<!-- EDIT11 SECTION "RenderStates" [10566-10591] -->
<h3><a>Transparency</a></h3>
<div>
<div><table>
@ -311,7 +311,7 @@ Deactivate Alpha Testing for gradually <strong>translucent</strong> objects, suc
<td>getAdditionalRenderState().setBlendMode(BlendMode.PremultAlpha);</td><td>Pre-multiplied alpha blending. E.g. if the color of the object has already been multiplied by its alpha, this is used instead of &quot;Alpha&quot; blend mode.</td><td>For use with Premult Alpha textures.</td>
</tr>
</table></div>
<!-- EDIT6 TABLE [10616-13066] -->
<!-- EDIT13 TABLE [10616-13066] -->
<p>
If the DiffuseMap has an alpha channel, use:
@ -332,7 +332,7 @@ Later, put the Geometry (not the Material!) in the appropriate render queue
</ul>
</div>
<!-- EDIT12 SECTION "Transparency" [10592-13365] -->
<h3><a>Culling</a></h3>
<div>
<div><table>
@ -352,9 +352,9 @@ Later, put the Geometry (not the Material!) in the appropriate render queue
<td>getAdditionalRenderState().setFaceCullMode(FaceCullMode.FrontAndBack)</td><td>Cull both backfaces and frontfaces.</td><td>Use this as an efficient way to make an object temporarily invisible, while keeping all its other in-game properties (node attachment, collision shapes, interactions, etc) active.</td>
</tr>
</table></div>
<!-- EDIT7 TABLE [13385-14484] -->
<!-- EDIT15 TABLE [13385-14484] -->
</div>
<!-- EDIT14 SECTION "Culling" [13366-14485] -->
<h3><a>Miscellaneous</a></h3>
<div>
<div><table>
@ -368,7 +368,7 @@ Later, put the Geometry (not the Material!) in the appropriate render queue
<td>getAdditionalRenderState().setPolyOffset();</td><td>Enable polygon offset.</td><td>Use this when you have meshes that have triangles really close to each over (e.g. <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://en.wikipedia.org/wiki/Coplanarity"><param name="text" value="<html><u>Coplanar</u></html>"><param name="textColor" value="blue"></object>), it will shift the depth values to prevent <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://en.wikipedia.org/wiki/Z-fighting"><param name="text" value="<html><u>Z-fighting</u></html>"><param name="textColor" value="blue"></object>.</td>
</tr>
</table></div>
<!-- EDIT8 TABLE [14511-15277] --><div><span>
<!-- EDIT17 TABLE [14511-15277] --><div><span>
<a href="/wiki/doku.php/tag:material?do=showtag&amp;tag=tag%3Amaterial">material</a>,
<a href="/wiki/doku.php/tag:texture?do=showtag&amp;tag=tag%3Atexture">texture</a>,
<a href="/wiki/doku.php/tag:matdefs?do=showtag&amp;tag=tag%3Amatdefs">MatDefs</a>,
@ -379,7 +379,7 @@ Later, put the Geometry (not the Material!) in the appropriate render queue
</span></div>
</div>
<div>
<!-- EDIT16 SECTION "Miscellaneous" [14486-] --><div>
<div><sup><a href="#fnt__1">1)</a></sup>
UseAlpha specifies whether DiffuseMap uses the alpha channel</div>
<div><sup><a href="#fnt__2">2)</a></sup>

@ -41,7 +41,7 @@ You can use default <a href="/com/jme3/gde/core/docs/jme3/advanced/shape.html">S
</p>
</div>
<!-- EDIT1 SECTION "Polygon Meshes" [1-1216] -->
<h2><a>Vertex Buffer</a></h2>
<div>
@ -97,7 +97,7 @@ The VertexBuffer contains a particular type of geometry data used by Meshes. Eve
<td>Type.BoneIndex </td><td> Bone indices, used with animation</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1417-2236] --><div><table>
<!-- EDIT3 TABLE [1417-2236] --><div><table>
<tr>
<th>Mesh method</th><th>Description</th>
</tr>
@ -129,7 +129,7 @@ The VertexBuffer contains a particular type of geometry data used by Meshes. Eve
<td>scaleTextureCoordinates(Vector2f)</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [2238-2665] --><div><table>
<!-- EDIT4 TABLE [2238-2665] --><div><table>
<tr>
<th>Mesh Mode</th><th>Description</th>
</tr>
@ -158,6 +158,7 @@ The VertexBuffer contains a particular type of geometry data used by Meshes. Eve
<td>Mesh.Mode.Hybrid</td><td>?</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [2667-2908] -->
<!-- EDIT5 TABLE [2667-2908] -->
</div>
<!-- EDIT2 SECTION "Vertex Buffer" [1217-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:mesh?do=export_xhtmlbody">view online version</a></em></p>

@ -34,7 +34,7 @@ The project design follows best practices that make it possible to edit maps, ve
</p>
</div>
<!-- EDIT1 SECTION "Monkey Zone: Multi-player Sample Project" [1-1376] -->
<h2><a>Implementation</a></h2>
<div>
@ -49,7 +49,7 @@ When a human user or an AI performs an action (presses a button), the actual log
</p>
</div>
<!-- EDIT2 SECTION "Implementation" [1377-2671] -->
<h3><a>Terminology</a></h3>
<div>
@ -70,7 +70,7 @@ The game uses certain terms that might be familiar to you but maybe used in anot
</ul>
</div>
<!-- EDIT3 SECTION "Terminology" [2672-3492] -->
<h3><a>Manager Classes</a></h3>
<div>
@ -81,7 +81,7 @@ The gameplay is largely controlled by the ServerGameManager which does gameplay
</p>
</div>
<!-- EDIT4 SECTION "Manager Classes" [3493-4262] -->
<h3><a>Use of Controls</a></h3>
<div>
@ -122,7 +122,7 @@ A special Control called CommandControl handles the Commands that can be execute
</p>
</div>
<!-- EDIT5 SECTION "Use of Controls" [4263-5866] -->
<h3><a>Artificial Intelligence</a></h3>
<div>
@ -183,7 +183,7 @@ For each map a navigation mesh is generated that allows the entities to navigate
</p>
</div>
<!-- EDIT6 SECTION "Artificial Intelligence" [5867-7721] -->
<h3><a>Networking</a></h3>
<div>
@ -194,7 +194,7 @@ The sync manager basically puts a timestamp on every message sent from the serve
</p>
</div>
<!-- EDIT7 SECTION "Networking" [7722-8296] -->
<h2><a>Use of jMonkeyEngine SDK tools</a></h2>
<div>
@ -204,7 +204,7 @@ All assets used in the game, like entity models and loaded maps can be preconfig
</p>
</div>
<!-- EDIT8 SECTION "Use of jMonkeyEngine SDK tools" [8297-8863] -->
<h3><a>UserData</a></h3>
<div>
@ -214,7 +214,7 @@ Entities (Nodes and Geometries) that are loaded from disk have certain UserData
</p>
</div>
<!-- EDIT9 SECTION "UserData" [8864-9145] -->
<h3><a>Physics</a></h3>
<div>
@ -224,12 +224,12 @@ VehicleControls, CharacterControls and RigidBodyControls with mesh collision sha
</p>
</div>
<!-- EDIT10 SECTION "Physics" [9146-9480] -->
<h2><a>API Info</a></h2>
<div>
</div>
<!-- EDIT11 SECTION "API Info" [9481-9501] -->
<h3><a>Designer Infos</a></h3>
<div>
@ -301,7 +301,7 @@ Programmatic PlayerData:
</ul>
</div>
<!-- EDIT12 SECTION "Designer Infos" [9502-10027] -->
<h2><a>The Future</a></h2>
<div>
@ -321,7 +321,7 @@ MonkeyZone is hosted at GoogleCode, where you can check out the jMonkeyEngine <a
</ol>
</div>
<!-- EDIT13 SECTION "The Future" [10028-10550] -->
<h2><a>Troubleshooting</a></h2>
<div>
<ol>
@ -337,4 +337,5 @@ MonkeyZone is hosted at GoogleCode, where you can check out the jMonkeyEngine <a
</span></div>
</div>
<!-- EDIT14 SECTION "Troubleshooting" [10551-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:monkey_zone?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ A MotionPath describes the motion of a spatial between waypoints. The path can b
</p>
</div>
<!-- EDIT1 SECTION "MotionPath" [1-365] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -23,7 +23,7 @@ A MotionPath describes the motion of a spatial between waypoints. The path can b
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [366-689] -->
<h2><a>What Are Way Points?</a></h2>
<div>
@ -47,7 +47,7 @@ The final shape of the path is computed using a linear interpolation or a <objec
</p>
</div>
<!-- EDIT3 SECTION "What Are Way Points?" [690-1498] -->
<h2><a>Create a MotionPath</a></h2>
<div>
@ -92,9 +92,9 @@ removeWayPoint(index)</td><td>Removes a way point from this path. You can specif
<td>path.disableDebugShape()</td><td>Hides the line that visualizes the path. Use this for the release build.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1769-2660] -->
<!-- EDIT5 TABLE [1769-2660] -->
</div>
<!-- EDIT4 SECTION "Create a MotionPath" [1499-2661] -->
<h2><a>MotionPathListener</a></h2>
<div>
@ -117,4 +117,5 @@ In this example, you just print the status at every way point. In a game you cou
&#125;&#41;;</pre>
</div>
<!-- EDIT6 SECTION "MotionPathListener" [2662-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:motionpath?do=export_xhtmlbody">view online version</a></em></p>

@ -16,7 +16,7 @@ See <a href="/com/jme3/gde/core/docs/jme3/advanced/input_handling.html">Input Ha
</p>
</div>
<!-- EDIT1 SECTION "Mouse Picking" [1-533] -->
<h2><a>Pick a Target Using Fixed Crosshairs</a></h2>
<div>
@ -72,7 +72,7 @@ The following example rotates Spatials named &quot;Red Box&quot; or &quot;Blue B
&#125;;</pre>
</div>
<!-- EDIT2 SECTION "Pick a Target Using Fixed Crosshairs" [534-3109] -->
<h2><a>Pick a Target Using the Mouse Pointer</a></h2>
<div>
@ -146,4 +146,5 @@ The following example rotates Spatials named &quot;Red Box&quot; or &quot;Blue B
</span></div>
</div>
<!-- EDIT3 SECTION "Pick a Target Using the Mouse Pointer" [3110-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:mouse_picking?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ The packages used in this example are <code>com.jme3.renderer.Camera</code> and
</p>
</div>
<!-- EDIT1 SECTION "Multiple Camera Views" [1-418] -->
<h2><a>How to resize and Position ViewPorts</a></h2>
<div>
@ -74,7 +74,7 @@ Example: Cam2&#039;s rectangle is int he bottom right: It extends from mid (x1=0
</p>
</div>
<!-- EDIT2 SECTION "How to resize and Position ViewPorts" [419-2059] -->
<h2><a>Four-Time Split Screen</a></h2>
<div>
@ -84,7 +84,7 @@ In this example, you create four views (2x2) with the same aspect ratio as the w
</p>
</div>
<!-- EDIT3 SECTION "Four-Time Split Screen" [2060-2228] -->
<h3><a>Set up the First View</a></h3>
<div>
@ -104,7 +104,7 @@ Optionally, place the main camera in the scene and rotate it in its start positi
cam.setRotation&#40;new Quaternion &#40;-0.07f, 0.92f, -0.25f, -0.27f&#41;&#41;;</pre>
</div>
<!-- EDIT4 SECTION "Set up the First View" [2229-2725] -->
<h3><a>Set Up Three More Views</a></h3>
<div>
@ -169,7 +169,7 @@ cam3.setViewPort&#40; 0.0f , 0.5f , 0.5f , 1.0f&#41;;
cam4.setViewPort&#40; 0.5f , 1.0f , 0.5f , 1.0f&#41;;</pre>
</div>
<!-- EDIT5 SECTION "Set Up Three More Views" [2726-4536] -->
<h2><a>Picture in Picture</a></h2>
<div>
@ -199,7 +199,7 @@ viewPort2.setClearFlags&#40;true, true, true&#41;;
viewPort2.attachScene&#40;rootNode&#41;;</pre>
</div>
<!-- EDIT6 SECTION "Picture in Picture" [4537-5417] -->
<h2><a>Settings</a></h2>
<div>
@ -229,4 +229,5 @@ You have full control to determine which Nodes the camera can see! It can see th
</span></div>
</div>
<!-- EDIT7 SECTION "Settings" [5418-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:multiple_camera_views?do=export_xhtmlbody">view online version</a></em></p>

@ -20,7 +20,7 @@ Effectively, each for-loop in the main update loop might be a chance for multith
</p>
</div>
<!-- EDIT1 SECTION "Multithreading Optimization" [1-1132] -->
<h2><a>Java Multithreading</a></h2>
<div>
@ -39,7 +39,7 @@ The java.util.concurrent package provides a good foundation for multithreading a
</ul>
</div>
<!-- EDIT2 SECTION "Java Multithreading" [1133-2205] -->
<h2><a>Multithreading in jME3</a></h2>
<div>
@ -57,7 +57,7 @@ To avoid slowdown, we decide to keep the pathfinding operations in the NPC Contr
</p>
</div>
<!-- EDIT3 SECTION "Multithreading in jME3" [2206-2878] -->
<h3><a>Executor</a></h3>
<div>
@ -73,7 +73,7 @@ Pool size means the executor will keep four threads alive at any time. Having mo
</p>
</div>
<!-- EDIT4 SECTION "Executor" [2879-3637] -->
<h3><a>Control Class Fields</a></h3>
<div>
@ -93,7 +93,7 @@ Here we also created the Future variable to track the state of this task.
</p>
</div>
<!-- EDIT5 SECTION "Control Class Fields" [3638-4228] -->
<h3><a>Control Update() Method</a></h3>
<div>
@ -141,7 +141,7 @@ Remember not to mess with the class fields after starting the thread, because th
</p>
</div>
<!-- EDIT6 SECTION "Control Update() Method" [4229-6099] -->
<h3><a>The Callable</a></h3>
<div>
@ -193,7 +193,7 @@ private Callable&lt;MyWayList&gt; findWay = new Callable&lt;MyWayList&gt;&#40;&#
&#125;;</pre>
</div>
<!-- EDIT7 SECTION "The Callable" [6100-8467] -->
<h3><a>The jME3 Threading Model</a></h3>
<div>
@ -220,7 +220,7 @@ If the processing thread needs to wait or needs the return value then <code>get(
</p>
</div>
<!-- EDIT8 SECTION "The jME3 Threading Model" [8468-9583] -->
<h2><a>Conclusion</a></h2>
<div>
@ -239,4 +239,5 @@ The cool thing about this approach is that every entity creates one self-contain
</span></div>
</div>
<!-- EDIT9 SECTION "Conclusion" [9584-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:multithreading?do=export_xhtmlbody">view online version</a></em></p>

@ -20,7 +20,7 @@ Each Client keeps the the Server informed about its player&#039;s moves and acti
</p>
</div>
<!-- EDIT1 SECTION "SpiderMonkey: Multi-Player Networking" [1-843] -->
<h2><a>SpiderMonkey API Overview</a></h2>
<div>
@ -41,7 +41,7 @@ The SpiderMonkey <acronym title="Application Programming Interface">API</acronym
<td> com.jme3.network.Client </td><td> == </td><td> com.jme3.network.HostedConnection </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1769-1887] -->
<!-- EDIT3 TABLE [1769-1887] -->
<p>
You can register several types of listeners to be notified of changes.
@ -56,12 +56,12 @@ You can register several types of listeners to be notified of changes.
</ul>
</div>
<!-- EDIT2 SECTION "SpiderMonkey API Overview" [844-2388] -->
<h2><a>Client and Server</a></h2>
<div>
</div>
<!-- EDIT4 SECTION "Client and Server" [2389-2419] -->
<h3><a>Creating a Server</a></h3>
<div>
@ -96,7 +96,7 @@ When you run this app on a host, the server is ready to accept clients. Let&#039
</p>
</div>
<!-- EDIT5 SECTION "Creating a Server" [2420-3372] -->
<h3><a>Creating a Client</a></h3>
<div>
@ -135,7 +135,7 @@ When you run this client, it connects to the server.
</p>
</div>
<!-- EDIT6 SECTION "Creating a Client" [3373-4540] -->
<h3><a>Getting Info About a Client</a></h3>
<div>
@ -158,7 +158,7 @@ The server refers to a connected client as com.jme3.network.HostedConnection obj
<td>myServer.getConnection(0)</td><td>Server gets the first (0), second (1), etc, connected HostedConnection object (one client).</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [4717-5096] -->
<!-- EDIT8 TABLE [4717-5096] -->
<p>
Your game can define its own game data based on whatever criteria you want, typically these include player ID and state. If the server needs to look up player/client-specific information, you can store this information directly on the HostedConnection object. The following examples read and write a custom Java object <code>MyState</code> in the HostedConnection object <code>conn</code>:
@ -175,14 +175,14 @@ Your game can define its own game data based on whatever criteria you want, typi
<td> MyState state = conn.getAttribute(&quot;MyState&quot;)</td><td> Server can read an attribute of the HostedConnection. </td>
</tr>
</table></div>
<!-- EDIT3 TABLE [5471-5700] -->
<!-- EDIT9 TABLE [5471-5700] -->
</div>
<!-- EDIT7 SECTION "Getting Info About a Client" [4541-5701] -->
<h2><a>Messaging</a></h2>
<div>
</div>
<!-- EDIT10 SECTION "Messaging" [5702-5724] -->
<h3><a>Creating Message Types</a></h3>
<div>
@ -203,7 +203,7 @@ You must register each message type to the com.jme3.network.serializing.Serializ
<pre>Serializer.registerClass&#40;HelloMessage.class&#41;;</pre>
</div>
<!-- EDIT11 SECTION "Creating Message Types" [5725-6677] -->
<h3><a>Responding to Messages</a></h3>
<div>
@ -260,7 +260,7 @@ For each message type, register a server listener to the server:
<pre>myServer.addMessageListener&#40;new ServerListener&#40;&#41;, HelloMessage.class&#41;;</pre>
</div>
<!-- EDIT12 SECTION "Responding to Messages" [6678-8422] -->
<h3><a>Creating and Sending Messages</a></h3>
<div>
@ -297,7 +297,7 @@ The last two broadcasting methods use com.jme3.network.Filters to select a subse
</p>
</div>
<!-- EDIT13 SECTION "Creating and Sending Messages" [8423-9509] -->
<h2><a>Identification and Rejection</a></h2>
<div>
@ -328,7 +328,7 @@ A server has a game version and game name property. Each client expects to commu
<td> myClient.getVersion() </td><td> Client queries the version of the server it is connected to. </td>
</tr>
</table></div>
<!-- EDIT4 TABLE [10101-10470] -->
<!-- EDIT15 TABLE [10101-10470] -->
<p>
<p><div>Typically, your networked game defines its own attributes (such as player ID) based on whatever criteria you want. If you want to look up player/client-specific information beyond the game version, you can set this information directly on the Client/HostedConnection object (see Getting Info About a Client).
@ -336,12 +336,12 @@ A server has a game version and game name property. Each client expects to commu
</p>
</div>
<!-- EDIT14 SECTION "Identification and Rejection" [9510-10798] -->
<h2><a>Closing Clients and Server Cleanly</a></h2>
<div>
</div>
<!-- EDIT16 SECTION "Closing Clients and Server Cleanly" [10799-10845] -->
<h3><a>Closing a Client</a></h3>
<div>
@ -357,7 +357,7 @@ You must override the client&#039;s destroy() method to close the connection cle
&#125;</pre>
</div>
<!-- EDIT17 SECTION "Closing a Client" [10846-11121] -->
<h3><a>Closing a Server</a></h3>
<div>
@ -373,7 +373,7 @@ You must override the server&#039;s destroy() method to close the connection whe
&#125;</pre>
</div>
<!-- EDIT18 SECTION "Closing a Server" [11122-11378] -->
<h3><a>Kicking a Client</a></h3>
<div>
@ -384,7 +384,7 @@ The server can kick a HostedConnection to make it disconnect. You should provide
<pre>conn.close&#40;&quot;We kick cheaters.&quot;&#41;;</pre>
</div>
<!-- EDIT19 SECTION "Kicking a Client" [11379-11769] -->
<h2><a>Listening to Connection Notification</a></h2>
<div>
@ -394,7 +394,7 @@ The server and clients are notified about connection changes.
</p>
</div>
<!-- EDIT20 SECTION "Listening to Connection Notification" [11770-11881] -->
<h3><a>ClientStateListener</a></h3>
<div>
@ -414,7 +414,7 @@ The com.jme3.network.ClientStateListener notifies the Client when the Client has
<td> public void clientDisconnected(Client c, DisconnectInfo info){} </td><td> Implement here what happens after the server kicks this client. For example, display the DisconnectInfo to the user. </td>
</tr>
</table></div>
<!-- EDIT5 TABLE [12124-12494] -->
<!-- EDIT22 TABLE [12124-12494] -->
<p>
First implement the ClientStateListener interface in the Client class. Then register it to myClient in MyGameClient&#039;s simeplInitApp() method:
@ -422,7 +422,7 @@ First implement the ClientStateListener interface in the Client class. Then regi
<pre>myClient.addClientStateListener&#40;this&#41;;</pre>
</div>
<!-- EDIT21 SECTION "ClientStateListener" [11882-12696] -->
<h3><a>ConnectionListener</a></h3>
<div>
@ -442,7 +442,7 @@ The com.jme3.network.ConnectionListener notifies the Server whenever new HostedC
<td> public void connectionRemoved(Server s, HostedConnection c){} </td><td> Implement here what happens after a HostedConnection has left. E.g. a player has quit the game and the server removes his character. </td>
</tr>
</table></div>
<!-- EDIT6 TABLE [12962-13360] -->
<!-- EDIT24 TABLE [12962-13360] -->
<p>
First implement the ConnectionListener interface in the Server class. Then register it to myServer in MyGameServer&#039;s simpleInitApp() method.
@ -451,7 +451,7 @@ First implement the ConnectionListener interface in the Server class. Then regis
<pre>myServer.addConnectionListener&#40;this&#41;;</pre>
</div>
<!-- EDIT23 SECTION "ConnectionListener" [12697-13560] -->
<h2><a>UDP versus TCP</a></h2>
<div>
@ -469,7 +469,7 @@ message2.setReliable&#40;false&#41;; // UDP</pre>
</ul>
</div>
<!-- EDIT25 SECTION "UDP versus TCP" [13561-14231] -->
<h2><a>Important: Use Multi-Threading</a></h2>
<div>
@ -493,7 +493,7 @@ For general advice, see the articles <object classid="java:org.netbeans.modules.
</p>
</div>
<!-- EDIT26 SECTION "Important: Use Multi-Threading" [14232-15378] -->
<h2><a>Troubleshooting</a></h2>
<div>
@ -508,4 +508,5 @@ If you have set up a server in your home network, and the game clients cannot re
</span></div>
</div>
<!-- EDIT27 SECTION "Troubleshooting" [15379-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:networking?do=export_xhtmlbody">view online version</a></em></p>

@ -20,7 +20,7 @@ This document introduces you to <object classid="java:org.netbeans.modules.javah
</ul>
</div>
<!-- EDIT1 SECTION "Creating JME3 User Interfaces with Nifty GUI" [1-1159] -->
<h2><a>Tutorial Overview</a></h2>
<div>
@ -54,7 +54,7 @@ Learn to add a Nifty <acronym title="Graphical User Interface">GUI</acronym> to
</ol>
</div>
<!-- EDIT2 SECTION "Tutorial Overview" [1160-1952] -->
<h2><a>Must Know: Nifty GUI Concepts</a></h2>
<div>
@ -99,7 +99,7 @@ Nifty GUIs are made up of the following <strong>elements</strong>:
</ul>
</div>
<!-- EDIT3 SECTION "Must Know: Nifty GUI Concepts" [1953-2830] -->
<h2><a>Resources</a></h2>
<div>
<ul>
@ -108,7 +108,7 @@ Nifty GUIs are made up of the following <strong>elements</strong>:
</ul>
</div>
<!-- EDIT4 SECTION "Resources" [2831-2960] -->
<h3><a>JME-Nifty Sample Code</a></h3>
<div>
<ul>
@ -137,7 +137,7 @@ Nifty GUIs are made up of the following <strong>elements</strong>:
</ul>
</div>
<!-- EDIT5 SECTION "JME-Nifty Sample Code" [2961-3740] -->
<h3><a>External Documentation</a></h3>
<div>
@ -157,7 +157,7 @@ Learn more from the NiftyGUI page:
</ul>
</div>
<!-- EDIT6 SECTION "External Documentation" [3741-4351] -->
<h2><a>Next Steps</a></h2>
<div>
@ -173,7 +173,7 @@ Now that you understand the concepts and know where to find more information, le
</ul>
</div>
<!-- EDIT7 SECTION "Next Steps" [4352-4711] -->
<h2><a>Nifty Logging (Nifty 1.3.1)</a></h2>
<div>
@ -191,4 +191,5 @@ Logger.getLogger(&quot;NiftyInputEventHandlingLog&quot;).setLevel(Level.SEVERE);
</span></div>
</div>
<!-- EDIT8 SECTION "Nifty Logging (Nifty 1.3.1)" [4712-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui?do=export_xhtmlbody">view online version</a></em></p>

@ -20,7 +20,7 @@ In the previous parts of the tutorial, you created a two-screen user interface.
</p>
</div>
<!-- EDIT1 SECTION "Interacting with the GUI from Java" [1-791] -->
<h2><a>Connect GUI to Java Controller</a></h2>
<div>
@ -100,7 +100,7 @@ Now the Java class <code>MyStartScreen</code> and this <acronym title="Graphical
</p>
</div>
<!-- EDIT2 SECTION "Connect GUI to Java Controller" [792-3175] -->
<h2><a>Make GUI and Java Interact</a></h2>
<div>
@ -114,7 +114,7 @@ Use any combination of the three following approaches to make Java classes inter
</p>
</div>
<!-- EDIT3 SECTION "Make GUI and Java Interact" [3176-3548] -->
<h3><a>GUI Calls a Void Java Method</a></h3>
<div>
@ -214,7 +214,7 @@ The quitGame() example shows that you have access to the application <code>app</
</p>
</div>
<!-- EDIT4 SECTION "GUI Calls a Void Java Method" [3549-6725] -->
<h3><a>GUI Gets Return Value from Java Method</a></h3>
<div>
@ -253,7 +253,7 @@ You can use this for Strings and numeric values (e.g. when you read settings fro
</p>
</div>
<!-- EDIT5 SECTION "GUI Gets Return Value from Java Method" [6726-7913] -->
<h3><a>Java Modifies Nifty Elements and Events</a></h3>
<div>
@ -293,7 +293,7 @@ For this to work, there already needs to be a (possibly inactive) <code>&lt;inte
<pre><span>&lt;interact onClick=&quot;doNothing()&quot;/&gt;</span></pre>
</div>
<!-- EDIT6 SECTION "Java Modifies Nifty Elements and Events" [7914-9330] -->
<h2><a>Next Steps</a></h2>
<div>
@ -317,4 +317,5 @@ You&#039;re done with the basic Nifty <acronym title="Graphical User Interface">
</span></div>
</div>
<!-- EDIT7 SECTION "Next Steps" [9331-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_java_interaction?do=export_xhtmlbody">view online version</a></em></p>

@ -20,7 +20,7 @@
</p>
</div>
<!-- EDIT1 SECTION "Laying Out the GUI in Java" [1-690] -->
<h2><a>Sample Code</a></h2>
<div>
@ -121,7 +121,7 @@ public class Main extends SimpleApplication &#123;
&#125;</pre>
</div>
<!-- EDIT2 SECTION "Sample Code" [691-3958] -->
<h2><a>Implement Your GUI Layout</a></h2>
<div>
@ -139,7 +139,7 @@ Create an Screen.Java file in the <code>assets/Interfaces/</code> directory of y
</p>
</div>
<!-- EDIT3 SECTION "Implement Your GUI Layout" [3959-4495] -->
<h3><a>Make Screens</a></h3>
<div>
@ -162,7 +162,7 @@ Every Nifty <acronym title="Graphical User Interface">GUI</acronym> must have a
</p>
</div>
<!-- EDIT4 SECTION "Make Screens" [4496-5030] -->
<h3><a>Make Layers</a></h3>
<div>
@ -205,7 +205,7 @@ In a layer, you can now add panels and arrange them. Panels are containers that
</p>
</div>
<!-- EDIT5 SECTION "Make Layers" [5031-5968] -->
<h3><a>Make Panels</a></h3>
<div>
@ -335,7 +335,7 @@ The result should look as follows:
</p>
</div>
<!-- EDIT6 SECTION "Make Panels" [5969-9926] -->
<h2><a>Adding Content to Panels</a></h2>
<div>
@ -345,7 +345,7 @@ See also <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><
</p>
</div>
<!-- EDIT7 SECTION "Adding Content to Panels" [9927-10105] -->
<h3><a>Add Images</a></h3>
<div>
@ -413,7 +413,7 @@ This image is scaled to use 50% of the height and 30% of the width of its contai
</p>
</div>
<!-- EDIT8 SECTION "Add Images" [10106-12093] -->
<h3><a>Add Static Text</a></h3>
<div>
@ -466,7 +466,7 @@ The font used is jME3&#039;s default font &quot;Interface/Fonts/Default.fnt&quot
</p>
</div>
<!-- EDIT9 SECTION "Add Static Text" [12094-13843] -->
<h3><a>Add Controls</a></h3>
<div>
@ -562,7 +562,7 @@ Nifty additionally offers many customizable controls such as check boxes, text f
</p>
</div>
<!-- EDIT10 SECTION "Add Controls" [13844-16781] -->
<h2><a>Intermediate Result</a></h2>
<div>
@ -580,7 +580,7 @@ When you preview this code in the jMonkeyEngine <acronym title="Software Develop
</p>
</div>
<!-- EDIT11 SECTION "Intermediate Result" [16782-17194] -->
<h2><a>Nifty Java Settings</a></h2>
<div>
@ -608,7 +608,7 @@ Before initializing the nifty screens, you set up properties and register media.
<td> setDebugOptionPanelColors(true);</td><td> Highlight all panels, makes it easier to arrange them. </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [17309-17632] -->
<!-- EDIT13 TABLE [17309-17632] -->
<p>
Example:
@ -616,7 +616,7 @@ Example:
<pre>nifty.registerMouseCursor&#40;&quot;hand&quot;, &quot;Interface/mouse-cursor-hand.png&quot;, 5, 4&#41;;</pre>
</div>
<!-- EDIT12 SECTION "Nifty Java Settings" [17195-17737] -->
<h2><a>Next Steps</a></h2>
<div>
@ -638,4 +638,5 @@ Integrate the <acronym title="Graphical User Interface">GUI</acronym> into the g
</span></div>
</div>
<!-- EDIT14 SECTION "Next Steps" [17738-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_java_layout?do=export_xhtmlbody">view online version</a></em></p>

@ -29,7 +29,7 @@ On this page, we look at the overlay variant, which is more commonly used in gam
</p>
</div>
<!-- EDIT1 SECTION "Integrating Nifty GUI: Overlay" [1-1043] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -38,7 +38,7 @@ On this page, we look at the overlay variant, which is more commonly used in gam
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [1044-1206] -->
<h2><a>Overlaying the User Interface Over the Screen</a></h2>
<div>
@ -68,7 +68,7 @@ The <code>MySettingsScreen</code> class is a custom de.lessvoid.nifty.screen.Scr
</p>
</div>
<!-- EDIT3 SECTION "Overlaying the User Interface Over the Screen" [1207-2372] -->
<h2><a>Next Steps</a></h2>
<div>
@ -88,4 +88,5 @@ Now that you have layed out and integrated the <acronym title="Graphical User In
</span></div>
</div>
<!-- EDIT4 SECTION "Next Steps" [2373-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_overlay?do=export_xhtmlbody">view online version</a></em></p>

@ -38,7 +38,7 @@ The Java code within your defined ScreenController implementation:
...
public void createMyPopupMenu&#40;&#41;&#123;
popup = nifty.createPopup&#40;&quot;niftyPopupMenu&quot;&#41;;
Menu.class&#41;;
Menu myMenu = popup.findNiftyControl&#40;&quot;#menu&quot;, Menu.class&#41;;
myMenu.setWidth&#40;new SizeValue&#40;&quot;100px&quot;&#41;&#41;; // must be set
myMenu.addMenuItem&#40;&quot;Click me!&quot;, &quot;menuItemIcon.png&quot;,
new menuItem&#40;&quot;menuItemid&quot;, &quot;blah blah&quot;&#41;&#41;; // menuItem is a custom class
@ -60,7 +60,7 @@ public void showMenu&#40;&#41; &#123; // the method to trigger the menu
private class menuItem &#123;
public String id;
public String name;
public menuItem&#40;String name&#41;&#123;
public menuItem&#40;String id, String name&#41;&#123;
this.id= id;
this.name = name;
&#125;

@ -32,7 +32,7 @@ This <acronym title="Graphical User Interface">GUI</acronym> projection variant
</p>
</div>
<!-- EDIT1 SECTION "Integrating Nifty GUI: Projection" [1-1192] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -41,7 +41,7 @@ This <acronym title="Graphical User Interface">GUI</acronym> projection variant
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [1193-1360] -->
<h2><a>Projecting the User Interface Onto a Texture</a></h2>
<div>
@ -70,7 +70,7 @@ niftyView.setClearEnabled&#40;true&#41;;
niftyView.setOutputFrameBuffer&#40;fb&#41;;
&nbsp;
/** This is the 3D cube we project the GUI on */
Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Box b = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Geometry geom = new Geometry&#40;&quot;Box&quot;, b&#41;;
Material mat = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
mat.setTexture&#40;&quot;m_ColorMap&quot;, niftytex&#41;; /** Here comes the texture! */
@ -86,7 +86,7 @@ Run the code sample. You select buttons on this <acronym title="Graphical User I
</p>
</div>
<!-- EDIT3 SECTION "Projecting the User Interface Onto a Texture" [1361-3239] -->
<h2><a>Next Steps</a></h2>
<div>
@ -107,4 +107,5 @@ Now that you have layed out and integrated the <acronym title="Graphical User In
</span></div>
</div>
<!-- EDIT4 SECTION "Next Steps" [3240-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_projection?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ Requirements: These tips assume that you have read and understood the <a href="/
</p>
</div>
<!-- EDIT1 SECTION "Nifty GUI 1.3 - Usecase Scenarios" [1-506] -->
<h2><a>Switch Game States</a></h2>
<div>
@ -52,7 +52,7 @@ When the player switches between game states, you detach one set of AppStates, a
</p>
</div>
<!-- EDIT2 SECTION "Switch Game States" [507-2043] -->
<h2><a>Get Access to Application and Update Loop</a></h2>
<div>
@ -105,7 +105,7 @@ public StartScreenState&#40;SimpleApplication app&#41;&#123;
&#125;</pre>
</div>
<!-- EDIT3 SECTION "Get Access to Application and Update Loop" [2044-3599] -->
<h2><a>Know Your Variables</a></h2>
<div>
<div><table>
@ -125,14 +125,14 @@ public StartScreenState&#40;SimpleApplication app&#41;&#123;
<td>${PROP.key}</td><td> looks up <code>key</code> in the Nifty properties. Use Nifty.setGlobalproperties(properties) and Nifty.getGlobalproperties(&quot;key&quot;). Or SystemGetProperties(key);</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [3632-4163] -->
<!-- EDIT5 TABLE [3632-4163] -->
<p>
See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=MarkUp"><param name="text" value="<html><u>http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=MarkUp</u></html>"><param name="textColor" value="blue"></object>
</p>
</div>
<!-- EDIT4 SECTION "Know Your Variables" [3600-4246] -->
<h2><a>Use ScreenControllers for Mutally Exclusive Functionality</a></h2>
<div>
@ -152,7 +152,7 @@ For example, create a <code>MyHudScreen.java</code> for the <code>hud</code> scr
</ul>
</div>
<!-- EDIT6 SECTION "Use ScreenControllers for Mutally Exclusive Functionality" [4247-5629] -->
<h2><a>Create a &quot;Loading...&quot; Screen</a></h2>
<div>
@ -162,7 +162,7 @@ Get the full <a href="/com/jme3/gde/core/docs/jme3/advanced/loading_screen.html"
</p>
</div>
<!-- EDIT7 SECTION "Create a Loading... Screen" [5630-5734] -->
<h2><a>Create a Popup Menu</a></h2>
<div>
@ -172,7 +172,7 @@ Get the full <a href="/com/jme3/gde/core/docs/jme3/advanced/nifty_gui_popup_menu
</p>
</div>
<!-- EDIT8 SECTION "Create a Popup Menu" [5735-5837] -->
<h2><a>Add Visual Effects</a></h2>
<div>
@ -206,7 +206,7 @@ Learn more from the NiftyGUI page:
</ul>
</div>
<!-- EDIT9 SECTION "Add Visual Effects" [5838-6550] -->
<h2><a>Add Sound Effects</a></h2>
<div>
@ -223,7 +223,7 @@ Playing sounds using Nifty is also possible with a <code>playSound</code> effect
<span><span>&lt;/label&gt;</span></span></pre>
</div>
<!-- EDIT10 SECTION "Add Sound Effects" [6551-6913] -->
<h2><a>Pass ClickLoc From Nifty to Java</a></h2>
<div>
@ -253,7 +253,7 @@ You can name the method (here <code>clicked</code>) what ever you like, as long
</p>
</div>
<!-- EDIT11 SECTION "Pass ClickLoc From Nifty to Java" [6914-7675] -->
<h2><a>Load Several XML Files</a></h2>
<div>
@ -274,7 +274,7 @@ stateManager.attach&#40;optionsControl&#41;;
guiViewPort.addProcessor&#40;niftyDisplay&#41;;</pre>
</div>
<!-- EDIT12 SECTION "Load Several XML Files" [7676-8724] -->
<h2><a>Design Your Own Styles</a></h2>
<div>
@ -326,4 +326,5 @@ Learn more from the NiftyGUI page:
</span></div>
</div>
<!-- EDIT13 SECTION "Design Your Own Styles" [8725-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_scenarios?do=export_xhtmlbody">view online version</a></em></p>

@ -20,7 +20,7 @@ You can &quot;draw&quot; the <acronym title="Graphical User Interface">GUI</acro
</p>
</div>
<!-- EDIT1 SECTION "Laying out the GUI in XML" [1-478] -->
<h2><a>Plan Your GUI Layout</a></h2>
<div>
@ -75,7 +75,7 @@ The HUD contains:
</ul>
</div>
<!-- EDIT2 SECTION "Plan Your GUI Layout" [479-1665] -->
<h2><a>Implement Your GUI Layout</a></h2>
<div>
@ -89,7 +89,7 @@ Create an empty screen.xml file in the <code>assets/Interfaces/</code> directory
</p>
</div>
<!-- EDIT3 SECTION "Implement Your GUI Layout" [1666-2141] -->
<h3><a>Make Screens</a></h3>
<div>
@ -117,7 +117,7 @@ Every Nifty <acronym title="Graphical User Interface">GUI</acronym> must have a
</p>
</div>
<!-- EDIT4 SECTION "Make Screens" [2142-2866] -->
<h3><a>Make Layers</a></h3>
<div>
@ -149,7 +149,7 @@ In a layer, you can now add panels and arrange them. Panels are containers that
</p>
</div>
<!-- EDIT5 SECTION "Make Layers" [2867-3640] -->
<h3><a>Make Panels</a></h3>
<div>
@ -202,7 +202,7 @@ The result should look as follows:
</p>
</div>
<!-- EDIT6 SECTION "Make Panels" [3641-5523] -->
<h2><a>Adding Content to Panels</a></h2>
<div>
@ -212,7 +212,7 @@ See also <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><
</p>
</div>
<!-- EDIT7 SECTION "Adding Content to Panels" [5524-5702] -->
<h3><a>Add Images</a></h3>
<div>
@ -257,7 +257,7 @@ This image is scaled to use 50% of the height and 30% of the width of its contai
</p>
</div>
<!-- EDIT8 SECTION "Add Images" [5703-7389] -->
<h3><a>Add Static Text</a></h3>
<div>
@ -284,7 +284,7 @@ The font used is jME3&#039;s default font &quot;Interface/Fonts/Default.fnt&quot
</p>
</div>
<!-- EDIT9 SECTION "Add Static Text" [7390-8470] -->
<h3><a>Add Controls</a></h3>
<div>
@ -346,7 +346,7 @@ Nifty additionally offers many customizable controls such as check boxes, text f
</p>
</div>
<!-- EDIT10 SECTION "Add Controls" [8471-10443] -->
<h2><a>Intermediate Result</a></h2>
<div>
@ -364,7 +364,7 @@ Compare this result with the layout draft above.
</p>
</div>
<!-- EDIT11 SECTION "Intermediate Result" [10444-10804] -->
<h2><a>Next Steps</a></h2>
<div>
@ -386,4 +386,5 @@ Integrate the <acronym title="Graphical User Interface">GUI</acronym> into the g
</span></div>
</div>
<!-- EDIT12 SECTION "Next Steps" [10805-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_xml_layout?do=export_xhtmlbody">view online version</a></em></p>

@ -18,7 +18,7 @@ Both on the client and the server side of OGF is written purely in Java. OGF has
</p>
</div>
<!-- EDIT1 SECTION "Open Game Finder" [1-629] -->
<h2><a>Installation</a></h2>
<div>
<ol>
@ -31,7 +31,7 @@ Both on the client and the server side of OGF is written purely in Java. OGF has
</ol>
</div>
<!-- EDIT2 SECTION "Installation" [630-849] -->
<h2><a>Setting up the Database</a></h2>
<div>
@ -47,7 +47,7 @@ The OGF server uses an embedded Apache Derby database. You have to install the d
</ul>
</div>
<!-- EDIT3 SECTION "Setting up the Database" [850-1523] -->
<h2><a>Running the server</a></h2>
<div>
@ -69,7 +69,7 @@ The server is now running and ready to accept connections. <br/>
</p>
</div>
<!-- EDIT4 SECTION "Running the server" [1524-1913] -->
<h2><a>Running the client</a></h2>
<div>
<ol>
@ -93,7 +93,7 @@ A client is now running, connects to the server, and displays a registration/log
</p>
</div>
<!-- EDIT5 SECTION "Running the client" [1914-2406] -->
<h3><a>Client: 1. Registration</a></h3>
<div>
@ -118,7 +118,7 @@ The client registers the account and opens the chat window directly.
</p>
</div>
<!-- EDIT6 SECTION "Client: 1. Registration" [2407-2760] -->
<h3><a>Client: 2. Login</a></h3>
<div>
@ -139,7 +139,7 @@ The client logs you in and opens the chat window.
</p>
</div>
<!-- EDIT7 SECTION "Client: 2. Login" [2761-3033] -->
<h3><a>Client: 3. Chat</a></h3>
<div>
@ -149,7 +149,7 @@ The chat window shows a list of all users logged in to the server. Logged-in use
</p>
</div>
<!-- EDIT8 SECTION "Client: 3. Chat" [3034-3213] -->
<h2><a>Connecting to a Game</a></h2>
<div>
@ -176,7 +176,7 @@ After this, continue writing your JME3 init method.
</p>
</div>
<!-- EDIT9 SECTION "Connecting to a Game" [3214-3904] -->
<h2><a>Configuration</a></h2>
<div>
<ul>
@ -192,4 +192,5 @@ A: TBD</div>
</span></div>
</div>
<!-- EDIT10 SECTION "Configuration" [3905-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:open_game_finder?do=export_xhtmlbody">view online version</a></em></p>

@ -18,7 +18,7 @@ Creating an effect involves some trial and error to get the settings <em>just ri
</p>
</div>
<!-- EDIT1 SECTION "Particle Emmitter Settings" [1-844] -->
<h2><a>Create an Emitter</a></h2>
<div>
<ol>
@ -49,7 +49,7 @@ Choose one of the following mesh shapes
</ul>
</div>
<!-- EDIT2 SECTION "Create an Emitter" [845-1473] -->
<h2><a>Configure Parameters</a></h2>
<div>
@ -115,13 +115,13 @@ false = Particles fly straight like you drew them in the sprite texture (e.g. in
<td> start area </td><td><code>setShape(new EmitterSphereShape( Vector3f.ZERO, 2f));</code></td><td>EmitterPointShape()</td><td>By default, particles are emitted from the emitters location (a point). You can increase the emitter shape to occupy a sphere, so that the start point of new particles can be anywhere inside the sphere, which makes the effect a bit more irregular.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1638-5412] -->
<!-- EDIT4 TABLE [1638-5412] -->
<p>
Build up you effect by specifying one parameter after the other. If you change several parameters at the same time, it&#039;s difficult to tell which of the values caused which outcome.
</p>
</div>
<!-- EDIT3 SECTION "Configure Parameters" [1474-5594] -->
<h2><a>Create an Effect Material</a></h2>
<div>
@ -158,7 +158,7 @@ The effect texture can be one image, or contain a sprite animation – a series
</p>
</div>
<!-- EDIT5 SECTION "Create an Effect Material" [5595-6915] -->
<h3><a>Default Particle Textures</a></h3>
<div>
@ -195,14 +195,14 @@ The following effect textures are available by default from <code>test-data.jar<
<td> Effects/Smoke/Smoke.png </td><td> 1*15 </td><td> <img src="/wiki/lib/exe/fetch.php"> </td>
</tr>
</table></div>
<!-- EDIT2 TABLE [7231-8476] -->
<!-- EDIT7 TABLE [7231-8476] -->
<p>
<strong>Tip:</strong> Use the <code>setStartColor()</code>/<code>setEndColor()</code> settings described above to colorize the white and gray parts of textures.
</p>
</div>
<!-- EDIT6 SECTION "Default Particle Textures" [6916-8608] -->
<h2><a>Usage Example</a></h2>
<div>
<pre> ParticleEmitter fire = new ParticleEmitter&#40;&quot;Emitter&quot;, ParticleMesh.Type.Triangle, 30&#41;;
@ -237,4 +237,5 @@ See also: <a href="/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html">
</span></div>
</div>
<!-- EDIT8 SECTION "Usage Example" [8609-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:particle_emitters?do=export_xhtmlbody">view online version</a></em></p>

@ -16,7 +16,7 @@ If you are looking for info on how to respond to physics events such as collisio
</p>
</div>
<!-- EDIT1 SECTION "Physics: Gravity, Collisions, Forces" [1-867] -->
<h2><a>Technical Overview</a></h2>
<div>
@ -53,7 +53,7 @@ When you use this physics simulation, values correspond to the following units:
</ul>
</div>
<!-- EDIT2 SECTION "Technical Overview" [868-2043] -->
<h2><a>Sample Code</a></h2>
<div>
@ -73,7 +73,7 @@ Full code samples are here:
</ul>
</div>
<!-- EDIT3 SECTION "Sample Code" [2044-2643] -->
<h2><a>Physics Application</a></h2>
<div>
@ -86,7 +86,7 @@ A short overview of how to write a jME application with Physics capabilities:
Do the following once per application to gain access to the <code>physicsSpace</code> object:
</p>
<ol>
<li><div> Make you application extend <code>com.jme3.app.SimpleApplication</code>.</div>
<li><div> Make your application extend <code>com.jme3.app.SimpleApplication</code>.</div>
</li>
<li><div> Create a BulletAppState field: <pre>private BulletAppState bulletAppState;</pre>
</div>
@ -133,7 +133,7 @@ Let&#039;s look at the details:
</p>
</div>
<!-- EDIT4 SECTION "Physics Application" [2644-3845] -->
<h2><a>Create a CollisionShape</a></h2>
<div>
@ -173,7 +173,7 @@ Disc-shaped objects like wheels, plates. </td>
<td> PlaneCollisionShape() </td><td> A 2D plane. Very fast. </td><td> Flat solid floor or wall. </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [4303-5700] -->
<!-- EDIT6 TABLE [4304-5701] -->
<p>
All non-mesh CollisionShapes can be used for dynamic, kinematic, as well as static Spatials. (Code samples see below)
@ -200,7 +200,7 @@ All non-mesh CollisionShapes can be used for dynamic, kinematic, as well as stat
<strong>Limitations:</strong> Requires heightmap data. Collisions between two mesh-accurate shapes cannot be detected, only non-mesh shapes can collide with this shape.</td><td>Static terrains.</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [5821-7338] -->
<!-- EDIT7 TABLE [5822-7339] -->
<p>
The mesh-accurate shapes can use a CollisionShapeFactory as constructor (code samples see below).
@ -217,7 +217,7 @@ The mesh-accurate shapes can use a CollisionShapeFactory as constructor (code sa
</p>
</div>
<!-- EDIT5 SECTION "Create a CollisionShape" [3846-8009] -->
<h3><a>CollisionShape Code Samples</a></h3>
<div>
<ul>
@ -248,7 +248,7 @@ The mesh-accurate shapes can use a CollisionShapeFactory as constructor (code sa
</ul>
</div>
<!-- EDIT8 SECTION "CollisionShape Code Samples" [8010-9136] -->
<h2><a>Create PhysicsControl</a></h2>
<div>
@ -269,7 +269,7 @@ Solid immobile floors, walls, static obstacles.</td>
<td>GhostControl</td><td>Use for collision and intersection detection between physical objects. A GhostControl itself is <em>non-solid</em> and invisible. GhostControl moves with the Spatial it is attached to. Use GhostControls to <a href="/com/jme3/gde/core/docs/jme3/advanced/physics_listeners.html">implement custom game interactions</a> by adding it to a visible Geometry. </td><td>A monster&#039;s &quot;aggro radius&quot;, CharacterControl collisions, motion detectors, photo-electric alarm sensors, poisonous or radioactive perimeters, life-draining ghosts, etc. </td>
</tr>
</table></div>
<!-- EDIT3 TABLE [9527-10506] --><div><table>
<!-- EDIT10 TABLE [9528-10507] --><div><table>
<tr>
<th>Special PhysicsControls</th><th> Usage</th><th> Examples </th>
</tr>
@ -284,14 +284,14 @@ PhysicsVehicleWheel</td><td> Special Control used for <a href="/com/jme3/gde/cor
<td>RagDollControl</td><td>Special Control used for <a href="/com/jme3/gde/core/docs/jme3/advanced/ragdoll.html">collapsing, flailing, or falling characters</a> </td><td>Falling persons, animals, robots, &quot;Rag dolls&quot;</td>
</tr>
</table></div>
<!-- EDIT4 TABLE [10508-11020] -->
<!-- EDIT11 TABLE [10509-11021] -->
<p>
Click the links for details on the special PhysicsControls. This article is about RigidBodyControl.
</p>
</div>
<!-- EDIT9 SECTION "Create PhysicsControl" [9137-11123] -->
<h3><a>PhysicsControls Code Samples</a></h3>
<div>
@ -312,7 +312,7 @@ The PhysicsControl constructors expect a Collision Shape and a mass (a float in
<p>
The following creates a box Geometry with the correct default BoxCollisionShape:
</p>
<pre>Box&#40;1,1,1&#41;;
<pre>Box b = new Box&#40;1,1,1&#41;;
Geometry box_geo = new Geometry&#40;&quot;Box&quot;, b&#41;;
box_geo.addControl&#40;new RigidBodyControl&#40; 1.0f &#41;&#41;; // explicit non-zero mass, implicit BoxCollisionShape</pre>
@ -330,7 +330,7 @@ gameLevel.addControl&#40;new RigidBodyControl&#40;0.0f&#41;&#41;; // explicit ze
</p>
</div>
<!-- EDIT12 SECTION "PhysicsControls Code Samples" [11124-12596] -->
<h2><a>Add PhysicsControl to Spatial</a></h2>
<div>
@ -347,7 +347,7 @@ For each physical Spatial in the scene:
</ol>
</div>
<!-- EDIT13 SECTION "Add PhysicsControl to Spatial" [12597-12844] -->
<h2><a>Add PhysicsControl to PhysicsSpace</a></h2>
<div>
@ -374,7 +374,7 @@ myThing_geo.removeFromParent&#40;&#41;;</pre>
</p>
</div>
<!-- EDIT14 SECTION "Add PhysicsControl to PhysicsSpace" [12845-13660] -->
<h3><a>PhysicsSpace Code Samples</a></h3>
<div>
@ -396,7 +396,7 @@ bulletAppState.getPhysicsSpace&#40;&#41;.setWorldMin&#40;new Vector3f&#40;-10000
</ul>
</div>
<!-- EDIT15 SECTION "PhysicsSpace Code Samples" [13661-14361] -->
<h2><a>Specify Physical Properties</a></h2>
<div>
@ -435,7 +435,7 @@ This setting has an impact on performance, so use it sparingly. </td><td> Brick:
Rubber ball: 1.0f </td>
</tr>
</table></div>
<!-- EDIT5 TABLE [14585-16006] -->
<!-- EDIT17 TABLE [14586-16007] -->
<p>
On a RigidBodyControl, you can apply the following physical forces:
@ -459,9 +459,9 @@ On a RigidBodyControl, you can apply the following physical forces:
(See detailed explanation below.) </td>
</tr>
</table></div>
<!-- EDIT6 TABLE [16077-16867] -->
<!-- EDIT18 TABLE [16078-16868] -->
</div>
<!-- EDIT16 SECTION "Specify Physical Properties" [14362-16869] -->
<h3><a>Kinematic vs Dynamic vs Static</a></h3>
<div>
@ -511,7 +511,7 @@ setKinematic(true);</td><td>setMass(1f); <br/>
setKinematic(false);</td>
</tr>
</table></div>
<!-- EDIT7 TABLE [17105-18164] -->
<!-- EDIT20 TABLE [17106-18165] -->
</div>
<h4><a>When Do I Use Kinematic Objects?</a></h4>
@ -534,7 +534,7 @@ setKinematic(false);</td>
</p>
</div>
<!-- EDIT19 SECTION "Kinematic vs Dynamic vs Static" [16870-19271] -->
<h2><a>Forces: Moving Dynamic Objects</a></h2>
<div>
@ -572,7 +572,7 @@ Use the following methods to move dynamic physical objects.
<td> clearForces()</td><td>Cancels out all forces (force, torque) etc and stops the motion.</td>
</tr>
</table></div>
<!-- EDIT8 TABLE [19376-20365] -->
<!-- EDIT22 TABLE [19377-20366] -->
<p>
<p><div>It is technically possible to position PhysicsControls using setLocalTranslation(), e.g. to place them in their start position in the scene. However you must be very careful not to cause an &quot;impossible state&quot; where one physical object overlaps with another! Within the game, you typically use the setters shown here exclusively.
@ -612,7 +612,7 @@ removeCollideWithGroup(COLLISION_GROUP_01)</td><td>Collision Groups are integer
<td> setCcdSweptSphereRadius(.5f)</td><td>Bullet does not use the full collision shape for continuous collision detection, insteadit uses a &quot;swept sphere&quot; shape to approximate a motion. Only relevant for fast moving dynamic bodies. (?) </td>
</tr>
</table></div>
<!-- EDIT9 TABLE [20783-22588] -->
<!-- EDIT23 TABLE [20784-22589] -->
<p>
<p><div> You can <code>setApplyPhysicsLocal(true)</code> for an object to make it move relatively to its local physics space. You would do that if you need a physics space that moves with a node (e.g. a spaceship with artificial gravity surrounded by zero-g space). By default, it&#039;s set to false, and all movement is relative to the world.
@ -620,7 +620,7 @@ removeCollideWithGroup(COLLISION_GROUP_01)</td><td>Collision Groups are integer
</p>
</div>
<!-- EDIT21 SECTION "Forces: Moving Dynamic Objects" [19272-22931] -->
<h2><a>Best Practices</a></h2>
<div>
<ul>
@ -651,7 +651,7 @@ removeCollideWithGroup(COLLISION_GROUP_01)</td><td>Collision Groups are integer
</span></div>
</div>
<div>
<!-- EDIT24 SECTION "Best Practices" [22932-] --><div>
<div><sup><a href="#fnt__1">1)</a></sup>
Inertia is calculated for kinematic objects, and you need mass to do that.</div>
</div>

@ -7,7 +7,7 @@ You can control physical objects (push them around) by applying physical forces
</p>
</div>
<!-- EDIT1 SECTION "Physics Listeners" [1-329] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -20,7 +20,7 @@ You can control physical objects (push them around) by applying physical forces
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [330-809] -->
<h2><a>PhysicsGhostObjects</a></h2>
<div>
@ -59,9 +59,9 @@ getPhysicsSpace&#40;&#41;.add&#40;ghost&#41;;</pre>
<td>getOverlapping(i)</td><td>Get PhysicsCollisionObject number i.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [2299-2565] -->
<!-- EDIT4 TABLE [2299-2565] -->
</div>
<!-- EDIT3 SECTION "PhysicsGhostObjects" [810-2566] -->
<h2><a>Physics Tick Listener</a></h2>
<div>
@ -72,7 +72,7 @@ Applying forces or checking for overlaps only has an effect right at a physics u
</p>
</div>
<!-- EDIT5 SECTION "Physics Tick Listener" [2567-2979] -->
<h3><a>When (Not) to Use Tick Listener?</a></h3>
<div>
@ -90,7 +90,7 @@ When your game mechanics however just poll the current state (e.g. getPhysicsLoc
</p>
</div>
<!-- EDIT6 SECTION "When (Not) to Use Tick Listener?" [2980-3836] -->
<h3><a>How to Listen to Physics Ticks</a></h3>
<div>
@ -124,12 +124,12 @@ public void physicsTick&#40;PhysicsSpace space, float tpf&#41;&#123;
&#125;</pre>
</div>
<!-- EDIT7 SECTION "How to Listen to Physics Ticks" [3837-4856] -->
<h2><a>Physics Collision Listener</a></h2>
<div>
</div>
<!-- EDIT8 SECTION "Physics Collision Listener" [4857-4896] -->
<h3><a>When (Not) to Use Collision Listener</a></h3>
<div>
@ -155,7 +155,7 @@ If however you want to respond to a collision event (com.jme3.bullet.collision.P
</ul>
</div>
<!-- EDIT9 SECTION "When (Not) to Use Collision Listener" [4897-5699] -->
<h3><a>How to Listen to Collisions</a></h3>
<div>
@ -194,7 +194,7 @@ After you identify the colliding nodes, specify the action to trigger when this
</p>
</div>
<!-- EDIT10 SECTION "How to Listen to Collisions" [5700-7311] -->
<h3><a>Reading Details From a PhysicsCollisionEvent</a></h3>
<div>
@ -226,13 +226,13 @@ getObjectB() </td><td> The two participants in the collision. You cannot kno
<td> getCombinedRestitution() </td><td> A float value representing the collision restitution (bounciness) </td>
</tr>
</table></div>
<!-- EDIT2 TABLE [7578-8263] -->
<!-- EDIT12 TABLE [7578-8263] -->
<p>
Note that after the collision method has been called the object is not valid anymore so you should copy any data you want to keep into local variables.
</p>
</div>
<!-- EDIT11 SECTION "Reading Details From a PhysicsCollisionEvent" [7312-8416] -->
<h3><a>Collision Groups</a></h3>
<div>
@ -255,4 +255,5 @@ myNode.getControl&#40;RigidBodyControl.class&#41;.setCollideWithGroups&#40;Physi
</span></div>
</div>
<!-- EDIT13 SECTION "Collision Groups" [8417-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:physics_listeners?do=export_xhtmlbody">view online version</a></em></p>

@ -16,7 +16,7 @@ Need simpler <a href="/com/jme3/gde/core/docs/jme3/advanced/water.html">water</a
</p>
</div>
<!-- EDIT1 SECTION "Rendering Water as Post-Process Effect" [1-590] -->
<h2><a>The Theory</a></h2>
<div>
@ -34,7 +34,7 @@ The GameDev.net article describes how those effects are achieved, but the main i
</p>
</div>
<!-- EDIT2 SECTION "The Theory" [591-1706] -->
<h2><a>How Did We Implement it in jME3?</a></h2>
<div>
@ -56,7 +56,7 @@ Now we have the rendered scene in a texture, and we can reconstruct the position
</p>
</div>
<!-- EDIT3 SECTION "How Did We Implement it in jME3?" [1707-2442] -->
<h2><a>Sample Code</a></h2>
<div>
@ -75,7 +75,7 @@ There are two test cases in the jME3 repository:
</ul>
</div>
<!-- EDIT4 SECTION "Sample Code" [2443-2901] -->
<h3><a>Using the Water Filter</a></h3>
<div>
@ -108,7 +108,7 @@ Usually you make the water reflect everything attached to the rootNode. But you
</p>
</div>
<!-- EDIT5 SECTION "Using the Water Filter" [2902-4206] -->
<h3><a>Optional: Waves</a></h3>
<div>
@ -128,7 +128,7 @@ public void simpleUpdate&#40;float tpf&#41; &#123;
&#125;</pre>
</div>
<!-- EDIT6 SECTION "Optional: Waves" [4207-4731] -->
<h3><a>Optional: Water Wave and Color Effects</a></h3>
<div>
@ -175,7 +175,7 @@ manager.loadTexture(&quot;Textures/wavenormals.png&quot;) )</td><td>This normal
<td>water.setNormalScale(0.5f)</td><td>Sets the normal scaling factors to apply to the normal map. The higher the value, the more small ripples will be visible on the waves.</td><td>1.0f</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [4898-6062] --><div><table>
<!-- EDIT8 TABLE [4898-6062] --><div><table>
<tr>
<th> Water method example</th><th> Effects: Color</th><th>Default</th>
</tr>
@ -200,7 +200,7 @@ Vector3f(0.0f, 0.0f,0.2f,1.0f)</td>
<td>water.setColorExtinction(new Vector3f(10f,20f,30f));</td><td>Sets At what depth the refraction color extincts. The three values are RGB (red, green, blue) in this order. Play with these parameters to &quot;muddy&quot; the water.</td><td>Vector3f(5f,20f,30f)</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [6064-7068] --><div><table>
<!-- EDIT9 TABLE [6064-7068] --><div><table>
<tr>
<th> Water method example</th><th> Effects: Shore</th><th>Default</th>
</tr>
@ -211,7 +211,7 @@ Vector3f(0.0f, 0.0f,0.2f,1.0f)</td>
<td>water.setUseHQShoreline(false);</td><td>Renders shoreline with better quality ?</td><td>true</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [7070-7359] --><div><table>
<!-- EDIT10 TABLE [7070-7359] --><div><table>
<tr>
<th> Water method example</th><th> Effects: Foam</th><th>Default</th>
</tr>
@ -229,7 +229,7 @@ Vector3f(0.0f, 0.0f,0.2f,1.0f)</td>
manager.loadTexture(&quot;Textures/foam.png&quot;) )</td><td>This foam texture will be used with WrapMode.Repeat</td><td>&quot;Common/MatDefs/Water/Textures/foam.jpg&quot;</td>
</tr>
</table></div>
<!-- EDIT4 TABLE [7361-8006] --><div><table>
<!-- EDIT11 TABLE [7361-8006] --><div><table>
<tr>
<th> Water method example</th><th> Effects: Light</th><th>Default</th>
</tr>
@ -255,9 +255,9 @@ manager.loadTexture(&quot;Textures/foam.png&quot;) )</td><td>This foam texture w
<td>water.setReflectionMapSize(256)</td><td>Sets the size of the reflection map. The higher, the better the quality, but the slower the effect.</td><td>512</td>
</tr>
</table></div>
<!-- EDIT5 TABLE [8008-8923] -->
<!-- EDIT12 TABLE [8008-8923] -->
</div>
<!-- EDIT7 SECTION "Optional: Water Wave and Color Effects" [4732-8925] -->
<h3><a>Sound Effects</a></h3>
<div>
@ -281,4 +281,5 @@ See also:
</ul>
</div>
<!-- EDIT13 SECTION "Sound Effects" [8926-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:post-processor_water?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ The jMonkeyEngine3 has built-in support for <object classid="java:org.netbeans.m
</p>
</div>
<!-- EDIT1 SECTION "Ragdoll Physics" [1-385] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -23,7 +23,7 @@ The jMonkeyEngine3 has built-in support for <object classid="java:org.netbeans.m
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [386-867] -->
<h2><a>Preparing the Physics Game</a></h2>
<div>
<ol>
@ -38,7 +38,7 @@ The jMonkeyEngine3 has built-in support for <object classid="java:org.netbeans.m
</ol>
</div>
<!-- EDIT3 SECTION "Preparing the Physics Game" [868-1106] -->
<h2><a>Creating the Ragdoll</a></h2>
<div>
@ -48,7 +48,7 @@ A ragdoll is a simple &quot;person&quot; (dummy) that you build out of cylinder
</p>
</div>
<!-- EDIT4 SECTION "Creating the Ragdoll" [1107-1506] -->
<h3><a>Limbs</a></h3>
<div>
@ -96,7 +96,7 @@ You now have the outline of a person. But if you ran the application now, the in
</p>
</div>
<!-- EDIT5 SECTION "Limbs" [1507-3921] -->
<h3><a>Joints</a></h3>
<div>
@ -142,7 +142,7 @@ Now the ragdoll is connected. If you ran the app now, the doll would collapse, b
</p>
</div>
<!-- EDIT6 SECTION "Joints" [3922-5767] -->
<h3><a>Attaching Everything to the Scene</a></h3>
<div>
@ -169,7 +169,7 @@ To use the ragdoll in a scene, we attach its main node to the rootNode, and to t
bulletAppState.getPhysicsSpace&#40;&#41;.addAll&#40;ragDoll&#41;;</pre>
</div>
<!-- EDIT7 SECTION "Attaching Everything to the Scene" [5768-6426] -->
<h2><a>Applying Forces</a></h2>
<div>
@ -185,7 +185,7 @@ We can use the action to pick the doll up and put it back on its feet, or what e
</p>
</div>
<!-- EDIT8 SECTION "Applying Forces" [6427-6828] -->
<h2><a>Detecting Collisions</a></h2>
<div>
@ -195,7 +195,7 @@ Read the <a href="/com/jme3/gde/core/docs/jme3/advanced/physics#responding_to_a_
</p>
</div>
<!-- EDIT9 SECTION "Detecting Collisions" [6829-7146] -->
<h2><a>Best Practices</a></h2>
<div>
@ -213,4 +213,5 @@ If you experience weird behaviour in a ragdoll – such as exploding into pieces
</span></div>
</div>
<!-- EDIT10 SECTION "Best Practices" [7147-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:ragdoll?do=export_xhtmlbody">view online version</a></em></p>

@ -3,7 +3,7 @@
<div>
</div>
<!-- EDIT1 SECTION "Remote-Controlling the Camera" [1-45] -->
<h2><a>Positioning the Camera</a></h2>
<div>
@ -25,7 +25,7 @@ You can steer the camera using <a href="/com/jme3/gde/core/docs/jme3/advanced/ci
</ol>
</div>
<!-- EDIT2 SECTION "Positioning the Camera" [46-714] -->
<h3><a>Code Sample</a></h3>
<div>
<pre>flyCam.setEnabled&#40;false&#41;;
@ -40,7 +40,7 @@ camNodeSide.setControlDir&#40;ControlDirection.CameraToSpatial&#41;;
camNodeSide.getControl&#40;0&#41;.setEnabled&#40;false&#41;;</pre>
</div>
<!-- EDIT3 SECTION "Code Sample" [715-1171] -->
<h2><a>Moving the Camera</a></h2>
<div>
@ -55,4 +55,5 @@ If desired, attach the camNode to a MotionTrack to let it travel along waypoints
</span></div>
</div>
<!-- EDIT4 SECTION "Moving the Camera" [1172-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:remote-controlling_the_camera?do=export_xhtmlbody">view online version</a></em></p>

@ -13,7 +13,7 @@ Spatials can contain Nodes, Geometries, and user data (player score, health, inv
</p>
</div>
<!-- EDIT1 SECTION "Saving and Loading Games" [1-781] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -22,7 +22,7 @@ Spatials can contain Nodes, Geometries, and user data (player score, health, inv
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [782-939] -->
<h2><a>Saving a Node</a></h2>
<div>
@ -38,9 +38,9 @@ The following example overrides <code>destroy()</code> to save the rootNode to a
<pre> /* This is called when the user quits the app. */
@Override
public void destroy&#40;&#41; &#123;
System.getProperty&#40;&quot;user.home&quot;&#41;;
String userHome = System.getProperty&#40;&quot;user.home&quot;&#41;;
BinaryExporter exporter = BinaryExporter.getInstance&#40;&#41;;
File&#40;userHome+&quot;/MySuperGame/&quot;+&quot;LastSavedGame.j3o&quot;&#41;;
File file = new File&#40;userHome+&quot;/MySuperGame/&quot;+&quot;LastSavedGame.j3o&quot;&#41;;
try &#123;
exporter.save&#40;rootNode, file&#41;;
&#125; catch &#40;IOException ex&#41; &#123;
@ -53,7 +53,7 @@ The following example overrides <code>destroy()</code> to save the rootNode to a
<p><div>You can add a timestamp to your saved files:
</p>
<pre>long timestamp = System.currentTimeMillis&#40;&#41;/1000;
File&#40;userHome+&quot;/MySuperGame/&quot;+&quot;/SavedGame-&quot;+timestamp+&quot;.j3o&quot;&#41;;</pre>
File file = new File&#40;userHome+&quot;/MySuperGame/&quot;+&quot;/SavedGame-&quot;+timestamp+&quot;.j3o&quot;&#41;;</pre>
<p>
@ -61,7 +61,7 @@ File&#40;userHome+&quot;/MySuperGame/&quot;+&quot;/SavedGame-&quot;+timestamp+&q
</p>
</div>
<!-- EDIT3 SECTION "Saving a Node" [940-2256] -->
<h2><a>Loading a Node</a></h2>
<div>
@ -71,10 +71,10 @@ The following example uses simpleInitApp() to load the last saved game when the
</p>
<pre> @Override
public void simpleInitApp&#40;&#41; &#123;
System.getProperty&#40;&quot;user.home&quot;&#41;;
String userHome = System.getProperty&#40;&quot;user.home&quot;&#41;;
BinaryImporter importer = BinaryImporter.getInstance&#40;&#41;;
importer.setAssetManager&#40;assetManager&#41;;
File&#40;userHome+&quot;/MySuperGame/&quot;+&quot;LastSavedGame.j3o&quot;&#41;;
File file = new File&#40;userHome+&quot;/MySuperGame/&quot;+&quot;LastSavedGame.j3o&quot;&#41;;
if&#40;file.exists&#40;&#41;&#41;&#123;
try &#123;
Node loadedNode = &#40;Node&#41;importer.load&#40;file&#41;;
@ -94,7 +94,7 @@ The following example uses simpleInitApp() to load the last saved game when the
</p>
</div>
<!-- EDIT4 SECTION "Loading a Node" [2257-3344] -->
<h2><a>Custom Savable Class</a></h2>
<div>
@ -184,4 +184,5 @@ To make a custom class savable:
</p>
</div>
<!-- EDIT5 SECTION "Custom Savable Class" [3345-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:save_and_load?do=export_xhtmlbody">view online version</a></em></p>

@ -7,7 +7,7 @@ The simplest type of Meshes are the built-in JME Shapes. You can create Shapes w
</p>
</div>
<!-- EDIT1 SECTION "Shapes" [1-133] -->
<h2><a>3D shapes</a></h2>
<div>
@ -54,7 +54,7 @@ The simplest type of Meshes are the built-in JME Shapes. You can create Shapes w
</ul>
</div>
<!-- EDIT2 SECTION "3D shapes" [134-1719] -->
<h2><a>Non-3D shapes</a></h2>
<div>
<ul>
@ -91,7 +91,7 @@ These maths objects are invisible and are used for collision testing (ray castin
</p>
</div>
<!-- EDIT3 SECTION "Non-3D shapes" [1720-2635] -->
<h2><a>Usage</a></h2>
<div>
@ -141,7 +141,7 @@ The order is important: First arrange around origin, then transform. Otherwise,
</p>
</div>
<!-- EDIT4 SECTION "Usage" [2636-4110] -->
<h2><a>Code Examples</a></h2>
<div>
@ -171,4 +171,5 @@ geom.setMaterial&#40;mat&#41;; // assign material to geo
rootNode.attachChild&#40;geom&#41;; // attach geometry to a node</pre>
</div>
<!-- EDIT5 SECTION "Code Examples" [4111-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:shape?do=export_xhtmlbody">view online version</a></em></p>

@ -14,7 +14,7 @@ Having a discernable horizon with a suitable landscape (or space, or ocean, or w
</p>
</div>
<!-- EDIT1 SECTION "How to add a Sky to your Scene" [1-335] -->
<h2><a>Adding the Sky</a></h2>
<div>
@ -52,7 +52,7 @@ Internally, the SkyFactory calls the following methods:
</ol>
</div>
<!-- EDIT2 SECTION "Adding the Sky" [336-1262] -->
<h2><a>Creating the Textures</a></h2>
<div>
@ -98,4 +98,5 @@ Box or Sphere?
</ul>
</div>
<!-- EDIT3 SECTION "Creating the Textures" [1263-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:sky?do=export_xhtmlbody">view online version</a></em></p>

@ -16,7 +16,7 @@ If you think you need to understand the scene graph concept better, please read
</p>
</div>
<!-- EDIT1 SECTION "Spatial" [1-934] -->
<h2><a>Node versus Geometry</a></h2>
<div>
@ -56,7 +56,7 @@ no mesh, no material.</td>
<th> Examples: </th><td> Box, sphere, player, building, terrain, vehicle, missiles, NPCs, etc… </td><td> rootNode, guiNode, audioNode, a custom vehicleNode or shipNode with passengers attached, etc. </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1151-2451] -->
<!-- EDIT3 TABLE [1151-2451] -->
<p>
<p><div>You never create a Spatial with <code><del>Spatial s = new Spatial();</del></code>! A Spatial is an abstract concept, like a mammal (there is no actual creature called &quot;mammal&quot; walking around here). You either create a Node or a Geometry object. Some methods however require a Spatial argument: This is because they are able to accept both Nodes and Geometries as arguments. In this case, you must <em>cast</em> a Node or Geometry to Spatial.
@ -64,7 +64,7 @@ no mesh, no material.</td>
</p>
</div>
<!-- EDIT2 SECTION "Node versus Geometry" [935-2905] -->
<h3><a>Mesh</a></h3>
<div>
@ -83,7 +83,7 @@ The polygon <a href="/com/jme3/gde/core/docs/jme3/advanced/mesh.html">Mesh</a> i
</ul>
</div>
<!-- EDIT4 SECTION "Mesh" [2906-3585] -->
<h2><a>How to Add Fields and Methods to a Spatial</a></h2>
<div>
@ -143,7 +143,7 @@ This is how you list all data keys that are already defined for one Spatial:
&#125;</pre>
</div>
<!-- EDIT5 SECTION "How to Add Fields and Methods to a Spatial" [3586-5973] -->
<h2><a>How to Access a Named Sub-Mesh</a></h2>
<div>
@ -168,4 +168,5 @@ In the following example, the Node <code>house</code> is the loaded model. The s
<pre>Geometry submesh = &#40;Geometry&#41; houseScene.getChild&#40;&quot;door 12&quot;&#41;;</pre>
</div>
<!-- EDIT6 SECTION "How to Access a Named Sub-Mesh" [5974-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:spatial?do=export_xhtmlbody">view online version</a></em></p>

@ -33,7 +33,7 @@ Here is the full <object classid="java:org.netbeans.modules.javahelp.BrowserDisp
</p>
</div>
<!-- EDIT1 SECTION "JME3 Canvas in a Swing GUI" [1-1097] -->
<h2><a>Extending SimpleApplication</a></h2>
<div>
@ -58,7 +58,7 @@ In short: The first thing that is different is the <code>main()</code> method. W
</p>
</div>
<!-- EDIT2 SECTION "Extending SimpleApplication" [1098-2174] -->
<h2><a>Main() and Runnable()</a></h2>
<div>
@ -70,7 +70,7 @@ In the SwingCanvasTest&#039;s main() method, create a queued runnable(). It will
</p>
<pre> public static void main&#40;String&#91;&#93; args&#41; &#123;
java.awt.Runnable&#40;&#41; &#123;
java.awt.EventQueue.invokeLater&#40;new Runnable&#40;&#41; &#123;
public void run&#40;&#41; &#123;
// ... see below ...
&#125;
@ -78,7 +78,7 @@ In the SwingCanvasTest&#039;s main() method, create a queued runnable(). It will
&#125;</pre>
</div>
<!-- EDIT3 SECTION "Main() and Runnable()" [2175-2792] -->
<h3><a>Creating the Canvas</a></h3>
<div>
@ -103,7 +103,7 @@ canvasApplication.setSettings&#40;settings&#41;;
canvasApplication.createCanvas&#40;&#41;; // create canvas!
JmeCanvasContext ctx = &#40;JmeCanvasContext&#41; canvasApplication.getContext&#40;&#41;;
ctx.setSystemListener&#40;canvasApplication&#41;;
Dimension&#40;640, 480&#41;;
Dimension dim = new Dimension&#40;640, 480&#41;;
ctx.getCanvas&#40;&#41;.setPreferredSize&#40;dim&#41;;</pre>
<p>
@ -113,7 +113,7 @@ Note that we have not called start() on the application, as we would usually do
</p>
</div>
<!-- EDIT4 SECTION "Creating the Canvas" [2793-4077] -->
<h3><a>Creating the Swing Frame</a></h3>
<div>
@ -122,7 +122,7 @@ Inside the run() method, you create the Swing window as you would usually do. Cr
Which ever you do, let&#039;s call the jFrame <code>window</code>.
</p>
<pre>JFrame&#40;&quot;Swing Application&quot;&#41;;
<pre>JFrame window = new JFrame&#40;&quot;Swing Application&quot;&#41;;
window.setDefaultCloseOperation&#40;JFrame.EXIT_ON_CLOSE&#41;;</pre>
<p>
@ -133,7 +133,7 @@ We create a standard JPanel inside the JFrame. Give it any Layout you wish – h
The important step is to add() the canvas component into the panel, like all the other Swing components.
</p>
<pre>FlowLayout&#40;&#41;&#41;; // a panel
<pre>JPanel panel = new JPanel&#40;new FlowLayout&#40;&#41;&#41;; // a panel
// add all your Swing components ...
panel.add&#40;new JButton&#40;&quot;Some Swing Component&quot;&#41;&#41;;
...
@ -163,7 +163,7 @@ Clean, build, and run!
</p>
</div>
<!-- EDIT5 SECTION "Creating the Swing Frame" [4078-5551] -->
<h2><a>Navigation</a></h2>
<div>
@ -177,4 +177,5 @@ Remember, to navigate in the scene, click and drag (!) the mouse, or press the W
</span></div>
</div>
<!-- EDIT6 SECTION "Navigation" [5552-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:swing_canvas?do=export_xhtmlbody">view online version</a></em></p>

@ -14,7 +14,7 @@ The goal of TerraMonkey is to provide a base implementation that will be usable
</ul>
</div>
<!-- EDIT1 SECTION "TerraMonkey - The jMonkeyEngine Terrain System" [1-533] -->
<h2><a>Overview</a></h2>
<div>
@ -38,7 +38,7 @@ TerraMonkey is a GeoMipMapping quad tree of terrain tiles that supports real tim
</ul>
</div>
<!-- EDIT2 SECTION "Overview" [534-1906] -->
<h3><a>Current Features:</a></h3>
<div>
<ul>
@ -55,7 +55,7 @@ TerraMonkey is a GeoMipMapping quad tree of terrain tiles that supports real tim
</ul>
</div>
<!-- EDIT3 SECTION "Current Features:" [1907-2293] -->
<h3><a>Planned Features:</a></h3>
<div>
<ul>
@ -66,7 +66,7 @@ TerraMonkey is a GeoMipMapping quad tree of terrain tiles that supports real tim
</ul>
</div>
<!-- EDIT4 SECTION "Planned Features:" [2294-2403] -->
<h2><a>Sample Code</a></h2>
<div>
<ul>
@ -83,7 +83,7 @@ TerraMonkey is a GeoMipMapping quad tree of terrain tiles that supports real tim
</ul>
</div>
<!-- EDIT5 SECTION "Sample Code" [2404-3175] -->
<h2><a>Geo Mip Mapping</a></h2>
<div>
@ -105,7 +105,7 @@ GeoMipMapping in TerraMonkey has been split into several parts: the terrain quad
</p>
</div>
<!-- EDIT6 SECTION "Geo Mip Mapping" [3176-4787] -->
<h2><a>Terrain Quad Tree</a></h2>
<div>
@ -115,7 +115,7 @@ TerraMonkey is a quad tree. Each node is a TerrainQuad, and each leaf is a Terra
</p>
</div>
<!-- EDIT7 SECTION "Terrain Quad Tree" [4788-5217] -->
<h2><a>Texture Splatting</a></h2>
<div>
@ -237,7 +237,7 @@ You can hand-paint Alpha, Diffuse, Glow, and Specular maps in a drawing program,
</p>
</div>
<!-- EDIT8 SECTION "Texture Splatting" [5218-9488] -->
<h2><a>Code Sample: Terrain.j3md</a></h2>
<div>
@ -306,4 +306,5 @@ PS: As an alternative to an image-based height map, you can also generate a Hill
<pre>heightmap = new HillHeightMap&#40;1025, 1000, 50, 100, &#40;byte&#41; 3&#41;;</pre>
</div>
<!-- EDIT9 SECTION "Code Sample: Terrain.j3md" [9489-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:terrain?do=export_xhtmlbody">view online version</a></em></p>

@ -8,7 +8,7 @@ This tutorial expands the HelloTerrain tutorial and makes the terrain solid. You
</p>
</div>
<!-- EDIT1 SECTION "Terrain Collision" [1-401] -->
<h2><a>Sample Code</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -214,12 +214,12 @@ Compile and run the code. You should see a terrain. You can use the WASD keys an
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [402-8830] -->
<h2><a>Understanding the Code</a></h2>
<div>
</div>
<!-- EDIT3 SECTION "Understanding the Code" [8831-8863] -->
<h3><a>The Terrain Code</a></h3>
<div>
@ -237,7 +237,7 @@ Read <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_terrain.html">Hello Te
</ol>
</div>
<!-- EDIT4 SECTION "The Terrain Code" [8864-9320] -->
<h3><a>The Collision Detection Code</a></h3>
<div>
@ -261,7 +261,7 @@ Read <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_collision.html">Hello
</ol>
</div>
<!-- EDIT5 SECTION "The Collision Detection Code" [9321-10221] -->
<h3><a>Combining the Two</a></h3>
<div>
@ -291,7 +291,7 @@ You attach the <code>terrain</code> and the first-person <code>player</code> to
bulletAppState.getPhysicsSpace&#40;&#41;.add&#40;player&#41;;</pre>
</div>
<!-- EDIT6 SECTION "Combining the Two" [10222-11070] -->
<h2><a>Conclusion</a></h2>
<div>
@ -321,4 +321,5 @@ See also:
</span></div>
</div>
<!-- EDIT7 SECTION "Conclusion" [11071-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:terrain_collision?do=export_xhtmlbody">view online version</a></em></p>

@ -45,7 +45,7 @@ Examples: Here you remote-control NPCs (computer controlled characters), generat
</ul>
</div>
<!-- EDIT1 SECTION "Update Loop" [1-784] -->
<h2><a>Usage</a></h2>
<div>
@ -71,4 +71,5 @@ There are two strategies how advanced developers can spread out their init and u
</span></div>
</div>
<!-- EDIT2 SECTION "Usage" [785-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:update_loop?do=export_xhtmlbody">view online version</a></em></p>

@ -20,7 +20,7 @@ This article shows how you use this vehicle implementation in a jME3 application
</p>
</div>
<!-- EDIT1 SECTION "Controlling a Physical Vehicle" [1-806] -->
<h2><a>Sample Code</a></h2>
<div>
@ -37,7 +37,7 @@ Full code samples are here:
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [807-1135] -->
<h2><a>Overview of this Physics Application</a></h2>
<div>
@ -88,7 +88,7 @@ The goal is to create a physical vehicle with wheels that can be steered and tha
</ol>
</div>
<!-- EDIT3 SECTION "Overview of this Physics Application" [1136-2115] -->
<h2><a>Creating the Vehicle Chassis</a></h2>
<div>
@ -141,7 +141,7 @@ We now have a node <code>vehicleNode</code> with a visible &quot;car&quot; geome
</p>
</div>
<!-- EDIT4 SECTION "Creating the Vehicle Chassis" [2116-4857] -->
<h2><a>Adding the Wheels</a></h2>
<div>
@ -230,7 +230,7 @@ Not shown here is that we also created a Material <code>mat</code>.
</p>
</div>
<!-- EDIT5 SECTION "Adding the Wheels" [4858-8013] -->
<h2><a>Steering the Vehicle</a></h2>
<div>
@ -304,7 +304,7 @@ Remember, the standard input listener code that maps the actions to keys can be
</p>
</div>
<!-- EDIT6 SECTION "Steering the Vehicle" [8014-10651] -->
<h2><a>Detecting Collisions</a></h2>
<div>
@ -314,7 +314,7 @@ Read the <a href="/com/jme3/gde/core/docs/jme3/advanced/physics#responding_to_a_
</p>
</div>
<!-- EDIT7 SECTION "Detecting Collisions" [10652-10991] -->
<h2><a>Best Practices</a></h2>
<div>
@ -334,7 +334,7 @@ For a more advanced example, look at <object classid="java:org.netbeans.modules.
</span></div>
</div>
<div>
<!-- EDIT8 SECTION "Best Practices" [10992-] --><div>
<div><sup><a href="#fnt__1">1)</a></sup>
<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="https://docs.google.com/Doc?docid=0AXVUZ5xw6XpKZGNuZG56a3FfMzU0Z2NyZnF4Zmo&amp;hl=en"><param name="text" value="<html><u>https://docs.google.com/Doc?docid=0AXVUZ5xw6XpKZGNuZG56a3FfMzU0Z2NyZnF4Zmo&amp;hl=en</u></html>"><param name="textColor" value="blue"></object> </div>
</div>

@ -12,7 +12,7 @@ Other games however require a third-person perspective of the character: In thes
</p>
</div>
<!-- EDIT1 SECTION "Walking Character" [1-727] -->
<h2><a>Sample Code</a></h2>
<div>
@ -45,7 +45,7 @@ The code in this tutorial is a combination of these samples.
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [728-1788] -->
<h2><a>CharacterControl</a></h2>
<div>
@ -101,19 +101,19 @@ Default: 1, because for characters and vehicles, up is typically along the Y axi
Use <code>setWalkDirection(Vector3f.ZERO)</code> to stop a directional motion. </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [3702-4865] -->
<!-- EDIT4 TABLE [3702-4865] -->
<p>
For best practices on how to use <code>setWalkDirection()</code>, see the Navigation Inputs example below.
</p>
</div>
<!-- EDIT3 SECTION "CharacterControl" [1789-4965] -->
<h2><a>Walking Character Demo</a></h2>
<div>
</div>
<!-- EDIT5 SECTION "Walking Character Demo" [4966-5001] -->
<h3><a>Code Skeleton</a></h3>
<div>
<pre>public class WalkingCharacterDemo extends SimpleApplication
@ -135,7 +135,7 @@ For best practices on how to use <code>setWalkDirection()</code>, see the Naviga
public void onAnimChange&#40;AnimControl control, AnimChannel channel, String animName&#41; &#123; &#125;</pre>
</div>
<!-- EDIT6 SECTION "Code Skeleton" [5002-5619] -->
<h3><a>Overview</a></h3>
<div>
@ -165,7 +165,7 @@ To create a walking character:
</ol>
</div>
<!-- EDIT7 SECTION "Overview" [5620-6143] -->
<h3><a>Activate Physics</a></h3>
<div>
<pre>private BulletAppState bulletAppState;
@ -178,7 +178,7 @@ public void simpleInitApp&#40;&#41; &#123;
&#125;</pre>
</div>
<!-- EDIT8 SECTION "Activate Physics" [6144-6437] -->
<h3><a>Initialize the Scene</a></h3>
<div>
@ -221,7 +221,7 @@ Also, add a light source to be able to see the scene.
rootNode.addLight&#40;light&#41;;</pre>
</div>
<!-- EDIT9 SECTION "Initialize the Scene" [6438-7904] -->
<h3><a>Create the Animated Character</a></h3>
<div>
@ -263,7 +263,7 @@ public void simpleInitApp&#40;&#41; &#123;
</p>
</div>
<!-- EDIT10 SECTION "Create the Animated Character" [7905-9242] -->
<h3><a>Set Up AnimControl and AnimChannels</a></h3>
<div>
@ -291,7 +291,7 @@ The attackChannel only controls one arm, while the walking channels controls the
</p>
</div>
<!-- EDIT11 SECTION "Set Up AnimControl and AnimChannels" [9243-10268] -->
<h3><a>Add ChaseCam / CameraNode</a></h3>
<div>
<pre>private ChaseCamera chaseCam;
@ -305,7 +305,7 @@ public void simpleInitApp&#40;&#41; &#123;
...</pre>
</div>
<!-- EDIT12 SECTION "Add ChaseCam / CameraNode" [10269-10488] -->
<h3><a>Handle Navigation</a></h3>
<div>
@ -428,4 +428,5 @@ public void onAnimChange&#40;AnimControl control, AnimChannel channel, String an
</span></div>
</div>
<!-- EDIT13 SECTION "Handle Navigation" [10489-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:walking_character?do=export_xhtmlbody">view online version</a></em></p>

@ -21,7 +21,7 @@ Here is some background info for JME3&#039;s basic water implementation:
</p>
</div>
<!-- EDIT1 SECTION "Simple Water" [1-362] -->
<h2><a>SimpleWaterProcessor</a></h2>
<div>
@ -60,7 +60,7 @@ To achieve a water effect, JME3 uses shaders and a special material, <code>Commo
</ol>
</div>
<!-- EDIT2 SECTION "SimpleWaterProcessor" [363-1687] -->
<h2><a>Usage</a></h2>
<div>
@ -121,7 +121,7 @@ To achieve a water effect, JME3 uses shaders and a special material, <code>Commo
</ol>
</div>
<!-- EDIT3 SECTION "Usage" [1688-2762] -->
<h2><a>Sample Code</a></h2>
<div>
@ -160,7 +160,7 @@ water.setMaterial&#40;waterProcessor.getMaterial&#40;&#41;&#41;;
rootNode.attachChild&#40;water&#41;;</pre>
</div>
<!-- EDIT4 SECTION "Sample Code" [2763-4062] -->
<h2><a>Settings</a></h2>
<div>
@ -209,4 +209,5 @@ You can offer a switch to set the water Material to a static texture – for use
</p>
</div>
<!-- EDIT5 SECTION "Settings" [4063-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:water?do=export_xhtmlbody">view online version</a></em></p>

@ -8,12 +8,12 @@ This is a draft of a feature that is work in progress. If you have questions or
</p>
</div>
<!-- EDIT1 SECTION "Android Support in the jMonkeyEngine" [1-294] -->
<h2><a>Requirements</a></h2>
<div>
</div>
<!-- EDIT2 SECTION "Requirements" [295-317] -->
<h3><a>Developer Requirements</a></h3>
<div>
<ul>
@ -32,7 +32,7 @@ This is a draft of a feature that is work in progress. If you have questions or
</ul>
</div>
<!-- EDIT3 SECTION "Developer Requirements" [318-609] -->
<h3><a>User Requirements</a></h3>
<div>
<ul>
@ -45,12 +45,12 @@ This is a draft of a feature that is work in progress. If you have questions or
</ul>
</div>
<!-- EDIT4 SECTION "User Requirements" [610-925] -->
<h2><a>Features</a></h2>
<div>
</div>
<!-- EDIT5 SECTION "Features" [926-945] -->
<h3><a>JMonkeyEngine3 Android Integration</a></h3>
<div>
<ul>
@ -79,7 +79,7 @@ This is a draft of a feature that is work in progress. If you have questions or
</ul>
</div>
<!-- EDIT6 SECTION "JMonkeyEngine3 Android Integration" [946-1479] -->
<h3><a>jMonkeyEngine SDK Android Integration</a></h3>
<div>
@ -97,7 +97,7 @@ Mobile deployment is a &quot;one-click&quot; option next to Desktop/WebStart/App
</ul>
</div>
<!-- EDIT7 SECTION "jMonkeyEngine SDK Android Integration" [1480-1823] -->
<h2><a>Beta Instructions</a></h2>
<div>
<ol>
@ -229,7 +229,7 @@ Activating the nbandroid plugin in the jMonkeyEngine <acronym title="Software De
</ul>
</div>
<!-- EDIT8 SECTION "Beta Instructions" [1824-6351] -->
<h2><a>Android Considerations</a></h2>
<div>
@ -253,7 +253,7 @@ You can use the jMonkeyEngine <acronym title="Software Development Kit">SDK</acr
</p>
</div>
<!-- EDIT9 SECTION "Android Considerations" [6352-7718] -->
<h2><a>Using Android specific functions</a></h2>
<div>
@ -275,7 +275,7 @@ Note that you have to build the whole project once to make (new) classes in the
</p>
</div>
<!-- EDIT10 SECTION "Using Android specific functions" [7719-9499] -->
<h2><a>More Info</a></h2>
<div>
@ -299,4 +299,5 @@ The <acronym title="Software Development Kit">SDK</acronym> will later provide t
</span></div>
</div>
<!-- EDIT11 SECTION "More Info" [9500-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:android?do=export_xhtmlbody">view online version</a></em></p>

@ -17,7 +17,7 @@ This tutorial shows how to add an animation controller and channels, and how to
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (7) - Hello Animation" [1-311] -->
<h2><a>Sample Code</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -80,7 +80,7 @@ public class HelloAnimation extends SimpleApplication
inputManager.addMapping&#40;&quot;Walk&quot;, new KeyTrigger&#40;KeyInput.KEY_SPACE&#41;&#41;;
inputManager.addListener&#40;actionListener, &quot;Walk&quot;&#41;;
&#125;
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Walk&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
if &#40;!channel.getAnimationName&#40;&#41;.equals&#40;&quot;Walk&quot;&#41;&#41; &#123;
@ -93,7 +93,7 @@ public class HelloAnimation extends SimpleApplication
&#125;</pre>
</div>
<!-- EDIT2 SECTION "Sample Code" [312-2738] -->
<h2><a>Creating and Loading Animated Models</a></h2>
<div>
@ -122,7 +122,7 @@ Don&#039;t forget to add a light source to make the material visible.
</p>
</div>
<!-- EDIT3 SECTION "Creating and Loading Animated Models" [2739-4159] -->
<h2><a>Animation Controler and Channel</a></h2>
<div>
@ -152,7 +152,7 @@ After you load the animated model, you register it to the Animation Controller.
...</pre>
</div>
<!-- EDIT4 SECTION "Animation Controler and Channel" [4160-4997] -->
<h2><a>Responding to Animation Events</a></h2>
<div>
@ -177,7 +177,7 @@ Add <code>implements AnimEventListener</code> to the class declaration. This int
&#125;</pre>
</div>
<!-- EDIT5 SECTION "Responding to Animation Events" [4998-5885] -->
<h2><a>Trigger Animations After User Input</a></h2>
<div>
@ -221,7 +221,7 @@ Test for each action by name, and set the channel to the corresponding animation
<li><div> Optionally, use channel.setTime() to Fast-forward or rewind to a certain moment in time of this animation.</div>
</li>
</ul>
<pre> private ActionListener&#40;&#41; &#123;
<pre> private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Walk&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
if &#40;!channel.getAnimationName&#40;&#41;.equals&#40;&quot;Walk&quot;&#41;&#41;&#123;
@ -233,7 +233,7 @@ Test for each action by name, and set the channel to the corresponding animation
&#125;;</pre>
</div>
<!-- EDIT6 SECTION "Trigger Animations After User Input" [5886-7774] -->
<h2><a>Exercises</a></h2>
<div>
@ -251,7 +251,7 @@ Make a mouse click trigger another animation sequence!
</li>
<li><div> Create a new key trigger mapping and action (see: <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_input_system.html">Hello Input</a>)</div>
</li>
<li><div> Tip: Do you want to find out what animation sequences are available in the model? Use: <pre>for &#40;System.out.println&#40;anim&#41;; &#125;</pre>
<li><div> Tip: Do you want to find out what animation sequences are available in the model? Use: <pre>for &#40;String anim : control.getAnimationNames&#40;&#41;&#41; &#123; System.out.println&#40;anim&#41;; &#125;</pre>
</div>
</li>
</ol>
@ -302,7 +302,7 @@ Can you identify individual bones in the skeleton?
</p>
</div>
<!-- EDIT7 SECTION "Exercises" [7775-9642] -->
<h2><a>Conclusion</a></h2>
<div>
@ -332,4 +332,5 @@ See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer">
</span></div>
</div>
<!-- EDIT8 SECTION "Conclusion" [9643-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_animation?do=export_xhtmlbody">view online version</a></em></p>

@ -22,7 +22,7 @@ In this tutorial we will learn to load 3-D models and text into the scene graph,
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (3) - Hello Assets" [1-616] -->
<h2><a>Code Sample</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -55,7 +55,7 @@ public class HelloAssets extends SimpleApplication &#123;
rootNode.attachChild&#40;teapot&#41;;
&nbsp;
// Create a wall with a simple texture from test_data
Box&#40;Vector3f.ZERO, 2.5f,2.5f,1.0f&#41;;
Box box = new Box&#40;Vector3f.ZERO, 2.5f,2.5f,1.0f&#41;;
Spatial wall = new Geometry&#40;&quot;Box&quot;, box &#41;;
Material mat_brick = new Material&#40;
assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -93,7 +93,7 @@ Build and run the code sample. You should see a green Ninja with a colorful teap
</p>
</div>
<!-- EDIT2 SECTION "Code Sample" [617-3227] -->
<h2><a>The Asset Manager</a></h2>
<div>
@ -132,7 +132,7 @@ This is just a suggested best practice, you can name the directories in the asse
</p>
</div>
<!-- EDIT3 SECTION "The Asset Manager" [3228-4057] -->
<h3><a>Loading Textures</a></h3>
<div>
@ -141,7 +141,7 @@ This is just a suggested best practice, you can name the directories in the asse
Place your textures in a subdirectory of <code>assets/Textures/</code>. Load the texture into the material before you set the Material. The following code sample is from the <code>simpleInitApp()</code> method and loads a simple wall model:
</p>
<pre>// Create a wall with a simple texture from test_data
Box&#40;Vector3f.ZERO, 2.5f,2.5f,1.0f&#41;;
Box box = new Box&#40;Vector3f.ZERO, 2.5f,2.5f,1.0f&#41;;
Spatial wall = new Geometry&#40;&quot;Box&quot;, box &#41;;
Material mat_brick = new Material&#40;
assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -156,7 +156,7 @@ In this case, you <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_material.
</p>
</div>
<!-- EDIT4 SECTION "Loading Textures" [4058-4974] -->
<h3><a>Loading Text and Fonts</a></h3>
<div>
@ -179,7 +179,7 @@ guiNode.attachChild&#40;helloText&#41;;</pre>
</p>
</div>
<!-- EDIT5 SECTION "Loading Text and Fonts" [4975-5820] -->
<h3><a>Loading a Model</a></h3>
<div>
@ -203,7 +203,7 @@ Note that you do no need to create a Material if you exported the model with a m
</p>
</div>
<!-- EDIT6 SECTION "Loading a Model" [5821-6749] -->
<h3><a>Loading Assets From Custom Paths</a></h3>
<div>
@ -233,7 +233,7 @@ JME3 offers ClasspathLocator, ZipLocator, FileLocator, HttpZipLocator, and UrlLo
</p>
</div>
<!-- EDIT7 SECTION "Loading Assets From Custom Paths" [6750-7767] -->
<h2><a>Creating Models and Scenes</a></h2>
<div>
@ -272,7 +272,7 @@ If you use Blender, export your models as Ogre <acronym title="Extensible Markup
</ol>
</div>
<!-- EDIT8 SECTION "Creating Models and Scenes" [7768-8927] -->
<h3><a>Model File Formats</a></h3>
<div>
@ -317,7 +317,7 @@ If your executable gets a runtime exception, make sure you have converted all mo
</p>
</div>
<!-- EDIT9 SECTION "Model File Formats" [8928-10780] -->
<h3><a>Loading Models and Scenes</a></h3>
<div>
<div><table>
@ -346,9 +346,9 @@ rootNode.attachChild&#40;scene&#41;;</pre>
</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [10818-11872] -->
<!-- EDIT11 TABLE [10818-11872] -->
</div>
<!-- EDIT10 SECTION "Loading Models and Scenes" [10781-11873] -->
<h2><a>Excercise - How to Load Assets</a></h2>
<div>
@ -453,7 +453,7 @@ Again, you should see the Ninja+wall+teapot standing in a town. </div>
</ol>
</div>
<!-- EDIT12 SECTION "Excercise - How to Load Assets" [11874-15208] -->
<h2><a>Conclusion</a></h2>
<div>
@ -497,4 +497,5 @@ Let&#039;s add some action to the scene and continue with the <a href="/com/jme3
</span></div>
</div>
<!-- EDIT13 SECTION "Conclusion" [15209-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_asset?do=export_xhtmlbody">view online version</a></em></p>

@ -11,7 +11,7 @@ This tutorial explains how to add 3D sound to a game, and how make sounds play t
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (11) - Hello Audio" [1-477] -->
<h2><a>Sample Code</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -43,7 +43,7 @@ public class HelloAudio extends SimpleApplication &#123;
flyCam.setMoveSpeed&#40;40&#41;;
&nbsp;
/** just a blue box floating in space */
Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Box box1 = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
player = new Geometry&#40;&quot;Player&quot;, box1&#41;;
Material mat1 = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -81,7 +81,7 @@ public class HelloAudio extends SimpleApplication &#123;
&#125;
&nbsp;
/** Defining the &quot;Shoot&quot; action: Play a gun sound. */
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
@Override
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Shoot&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
@ -104,7 +104,7 @@ When you run the sample, you should see a blue cube. You should hear a nature-li
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [478-3313] -->
<h2><a>Understanding the Code Sample</a></h2>
<div>
@ -122,7 +122,7 @@ Let&#039;s have a closer look at <code>initAudio()</code> to learn how to use <c
</p>
</div>
<!-- EDIT3 SECTION "Understanding the Code Sample" [3314-3923] -->
<h2><a>AudioNodes</a></h2>
<div>
@ -178,7 +178,7 @@ Here you make audio_nature a positional sound that comes from a certain place. F
</p>
</div>
<!-- EDIT4 SECTION "AudioNodes" [3924-6585] -->
<h2><a>Triggering Sound</a></h2>
<div>
@ -196,7 +196,7 @@ Let&#039;s have a closer look at <code>initKeys()</code>: As you learned in prev
Setting up the ActionListener should also be familiar from previous tutorials. You declare that, when the trigger (the mouse button) is pressed and released, you want to play a gun sound.
</p>
<pre> /** Defining the &quot;Shoot&quot; action: Play a gun sound. */
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
@Override
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Shoot&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
@ -210,7 +210,7 @@ Since you want to be able to shoot fast repeatedly, so you do not want to wait f
</p>
</div>
<!-- EDIT5 SECTION "Triggering Sound" [6586-8050] -->
<h2><a>Ambient or Situational?</a></h2>
<div>
@ -246,7 +246,7 @@ Apart from the looping boolean, another difference is where <code>play()</code>
</div>
</li>
<li><div> The gunshot sound, however, is triggered situationally, once, only as part of the <code>Shoot</code> input action that you defined in the ActionListener.<pre> /** Defining the &quot;Shoot&quot; action: Play a gun sound. */
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
@Override
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Shoot&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
@ -259,7 +259,7 @@ Apart from the looping boolean, another difference is where <code>play()</code>
</ul>
</div>
<!-- EDIT6 SECTION "Ambient or Situational?" [8051-9286] -->
<h2><a>Buffered or Streaming?</a></h2>
<div>
@ -277,7 +277,7 @@ Typically, you stream long sounds, and buffer short sounds.
</p>
</div>
<!-- EDIT7 SECTION "Buffered or Streaming?" [9287-9709] -->
<h2><a>Play() or PlayInstance()?</a></h2>
<div>
<div><table>
@ -294,9 +294,9 @@ Typically, you stream long sounds, and buffer short sounds.
<td>The same sound cannot play twice at the same time.</td><td>The same sounds can play multiple times and overlap.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [9749-9993] -->
<!-- EDIT9 TABLE [9749-9993] -->
</div>
<!-- EDIT8 SECTION "Play() or PlayInstance()?" [9710-9994] -->
<h2><a>Your Ear in the Scene</a></h2>
<div>
@ -318,7 +318,7 @@ If you don&#039;t do that, the results of 3D audio will be quite random.
</p>
</div>
<!-- EDIT10 SECTION "Your Ear in the Scene" [9995-10697] -->
<h2><a>Global, Directional, Positional?</a></h2>
<div>
@ -345,7 +345,7 @@ In short, you must choose in every situation whether it makes sense for a sound
</p>
</div>
<!-- EDIT11 SECTION "Global, Directional, Positional?" [10698-12056] -->
<h2><a>Conclusion</a></h2>
<div>
@ -380,4 +380,5 @@ See also:
</span></div>
</div>
<!-- EDIT12 SECTION "Conclusion" [12057-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_audio?do=export_xhtmlbody">view online version</a></em></p>

@ -18,7 +18,7 @@ You can use the solution shown here for first-person shooters, mazes, and simila
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (9) - Hello Collision" [1-595] -->
<h2><a>Sample Code</a></h2>
<div>
@ -187,7 +187,7 @@ Run the sample. You should see a town square with houses and a monument. Use the
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [596-7019] -->
<h2><a>Understanding the Code</a></h2>
<div>
@ -230,7 +230,7 @@ Let&#039;s have a look at all the details:
</p>
</div>
<!-- EDIT3 SECTION "Understanding the Code" [7020-8244] -->
<h2><a>Initializing the Game</a></h2>
<div>
@ -254,7 +254,7 @@ As usual, you initialize the game in the <code>simpleInitApp()</code> method.
</ol>
</div>
<!-- EDIT4 SECTION "Initializing the Game" [8245-8841] -->
<h3><a>The Physics-Controlled Scene</a></h3>
<div>
@ -301,7 +301,7 @@ To use collision detection, you add a RigidBodyControl to the <code>sceneModel</
</p>
</div>
<!-- EDIT5 SECTION "The Physics-Controlled Scene" [8842-10815] -->
<h3><a>The Physics-Controlled Player</a></h3>
<div>
@ -353,7 +353,7 @@ Finally we put the player in its starting position and update its state – reme
</p>
</div>
<!-- EDIT6 SECTION "The Physics-Controlled Player" [10816-13580] -->
<h3><a>PhysicsSpace</a></h3>
<div>
@ -369,7 +369,7 @@ The invisible body of the character just sits there on the physical floor. It ca
</p>
</div>
<!-- EDIT7 SECTION "PhysicsSpace" [13581-13982] -->
<h2><a>Navigation</a></h2>
<div>
@ -387,7 +387,7 @@ In short, you must re-define the flyCam&#039;s navigational key mappings to use
</p>
</div>
<!-- EDIT8 SECTION "Navigation" [13983-14930] -->
<h3><a>1. inputManager</a></h3>
<div>
@ -413,7 +413,7 @@ You can move this block of code into an auxiliary method <code>setupKeys()</code
</p>
</div>
<!-- EDIT9 SECTION "1. inputManager" [14931-15841] -->
<h3><a>2. onAction()</a></h3>
<div>
@ -444,7 +444,7 @@ For all other directions: Every time the user presses one of the WASD keys, you
</p>
</div>
<!-- EDIT10 SECTION "2. onAction()" [15842-17258] -->
<h3><a>3. setWalkDirection()</a></h3>
<div>
@ -494,7 +494,7 @@ This is how the walking is triggered:
</p>
</div>
<!-- EDIT11 SECTION "3. setWalkDirection()" [17259-19293] -->
<h2><a>Conclusion</a></h2>
<div>
@ -535,4 +535,5 @@ Related info:
</span></div>
</div>
<!-- EDIT12 SECTION "Conclusion" [19294-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_collision?do=export_xhtmlbody">view online version</a></em></p>

@ -47,7 +47,7 @@ Particle effects can be animated (e.g. sparks, drops) and static (strands of gra
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (12) - Hello Effects" [1-937] -->
<h2><a>Sample Code</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -116,7 +116,7 @@ You should see an explosion that sends debris flying, and a fire.
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [938-3321] -->
<h3><a>Texture Animation and Variation</a></h3>
<div>
@ -164,7 +164,7 @@ The fire material is created the same way, just using &quot;Effects/Explosion/fl
</p>
</div>
<!-- EDIT3 SECTION "Texture Animation and Variation" [3322-5180] -->
<h3><a>Default Particle Textures</a></h3>
<div>
@ -193,14 +193,14 @@ The following particle textures included in <code>test-data.jar</code>. You can
<td> Effects/Smoke/Smoke.png </td><td> 1*15 </td><td> <img src="/wiki/lib/exe/fetch.php"> </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [5329-6128] -->
<!-- EDIT5 TABLE [5329-6128] -->
<p>
Copy them into you <code>assets/Effects</code> directory to use them.
</p>
</div>
<!-- EDIT4 SECTION "Default Particle Textures" [5181-6191] -->
<h2><a>Creating Custom Textures</a></h2>
<div>
@ -246,7 +246,7 @@ Create a grayscale texture in a graphic editor, and save it to your <code>assets
</p>
</div>
<!-- EDIT6 SECTION "Creating Custom Textures" [6192-7589] -->
<h3><a>Emitter Parameters</a></h3>
<div>
@ -318,7 +318,7 @@ Vector3f.NAN <br/>
<td> gravity </td><td> <code>setGravity()</code> </td><td> 0,1,0 </td><td> Whether particles fall down (positive) or fly up (negative). Set to 0f for a zero-g effect where particles keep flying. </td>
</tr>
</table></div>
<!-- EDIT2 TABLE [8160-9632] -->
<!-- EDIT8 TABLE [8160-9632] -->
<p>
You can find details about <a href="/com/jme3/gde/core/docs/jme3/advanced/particle_emitters#configure_parameters.html">effect parameters</a> here.
@ -331,7 +331,7 @@ Add and modify one parameter at a time, and try different values until you get t
</p>
</div>
<!-- EDIT7 SECTION "Emitter Parameters" [7590-10141] -->
<h2><a>Exercise</a></h2>
<div>
@ -351,7 +351,7 @@ Can you &quot;invert&quot; the fire effect into a small waterfall? Here some tip
</ul>
</div>
<!-- EDIT9 SECTION "Exercise" [10142-10432] -->
<h2><a>Conclusion</a></h2>
<div>
@ -374,4 +374,5 @@ Now you move on to another exciting chapter – the simulation of <object classi
</span></div>
</div>
<!-- EDIT10 SECTION "Conclusion" [10433-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_effects?do=export_xhtmlbody">view online version</a></em></p>

@ -17,7 +17,7 @@ Every game has its custom keybindings, and this tutorial explains how you define
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (5) - Hello Input System" [1-633] -->
<h2><a>Sample Code</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -47,7 +47,7 @@ public class HelloInput extends SimpleApplication &#123;
&nbsp;
@Override
public void simpleInitApp&#40;&#41; &#123;
Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Box b = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
player = new Geometry&#40;&quot;Player&quot;, b&#41;;
Material mat = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
mat.setColor&#40;&quot;Color&quot;, ColorRGBA.Blue&#41;;
@ -70,7 +70,7 @@ public class HelloInput extends SimpleApplication &#123;
&nbsp;
&#125;
&nbsp;
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Pause&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
isRunning = !isRunning;
@ -112,7 +112,7 @@ Build and run the example.
</ul>
</div>
<!-- EDIT2 SECTION "Sample Code" [634-3678] -->
<h2><a>Defining Mappings and Triggers</a></h2>
<div>
@ -172,7 +172,7 @@ This code goes into the <code>simpleInitApp()</code> method. But since we will l
</p>
</div>
<!-- EDIT3 SECTION "Defining Mappings and Triggers" [3679-5893] -->
<h2><a>Implementing the Actions</a></h2>
<div>
@ -199,7 +199,7 @@ In this example, we trigger the following actions:
<li><div> We also want to check the boolean <code>isRunning</code> before any action (other than unpausing) is executed.</div>
</li>
</ol>
<pre> private ActionListener&#40;&#41; &#123;
<pre> private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Pause&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
isRunning = !isRunning;
@ -267,7 +267,7 @@ It&#039;s okay to use only one of the two Listeners, and not implement the other
</p>
</div>
<!-- EDIT4 SECTION "Implementing the Actions" [5894-9011] -->
<h2><a>Analog, Pressed, or Released?</a></h2>
<div>
@ -318,7 +318,7 @@ Mappings registered to the <strong>ActionListener</strong> are digital either-or
&#125;</pre>
</div>
<!-- EDIT5 SECTION "Analog, Pressed, or Released?" [9012-10381] -->
<h2><a>Table of Triggers</a></h2>
<div>
@ -354,14 +354,14 @@ You can find the list of input constants in the files <code>src/core/com/jme3/in
KeyTrigger(KeyInput.KEY_LEFT), KeyTrigger(KeyInput.KEY_RIGHT) </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [10614-11210] -->
<!-- EDIT7 TABLE [10614-11210] -->
<p>
<strong>Tip:</strong> If you don&#039;t recall an input constant during development, you benefit from an IDE&#039;s code completion functionality: Place the caret after e.g. <code>KeyInput.|</code> and trigger code completion to select possible input identifiers.
</p>
</div>
<!-- EDIT6 SECTION "Table of Triggers" [10382-11444] -->
<h2><a>Exercises</a></h2>
<div>
<ol>
@ -381,7 +381,7 @@ inputManager.addMapping&#40;&quot;Pause&quot;, new KeyTrigger&#40;usersPauseKey
</ol>
</div>
<!-- EDIT8 SECTION "Exercises" [11445-11967] -->
<h2><a>Conclusion</a></h2>
<div>
@ -403,4 +403,5 @@ Now you can already write a little interactive game! But wouldn&#039;t it be coo
</span></div>
</div>
<!-- EDIT9 SECTION "Conclusion" [11968-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_input_system?do=export_xhtmlbody">view online version</a></em></p>

@ -13,7 +13,7 @@ Now that you know how to load assets, such as 3D models, you want to implement s
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (4) - Hello Update Loop" [1-404] -->
<h2><a>Code Sample</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -39,7 +39,7 @@ public class HelloLoop extends SimpleApplication &#123;
@Override
public void simpleInitApp&#40;&#41; &#123;
&nbsp;
Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Box b = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
player = new Geometry&#40;&quot;blue cube&quot;, b&#41;;
Material mat = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -61,7 +61,7 @@ Build and run the file: You see a constantly rotating cube.
</p>
</div>
<!-- EDIT2 SECTION "Code Sample" [405-1613] -->
<h2><a>Understanding the Code</a></h2>
<div>
@ -83,7 +83,7 @@ Now have a closer look at the <code>simpleUpdate()</code> method – this is the
</ul>
</div>
<!-- EDIT3 SECTION "Understanding the Code" [1614-2397] -->
<h2><a>Using the Update Loop</a></h2>
<div>
@ -108,7 +108,7 @@ A rotating object is just a simple example. In the update loop, you typically ha
</ul>
</div>
<!-- EDIT4 SECTION "Using the Update Loop" [2398-3231] -->
<h2><a>Init - Update - Render</a></h2>
<div>
@ -155,7 +155,7 @@ Keep this in mind for later when your application grows.
</p>
</div>
<!-- EDIT5 SECTION "Init - Update - Render" [3232-4501] -->
<h2><a>Exercises</a></h2>
<div>
@ -182,7 +182,7 @@ Look back at the <a href="/com/jme3/gde/core/docs/jme3/beginner/hello_node.html"
</p>
</div>
<!-- EDIT6 SECTION "Exercises" [4502-5111] -->
<h2><a>Conclusion</a></h2>
<div>
@ -214,4 +214,5 @@ See also:
</span></div>
</div>
<!-- EDIT7 SECTION "Conclusion" [5112-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_main_event_loop?do=export_xhtmlbody">view online version</a></em></p>

@ -14,7 +14,7 @@ The term Material includes everything that influences what the surface of a 3D m
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (6) - Hello Materials" [1-510] -->
<h2><a>Sample Code</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -45,7 +45,7 @@ public class HelloMaterial extends SimpleApplication &#123;
@Override
public void simpleInitApp&#40;&#41; &#123;
/** A simple textured cube -- in good MIP map quality. */
Box&#40;new Vector3f&#40;-3f,1.1f,0f&#41;, 1f,1f,1f&#41;;
Box boxshape1 = new Box&#40;new Vector3f&#40;-3f,1.1f,0f&#41;, 1f,1f,1f&#41;;
Geometry cube = new Geometry&#40;&quot;My Textured Box&quot;, boxshape1&#41;;
Material mat_stl = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
Texture tex_ml = assetManager.loadTexture&#40;&quot;Interface/Logo/Monkey.jpg&quot;&#41;;
@ -54,7 +54,7 @@ public class HelloMaterial extends SimpleApplication &#123;
rootNode.attachChild&#40;cube&#41;;
&nbsp;
/** A translucent/transparent texture, similar to a window frame. */
Box&#40;new Vector3f&#40;0f,0f,0f&#41;, 1f,1f,0.01f&#41;;
Box boxshape3 = new Box&#40;new Vector3f&#40;0f,0f,0f&#41;, 1f,1f,0.01f&#41;;
Geometry window_frame = new Geometry&#40;&quot;window frame&quot;, boxshape3&#41;;
Material mat_tt = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
mat_tt.setTexture&#40;&quot;ColorMap&quot;, assetManager.loadTexture&#40;&quot;Textures/ColoredTex/Monkey.png&quot;&#41;&#41;;
@ -66,7 +66,7 @@ public class HelloMaterial extends SimpleApplication &#123;
rootNode.attachChild&#40;window_frame&#41;;
&nbsp;
/** A cube with base color &quot;leaking&quot; through a partially transparent texture */
Box&#40;new Vector3f&#40;3f,-1f,0f&#41;, 1f,1f,1f&#41;;
Box boxshape4 = new Box&#40;new Vector3f&#40;3f,-1f,0f&#41;, 1f,1f,1f&#41;;
Geometry cube_leak = new Geometry&#40;&quot;Leak-through color cube&quot;, boxshape4&#41;;
Material mat_tl = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
mat_tl.setTexture&#40;&quot;ColorMap&quot;, assetManager.loadTexture&#40;&quot;Textures/ColoredTex/Monkey.png&quot;&#41;&#41;;
@ -116,7 +116,7 @@ Move around with the WASD keys to have a closer look at the translucency, and th
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [511-4720] -->
<h2><a>Simple Unshaded Texture</a></h2>
<div>
@ -125,7 +125,7 @@ Move around with the WASD keys to have a closer look at the translucency, and th
Typically you want to give objects in your scene textures: It can be rock, grass, brick, wood, water, metal, paper… A texture is a normal image file in <acronym title="Joint Photographics Experts Group">JPG</acronym> or <acronym title="Portable Network Graphics">PNG</acronym> format. In this example, you create a box with a simple unshaded Monkey texture as material.
</p>
<pre> /** A simple textured cube. */
Box&#40;new Vector3f&#40;-3f,1.1f,0f&#41;, 1f,1f,1f&#41;;
Box boxshape1 = new Box&#40;new Vector3f&#40;-3f,1.1f,0f&#41;, 1f,1f,1f&#41;;
Geometry cube = new Geometry&#40;&quot;My Textured Box&quot;, boxshape1&#41;;
Material mat_stl = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -150,7 +150,7 @@ The ColorMap is the typical material layer where textures go.</div>
</ol>
</div>
<!-- EDIT3 SECTION "Simple Unshaded Texture" [4721-5871] -->
<h2><a>Transparent Unshaded Texture</a></h2>
<div>
@ -171,7 +171,7 @@ For a partially translucent/transparent texture, you need:
</li>
</ul>
<pre> /** A translucent/transparent texture. */
Box&#40;new Vector3f&#40;0f,0f,0f&#41;, 1f,1f,0.01f&#41;;
Box boxshape3 = new Box&#40;new Vector3f&#40;0f,0f,0f&#41;, 1f,1f,0.01f&#41;;
Geometry seethrough = new Geometry&#40;&quot;see-through box&quot;, boxshape3&#41;;
Material mat_tt = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
mat_tt.setTexture&#40;&quot;ColorMap&quot;, assetManager.loadTexture&#40;&quot;Textures/ColoredTex/Monkey.png&quot;&#41;&#41;;
@ -207,7 +207,7 @@ The ColorMap is the material layer where textures go. This <acronym title="Porta
</p>
</div>
<!-- EDIT4 SECTION "Transparent Unshaded Texture" [5872-8173] -->
<h2><a>Shininess and Bumpiness</a></h2>
<div>
@ -274,7 +274,7 @@ Remember that any Lighting.j3md-based material requires a light source, as shown
</p>
</div>
<!-- EDIT5 SECTION "Shininess and Bumpiness" [8174-11057] -->
<h2><a>Default Material Definitions</a></h2>
<div>
@ -299,19 +299,19 @@ DiffuseMap, NormalMap, SpecularMap : Texture2D <br/>
Shininess : Float </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [11197-11667] -->
<!-- EDIT7 TABLE [11197-11667] -->
<p>
For a game, you create custom Materials based on these existing MaterialDefintions – as you have just seen in the example with the shiny rock&#039;s material.
</p>
</div>
<!-- EDIT6 SECTION "Default Material Definitions" [11058-11824] -->
<h2><a>Exercises</a></h2>
<div>
</div>
<!-- EDIT8 SECTION "Exercises" [11825-11847] -->
<h3><a>Exercise 1: Custom .j3m Material</a></h3>
<div>
@ -364,7 +364,7 @@ Using this new custom material <code>LeakThrough.j3m</code> only takes one line.
</p>
</div>
<!-- EDIT9 SECTION "Exercise 1: Custom .j3m Material" [11848-13407] -->
<h3><a>Exercise 2: Bumpiness and Shininess</a></h3>
<div>
@ -394,7 +394,7 @@ Go back to the bumpy rock sample above:
</ol>
</div>
<!-- EDIT10 SECTION "Exercise 2: Bumpiness and Shininess" [13408-13835] -->
<h2><a>Conclusion</a></h2>
<div>
@ -444,4 +444,5 @@ See also
</span></div>
</div>
<!-- EDIT11 SECTION "Conclusion" [13836-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_material?do=export_xhtmlbody">view online version</a></em></p>

@ -37,7 +37,7 @@ You will learn that the scene graph represents the 3D world, and why the rootNod
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (2) - Hello Node" [1-996] -->
<h2><a>Code Sample</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -64,7 +64,7 @@ public class HelloNode extends SimpleApplication &#123;
public void simpleInitApp&#40;&#41; &#123;
&nbsp;
/** create a blue box at coordinates (1,-1,1) */
Box&#40; new Vector3f&#40;1,-1,1&#41;, 1,1,1&#41;;
Box box1 = new Box&#40; new Vector3f&#40;1,-1,1&#41;, 1,1,1&#41;;
Geometry blue = new Geometry&#40;&quot;Box&quot;, box1&#41;;
Material mat1 = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -72,7 +72,7 @@ public class HelloNode extends SimpleApplication &#123;
blue.setMaterial&#40;mat1&#41;;
&nbsp;
/** create a red box straight above the blue one at (1,3,1) */
Box&#40; new Vector3f&#40;1,3,1&#41;, 1,1,1&#41;;
Box box2 = new Box&#40; new Vector3f&#40;1,3,1&#41;, 1,1,1&#41;;
Geometry red = new Geometry&#40;&quot;Box&quot;, box2&#41;;
Material mat2 = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -96,7 +96,7 @@ Build and run the code sample. You should see two colored boxes tilted at the sa
</p>
</div>
<!-- EDIT2 SECTION "Code Sample" [997-3000] -->
<h2><a>Understanding the Terminology</a></h2>
<div>
@ -125,7 +125,7 @@ In this tutorial, you learn some new terms:
<td>Position/move, turn, or resize an object</td><td>Translate, rotate, scale an object. Transform an object.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [3089-3506] -->
<!-- EDIT4 TABLE [3089-3506] -->
<p>
Every JME3 application has a rootNode: Your game automatically inherits the <code>rootNode</code> object from SimpleApplication. Everything attached to the rootNode is part of the scene graph. The elements of the scene graph are Spatials.
@ -152,9 +152,9 @@ Every JME3 application has a rootNode: Your game automatically inherits the <cod
<th> Examples: </th><td> A box, a sphere, a player, a building, a piece of terrain, a vehicle, missiles, NPCs, etc… </td><td> The <code>rootNode</code>, a floor node grouping several terrains, a custom vehicle-with-passengers node, a player-with-weapon node, an audio node, etc… </td>
</tr>
</table></div>
<!-- EDIT2 TABLE [3922-4415] -->
<!-- EDIT5 TABLE [3922-4415] -->
</div>
<!-- EDIT3 SECTION "Understanding the Terminology" [3001-4416] -->
<h2><a>Understanding the Code</a></h2>
<div>
@ -174,7 +174,7 @@ What happens in the code snippet? You use the <code>simpleInitApp()</code> metho
</li>
<li><div> Create a blue material. </div>
</li>
<li><div> Apply the blue material to the Box Geometry. <pre> Box&#40; new Vector3f&#40;1,-1,1&#41;, 1,1,1&#41;;
<li><div> Apply the blue material to the Box Geometry. <pre> Box box1 = new Box&#40; new Vector3f&#40;1,-1,1&#41;, 1,1,1&#41;;
Geometry blue = new Geometry&#40;&quot;Box&quot;, box1&#41;;
Material mat1 = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -194,7 +194,7 @@ What happens in the code snippet? You use the <code>simpleInitApp()</code> metho
</li>
<li><div> Create a red material. </div>
</li>
<li><div> Apply the red material to the Box Geometry. <pre> Box&#40; new Vector3f&#40;1,3,1&#41;, 1,1,1&#41;;
<li><div> Apply the red material to the Box Geometry. <pre> Box box2 = new Box&#40; new Vector3f&#40;1,3,1&#41;, 1,1,1&#41;;
Geometry red = new Geometry&#40;&quot;Box&quot;, box2&#41;;
Material mat2 = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -240,7 +240,7 @@ If you run the app with only the code up to here, you see two cubes: A red cube
</ol>
</div>
<!-- EDIT6 SECTION "Understanding the Code" [4417-6683] -->
<h3><a>What is a Pivot Node?</a></h3>
<div>
@ -259,7 +259,7 @@ You can transform (e.g. rotate) Geometries around their own center, or around a
</ul>
</div>
<!-- EDIT7 SECTION "What is a Pivot Node?" [6684-8004] -->
<h2><a>How do I Populate the Scenegraph?</a></h2>
<div>
<div><table>
@ -267,7 +267,7 @@ You can transform (e.g. rotate) Geometries around their own center, or around a
<th> Task…? </th><th> Solution! </th>
</tr>
<tr>
<td> Create a Spatial </td><td> Create a shape, wrap it into a Geometry, and give it a Material. For example: <pre>Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
<td> Create a Spatial </td><td> Create a shape, wrap it into a Geometry, and give it a Material. For example: <pre>Box mesh = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Geometry thing = new Geometry&#40;&quot;thing&quot;, mesh&#41;;
Material mat = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/ShowNormals.j3md&quot;&#41;;
@ -293,9 +293,9 @@ thing.setMaterial&#40;mat&#41;;</pre>
<td> Specify what should be loaded at the start </td><td> Everything you initialize and attach to the <code>rootNode</code> in the <code>simpleInitApp()</code> method is part of the scene at the start of the game. </td>
</tr>
</table></div>
<!-- EDIT3 TABLE [8052-9314] -->
<!-- EDIT9 TABLE [8052-9314] -->
</div>
<!-- EDIT8 SECTION "How do I Populate the Scenegraph?" [8005-9315] -->
<h2><a>How do I Transform Spatials?</a></h2>
<div>
@ -319,7 +319,7 @@ To move a Spatial <em>to</em> specific coordinates, such as (0,40.2f,-2), use: <
</td><td>+right -left</td><td>+up -down</td><td>+forward -backward</td>
</tr>
</table></div>
<!-- EDIT4 TABLE [9439-9955] --><div><table>
<!-- EDIT11 TABLE [9439-9955] --><div><table>
<tr>
<th> Scaling resizes Spatials </th><th> X-axis </th><th> Y-axis </th><th> Z-axis </th>
</tr>
@ -331,7 +331,7 @@ To scale a Spatial 10 times longer, one tenth the height, and keep the same widt
</td><td>length</td><td>height</td><td>width</td>
</tr>
</table></div>
<!-- EDIT5 TABLE [9957-10446] --><div><table>
<!-- EDIT12 TABLE [9957-10446] --><div><table>
<tr>
<th> Rotation turns Spatials </th><th> X-axis </th><th> Y-axis </th><th> Z-axis </th>
</tr>
@ -347,9 +347,9 @@ To roll an object 180° around the z axis: <pre>thing.rotate&#40; 0f , 0f , 180*
</td><td>pitch = nodding your head</td><td>yaw = shaking your head</td><td>roll = cocking your head</td>
</tr>
</table></div>
<!-- EDIT6 TABLE [10448-11229] -->
<!-- EDIT13 TABLE [10448-11229] -->
</div>
<!-- EDIT10 SECTION "How do I Transform Spatials?" [9316-11230] -->
<h2><a>How do I Troubleshoot Spatials?</a></h2>
<div>
@ -378,9 +378,9 @@ Did you rotate around the right axis? </td>
<td> A Geometry has an unexpected Color or Material. </td><td> Did you reuse a Material from another Geometry and have inadvertently changed its properties? (If so, consider cloning it: mat2 = mat.clone(); ) </td>
</tr>
</table></div>
<!-- EDIT7 TABLE [11362-12335] -->
<!-- EDIT15 TABLE [11362-12335] -->
</div>
<!-- EDIT14 SECTION "How do I Troubleshoot Spatials?" [11231-12336] -->
<h2><a>How do I Add Custom Data to Spatials?</a></h2>
<div>
@ -413,7 +413,7 @@ By using different Strings keys (here the key is <code>pivot id</code>), you can
</p>
</div>
<!-- EDIT16 SECTION "How do I Add Custom Data to Spatials?" [12337-13702] -->
<h2><a>Conclusion</a></h2>
<div>
@ -435,4 +435,5 @@ Since standard shapes like spheres and boxes get old fast, continue with the nex
</span></div>
</div>
<!-- EDIT17 SECTION "Conclusion" [13703-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_node?do=export_xhtmlbody">view online version</a></em></p>

@ -39,7 +39,7 @@ All these physical properties can be simulated in JME3. Let&#039;s have a look a
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (13) - Hello Physics" [1-1174] -->
<h2><a>Sample Code</a></h2>
<div>
@ -136,7 +136,7 @@ public class HelloPhysics extends SimpleApplication &#123;
* Every time the shoot action is triggered, a new cannon ball is produced.
* The ball is set up to fly from the camera position in the camera direction.
*/</span>
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;shoot&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
makeCannonBall&#40;&#41;;
@ -246,7 +246,7 @@ You should see a brick wall. Click to shoot cannon balls. Watch the bricks fall
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [1175-8560] -->
<h2><a>A Basic Physics Application</a></h2>
<div>
@ -274,12 +274,12 @@ The BulletAppState gives the game access to a PhysicsSpace. The PhysicsSpace let
</p>
</div>
<!-- EDIT3 SECTION "A Basic Physics Application" [8561-9544] -->
<h2><a>Creating Bricks and Cannon Balls</a></h2>
<div>
</div>
<!-- EDIT4 SECTION "Creating Bricks and Cannon Balls" [9545-9590] -->
<h3><a>Geometries</a></h3>
<div>
@ -308,7 +308,7 @@ In this &quot;shoot at the wall&quot; example, you use Geometries such as cannon
&#125;</pre>
</div>
<!-- EDIT5 SECTION "Geometries" [9591-10686] -->
<h3><a>RigidBodyControl: Brick</a></h3>
<div>
@ -370,7 +370,7 @@ This code sample does the following:
</ol>
</div>
<!-- EDIT6 SECTION "RigidBodyControl: Brick" [10687-12209] -->
<h3><a>RigidBodyControl: Cannonball</a></h3>
<div>
@ -433,7 +433,7 @@ Since you are shooting cannon balls, the last line accelerates the ball in the d
</p>
</div>
<!-- EDIT7 SECTION "RigidBodyControl: Cannonball" [12210-13807] -->
<h3><a>RigidBodyControl: Floor</a></h3>
<div>
@ -488,7 +488,7 @@ This code sample does the following:
</ol>
</div>
<!-- EDIT8 SECTION "RigidBodyControl: Floor" [13808-15232] -->
<h2><a>Creating the Scene</a></h2>
<div>
@ -513,7 +513,7 @@ These methods are each called once from the <code>simpleInitApp()</code> method
</p>
</div>
<!-- EDIT9 SECTION "Creating the Scene" [15233-16061] -->
<h2><a>The Cannon Ball Shooting Action</a></h2>
<div>
@ -530,7 +530,7 @@ In the <code>initInputs()</code> method, you add an input mapping that triggers
<p>
You define the actual action of shooting a new cannon ball as follows:
</p>
<pre> private ActionListener&#40;&#41; &#123;
<pre> private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;shoot&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
makeCannonBall&#40;&#41;;
@ -543,7 +543,7 @@ In the moment the cannonball appears in the scene, it flies off with the velocit
</p>
</div>
<!-- EDIT10 SECTION "The Cannon Ball Shooting Action" [16062-17102] -->
<h2><a>Moving a Physical Spatial</a></h2>
<div>
@ -570,12 +570,12 @@ Learn more about static versus kinematic versus dynamic in the <a href="/com/jme
</p>
</div>
<!-- EDIT11 SECTION "Moving a Physical Spatial" [17103-18072] -->
<h2><a>Excercises</a></h2>
<div>
</div>
<!-- EDIT12 SECTION "Excercises" [18073-18096] -->
<h3><a>Exercise 1: Debug Shapes</a></h3>
<div>
@ -592,7 +592,7 @@ Now you see the collisionShapes of the bricks and spheres, and the floor highlig
</p>
</div>
<!-- EDIT13 SECTION "Exercise 1: Debug Shapes" [18097-18362] -->
<h3><a>Exercise 2: No Mo&#039; Static</a></h3>
<div>
@ -602,7 +602,7 @@ What happens if you give a static node, such as the floor, a mass of more than 0
</p>
</div>
<!-- EDIT14 SECTION "Exercise 2: No Mo' Static" [18363-18483] -->
<h3><a>Exercise 3: Behind the Curtain</a></h3>
<div>
@ -620,7 +620,7 @@ Using physics everywhere in a game sounds like a cool idea, but it is easily ove
</p>
</div>
<!-- EDIT15 SECTION "Exercise 3: Behind the Curtain" [18484-19489] -->
<h2><a>Conclusion</a></h2>
<div>
@ -644,4 +644,5 @@ You have learned how to activate the jBullet PhysicsSpace in an application by a
</span></div>
</div>
<!-- EDIT16 SECTION "Conclusion" [19490-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_physics?do=export_xhtmlbody">view online version</a></em></p>

@ -25,7 +25,7 @@ This tutorial relies on what you have learned in the <a href="/com/jme3/gde/core
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (8) - Hello Picking" [1-991] -->
<h2><a>Sample Code</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -86,7 +86,7 @@ public class HelloPicking extends SimpleApplication &#123;
inputManager.addListener&#40;actionListener, &quot;Shoot&quot;&#41;;
&#125;
/** Defining the &quot;Shoot&quot; action: Determine what was hit and how to respond. */
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
&nbsp;
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Shoot&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
@ -123,7 +123,7 @@ public class HelloPicking extends SimpleApplication &#123;
&nbsp;
/** A cube object for target practice */
protected Geometry makeCube&#40;String name, float x, float y, float z&#41; &#123;
Box&#40;new Vector3f&#40;x, y, z&#41;, 1, 1, 1&#41;;
Box box = new Box&#40;new Vector3f&#40;x, y, z&#41;, 1, 1, 1&#41;;
Geometry cube = new Geometry&#40;name, box&#41;;
Material mat1 = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
mat1.setColor&#40;&quot;Color&quot;, ColorRGBA.randomColor&#40;&#41;&#41;;
@ -133,7 +133,7 @@ public class HelloPicking extends SimpleApplication &#123;
&nbsp;
/** A floor to show that the &quot;shot&quot; can go through several objects. */
protected Geometry makeFloor&#40;&#41; &#123;
Box&#40;new Vector3f&#40;0, -4, -5&#41;, 15, .2f, 15&#41;;
Box box = new Box&#40;new Vector3f&#40;0, -4, -5&#41;, 15, .2f, 15&#41;;
Geometry floor = new Geometry&#40;&quot;the Floor&quot;, box&#41;;
Material mat1 = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
mat1.setColor&#40;&quot;Color&quot;, ColorRGBA.Gray&#41;;
@ -186,7 +186,7 @@ Keep an eye on the application&#039;s output stream, it will give you more detai
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [992-7391] -->
<h2><a>Understanding the Helper Methods</a></h2>
<div>
@ -220,7 +220,7 @@ In this example, we attached all &quot;shootable&quot; objects to one custom nod
</p>
</div>
<!-- EDIT3 SECTION "Understanding the Helper Methods" [7392-8432] -->
<h2><a>Understanding Ray Casting for Hit Testing</a></h2>
<div>
@ -252,12 +252,12 @@ Here is our simple ray casting algorithm for picking objects:
</ol>
</div>
<!-- EDIT4 SECTION "Understanding Ray Casting for Hit Testing" [8433-9275] -->
<h2><a>Implementing Hit Testing</a></h2>
<div>
</div>
<!-- EDIT5 SECTION "Implementing Hit Testing" [9276-9313] -->
<h3><a>Loading the scene</a></h3>
<div>
@ -285,7 +285,7 @@ First initialize some shootable nodes and attach them to the scene. You will use
&#125;</pre>
</div>
<!-- EDIT6 SECTION "Loading the scene" [9314-10000] -->
<h3><a>Setting Up the Input Listener</a></h3>
<div>
@ -303,7 +303,7 @@ Next you declare the shooting action. It can be triggered either by clicking, or
&#125;</pre>
</div>
<!-- EDIT7 SECTION "Setting Up the Input Listener" [10001-10621] -->
<h3><a>Picking Action Using Crosshairs</a></h3>
<div>
@ -329,7 +329,7 @@ Next we implement the ActionListener that responds to the Shoot trigger with an
Note how it prints a lot of output to show you which hits were registered.
</p>
<pre> /** Defining the &quot;Shoot&quot; action: Determine what was hit and how to respond. */
private ActionListener&#40;&#41; &#123;
private ActionListener actionListener = new ActionListener&#40;&#41; &#123;
@Override
public void onAction&#40;String name, boolean keyPressed, float tpf&#41; &#123;
if &#40;name.equals&#40;&quot;Shoot&quot;&#41; &amp;&amp; !keyPressed&#41; &#123;
@ -369,7 +369,7 @@ Note how it prints a lot of output to show you which hits were registered.
</p>
</div>
<!-- EDIT8 SECTION "Picking Action Using Crosshairs" [10622-13395] -->
<h3><a>Picking Action Using Mouse Pointer</a></h3>
<div>
@ -410,7 +410,7 @@ Note that since you now use the mouse for picking, you can no longer use it to r
</p>
</div>
<!-- EDIT9 SECTION "Picking Action Using Mouse Pointer" [13396-14832] -->
<h2><a>Exercises</a></h2>
<div>
@ -421,7 +421,7 @@ Modify the code sample to solve these exercises:
</p>
</div>
<!-- EDIT10 SECTION "Exercises" [14833-15004] -->
<h3><a>Exercise 1: Magic Spell</a></h3>
<div>
@ -448,7 +448,7 @@ Here are some tips:
</ol>
</div>
<!-- EDIT11 SECTION "Exercise 1: Magic Spell" [15005-15536] -->
<h3><a>Exercise 2: Shoot a Character</a></h3>
<div>
@ -462,7 +462,7 @@ Shooting boxes isn&#039;t very exciting – can you add code that loads and posi
</ul>
</div>
<!-- EDIT12 SECTION "Exercise 2: Shoot a Character" [15537-15827] -->
<h3><a>Exercise 3: Pick up into Inventory</a></h3>
<div>
@ -488,7 +488,7 @@ Change the code as follows to simulate the player picking up objects into the in
</ol>
</div>
<!-- EDIT13 SECTION "Exercise 3: Pick up into Inventory" [15828-16799] -->
<h2><a>Conclusion</a></h2>
<div>
@ -539,4 +539,5 @@ See also:
</span></div>
</div>
<!-- EDIT14 SECTION "Conclusion" [16800-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_picking?do=export_xhtmlbody">view online version</a></em></p>

@ -21,7 +21,7 @@ OK, let&#039;s get ready to create our first jMonkeyEngine3 application.
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (1) - Hello SimpleApplication" [1-726] -->
<h2><a>Create a Project</a></h2>
<div>
@ -55,7 +55,7 @@ If you have questions, read more about <a href="/com/jme3/gde/core/docs/sdk/proj
</p>
</div>
<!-- EDIT2 SECTION "Create a Project" [727-1588] -->
<h2><a>Write a SimpleApplication</a></h2>
<div>
@ -85,7 +85,7 @@ The <acronym title="Software Development Kit">SDK</acronym> creates the file Hel
</p>
</div>
<!-- EDIT3 SECTION "Write a SimpleApplication" [1589-2061] -->
<h2><a>Sample Code</a></h2>
<div>
@ -114,7 +114,7 @@ public class HelloJME3 extends SimpleApplication &#123;
&nbsp;
@Override
public void simpleInitApp&#40;&#41; &#123;
Box&#40;Vector3f.ZERO, 1, 1, 1&#41;; // create cube shape at the origin
Box b = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;; // create cube shape at the origin
Geometry geom = new Geometry&#40;&quot;Box&quot;, b&#41;; // create cube geometry from the shape
Material mat = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;; // create a simple material
@ -143,7 +143,7 @@ Congratulations! Now let&#039;s find out how it works!
</p>
</div>
<!-- EDIT4 SECTION "Sample Code" [2062-3976] -->
<h2><a>Understanding the Code</a></h2>
<div>
@ -153,7 +153,7 @@ The code above has initialized the scene, and started the application.
</p>
</div>
<!-- EDIT5 SECTION "Understanding the Code" [3977-4084] -->
<h3><a>Start the SimpleApplication</a></h3>
<div>
@ -188,7 +188,7 @@ This code opens your application window. Let&#039;s learn how you put something
</p>
</div>
<!-- EDIT6 SECTION "Start the SimpleApplication" [4085-5044] -->
<h3><a>Understanding the Terminology</a></h3>
<div>
<div><table>
@ -211,14 +211,14 @@ This code opens your application window. Let&#039;s learn how you put something
<td>You want the cube to appear in the center.</td><td>I create the Box at the origin = at <code>Vector3f.ZERO</code>.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [5086-5559] -->
<!-- EDIT8 TABLE [5086-5559] -->
<p>
If you are unfamiliar with the vocabulary, read more about <a href="/com/jme3/gde/core/docs/jme3/the_scene_graph.html">the Scene Graph</a> here.
</p>
</div>
<!-- EDIT7 SECTION "Understanding the Terminology" [5045-5652] -->
<h3><a>Initialize the Scene</a></h3>
<div>
@ -234,7 +234,7 @@ Look at rest of the code sample. The <code>simpleInitApp()</code> method is auto
The initialization code of a blue cube looks as follows:
</p>
<pre> public void simpleInitApp&#40;&#41; &#123;
Box&#40;Vector3f.ZERO, 1, 1, 1&#41;; // create a 1x1x1 box shape at the origin
Box b = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;; // create a 1x1x1 box shape at the origin
Geometry geom = new Geometry&#40;&quot;Box&quot;, b&#41;; // create a cube geometry from the box shape
Material mat = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;; // create a simple material
@ -288,7 +288,7 @@ A typical JME3 game has the following initialization process:
</ol>
</div>
<!-- EDIT9 SECTION "Initialize the Scene" [5653-7652] -->
<h2><a>Conclusion</a></h2>
<div>
@ -349,4 +349,5 @@ See also:
</span></div>
</div>
<!-- EDIT10 SECTION "Conclusion" [7653-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_simpleapplication?do=export_xhtmlbody">view online version</a></em></p>

@ -20,7 +20,7 @@ Note: If you get an error when trying to create your ImageBasedHeightMap object,
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (10) - Hello Terrain" [1-623] -->
<h2><a>Sample Code</a></h2>
<div>
<pre>package jme3test.helloworld;
@ -117,7 +117,7 @@ When you run this sample you should see a landscape with dirt mountains, grass p
</p>
</div>
<!-- EDIT2 SECTION "Sample Code" [624-4122] -->
<h2><a>What is a Heightmap?</a></h2>
<div>
@ -171,7 +171,7 @@ In a real game, you will want to use more complex and smoother terrains than the
</p>
</div>
<!-- EDIT3 SECTION "What is a Heightmap?" [4123-5921] -->
<h3><a>Looking at the Heightmap Code</a></h3>
<div>
@ -226,7 +226,7 @@ It requires an image from a JME Texture.</div>
heightmap.load&#40;&#41;;</pre>
</div>
<!-- EDIT4 SECTION "Looking at the Heightmap Code" [5922-7171] -->
<h2><a>What is Texture Splatting?</a></h2>
<div>
@ -294,7 +294,7 @@ Now you start painting the texture:
</p>
</div>
<!-- EDIT5 SECTION "What is Texture Splatting?" [7172-10054] -->
<h3><a>Looking at the Texturing Code</a></h3>
<div>
@ -350,7 +350,7 @@ Use <code>setWrap(WrapMode.Repeat)</code> to make the small texture fill the wid
</p>
</div>
<!-- EDIT6 SECTION "Looking at the Texturing Code" [10055-12193] -->
<h2><a>What is a Terrain?</a></h2>
<div>
@ -388,7 +388,7 @@ Create a TerrainQuad with the following arguments:
</ol>
</div>
<!-- EDIT7 SECTION "What is a Terrain?" [12194-13277] -->
<h3><a>Looking at the Terrain Code</a></h3>
<div>
@ -423,7 +423,7 @@ You have created the terrain object.
</p>
</div>
<!-- EDIT8 SECTION "Looking at the Terrain Code" [13278-14040] -->
<h2><a>What is LOD (Level of Detail)?</a></h2>
<div>
@ -439,12 +439,12 @@ Close parts of the terrain are rendered in full detail. Terrain parts that are f
</p>
</div>
<!-- EDIT9 SECTION "What is LOD (Level of Detail)?" [14041-14633] -->
<h2><a>Exercises</a></h2>
<div>
</div>
<!-- EDIT10 SECTION "Exercises" [14634-14656] -->
<h3><a>Exercise 1: Texture Layers</a></h3>
<div>
@ -463,7 +463,7 @@ You see it&#039;s easier to swap layers in the code, than to change the colors i
</p>
</div>
<!-- EDIT11 SECTION "Exercise 1: Texture Layers" [14657-14966] -->
<h3><a>Exercise 2: Randomized Terrains</a></h3>
<div>
@ -519,7 +519,7 @@ try &#123;
</p>
</div>
<!-- EDIT12 SECTION "Exercise 2: Randomized Terrains" [14967-16639] -->
<h3><a>Exercise 3: Solid Terrains</a></h3>
<div>
@ -529,7 +529,7 @@ Can you combine what you learned here and in <a href="/com/jme3/gde/core/docs/jm
</p>
</div>
<!-- EDIT13 SECTION "Exercise 3: Solid Terrains" [16640-16809] -->
<h2><a>Conclusion</a></h2>
<div>
@ -560,4 +560,5 @@ See also:
</span></div>
</div>
<!-- EDIT14 SECTION "Conclusion" [16810-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_terrain?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ Note: In the following, always replace &quot;~&quot; with the path to your home
</p>
</div>
<!-- EDIT1 SECTION "Setting up JME3 in Netbeans 6+" [1-407] -->
<h2><a>Downloading the Sources</a></h2>
<div>
@ -64,7 +64,7 @@ For a detailed description of the separate jar files see <a href="/com/jme3/gde/
</p>
</div>
<!-- EDIT2 SECTION "Downloading the Sources" [408-1785] -->
<h2><a>Build and Run</a></h2>
<div>
@ -103,7 +103,7 @@ Tips:
</ul>
</div>
<!-- EDIT3 SECTION "Build and Run" [1786-2545] -->
<h2><a>Optional: Javadoc Popups and Source Navigation in NetBeans</a></h2>
<div>
@ -159,4 +159,5 @@ Sources used: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplay
</span></div>
</div>
<!-- EDIT4 SECTION "Optional: Javadoc Popups and Source Navigation in NetBeans" [2546-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:build_jme3_sources_with_netbeans?do=export_xhtmlbody">view online version</a></em></p>

@ -7,7 +7,7 @@ This section discusses how to create and import models from Blender3D (2.62+, se
</p>
</div>
<!-- EDIT1 SECTION "Creating jME3 models in Blender3D" [1-184] -->
<h2><a>Asset Management</a></h2>
<div>
@ -16,7 +16,7 @@ For the managing of assets in general, be sure to read the <a href="/com/jme3/gd
</p>
</div>
<!-- EDIT2 SECTION "Asset Management" [185-417] -->
<h2><a>Creation Process</a></h2>
<div>
@ -88,4 +88,5 @@ Also check out these videos and resources:
</ul>
</div>
<!-- EDIT3 SECTION "Creation Process" [418-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:external:blender?do=export_xhtmlbody">view online version</a></em></p>

@ -3,12 +3,12 @@
<div>
</div>
<!-- EDIT1 SECTION "Frequently Asked Questions" [1-41] -->
<h2><a>I want to create and configure a jME3 Application</a></h2>
<div>
</div>
<!-- EDIT2 SECTION "I want to create and configure a jME3 Application" [42-103] -->
<h3><a>How do I start with a preconfigured game?</a></h3>
<div>
@ -20,13 +20,13 @@ Extend com.jme3.app.SimpleApplication.
</p>
</div>
<!-- EDIT3 SECTION "How do I start with a preconfigured game?" [104-404] -->
<h3><a>How do I change the background color?</a></h3>
<div>
<pre>viewPort.setBackgroundColor&#40;ColorRGBA.Blue&#41;;</pre>
</div>
<!-- EDIT4 SECTION "How do I change the background color?" [405-515] -->
<h3><a>Can I customize the SimpleApplication class?</a></h3>
<div>
@ -38,7 +38,7 @@ Yes! For your own games, you create a custom base class that extends <object cla
</p>
</div>
<!-- EDIT5 SECTION "Can I customize the SimpleApplication class?" [516-1022] -->
<h3><a>How can I switch between screens or states?</a></h3>
<div>
@ -50,7 +50,7 @@ You should break app your application logic into components by spreading it out
</p>
</div>
<!-- EDIT6 SECTION "How can I switch between screens or states?" [1023-1567] -->
<h3><a>How do I pause/unpause a game?</a></h3>
<div>
@ -62,7 +62,7 @@ You split up your application into several AppStates and implement the setEnable
</p>
</div>
<!-- EDIT7 SECTION "How do I pause/unpause a game?" [1568-2173] -->
<h3><a>How do I disable logger output to the console?</a></h3>
<div>
@ -86,7 +86,7 @@ For the release, switch the severity level of the default logger to print only S
</p>
</div>
<!-- EDIT8 SECTION "How do I disable logger output to the console?" [2174-2660] -->
<h3><a>Why does the executable crash with &quot;Cannot locate resource&quot;?</a></h3>
<div>
@ -98,12 +98,12 @@ Make sure to only load() models converted to .j3o binary format, not the origina
</p>
</div>
<!-- EDIT9 SECTION "Why does the executable crash with Cannot locate resource?" [2661-2991] -->
<h2><a>I want to load my scene</a></h2>
<div>
</div>
<!-- EDIT10 SECTION "I want to load my scene" [2992-3027] -->
<h3><a>How do I make objects appear / disappear in the 3D scene?</a></h3>
<div>
@ -128,7 +128,7 @@ Optionally, you can control whether the engine culls an object always or never.
</p>
</div>
<!-- EDIT11 SECTION "How do I make objects appear / disappear in the 3D scene?" [3028-3937] -->
<h3><a>Why do I get AssetNotFoundException when loading X ?</a></h3>
<div>
@ -154,7 +154,7 @@ this.assetManager.registerLocator&#40;&quot;town.zip&quot;, ZipLocator.class&#41
</p>
</div>
<!-- EDIT12 SECTION "Why do I get AssetNotFoundException when loading X ?" [3938-4820] -->
<h3><a>How do I Create 3-D models, textures, sounds?</a></h3>
<div>
@ -169,7 +169,7 @@ You create sounds in an audio editor, for example, Audacity, and export them as
</p>
</div>
<!-- EDIT13 SECTION "How do I Create 3-D models, textures, sounds?" [4821-5568] -->
<h3><a>How do I load a 3-D model into the scene?</a></h3>
<div>
@ -189,7 +189,7 @@ Spatial ninja = assetManager.loadModel&#40;&quot;Models/Ninja/Ninja.j3o&quot;&#4
</p>
</div>
<!-- EDIT14 SECTION "How do I load a 3-D model into the scene?" [5569-6774] -->
<h3><a>How do initialize the scene?</a></h3>
<div>
@ -200,12 +200,12 @@ Use the simpleInitApp() method in SimpleApplication (or initApp() in Application
</p>
</div>
<!-- EDIT15 SECTION "How do initialize the scene?" [6775-7107] -->
<h2><a>I want to transform objects in the scene</a></h2>
<div>
</div>
<!-- EDIT16 SECTION "I want to transform objects in the scene" [7108-7160] -->
<h3><a>How do I move or turn or resize a spatial?</a></h3>
<div>
@ -221,7 +221,7 @@ To move or turn or resize a spatial you use transformations. You can concatenate
</p>
</div>
<!-- EDIT17 SECTION "How do I move or turn or resize a spatial?" [7161-7742] -->
<h3><a>How do I make a spatial move by itself?</a></h3>
<div>
@ -234,7 +234,7 @@ Change the geometry&#039;s translation (position) live in the update loop using
</p>
</div>
<!-- EDIT18 SECTION "How do I make a spatial move by itself?" [7743-8606] -->
<h3><a>How do I access a named sub-mesh in Model?</a></h3>
<div>
<pre>Geometry result = spatial.getName&#40;&#41;.startsWith&#40;name&#41;;</pre>
@ -245,7 +245,7 @@ Change the geometry&#039;s translation (position) live in the update loop using
</p>
</div>
<!-- EDIT19 SECTION "How do I access a named sub-mesh in Model?" [8607-8774] -->
<h3><a>How do I make procedural or custom shapes?</a></h3>
<div>
@ -256,12 +256,12 @@ You can programmatically create com.jme3.scene.Mesh&#039;es.
</p>
</div>
<!-- EDIT20 SECTION "How do I make procedural or custom shapes?" [8775-8935] -->
<h2><a>I want to change the surface of objects in the scene</a></h2>
<div>
</div>
<!-- EDIT21 SECTION "I want to change the surface of objects in the scene" [8936-9000] -->
<h3><a>Why is my UV wrapping / texture appearance all wrong?</a></h3>
<div>
@ -279,7 +279,7 @@ You can set the boolean value in the constructor of TextureKey to flipped or not
<pre> material.setTexture&#40;&quot;ColorMap&quot;, this.assetManager.loadTexture&#40;new TextureKey&#40;&quot;myTexture.jpg&quot;, false&#41;&#41;&#41;;</pre>
</div>
<!-- EDIT22 SECTION "Why is my UV wrapping / texture appearance all wrong?" [9001-9550] -->
<h3><a>How do I scale, mirror, or wrap a texture?</a></h3>
<div>
@ -297,7 +297,7 @@ You can choose among various <code>com.jme3.texture.Texture.WrapMode</code>s for
<pre>material.getTextureParam&#40;&quot;DiffuseMap&quot;&#41;.getTextureValue&#40;&#41;.setWrap&#40;WrapMode.Repeat&#41;;</pre>
</div>
<!-- EDIT23 SECTION "How do I scale, mirror, or wrap a texture?" [9551-10092] -->
<h3><a>How do I change color or shininess of an material?</a></h3>
<div>
@ -310,7 +310,7 @@ Use the AssetManager to load Materials, and change material settings.
</p>
</div>
<!-- EDIT24 SECTION "How do I change color or shininess of an material?" [10093-10680] -->
<h3><a>How do I make a surface wood, stone, metal, etc?</a></h3>
<div>
@ -323,7 +323,7 @@ Create Textures as image files. Use the AssetManager to load a Material and use
</p>
</div>
<!-- EDIT25 SECTION "How do I make a surface wood, stone, metal, etc?" [10681-11454] -->
<h3><a>Why are materials too bright, too dark, or flickering?</a></h3>
<div>
@ -332,7 +332,7 @@ If you use a lit material (based on Lighting.j3md) then you must attach a light
</p>
</div>
<!-- EDIT26 SECTION "Why are materials too bright, too dark, or flickering?" [11455-12268] -->
<h3><a>How do I make geometries cast a shadow?</a></h3>
<div>
@ -345,7 +345,7 @@ Use com.jme3.shadow.BasicShadowRenderer together with com.jme3.light.Directional
</p>
</div>
<!-- EDIT27 SECTION "How do I make geometries cast a shadow?" [12269-12777] -->
<h3><a>How do I make materials transparent?</a></h3>
<div>
@ -361,7 +361,7 @@ Assign a texture with an alpha channel to a Material and set the Material&#039;s
</p>
</div>
<!-- EDIT28 SECTION "How do I make materials transparent?" [12778-13214] -->
<h3><a>How do I force or disable backface culling?</a></h3>
<div>
@ -372,7 +372,7 @@ You can switch the com.jme3.material.RenderState.FaceCullMode to Back, Front, Fr
<pre>material.getAdditionalRenderState&#40;&#41;.setFaceCullMode&#40;FaceCullMode.FrontAndBack&#41;;</pre>
</div>
<!-- EDIT29 SECTION "How do I force or disable backface culling?" [13215-13631] -->
<h3><a>Can I draw only an outline of the scene?</a></h3>
<div>
@ -388,12 +388,12 @@ Create a material and switch its renders state to wireframe.
</p>
</div>
<!-- EDIT30 SECTION "Can I draw only an outline of the scene?" [13632-13863] -->
<h2><a>I want to control the camera</a></h2>
<div>
</div>
<!-- EDIT31 SECTION "I want to control the camera" [13864-13904] -->
<h3><a>How do I switch between third-person and first-person view ?</a></h3>
<div>
@ -415,18 +415,18 @@ chaseCam = new ChaseCamera&#40;cam, spatial, inputManager&#41;;</pre>
</ul>
</div>
<!-- EDIT32 SECTION "How do I switch between third-person and first-person view ?" [13905-14961] -->
<h3><a>How do I increase camera speed?</a></h3>
<div>
<pre>flyCam.setMoveSpeed&#40;50f&#41;;</pre>
</div>
<!-- EDIT33 SECTION "How do I increase camera speed?" [14962-15048] -->
<h2><a>Actions, Interactions, Physics</a></h2>
<div>
</div>
<!-- EDIT34 SECTION "Actions, Interactions, Physics" [15049-15091] -->
<h3><a>How do I implement game logic / game mechanics?</a></h3>
<div>
@ -437,7 +437,7 @@ Use Controls to define the behaviour of types of Spatials. Use Application State
</p>
</div>
<!-- EDIT35 SECTION "How do I implement game logic / game mechanics?" [15092-15653] -->
<h3><a>How do I let players interact via keyboard?</a></h3>
<div>
@ -448,7 +448,7 @@ Use com.jme3.input.KeyInput and a Input Listener.
</p>
</div>
<!-- EDIT36 SECTION "How do I let players interact via keyboard?" [15654-15861] -->
<h3><a>How do I let players interact by clicking?</a></h3>
<div>
@ -461,7 +461,7 @@ Players typically click the mouse to pick up objects, to open doors, to shoot a
</p>
</div>
<!-- EDIT37 SECTION "How do I let players interact by clicking?" [15862-16686] -->
<h3><a>How do I animate characters?</a></h3>
<div>
@ -474,7 +474,7 @@ Create an animated OgreMesh model with bones in a 3-D mesh editor (e.g. Blender)
</p>
</div>
<!-- EDIT38 SECTION "How do I animate characters?" [16687-17158] -->
<h3><a>How do I keep players from falling through walls and floors?</a></h3>
<div>
@ -485,7 +485,7 @@ Use collision detection. The most common solution is to use jme&#039;s physics i
</p>
</div>
<!-- EDIT39 SECTION "How do I keep players from falling through walls and floors?" [17159-17521] -->
<h3><a>How do I make balls/wheels/etc bounce and roll?</a></h3>
<div>
@ -498,7 +498,7 @@ Add physics controls to Spatials and give them spherical or cylindrical bounding
</p>
</div>
<!-- EDIT40 SECTION "How do I make balls/wheels/etc bounce and roll?" [17522-18119] -->
<h3><a>How do I debug weird Physics behaviour?</a></h3>
<div>
@ -508,7 +508,7 @@ Maybe your collision shapes overlap – or they are not where you think they are
<pre>bulletAppState.getPhysicsSpace&#40;&#41;.enableDebug&#40;assetManager&#41;;</pre>
</div>
<!-- EDIT41 SECTION "How do I debug weird Physics behaviour?" [18120-18433] -->
<h3><a>How do I make a walking character?</a></h3>
<div>
@ -521,7 +521,7 @@ Code samples: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplay
</p>
</div>
<!-- EDIT42 SECTION "How do I make a walking character?" [18434-18992] -->
<h3><a>How do I steer vehicles?</a></h3>
<div>
@ -534,7 +534,7 @@ Code samples: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplay
</p>
</div>
<!-- EDIT43 SECTION "How do I steer vehicles?" [18993-19360] -->
<h3><a>Can objects swing like a pendulums, chains, ropebridges?</a></h3>
<div>
@ -546,12 +546,12 @@ Use a PhysicsControl&#039;s hinges and joints.
</p>
</div>
<!-- EDIT44 SECTION "Can objects swing like a pendulums, chains, ropebridges?" [19361-19761] -->
<h2><a>Default GUI Display</a></h2>
<div>
</div>
<!-- EDIT45 SECTION "Default GUI Display" [19762-19793] -->
<h3><a>What are these FPS/Objects/Vertices/Triangles statistics?</a></h3>
<div>
@ -563,7 +563,7 @@ At the bottom left of every default SimpleGame, you see the <a href="/com/jme3/g
</p>
</div>
<!-- EDIT46 SECTION "What are these FPS/Objects/Vertices/Triangles statistics?" [19794-20321] -->
<h3><a>How do I get rid of the FPS/Objects statistics?</a></h3>
<div>
@ -582,7 +582,7 @@ setDisplayStatView(false); // to hide the statistics </pre>
</p>
</div>
<!-- EDIT47 SECTION "How do I get rid of the FPS/Objects statistics?" [20322-20586] -->
<h3><a>How do I display score, health, mini-maps, status icons?</a></h3>
<div>
@ -595,7 +595,7 @@ Attach text and pictures to the orthogonal <code>guiNode</code> to create a head
</p>
</div>
<!-- EDIT48 SECTION "How do I display score, health, mini-maps, status icons?" [20587-21179] -->
<h3><a>How do I display buttons and UI controls?</a></h3>
<div>
@ -608,7 +608,7 @@ Sample Code: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
</p>
</div>
<!-- EDIT49 SECTION "How do I display buttons and UI controls?" [21180-21624] -->
<h3><a>How do i display a loading screen?</a></h3>
<div>
@ -619,12 +619,12 @@ Instead of having a frozen frame while your games loads, you can have a loading
</p>
</div>
<!-- EDIT50 SECTION "How do i display a loading screen?" [21625-21841] -->
<h2><a>Nifty GUI</a></h2>
<div>
</div>
<!-- EDIT51 SECTION "Nifty GUI" [21842-21863] -->
<h3><a>I get NoSuchElementException when adding controls (buttons etc)!</a></h3>
<div>
@ -635,7 +635,7 @@ Verify that you include a controls definition file link in your <acronym title="
<pre><span>&lt;useControls filename=&quot;nifty-default-controls.xml&quot;/&gt;</span></pre>
</div>
<!-- EDIT52 SECTION "I get NoSuchElementException when adding controls (buttons etc)!" [21864-22099] -->
<h3><a>Where can I find example code of Nifty GUI&#039;s XML and Java classes?</a></h3>
<div>
@ -644,7 +644,7 @@ Verify that you include a controls definition file link in your <acronym title="
</p>
</div>
<!-- EDIT53 SECTION "Where can I find example code of Nifty GUI's XML and Java classes?" [22100-22262] -->
<h3><a>Is there Java Doc for Nifty GUI?</a></h3>
<div>
@ -653,12 +653,12 @@ Verify that you include a controls definition file link in your <acronym title="
</p>
</div>
<!-- EDIT54 SECTION "Is there Java Doc for Nifty GUI?" [22263-22388] -->
<h2><a>I want to create an environment with sounds, effects, and landscapes</a></h2>
<div>
</div>
<!-- EDIT55 SECTION "I want to create an environment with sounds, effects, and landscapes" [22389-22469] -->
<h3><a>How do I play sounds and noises?</a></h3>
<div>
@ -671,7 +671,7 @@ Use AudioRenderer, Listener, and AudioNode from com.jme3.audio.*.
</p>
</div>
<!-- EDIT56 SECTION "How do I play sounds and noises?" [22470-22773] -->
<h3><a>How do I make fire, smoke, explosions, swarms, magic spells?</a></h3>
<div>
@ -684,7 +684,7 @@ For swarm like effects you use particle emitters.
</p>
</div>
<!-- EDIT57 SECTION "How do I make fire, smoke, explosions, swarms, magic spells?" [22774-23429] -->
<h3><a>How do I make water, waves, reflections?</a></h3>
<div>
@ -697,7 +697,7 @@ Use a special post-processor renderer from com.jme3.water.*.
</p>
</div>
<!-- EDIT58 SECTION "How do I make water, waves, reflections?" [23430-24190] -->
<h3><a>How do I make fog, bloom, blur, light scrattering?</a></h3>
<div>
@ -708,7 +708,7 @@ Use special post-processor renderers from com.jme3.post.*.
</p>
</div>
<!-- EDIT59 SECTION "How do I make fog, bloom, blur, light scrattering?" [24191-24366] -->
<h3><a>How do I generate a terrain?</a></h3>
<div>
@ -721,7 +721,7 @@ Use com.jme3.terrain.*. The JMonkeyEngine also provides you with a Terrain Edito
</p>
</div>
<!-- EDIT60 SECTION "How do I generate a terrain?" [24367-24750] -->
<h3><a>How do I make a sky?</a></h3>
<div>
@ -739,12 +739,12 @@ skyGeo.setQueueBucket&#40;Bucket.Sky&#41; </pre>
</p>
</div>
<!-- EDIT61 SECTION "How do I make a sky?" [24751-25130] -->
<h2><a>I want to access to back-end properties</a></h2>
<div>
</div>
<!-- EDIT62 SECTION "I want to access to back-end properties" [25131-25182] -->
<h3><a>How do I read out graphic card capabilities?</a></h3>
<div>
@ -801,7 +801,7 @@ FloatColorBuffer, FloatDepthBuffer, PackedFloatTexture, SharedExponentTexture, P
TextureCompressionLATC, NonPowerOfTwoTextures, MeshInstancing]</pre>
</div>
<!-- EDIT63 SECTION "How do I read out graphic card capabilities?" [25183-27263] -->
<h3><a>How do I optimize the heck out of the Scene Graph?</a></h3>
<div>
@ -818,7 +818,7 @@ Batching means that all Geometries with the same Material are combined into one
</p>
</div>
<!-- EDIT64 SECTION "How do I optimize the heck out of the Scene Graph?" [27264-27733] -->
<h3><a>How do I prevent users from unzipping my JAR?</a></h3>
<div>
@ -828,12 +828,12 @@ Add an <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><pa
</p>
</div>
<!-- EDIT65 SECTION "How do I prevent users from unzipping my JAR?" [27734-27983] -->
<h2><a>I want to do maths</a></h2>
<div>
</div>
<!-- EDIT66 SECTION "I want to do maths" [27984-28014] -->
<h3><a>What does addLocal() / multLocal() etc mean?</a></h3>
<div>
@ -886,7 +886,7 @@ Many maths functions (mult(), add(), subtract(), etc) come as local and a non-lo
</ol>
</div>
<!-- EDIT67 SECTION "What does addLocal() / multLocal() etc mean?" [28015-29376] -->
<h3><a>What is the difference between World and Local coordinates?</a></h3>
<div>
@ -896,7 +896,7 @@ World coordinates of a Spatial are its absolute coordinates in the 3D scene (thi
</p>
</div>
<!-- EDIT68 SECTION "What is the difference between World and Local coordinates?" [29377-29686] -->
<h3><a>How do I convert Degrees to Radians?</a></h3>
<div>
@ -910,4 +910,5 @@ Multiply degree value by FastMath.DEG_TO_RAD to convert it to radians.
</span></div>
</div>
<!-- EDIT69 SECTION "How do I convert Degrees to Radians?" [29687-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:faq?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ Every class that extends jme3.app.SimpleApplication has properties that can be c
</p>
</div>
<!-- EDIT1 SECTION "jME3 Application Display Settings" [1-465] -->
<h2><a>Code Sample</a></h2>
<div>
<pre>public static void main&#40;String&#91;&#93; args&#41; &#123;
@ -35,7 +35,7 @@ Set the boolean in the AppSettings contructor to true if you want to keep the de
</p>
</div>
<!-- EDIT2 SECTION "Code Sample" [466-1381] -->
<h2><a>Properties</a></h2>
<div>
<div><table>
@ -75,7 +75,7 @@ Set VSync to false to deactivate vertical syncing (faster, but possible page tea
60 fps</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1406-3627] --><div><table>
<!-- EDIT4 TABLE [1406-3627] --><div><table>
<tr>
<th>Settings Property (Input)</th><th>Description</th><th>Default</th>
</tr>
@ -86,7 +86,7 @@ Set VSync to false to deactivate vertical syncing (faster, but possible page tea
<td>setUseJoysticks(true)</td><td>Activate optional joystick support</td><td>false</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [3629-3918] --><div><table>
<!-- EDIT5 TABLE [3629-3918] --><div><table>
<tr>
<th>Settings Property (Audio)</th><th>Description</th><th>Default</th>
</tr>
@ -97,7 +97,7 @@ Set VSync to false to deactivate vertical syncing (faster, but possible page tea
<td>setStereo3D(true)</td><td>Enable 3D stereo. This feature requires hardware support from the GPU driver. See <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://en.wikipedia.org/wiki/Quad_buffering"><param name="text" value="<html><u>Quad Buffering</u></html>"><param name="textColor" value="blue"></object>. Currently, your everday user&#039;s hardware does not support this, so you can ignore it for now.</td><td>false</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [3920-4344] --><div><table>
<!-- EDIT6 TABLE [3920-4344] --><div><table>
<tr>
<th>Settings Property (Branding)</th><th>Description</th><th>Default</th>
</tr>
@ -112,9 +112,9 @@ ImageIO.read(new File(&quot;&quot;)), …});</td><td>This specifies the little a
<td>setSettingsDialogImage(&quot;/path/to/splash.png&quot;)</td><td>A custom splashscreen image in the assets directory which is displayed when the settings dialog is shown.</td><td>&quot;/com/jme3/app/Monkey.png&quot;</td>
</tr>
</table></div>
<!-- EDIT4 TABLE [4346-4993] -->
<!-- EDIT7 TABLE [4346-4993] -->
</div>
<!-- EDIT3 SECTION "Properties" [1382-4994] -->
<h2><a>Saving and Loading Settings</a></h2>
<div>
@ -154,4 +154,5 @@ Provide the unique name of your jME3 application as the String argument. For exa
</ul>
</div>
<!-- EDIT8 SECTION "Saving and Loading Settings" [4995-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:appsettings?do=export_xhtmlbody">view online version</a></em></p>

@ -12,7 +12,7 @@ This &quot;best practices&quot; page is a collection of recommendations and expe
</p>
</div>
<!-- EDIT1 SECTION "Best Practices For jME3 Developers" [1-341] -->
<h2><a>Requirements and Planning</a></h2>
<div>
@ -22,7 +22,7 @@ If you are a beginner, you should first <object classid="java:org.netbeans.modul
</p>
</div>
<!-- EDIT2 SECTION "Requirements and Planning" [342-634] -->
<h3><a>Requirements Gathering</a></h3>
<div>
@ -82,7 +82,7 @@ E.g. models, terrains; materials, textures; noises, music, voices; video, cutsce
</ul>
</div>
<!-- EDIT3 SECTION "Requirements Gathering" [635-2000] -->
<h3><a>Planning Development Milestones</a></h3>
<div>
@ -137,7 +137,7 @@ How you name or number these stages is fully up to your team. Development teams
</p>
</div>
<!-- EDIT4 SECTION "Planning Development Milestones" [2001-3484] -->
<h3><a>Use File Version Control</a></h3>
<div>
@ -156,7 +156,7 @@ If you don&#039;t know which to choose, Subversion is a good choice for starters
</ul>
</div>
<!-- EDIT5 SECTION "Use File Version Control" [3485-4317] -->
<h2><a>Multi-Media Asset Pipeline</a></h2>
<div>
<div><table>
@ -182,14 +182,14 @@ If you don&#039;t know which to choose, Subversion is a good choice for starters
<td> Convert Models to j3o format. Move j3o files into <code>assets/Models</code>. </td><td>Don&#039;t reference Blender/Ogre/OBJ files in your load() code, because these unoptimized files are not packaged into the JAR.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [4358-5244] -->
<!-- EDIT7 TABLE [4358-5244] -->
<p>
Learn details about the <a href="/com/jme3/gde/core/docs/jme3/intermediate/multi-media_asset_pipeline.html">Multi-Media Asset Pipeline</a> here.
</p>
</div>
<!-- EDIT6 SECTION "Multi-Media Asset Pipeline" [4318-5327] -->
<h2><a>Development Phase</a></h2>
<div>
@ -201,7 +201,7 @@ Even for large experienced game producers, the creation of such a complex game i
</p>
</div>
<!-- EDIT8 SECTION "Development Phase" [5328-5977] -->
<h3><a>Extend SimpleApplication</a></h3>
<div>
@ -220,7 +220,7 @@ For your future game releases, you will want to rely on your own base framework:
</p>
</div>
<!-- EDIT9 SECTION "Extend SimpleApplication" [5978-7091] -->
<h3><a>Where to Start?</a></h3>
<div>
@ -248,7 +248,7 @@ You have a list of features that you want in game, but which one do you implemen
</p>
</div>
<!-- EDIT10 SECTION "Where to Start?" [7092-8371] -->
<h3><a>The Smart Way to Add Custom Methods and Fields</a></h3>
<div>
@ -272,7 +272,7 @@ Game entities (<code>Nodes</code> and <code>Geometry</code>s) often carry custom
</ul>
</div>
<!-- EDIT11 SECTION "The Smart Way to Add Custom Methods and Fields" [8372-9720] -->
<h3><a>The Smart Way to Access Game Features</a></h3>
<div>
@ -293,7 +293,7 @@ Examples:
this.app.getRootNode&#40;&#41;.attachChild&#40; sky &#41;;</pre>
</div>
<!-- EDIT12 SECTION "The Smart Way to Access Game Features" [9721-10493] -->
<h3><a>The Smart Way to Implement Game Logic</a></h3>
<div>
@ -350,7 +350,7 @@ Read all about <a href="/com/jme3/gde/core/docs/jme3/advanced/custom_controls.ht
</p>
</div>
<!-- EDIT13 SECTION "The Smart Way to Implement Game Logic" [10494-12862] -->
<h3><a>Optimize Application Performance</a></h3>
<div>
<ul>
@ -363,7 +363,7 @@ Read all about <a href="/com/jme3/gde/core/docs/jme3/advanced/custom_controls.ht
</ul>
</div>
<!-- EDIT14 SECTION "Optimize Application Performance" [12863-13535] -->
<h3><a>Don&#039;t Mess With Geometric State</a></h3>
<div>
@ -381,7 +381,7 @@ These tips are especially for users who already know jME2. Automatic handling of
</ul>
</div>
<!-- EDIT15 SECTION "Don't Mess With Geometric State" [13536-13987] -->
<h3><a>Maintain Internal Documentation</a></h3>
<div>
@ -404,7 +404,7 @@ Treat javadoc as messages to your future self. &quot;genNextVal() generates the
</p>
</div>
<!-- EDIT16 SECTION "Maintain Internal Documentation" [13988-14715] -->
<h2><a>Debugging and Test Phase</a></h2>
<div>
@ -430,12 +430,12 @@ Treat javadoc as messages to your future self. &quot;genNextVal() generates the
</p>
</div>
<!-- EDIT17 SECTION "Debugging and Test Phase" [14716-17201] -->
<h2><a>Release Phase</a></h2>
<div>
</div>
<!-- EDIT18 SECTION "Release Phase" [17202-17228] -->
<h3><a>Pre-Release To-Do List</a></h3>
<div>
<ul>
@ -460,7 +460,7 @@ Treat javadoc as messages to your future self. &quot;genNextVal() generates the
</ul>
</div>
<!-- EDIT19 SECTION "Pre-Release To-Do List" [17229-18041] -->
<h3><a>Distributing the Executables</a></h3>
<div>
@ -498,7 +498,7 @@ Decide whether you want to release your game as WebStart, Desktop JAR, or Applet
(.APK)</td><td>Game runs on Android devices.</td><td>Android devices do not support post-procesor effects.</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [18475-19695] -->
<!-- EDIT21 TABLE [18475-19695] -->
<p>
Which ever method you choose, a Java-Application works on the main operating systems: Windows, Mac <acronym title="Operating System">OS</acronym>, Linux, Android.
@ -510,4 +510,5 @@ The distribution appears in a newly generated <code>dist</code> directory inside
</p>
</div>
<!-- EDIT20 SECTION "Distributing the Executables" [18042-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:best_practices?do=export_xhtmlbody">view online version</a></em></p>

@ -3,7 +3,7 @@
<div>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine3 Supported File Types" [1-51] -->
<h2><a>jMonkeyEngine3 File Formats</a></h2>
<div>
<div><table>
@ -27,9 +27,9 @@ Each custom .j3m Material is based on a material definition. Advanced users can
<a href="/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html">Effects Overview</a> </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [93-1068] -->
<!-- EDIT3 TABLE [93-1068] -->
</div>
<!-- EDIT2 SECTION "jMonkeyEngine3 File Formats" [52-1069] -->
<h2><a>Supported External File Types</a></h2>
<div>
<div><table>
@ -73,6 +73,7 @@ Each custom .j3m Material is based on a material definition. Advanced users can
<td>.OGG</td><td>audio</td><td>OGG Vorbis music and sounds</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [1113-1628] -->
<!-- EDIT5 TABLE [1113-1628] -->
</div>
<!-- EDIT4 SECTION "Supported External File Types" [1070-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:file_types?do=export_xhtmlbody">view online version</a></em></p>

@ -41,7 +41,6 @@
<link rel='stylesheet' id='bp-jme-1.5-css' href='http://jmonkeyengine.org/wp-content/themes/bp-jme-1.5/style.css?ver=20120110' type='text/css' media='all' />
<link rel='stylesheet' id='bp-default-responsive-css' href='http://jmonkeyengine.org/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/css/responsive.css?ver=20120110' type='text/css' media='all' />
<link rel='stylesheet' id='bp-post-buttons-css-css' href='http://jmonkeyengine.org/wp-content/plugins/bp-post-buttons/include/style/bp_post_buttons.css?ver=3.3.2' type='text/css' media='all' />
<link rel='stylesheet' id='bubbleSheets-css' href='http://jmonkeyengine.org/wp-content/plugins/cd-bp-avatar-bubble/_inc/css/css3/bubble-green.css?ver=3.3.2' type='text/css' media='all' />
<link rel='stylesheet' id='wp_dlmp_styles-css' href='http://jmonkeyengine.org/wp-content/plugins/download-monitor/page-addon/styles.css?ver=3.3.2' type='text/css' media='all' />
<link rel='stylesheet' id='really_simple_share_style-css' href='http://jmonkeyengine.org/wp-content/plugins/really-simple-facebook-twitter-share-buttons/style.css?ver=3.3.2' type='text/css' media='all' />
<link rel='stylesheet' id='rpx_style-css' href='http://jmonkeyengine.org/wp-content/plugins/rpx/files/stylesheet.css?ver=3.3.2' type='text/css' media='all' />
@ -69,7 +68,6 @@ var BP_DTheme = {"my_favs":"My Favorites","accepted":"Accepted","rejected":"Reje
/* ]]> */
</script>
<script type='text/javascript' src='http://jmonkeyengine.org/wp-content/plugins/buddypress/bp-themes/bp-default/_inc/global.js?ver=20120110'></script>
<script type='text/javascript' src='http://jmonkeyengine.org/wp-content/plugins/cd-bp-avatar-bubble/_inc/click.min.js?ver=3.3.2'></script>
<script type='text/javascript' src='http://jmonkeyengine.org/wp-content/plugins/rpx/files/javascript.js?ver=3.3.2'></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://jmonkeyengine.org/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://jmonkeyengine.org/wp-includes/wlwmanifest.xml" />
@ -79,11 +77,6 @@ var BP_DTheme = {"my_favs":"My Favorites","accepted":"Accepted","rejected":"Reje
<script type="text/javascript">var ajaxurl = "http://jmonkeyengine.org/wp-load.php";</script>
<script type="text/javascript">
var ajax_url = "http://jmonkeyengine.org/wp-admin/admin-ajax.php";
var ajax_image = "http://jmonkeyengine.org/wp-content/plugins/cd-bp-avatar-bubble/_inc/images";
var ajax_delay = "0";
</script>
<style type='text/css'>
.download-info .download-button {
background-image: url(http://jmonkeyengine.org/wp-content/plugins/download-monitor/page-addon/downloadbutton.gif);
@ -112,13 +105,13 @@ var BP_DTheme = {"my_favs":"My Favorites","accepted":"Accepted","rejected":"Reje
<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="/wiki/feed.php?mode=list&amp;ns=jme3:intermediate" />
<link rel="alternate" type="text/html" title="Plain HTML" href="/wiki/doku.php/jme3:intermediate:headlessserver?do=export_xhtml" />
<link rel="alternate" type="text/plain" title="Wiki Markup" href="/wiki/doku.php/jme3:intermediate:headlessserver?do=export_raw" />
<link rel="stylesheet" media="screen" type="text/css" href="/wiki/lib/exe/css.php?t=wp-integration&amp;tseed=1317166503" />
<link rel="stylesheet" media="all" type="text/css" href="/wiki/lib/exe/css.php?s=all&amp;t=wp-integration&amp;tseed=1317166503" />
<link rel="stylesheet" media="print" type="text/css" href="/wiki/lib/exe/css.php?s=print&amp;t=wp-integration&amp;tseed=1317166503" />
<link rel="stylesheet" media="screen" type="text/css" href="/wiki/lib/exe/css.php?t=wp-integration&amp;tseed=1338202874" />
<link rel="stylesheet" media="all" type="text/css" href="/wiki/lib/exe/css.php?s=all&amp;t=wp-integration&amp;tseed=1338202874" />
<link rel="stylesheet" media="print" type="text/css" href="/wiki/lib/exe/css.php?s=print&amp;t=wp-integration&amp;tseed=1338202874" />
<script type="text/javascript" ><!--//--><![CDATA[//><!--
var NS='jme3:intermediate';var JSINFO = {"id":"jme3:intermediate:headlessserver","namespace":"jme3:intermediate"};
//--><!]]></script>
<script type="text/javascript" charset="utf-8" src="/wiki/lib/exe/js.php?tseed=1317166503" ></script>
<script type="text/javascript" charset="utf-8" src="/wiki/lib/exe/js.php?tseed=1338202874" ></script>
<link rel='stylesheet' id='achievements-widget-css' href='http://jmonkeyengine.org/wp-content/plugins/achievements/includes/css/widget.css?ver=2.0.6' type='text/css' media='all' />
<link href="http://jmonkeyengine.org/wp-content/plugins/buddypress-twitter/includes/style.css" media="screen" rel="stylesheet" type="text/css"/>
@ -168,7 +161,7 @@ var NS='jme3:intermediate';var JSINFO = {"id":"jme3:intermediate:headlessserver"
<select><option value="wiki">Documentation</option><option value="forums">Topic Titles</option><option value="posts">Blog</option></select>
<input type="submit" name="search-submit" id="search-submit" value="Search" />
<input type="hidden" id="_wpnonce" name="_wpnonce" value="958002dde7" /><input type="hidden" name="_wp_http_referer" value="/com/jme3/gde/core/docs/jme3/intermediate/headlessserver.html" />
<input type="hidden" id="_wpnonce" name="_wpnonce" value="7fce1a2a3f" /><input type="hidden" name="_wp_http_referer" value="/com/jme3/gde/core/docs/jme3/intermediate/headlessserver.html" />
</form><!-- #search-form -->
@ -325,7 +318,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
<div>
<form><div><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="" /><input type="submit" value="Show pagesource" class="button" accesskey="v" title="Show pagesource [V]" /></div></form> <form><div><input type="hidden" name="do" value="revisions" /><input type="submit" value="Old revisions" class="button" accesskey="o" title="Old revisions [O]" /></div></form> </div>
<div>
<form><div><input type="hidden" name="do" value="login" /><input type="hidden" name="sectok" value="fd38385946f898d792f01e400ff0e2c5" /><input type="submit" value="Login" class="button" title="Login" /></div></form> <form><div><input type="hidden" name="do" value="index" /><input type="submit" value="Sitemap" class="button" accesskey="x" title="Sitemap [X]" /></div></form> <a><input type="button" class="button" value="Back to top" onclick="window.scrollTo(0, 0)" title="Back to top" /></a>&nbsp;
<form><div><input type="hidden" name="do" value="login" /><input type="hidden" name="sectok" value="0cd01da860c7ad31cf03c0a2de2da377" /><input type="submit" value="Login" class="button" title="Login" /></div></form> <form><div><input type="hidden" name="do" value="index" /><input type="submit" value="Sitemap" class="button" accesskey="x" title="Sitemap [X]" /></div></form> <a><input type="button" class="button" value="Back to top" onclick="window.scrollTo(0, 0)" title="Back to top" /></a>&nbsp;
</div>
<div></div>
</div-->
@ -368,7 +361,7 @@ You&#039;ve followed a link to a topic that doesn&#039;t exist yet. If permissio
</ul></div></div><!-- #wp-admin-bar -->
<!-- Generated in 0.240 seconds. (65 q) -->
<!-- Generated in 0.227 seconds. (65 q) -->
<div>
<div></div>

@ -30,7 +30,7 @@ If you want more advanced background info: You can learn more about <a href="/co
</p>
</div>
<!-- EDIT1 SECTION "How to Use Materials" [1-1794] -->
<h2><a>Code Sample</a></h2>
<div>
@ -70,7 +70,7 @@ myGeometry.setMaterial&#40;mat&#41;; // Use new material on this G
</p>
</div>
<!-- EDIT2 SECTION "Code Sample" [1795-3608] -->
<h2><a>Colored or Textured</a></h2>
<div>
@ -80,7 +80,7 @@ Every Material must have at least Material Colors or Textures. Some optional mat
</p>
</div>
<!-- EDIT3 SECTION "Colored or Textured" [3609-3774] -->
<h3><a>Colored</a></h3>
<div>
@ -109,7 +109,7 @@ mat.setColor&#40;&quot;Ambient&quot;, ColorRGBA.Blue &#41;; // with Lighting.j3m
</ol>
</div>
<!-- EDIT4 SECTION "Colored" [3775-4350] -->
<h3><a>Textured</a></h3>
<div>
@ -149,7 +149,7 @@ All other Texture Maps or Material settings are optional. If used skillfully, th
</p>
</div>
<!-- EDIT5 SECTION "Textured" [4351-5271] -->
<h2><a>(Optional) Bumpy</a></h2>
<div>
@ -176,7 +176,7 @@ To add a BumpMap (this only makes sense for illuminated Materials):
</p>
</div>
<!-- EDIT6 SECTION "(Optional) Bumpy" [5272-6095] -->
<h2><a>(Optional) Shiny</a></h2>
<div>
@ -214,7 +214,7 @@ To deactivate shininess
</ul>
</div>
<!-- EDIT7 SECTION "(Optional) Shiny" [6096-7327] -->
<h2><a>(Optional) Glow</a></h2>
<div>
@ -255,7 +255,7 @@ Learn more about <a href="/com/jme3/gde/core/docs/jme3/advanced/bloom_and_glow.h
</p>
</div>
<!-- EDIT8 SECTION "(Optional) Glow" [7328-8393] -->
<h2><a>(Optional) Transparent</a></h2>
<div>
@ -325,7 +325,7 @@ getAdditionalRenderState().setAlphaFallOff(0.5f);</td><td>Enables Alpha Testing
Deactivate Alpha Testing for gradually <strong>translucent</strong> objects, such as colored glass, smoked glass, ghosts.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [9801-11189] -->
<!-- EDIT10 TABLE [9801-11189] -->
<p>
<p><div>It is possible to load a DiffuseMap texture that has an Alpha channel, and combine it with an underlying Material Color.
@ -338,7 +338,7 @@ Deactivate Alpha Testing for gradually <strong>translucent</strong> objects, suc
</p>
</div>
<!-- EDIT9 SECTION "(Optional) Transparent" [8394-11828] -->
<h2><a>(Optional) Wireframe</a></h2>
<div>
@ -355,7 +355,7 @@ Additionally to the above settings, you can switch off and on a wireframe render
<td>getAdditionalRenderState().setWireframe(true);</td><td>Switch to showing the (textured) Material in wireframe mode. The wireframe optionally uses the Material&#039;s <code>Color</code> value.</td><td>Use wireframes to debug meshes, or for a &quot;matrix&quot; or &quot;holodeck&quot; effect.</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [12043-12328] --><div><span>
<!-- EDIT12 TABLE [12043-12328] --><div><span>
<a href="/wiki/doku.php/tag:material?do=showtag&amp;tag=tag%3Amaterial">material</a>,
<a href="/wiki/doku.php/tag:texture?do=showtag&amp;tag=tag%3Atexture">texture</a>,
<a href="/wiki/doku.php/tag:effect?do=showtag&amp;tag=tag%3Aeffect">effect</a>,
@ -365,4 +365,5 @@ Additionally to the above settings, you can switch off and on a wireframe render
</span></div>
</div>
<!-- EDIT11 SECTION "(Optional) Wireframe" [11829-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:how_to_use_materials?do=export_xhtmlbody">view online version</a></em></p>

@ -8,7 +8,7 @@ Just some math notes to myself…
</p>
</div>
<!-- EDIT1 SECTION "Math Cheat Sheet" [1-64] -->
<h2><a>Formulas</a></h2>
<div>
@ -57,7 +57,7 @@ new Quaternion q</td><td>Quaternion q = new Quaternion(); <br/>
q.lookAt(v,up)</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [420-1340] --><div><table>
<!-- EDIT3 TABLE [420-1340] --><div><table>
<tr>
<th>I have…</th><th>I want…</th><th>Formula</th>
</tr>
@ -105,9 +105,9 @@ x and z coordinates</td><td>float x = FastMath.cos(phi)*r; <br/>
float z = FastMath.sin(phi)*r;</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [1342-2436] -->
<!-- EDIT4 TABLE [1342-2436] -->
</div>
<!-- EDIT2 SECTION "Formulas" [65-2438] -->
<h2><a>Local vs Non-local methods?</a></h2>
<div>
@ -128,4 +128,5 @@ float z = FastMath.sin(phi)*r;</td>
</ul>
</div>
<!-- EDIT5 SECTION "Local vs Non-local methods?" [2439-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:math?do=export_xhtmlbody">view online version</a></em></p>

@ -38,14 +38,14 @@ Assets are files that are not code. Your multi-media assets includes, for exampl
<td> Convert original models to .j3o format. Move .j3o files into <code>assets/Models</code>. </td><td>Don&#039;t reference original Blender/Ogre/OBJ files in your load() code, because these unoptimized files are not packaged into the final JAR.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [542-1593] -->
<!-- EDIT2 TABLE [542-1593] -->
<p>
Read on for details.
</p>
</div>
<!-- EDIT1 SECTION "Multi-Media Asset Pipeline" [1-1616] -->
<h3><a>Use The Assets Folder</a></h3>
<div>
@ -102,7 +102,7 @@ See also:
</ul>
</div>
<!-- EDIT3 SECTION "Use The Assets Folder" [1617-3506] -->
<h3><a>Create Textures and Materials</a></h3>
<div>
@ -133,7 +133,7 @@ Install a graphic editor such as Gimp or Photoshop. <strong>Consult the graphic
</p>
</div>
<!-- EDIT4 SECTION "Create Textures and Materials" [3507-4681] -->
<h3><a>Create 3D Models</a></h3>
<div>
@ -177,7 +177,7 @@ See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer">
</p>
</div>
<!-- EDIT5 SECTION "Create 3D Models" [4682-6478] -->
<h3><a>Convert 3D Models to .j3o Format</a></h3>
<div>
@ -232,4 +232,5 @@ See also: <a href="/com/jme3/gde/core/docs/sdk/model_loader_and_viewer.html">Mod
</p>
</div>
<!-- EDIT6 SECTION "Convert 3D Models to .j3o Format" [6479-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:multi-media_asset_pipeline?do=export_xhtmlbody">view online version</a></em></p>

@ -8,7 +8,7 @@ This page is intended as a reference collection of optimization tricks that can
</p>
</div>
<!-- EDIT1 SECTION "Optimization reference" [1-156] -->
<h2><a>Maintain low Geometry count</a></h2>
<div>
@ -37,7 +37,7 @@ You can optimize nodes using the SceneComposer in the <acronym title="Software D
</ul>
</div>
<!-- EDIT2 SECTION "Maintain low Geometry count" [157-1156] -->
<h2><a>Avoid creating new objects</a></h2>
<div>
@ -47,7 +47,7 @@ When you use math operations like vectorA.mult(vectorB); new objects are created
</p>
</div>
<!-- EDIT3 SECTION "Avoid creating new objects" [1157-1550] -->
<h2><a>Avoid large objects in physics</a></h2>
<div>
@ -57,7 +57,7 @@ To offload much computation to the less CPU intense physics broadphase collision
</p>
</div>
<!-- EDIT4 SECTION "Avoid large objects in physics" [1551-1933] -->
<h2><a>Check the Statistics</a></h2>
<div>
@ -107,4 +107,5 @@ Genereally jME3 is well optimized and optimizes these things correctly. The norm
</span></div>
</div>
<!-- EDIT5 SECTION "Check the Statistics" [1934-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:optimization?do=export_xhtmlbody">view online version</a></em></p>

@ -49,7 +49,7 @@ Let&#039;s have a look at the <acronym title="Application Programming Interface"
</p>
</div>
<!-- EDIT1 SECTION "SimpleApplication" [1-1718] -->
<h2><a>Application Class</a></h2>
<div>
@ -95,7 +95,7 @@ getInputManager()</td><td>Use the <a href="/com/jme3/gde/core/docs/jme3/advanced
getStateManager()</td><td>You use the Application&#039;s state manager to activate <a href="/com/jme3/gde/core/docs/jme3/advanced/application_states.html">AppStates</a>, such as <a href="/com/jme3/gde/core/docs/jme3/advanced/physics.html">Physics</a>.</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [2024-3450] --><div><table>
<!-- EDIT3 TABLE [2024-3450] --><div><table>
<tr>
<th>Application methods</th><th>Purpose</th>
</tr>
@ -119,7 +119,7 @@ Type.Headless – jME application runs its event loop without calculating any vi
Type.OffscreenSurface – jME application view is not shown and no window opens, but everything calculated and cached as bitmap (back buffer) for use by other applications.</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [3452-4638] --><div><table>
<!-- EDIT4 TABLE [3452-4638] --><div><table>
<tr>
<th>Internal class field/method</th><th>Purpose</th>
</tr>
@ -151,9 +151,9 @@ getGuiViewPort()</td><td>The view object for the orthogonal <acronym title="Grap
<td>paused</td><td>Boolean is used only internally during runtime to pause/unpause a game. (You need to implement your own isRunning boolean or so.)</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [4640-5836] -->
<!-- EDIT5 TABLE [4640-5836] -->
</div>
<!-- EDIT2 SECTION "Application Class" [1719-5837] -->
<h2><a>SimpleApplication Class</a></h2>
<div>
@ -192,7 +192,7 @@ getGuiNode()</td><td>Attach flat <acronym title="Graphical User Interface">GUI</
getFlyByCamera()</td><td>The default first-person fly-by camera control. This default camera control lets you navigate the 3D scene using the preconfigured WASD and arrow keys and the mouse.</td>
</tr>
</table></div>
<!-- EDIT4 TABLE [6405-6948] --><div><table>
<!-- EDIT7 TABLE [6405-6948] --><div><table>
<tr>
<th>SimpleApplication Method</th><th>Purpose</th>
</tr>
@ -209,7 +209,7 @@ getFlyByCamera()</td><td>The default first-person fly-by camera control. This de
<td>setDisplayStatView(false);</td><td>A default SimpleApplication displays mesh statistics on the screen using the com.jme3.app.StatsView class. The information is valuable during the development and debugging phase, but for the release, you should hide the statistics HUD.</td>
</tr>
</table></div>
<!-- EDIT5 TABLE [6950-7742] --><div><table>
<!-- EDIT8 TABLE [6950-7742] --><div><table>
<tr>
<th>SimpleApplication Interface</th><th>Purpose</th>
</tr>
@ -223,7 +223,7 @@ getFlyByCamera()</td><td>The default first-person fly-by camera control. This de
<td>public void simpleRender(RenderManager rm)</td><td><strong>Optional:</strong> Override this method to implement <em>advanced</em> modifications of the frameBuffer and scene graph.</td>
</tr>
</table></div>
<!-- EDIT6 TABLE [7744-8662] -->
<!-- EDIT9 TABLE [7744-8662] -->
<p>
<p><div>Use <code>app.setShowSettings(true);</code> to present the user with a splashscreen and the built-in display settings dialog when starting the game; or use <code>app.setShowSettings(false);</code> to hide the buil-in screen (in this case, you may want to provide a custom splashscreen and settings panel). Set this boolean before calling <code>app.start()</code> in the <code>main()</code> method of the SimpleApplication. See also <a href="/com/jme3/gde/core/docs/jme3/intermediate/appsettings.html">AppSettings</a>.
@ -231,7 +231,7 @@ getFlyByCamera()</td><td>The default first-person fly-by camera control. This de
</p>
</div>
<!-- EDIT6 SECTION "SimpleApplication Class" [5838-9094] -->
<h2><a>Default Input Mappings</a></h2>
<div>
@ -257,7 +257,7 @@ The following default navigational input actions are mapped by the default <code
<td>F5</td><td>Hides or shows the statistics the bottom left.</td>
</tr>
</table></div>
<!-- EDIT7 TABLE [9365-9630] -->
<!-- EDIT11 TABLE [9365-9630] -->
<p>
As long as the <code>flyCam</code> is enabled, the following so-called &quot;WASD&quot; inputs, including MouseLook, are available:
@ -307,9 +307,9 @@ As long as the <code>flyCam</code> is enabled, the following so-called &quot;WAS
<td>Zoom Out</td><td>AXIS_WHEEL, or scroll mouse wheel forward</td>
</tr>
</table></div>
<!-- EDIT8 TABLE [9746-10357] -->
<!-- EDIT12 TABLE [9746-10357] -->
</div>
<!-- EDIT10 SECTION "Default Input Mappings" [9095-10358] -->
<h2><a>Defaults and Customization</a></h2>
<div>
@ -350,4 +350,5 @@ The following example shows how you can remove one of the default AppStates, in
</span></div>
</div>
<!-- EDIT13 SECTION "Defaults and Customization" [10359-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:simpleapplication?do=export_xhtmlbody">view online version</a></em></p>

@ -16,12 +16,12 @@ To get a visual introduction to math in jME3 for the absolute beginner, check ou
</p>
</div>
<!-- EDIT1 SECTION "Introduction to Mathematical Functionality" [1-944] -->
<h2><a>Coordinate System</a></h2>
<div>
</div>
<!-- EDIT2 SECTION "Coordinate System" [945-975] -->
<h3><a>Definition</a></h3>
<div>
@ -43,7 +43,7 @@ The definition of a coordinate system is defined in jME by the properties sent t
</p>
</div>
<!-- EDIT3 SECTION "Definition" [976-1789] -->
<h2><a>Transformations</a></h2>
<div>
@ -53,7 +53,7 @@ Transformations define an operation that converts points from one coordinate sys
</p>
</div>
<!-- EDIT4 SECTION "Transformations" [1790-2182] -->
<h2><a>Visibility Determination</a></h2>
<div>
@ -63,17 +63,17 @@ Visibility Determination concerns itself with minimizing the amount of data that
</p>
</div>
<!-- EDIT5 SECTION "Visibility Determination" [2183-2955] -->
<h1><a>Fundamental Types</a></h1>
<div>
</div>
<!-- EDIT6 SECTION "Fundamental Types" [2956-2988] -->
<h2><a>ColorRGBA</a></h2>
<div>
</div>
<!-- EDIT7 SECTION "ColorRGBA" [2989-3009] -->
<h3><a>Definition</a></h3>
<div>
@ -87,7 +87,7 @@ ColorRGBA defines a color value in the jME library. The color value is made of t
</p>
</div>
<!-- EDIT8 SECTION "Definition" [3010-3481] -->
<h3><a>jME Class</a></h3>
<div>
@ -109,7 +109,7 @@ ColorRGBA will also handle interpolation between two colors. Given a second colo
</p>
</div>
<!-- EDIT9 SECTION "jME Class" [3482-3956] -->
<h2><a>Matrix</a></h2>
<div>
@ -121,7 +121,7 @@ and <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT10 SECTION "Matrix" [3957-4153] -->
<h3><a>Definition</a></h3>
<div>
@ -148,7 +148,7 @@ There are a few special matrices:
<td>0</td><td>0</td><td>0</td>
</tr>
</table></div>
<!-- EDIT1 TABLE [4469-4492] -->
<!-- EDIT12 TABLE [4469-4492] -->
<p>
The <em>Identity Matrix</em> is the matrix with 1 on the diagonal entries and 0 for all other entries.
@ -164,7 +164,7 @@ The <em>Identity Matrix</em> is the matrix with 1 on the diagonal entries and 0
<td>0</td><td>0</td><td>1</td>
</tr>
</table></div>
<!-- EDIT2 TABLE [4593-4616] -->
<!-- EDIT13 TABLE [4593-4616] -->
<p>
A Matrix is <em>invertible</em> if there is a matrix <em>M<sup>-1</sup></em> where <em>MM<sup>-1</sup> = M<sup>-1</sup>M = I</em>.
@ -185,7 +185,7 @@ The <em>transpose</em> of a matrix <em>M = [m<sub>ij</sub>]</em> is <em>M<sup>T<
<td>3</td><td>3</td><td>3</td><td> </td><td>1</td><td>2</td><td>3</td>
</tr>
</table></div>
<!-- EDIT3 TABLE [4907-4973] -->
<!-- EDIT14 TABLE [4907-4973] -->
<p>
A Matrix is symmetric if <em>M</em> = <em>M<sup>T</sup></em>.
@ -201,7 +201,7 @@ A Matrix is symmetric if <em>M</em> = <em>M<sup>T</sup></em>.
<td>B</td><td>C</td><td>X</td>
</tr>
</table></div>
<!-- EDIT4 TABLE [5028-5053] -->
<!-- EDIT15 TABLE [5028-5053] -->
<p>
Where X, A, B, and C equal numbers
</p>
@ -211,7 +211,7 @@ jME includes two types of Matrix classes: Matrix3f and Matrix4f. Matrix3f is a 3
</p>
</div>
<!-- EDIT11 SECTION "Definition" [4154-5315] -->
<h3><a>Transformations</a></h3>
<div>
@ -251,7 +251,7 @@ A <em>rotation matrix</em> requires that the transpose and inverse are the same
<td>u<sub>1</sub></td><td>-u<sub>0</sub></td><td>0</td>
</tr>
</table></div>
<!-- EDIT5 TABLE [6007-6105] -->
<!-- EDIT17 TABLE [6007-6105] -->
</div>
<h4><a>Translation</a></h4>
@ -270,14 +270,14 @@ Translation requires a 4x4 matrix, where the vector (x,y,z) is mapped to (x,y,z,
<td>S<sup>T</sup></td><td>1</td>
</tr>
</table></div>
<!-- EDIT6 TABLE [6277-6300] -->
<!-- EDIT18 TABLE [6277-6300] -->
<p>
where M is the 3x3 matrix (containing any rotation/scale information), T is the translation vector and S<sup>T</sup> is the transpose Vector of T. 1 is just a constant.
</p>
</div>
<!-- EDIT16 SECTION "Transformations" [5316-6472] -->
<h3><a>jME Class</a></h3>
<div>
@ -291,7 +291,7 @@ Most methods are straight forward, and I will leave documentation to the Javadoc
</p>
</div>
<!-- EDIT19 SECTION "jME Class" [6473-6715] -->
<h2><a>Vector</a></h2>
<div>
@ -303,7 +303,7 @@ and <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT20 SECTION "Vector" [6716-6888] -->
<h3><a>Definition</a></h3>
<div>
@ -321,7 +321,7 @@ We have two Vectors (2f and 3f) meaning we have tuples of 2 float values or 3 fl
</p>
</div>
<!-- EDIT21 SECTION "Definition" [6889-7313] -->
<h3><a>Operations</a></h3>
<div>
@ -411,7 +411,7 @@ Vector3f and Vector2f store their values (x, y, z) and (x, y) respectively as fl
</p>
</div>
<!-- EDIT22 SECTION "Operations" [7314-9249] -->
<h2><a>Quaternion</a></h2>
<div>
@ -421,7 +421,7 @@ See <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT23 SECTION "Quaternion" [9250-9351] -->
<h3><a>Definition</a></h3>
<div>
@ -485,7 +485,7 @@ These basic operations allow us to convert various rotation representations to Q
</p>
</div>
<!-- EDIT24 SECTION "Definition" [9352-11461] -->
<h3><a>Angle Axis</a></h3>
<div>
@ -505,7 +505,7 @@ float angle = 3.14f;
s.getLocalRotation&#40;&#41;.fromAngleAxis&#40;angle, axis&#41;;</pre>
</div>
<!-- EDIT25 SECTION "Angle Axis" [11462-12219] -->
<h3><a>Three Angles</a></h3>
<div>
@ -523,7 +523,7 @@ float&#91;&#93; angles = &#123;1, 3, 0&#125;;
s.getLocalRotation&#40;&#41;.fromAngles&#40;angles&#41;;</pre>
</div>
<!-- EDIT26 SECTION "Three Angles" [12220-12769] -->
<h3><a>Three Axes</a></h3>
<div>
@ -545,7 +545,7 @@ axes&#91;2&#93; = new Vector3f&#40;0, 0.5f, 0.5f&#41;; //dir
s.getLocalRotation&#40;&#41;.fromAxes&#40;axes&#41;;</pre>
</div>
<!-- EDIT27 SECTION "Three Axes" [12770-13527] -->
<h3><a>Rotation Matrix</a></h3>
<div>
@ -570,7 +570,7 @@ As you can see there are many ways to build a Quaternion. This allows you to wor
</p>
</div>
<!-- EDIT28 SECTION "Rotation Matrix" [13528-14432] -->
<h3><a>Slerp</a></h3>
<div>
@ -590,7 +590,7 @@ Quaternion q2;
Quaternion q3 = q1.slerp&#40;q2, 0.5f&#41;;</pre>
</div>
<!-- EDIT29 SECTION "Slerp" [14433-15070] -->
<h3><a>Multiplication</a></h3>
<div>
@ -608,7 +608,7 @@ Vector3f myVector = new Vector3f&#40;0,0,-1&#41;;
myRotation.multLocal&#40;myVector&#41;;</pre>
</div>
<!-- EDIT30 SECTION "Multiplication" [15071-15545] -->
<h1><a>Utility Classes</a></h1>
<div>
@ -618,7 +618,7 @@ Along with the base Math classes, jME provides a number of Math classes to make
</p>
</div>
<!-- EDIT31 SECTION "Utility Classes" [15546-15821] -->
<h2><a>Fast Math</a></h2>
<div>
@ -628,7 +628,7 @@ See <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT32 SECTION "Fast Math" [15822-15919] -->
<h3><a>Definition</a></h3>
<div>
@ -638,7 +638,7 @@ FastMath provides a number of convience methods, and where possible faster versi
</p>
</div>
<!-- EDIT33 SECTION "Definition" [15920-16073] -->
<h3><a>Usage</a></h3>
<div>
@ -729,7 +729,7 @@ There are five major categories of functions that FastMath provides.
</ul>
</div>
<!-- EDIT34 SECTION "Usage" [16074-18495] -->
<h2><a>Line</a></h2>
<div>
@ -739,7 +739,7 @@ See <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT35 SECTION "Line" [18496-18584] -->
<h3><a>Definition</a></h3>
<div>
@ -749,7 +749,7 @@ A line is a straight one-dimensional figure having no thickness and extending in
</p>
</div>
<!-- EDIT36 SECTION "Definition" [18585-18798] -->
<h3><a>Usage</a></h3>
<div>
@ -763,14 +763,14 @@ jME defines a Line class that is defined by an origin and direction. In reality,
</p>
</div>
<!-- EDIT37 SECTION "Usage" [18799-19137] -->
<h3><a>Example 1 - Find a Random Point on a Line</a></h3>
<div>
<pre>Line&#40;new Vector3f&#40;0,1,0&#41;, new Vector3f&#40;3,2,1&#41;&#41;;
<pre>Line l = new Line&#40;new Vector3f&#40;0,1,0&#41;, new Vector3f&#40;3,2,1&#41;&#41;;
Vector3f randomPoint = l.random&#40;&#41;;</pre>
</div>
<!-- EDIT38 SECTION "Example 1 - Find a Random Point on a Line" [19138-19305] -->
<h2><a>Plane</a></h2>
<div>
@ -780,7 +780,7 @@ See <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT39 SECTION "Plane" [19306-19396] -->
<h3><a>Definition</a></h3>
<div>
@ -814,7 +814,7 @@ This gives us the general equation: (ax + by + cz + d = 0)
</p>
</div>
<!-- EDIT40 SECTION "Definition" [19397-20091] -->
<h3><a>Usage in jME</a></h3>
<div>
@ -846,7 +846,7 @@ These values are returned on a call to <code>whichSide</code>.
</p>
</div>
<!-- EDIT41 SECTION "Usage in jME" [20092-20810] -->
<h3><a>Example 1 - Determining if a Point is On the Positive Side of a Plane</a></h3>
<div>
<pre>Vector3f normal = new Vector3f&#40;0,1,0&#41;;
@ -860,7 +860,7 @@ if&#40;side == Plane.NO_SIDE&#41; &#123;
&#125;</pre>
</div>
<!-- EDIT42 SECTION "Example 1 - Determining if a Point is On the Positive Side of a Plane" [20811-21185] -->
<h3><a>Example 2 - For the Layperson</a></h3>
<div>
@ -882,7 +882,7 @@ public class TestPlanes
&#123;
public static final Logger logger = Logger.getLogger&#40;LevelGraphBuilder.class.getName&#40;&#41;&#41;;
&nbsp;
public static void main&#40;Exception
public static void main&#40;String&#91;&#93; args&#41; throws Exception
&#123;
//***Outline.
//This example shows how to construct a plane representation using
@ -932,7 +932,7 @@ public class TestPlanes
&#125;</pre>
</div>
<!-- EDIT43 SECTION "Example 2 - For the Layperson" [21186-23823] -->
<h2><a>Ray</a></h2>
<div>
@ -942,7 +942,7 @@ See <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT44 SECTION "Ray" [23824-23910] -->
<h3><a>Definition</a></h3>
<div>
@ -956,13 +956,13 @@ This Ray is used extensively in jME for <a href="/com/jme3/gde/core/docs/jme3/pi
</p>
</div>
<!-- EDIT45 SECTION "Definition" [23911-24277] -->
<h3><a>Example 1 - Create a Ray That Represents Where the Camera is Looking</a></h3>
<div>
<pre>Ray ray = new Ray&#40;cam.getLocation&#40;&#41;, cam.getDirection&#40;&#41;&#41;;</pre>
</div>
<!-- EDIT46 SECTION "Example 1 - Create a Ray That Represents Where the Camera is Looking" [24278-24434] -->
<h2><a>Rectangle</a></h2>
<div>
@ -972,7 +972,7 @@ See <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT47 SECTION "Rectangle" [24435-24533] -->
<h3><a>Definition</a></h3>
<div>
@ -982,7 +982,7 @@ Rectangle defines a finite plane within three dimensional space that is specifie
</p>
</div>
<!-- EDIT48 SECTION "Definition" [24534-24762] -->
<h3><a>jME Usage</a></h3>
<div>
@ -992,17 +992,17 @@ Rectangle is a straight forward data class that simply maintains values that def
</p>
</div>
<!-- EDIT49 SECTION "jME Usage" [24763-25077] -->
<h3><a>Example 1 : Define a Rectangle and Get a Point From It</a></h3>
<div>
<pre>Vector3f v1 = new Vector3f&#40;1,0,0&#41;;
Vector3f v2 = new Vector3f&#40;1,1,0&#41;;
Vector3f v3 = new Vector3f&#40;0,1,0&#41;;
Rectangle&#40;v1, v2, v3&#41;;
Rectangle r = new Rectangle&#40;v1, v2, v3&#41;;
Vector3f point = r.random&#40;&#41;;</pre>
</div>
<!-- EDIT50 SECTION "Example 1 : Define a Rectangle and Get a Point From It" [25078-25337] -->
<h2><a>Triangle</a></h2>
<div>
@ -1012,7 +1012,7 @@ See <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
</p>
</div>
<!-- EDIT51 SECTION "Triangle" [25338-25434] -->
<h3><a>Definition</a></h3>
<div>
@ -1022,7 +1022,7 @@ A triangle is a 3-sided polygon. Every triangle has three sides and three angles
</p>
</div>
<!-- EDIT52 SECTION "Definition" [25435-25848] -->
<h3><a>Usage</a></h3>
<div>
@ -1032,7 +1032,7 @@ jME&#039;s Triangle class is a simple data class. It contains three <a href="/co
</p>
</div>
<!-- EDIT53 SECTION "Usage" [25849-26175] -->
<h3><a>Example 1 - Creating a Triangle</a></h3>
<div>
<pre>//the three points that make up the triangle
@ -1042,12 +1042,12 @@ Vector3f p3 = new Vector3f&#40;0,1,1&#41;;
Triangle t = new Triangle&#40;p1, p2, p3&#41;;</pre>
</div>
<!-- EDIT54 SECTION "Example 1 - Creating a Triangle" [26176-26426] -->
<h1><a>Tips and Tricks</a></h1>
<div>
</div>
<!-- EDIT55 SECTION "Tips and Tricks" [26427-26457] -->
<h2><a>How do I get height/width of a spatial?</a></h2>
<div>
@ -1062,10 +1062,11 @@ float y = &#40; &#40;BoundingBox&#41;spatial.getWorldBound&#40;&#41;&#41;.getYEx
float z = &#40; &#40;BoundingBox&#41;spatial.getWorldBound&#40;&#41;&#41;.getZExtent&#40;&#41;;</pre>
</div>
<!-- EDIT56 SECTION "How do I get height/width of a spatial?" [26458-26888] -->
<h2><a>How do I position the center of a Geomtry?</a></h2>
<div>
<pre>geo.center&#40;&#41;.move&#40;pos&#41;;</pre>
</div>
<!-- EDIT57 SECTION "How do I position the center of a Geomtry?" [26889-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:math?do=export_xhtmlbody">view online version</a></em></p>

@ -26,7 +26,7 @@ HelloJME3/src
...</pre>
</div>
<!-- EDIT1 SECTION "Starting a JME3 application from the Commandline" [1-678] -->
<h2><a>Installing the JME3 Framework</a></h2>
<div>
@ -51,7 +51,7 @@ If you see a Test Chooser open now, the build was successful. <strong>Tip:</stro
</p>
</div>
<!-- EDIT2 SECTION "Installing the JME3 Framework" [679-1380] -->
<h2><a>Sample Project Directory Structure</a></h2>
<div>
@ -64,7 +64,7 @@ mkdir HelloJME3/src
mkdir HelloJME3/src/hello</pre>
</div>
<!-- EDIT3 SECTION "Sample Project Directory Structure" [1381-1778] -->
<h2><a>Libraries</a></h2>
<div>
@ -84,7 +84,7 @@ mkdir HelloJME3/lib
cp jme3/dist/*.* HelloJME3/lib</pre>
</div>
<!-- EDIT4 SECTION "Libraries" [1779-2353] -->
<h3><a>Sample Code</a></h3>
<div>
@ -110,7 +110,7 @@ public class HelloJME3 extends SimpleApplication &#123;
&nbsp;
@Override
public void simpleInitApp&#40;&#41; &#123;
Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Box b = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;;
Geometry geom = new Geometry&#40;&quot;Box&quot;, b&#41;;
Material mat = new Material&#40;assetManager,
&quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
@ -121,7 +121,7 @@ public class HelloJME3 extends SimpleApplication &#123;
&#125;</pre>
</div>
<!-- EDIT5 SECTION "Sample Code" [2354-3287] -->
<h2><a>Build and Run</a></h2>
<div>
@ -147,7 +147,7 @@ If a settings dialog pops up, confirm the default settings. You should now see a
</p>
</div>
<!-- EDIT6 SECTION "Build and Run" [3288-4740] -->
<h2><a>Recommended Asset Directory Structure</a></h2>
<div>
@ -180,7 +180,7 @@ You will learn more about the asset manager and how to customize it later. For n
</p>
</div>
<!-- EDIT7 SECTION "Recommended Asset Directory Structure" [4741-5682] -->
<h2><a>Next Steps</a></h2>
<div>
@ -194,4 +194,5 @@ Now follow the <a href="/com/jme3/gde/core/docs/jme3.html">tutorials</a> and wri
</span></div>
</div>
<!-- EDIT8 SECTION "Next Steps" [5683-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:simpleapplication_from_the_commandline?do=export_xhtmlbody">view online version</a></em></p>

@ -8,7 +8,7 @@ Before you start, make certain you are familiar with the following concepts and
</p>
</div>
<!-- EDIT1 SECTION "3D Game Development Terminology" [1-142] -->
<h1><a>3D Graphics and Audio</a></h1>
<div>
@ -28,7 +28,7 @@ Before you start, make certain you are familiar with the following concepts and
</p>
</div>
<!-- EDIT2 SECTION "3D Graphics and Audio" [143-524] -->
<h1><a>Context, Display, Renderer</a></h1>
<div>
@ -50,12 +50,12 @@ The <strong>jME Context</strong> makes settings, renderer, timer, input and even
</ul>
</div>
<!-- EDIT3 SECTION "Context, Display, Renderer" [525-1180] -->
<h1><a>Geometry</a></h1>
<div>
</div>
<!-- EDIT4 SECTION "Geometry" [1181-1204] -->
<h2><a>Polygon, Mesh, Vertex</a></h2>
<div>
@ -77,7 +77,7 @@ You create 3D meshes in tools called mesh editors, e.g in Blender. The jMonkeyEn
</p>
</div>
<!-- EDIT5 SECTION "Polygon, Mesh, Vertex" [1205-2108] -->
<h1><a>Materials: Color, Lighting/Shading</a></h1>
<div>
@ -87,12 +87,12 @@ What we call &quot;color&quot; is merely part of an object&#039;s light reflecti
</p>
</div>
<!-- EDIT6 SECTION "Materials: Color, Lighting/Shading" [2109-2508] -->
<h2><a>Color</a></h2>
<div>
</div>
<!-- EDIT7 SECTION "Color" [2509-2525] -->
<h3><a>Ambient color</a></h3>
<div>
<ul>
@ -105,7 +105,7 @@ What we call &quot;color&quot; is merely part of an object&#039;s light reflecti
</ul>
</div>
<!-- EDIT8 SECTION "Ambient color" [2526-2760] -->
<h3><a>Diffuse color</a></h3>
<div>
<ul>
@ -116,12 +116,12 @@ What we call &quot;color&quot; is merely part of an object&#039;s light reflecti
</ul>
</div>
<!-- EDIT9 SECTION "Diffuse color" [2761-2925] -->
<h2><a>Light Sources</a></h2>
<div>
</div>
<!-- EDIT10 SECTION "Light Sources" [2926-2950] -->
<h3><a>Emissive color</a></h3>
<div>
<ul>
@ -134,12 +134,12 @@ What we call &quot;color&quot; is merely part of an object&#039;s light reflecti
</ul>
</div>
<!-- EDIT11 SECTION "Emissive color" [2951-3181] -->
<h2><a>Reflections</a></h2>
<div>
</div>
<!-- EDIT12 SECTION "Reflections" [3182-3205] -->
<h3><a>Shininess</a></h3>
<div>
<ul>
@ -155,7 +155,7 @@ Set the Specular color to ColorRGBA.Black to switch off shininess.</div>
</ul>
</div>
<!-- EDIT13 SECTION "Shininess" [3206-3640] -->
<h3><a>Specular Color</a></h3>
<div>
<ul>
@ -174,7 +174,7 @@ Set the Specular color to ColorRGBA.Black to switch off shininess.</div>
</p>
</div>
<!-- EDIT14 SECTION "Specular Color" [3641-4062] -->
<h1><a>Materials: Textures</a></h1>
<div>
@ -193,12 +193,12 @@ The more information you (the game designer) provide additionally to the Color M
</p>
</div>
<!-- EDIT15 SECTION "Materials: Textures" [4063-4874] -->
<h2><a>Texture Mapping</a></h2>
<div>
</div>
<!-- EDIT16 SECTION "Texture Mapping" [4875-4901] -->
<h3><a>Color Map / Diffuse Map</a></h3>
<div>
@ -218,7 +218,7 @@ The more information you (the game designer) provide additionally to the Color M
</ul>
</div>
<!-- EDIT17 SECTION "Color Map / Diffuse Map" [4902-5476] -->
<h3><a>Bump Map</a></h3>
<div>
@ -269,7 +269,7 @@ Bump maps are used to describe detailed shapes that would be too hard or simply
</ul>
</div>
<!-- EDIT18 SECTION "Bump Map" [5477-7238] -->
<h3><a>Specular Map</a></h3>
<div>
@ -287,7 +287,7 @@ Bump maps are used to describe detailed shapes that would be too hard or simply
</ul>
</div>
<!-- EDIT19 SECTION "Specular Map" [7239-7997] -->
<h2><a>Seamless Tiled Textures</a></h2>
<div>
@ -306,7 +306,7 @@ See also this tutorial on <object classid="java:org.netbeans.modules.javahelp.Br
</p>
</div>
<!-- EDIT20 SECTION "Seamless Tiled Textures" [7998-8970] -->
<h2><a>UV Maps / Texture Atlas</a></h2>
<div>
@ -324,7 +324,7 @@ Getting the seams and mappings right is crucial: You must use a graphic tool lik
</p>
</div>
<!-- EDIT21 SECTION "UV Maps / Texture Atlas" [8971-9926] -->
<h2><a>Environment Mapping</a></h2>
<div>
@ -346,7 +346,7 @@ See also: <a href="/com/jme3/gde/core/docs/jme3/advanced/water.html">Water</a>.
</p>
</div>
<!-- EDIT22 SECTION "Environment Mapping" [9927-10811] -->
<h2><a>MIP Map Texture</a></h2>
<div>
@ -356,7 +356,7 @@ MIP Map means that you provide one texture in two or three resolutions in one fi
</p>
</div>
<!-- EDIT23 SECTION "MIP Map Texture" [10812-11398] -->
<h2><a>Procedural Textures</a></h2>
<div>
@ -374,7 +374,7 @@ See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer">
</p>
</div>
<!-- EDIT24 SECTION "Procedural Textures" [11399-12305] -->
<h1><a>Animation</a></h1>
<div>
@ -388,7 +388,7 @@ Unless you animate a 3D cartoon, realism of animated characters is generally a p
</p>
</div>
<!-- EDIT25 SECTION "Animation" [12306-12902] -->
<h2><a>Rigging and Skinning</a></h2>
<div>
@ -456,7 +456,7 @@ E.g. when the thigh bone moves, the leg is fully affected, the hips joints less
</p>
</div>
<!-- EDIT26 SECTION "Rigging and Skinning" [12903-15362] -->
<h2><a>Kinematics</a></h2>
<div>
<ul>
@ -467,7 +467,7 @@ E.g. when the thigh bone moves, the leg is fully affected, the hips joints less
</ul>
</div>
<!-- EDIT27 SECTION "Kinematics" [15363-15627] -->
<h2><a>Controller and Channel</a></h2>
<div>
@ -476,7 +476,7 @@ In the JME3 application, you register animated models to the Animation Controlle
</p>
</div>
<!-- EDIT28 SECTION "Controller and Channel" [15628-15997] -->
<h1><a>Artificial Intelligence (AI)</a></h1>
<div>
@ -527,7 +527,7 @@ There are lots of resources explaining interesting AI algorithms:
</ul>
</div>
<!-- EDIT29 SECTION "Artificial Intelligence (AI)" [15998-19245] -->
<h1><a>Math</a></h1>
<div>
@ -536,7 +536,7 @@ There are lots of resources explaining interesting AI algorithms:
</p>
</div>
<!-- EDIT30 SECTION "Math" [19246-19319] -->
<h2><a>Coordinates</a></h2>
<div>
@ -547,7 +547,7 @@ In contrast to a vector (which looks similar), a coordinate is a location, not a
</p>
</div>
<!-- EDIT31 SECTION "Coordinates" [19320-19709] -->
<h3><a>The Origin</a></h3>
<div>
@ -561,7 +561,7 @@ The origin is the central point in the 3D world, where the three axes meet. It&#
</p>
</div>
<!-- EDIT32 SECTION "The Origin" [19710-19914] -->
<h2><a>Vectors</a></h2>
<div>
@ -577,7 +577,7 @@ A vector has a length and a direction, like an arrow in 3D space. A vector start
Vector3f v = new Vector3f&#40; 8f , 0f , 33f &#41;.add&#40;new Vector3f&#40; 0f , -2f , -2f &#41;&#41;; // starts at (8/0/33)</pre>
</div>
<!-- EDIT33 SECTION "Vectors" [19915-20364] -->
<h3><a>Unit Vectors</a></h3>
<div>
@ -601,7 +601,7 @@ Negate the vegator to change its direction, e.g. (-1, 0, 0) = left.
</p>
</div>
<!-- EDIT34 SECTION "Unit Vectors" [20365-20863] -->
<h3><a>Normalized Vectors</a></h3>
<div>
@ -616,7 +616,7 @@ When you normalize a vector, it still has the same direction, but you lose the i
</p>
</div>
<!-- EDIT35 SECTION "Normalized Vectors" [20864-21207] -->
<h3><a>Surface Normal Vectors</a></h3>
<div>
@ -628,7 +628,7 @@ You calculate the Surface Normal by calculating the cross product.
</p>
</div>
<!-- EDIT36 SECTION "Surface Normal Vectors" [21208-21420] -->
<h3><a>Cross Product</a></h3>
<div>
@ -645,7 +645,7 @@ In 3D space, speaking of an orthogonal only makes sense with respect to a plane.
</p>
</div>
<!-- EDIT37 SECTION "Cross Product" [21421-22131] -->
<h3><a>Transformation</a></h3>
<div>
@ -659,7 +659,7 @@ Examples: Falling and rotating bricks in 3D Tetris.
</p>
</div>
<!-- EDIT38 SECTION "Transformation" [22132-22396] -->
<h3><a>Slerp</a></h3>
<div>
@ -677,7 +677,7 @@ Example: A burning meteorite Geometry slerps from &quot;position p1, rotation r1
</p>
</div>
<!-- EDIT39 SECTION "Slerp" [22397-23166] -->
<h1><a>Game Developer Jargon</a></h1>
<div>
<ul>
@ -686,7 +686,7 @@ Example: A burning meteorite Geometry slerps from &quot;position p1, rotation r1
</ul>
</div>
<!-- EDIT40 SECTION "Game Developer Jargon" [23167-23330] -->
<h1><a>3D graphics Terminology Wiki book</a></h1>
<div>
<ul>
@ -695,4 +695,5 @@ Example: A burning meteorite Geometry slerps from &quot;position p1, rotation r1
</ul>
</div>
<!-- EDIT41 SECTION "3D graphics Terminology Wiki book" [23331-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:terminology?do=export_xhtmlbody">view online version</a></em></p>

@ -16,7 +16,7 @@ Then continue learning about jME3 concepts here.
</p>
</div>
<!-- EDIT1 SECTION "The Scene Graph and Other jME3 Terminology" [1-396] -->
<h2><a>Coordinate System</a></h2>
<div>
@ -66,7 +66,7 @@ The unit of meassurement is <code>world unit</code> (wu). Typically, 1 wu is con
</p>
</div>
<!-- EDIT2 SECTION "Coordinate System" [397-1443] -->
<h2><a>Scene Graph and RootNode</a></h2>
<div>
@ -80,7 +80,7 @@ The scene graph represents your 3D world. Objects in the jME3 scene graph are ca
</p>
</div>
<!-- EDIT3 SECTION "Scene Graph and RootNode" [1444-1820] -->
<h2><a>Spatials: Node vs Geometry</a></h2>
<div>
@ -112,9 +112,9 @@ A Spatial can be transformed, loaded and saved. There are two types of Spatials,
<th> Examples: </th><td> A box, a sphere, player, a building, a piece of terrain, a vehicle, missiles, NPCs, etc… </td><td> The rootNode, the guiNode, an audio node, a custom grouping node, etc. </td>
</tr>
</table></div>
<!-- EDIT1 TABLE [1973-2678] -->
<!-- EDIT5 TABLE [1973-2678] -->
</div>
<!-- EDIT4 SECTION "Spatials: Node vs Geometry" [1821-2679] -->
<h2><a>How to Use This Knowledge?</a></h2>
<div>
@ -129,4 +129,5 @@ The <a href="/com/jme3/gde/core/docs/jme3.html">intermediate and advanced docume
</p>
</div>
<!-- EDIT6 SECTION "How to Use This Knowledge?" [2680-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:the_scene_graph?do=export_xhtmlbody">view online version</a></em></p>

@ -8,7 +8,7 @@ When you <a href="/com/jme3/gde/core/docs/sdk/application_deployment.html">use t
</p>
</div>
<!-- EDIT1 SECTION "WebStart (JNLP) Deployment" [1-326] -->
<h2><a>Problem Statement</a></h2>
<div>
@ -30,7 +30,7 @@ You can instruct WebStart to load the native libraries itself using the JNLP fil
</p>
</div>
<!-- EDIT2 SECTION "Problem Statement" [327-649] -->
<h2><a>Simple way</a></h2>
<div>
@ -41,12 +41,12 @@ You can import the LWJGL JNLP extension directly into your extension, however be
<pre><span>&lt;extension name=&quot;lwjgl&quot; href=&quot;http://lwjgl.org/webstart/2.7.1/extension.jnlp&quot; /&gt;</span></pre>
</div>
<!-- EDIT3 SECTION "Simple way" [650-963] -->
<h2><a>Reliable way</a></h2>
<div>
</div>
<!-- EDIT4 SECTION "Reliable way" [964-989] -->
<h3><a>Native jars</a></h3>
<div>
@ -84,7 +84,7 @@ Remember to sign all the jar files and move them into the right place from the t
</p>
</div>
<!-- EDIT5 SECTION "Native jars" [990-1626] -->
<h3><a>JNLP file</a></h3>
<div>
@ -110,7 +110,7 @@ Add the following to your JNLP file:
<span><span>&lt;/resources&gt;</span></span></pre>
</div>
<!-- EDIT6 SECTION "JNLP file" [1627-2158] -->
<h3><a>Set low-permissions mode</a></h3>
<div>
@ -125,4 +125,5 @@ In your main() method, if running under WebStart, tell jME3 it is running in a l
&#125;</pre>
</div>
<!-- EDIT7 SECTION "Set low-permissions mode" [2159-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:webstart?do=export_xhtmlbody">view online version</a></em></p>

@ -8,7 +8,7 @@ The jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> suppor
</p>
</div>
<!-- EDIT1 SECTION "Using Blender as a Intermediator Between 3dMax and the jMonkeyEngine SDK" [1-271] -->
<h2><a>Importing the .3ds file to Blender</a></h2>
<div>
@ -24,7 +24,7 @@ and import your .3ds file via File—→Import—–&gt;3D Studio.
</p>
</div>
<!-- EDIT2 SECTION "Importing the .3ds file to Blender" [272-623] -->
<h2><a>Saving the .blend file</a></h2>
<div>
@ -38,7 +38,7 @@ Now save your .blend file so you can load it into the jMonkeyEngine <acronym tit
</p>
</div>
<!-- EDIT3 SECTION "Saving the .blend file" [624-804] -->
<h2><a>Importing the .blend file to the SDK by using the ModelImporter and BlenderSupport plugins</a></h2>
<div>
@ -52,7 +52,7 @@ Click on Import Model button and then click on Open Model button to open the .bl
</p>
</div>
<!-- EDIT4 SECTION "Importing the .blend file to the SDK by using the ModelImporter and BlenderSupport plugins" [805-1153] -->
<h2><a>Edit your model in SceneComposer and &quot;VOILA&quot;</a></h2>
<div>
@ -66,4 +66,5 @@ As you can see, the .blend model was automatically converted to .j3o binary form
</p>
</div>
<!-- EDIT5 SECTION "Edit your model in SceneComposer and VOILA" [1154-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:3ds_to_blender_to_jmp?do=export_xhtmlbody">view online version</a></em></p>

@ -18,7 +18,7 @@ After you have written and tested your game, you want to brand it and distribute
</ul>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine SDK: Application Deployment" [1-417] -->
<h2><a>Requirements</a></h2>
<div>
@ -28,7 +28,7 @@ Since JAR files are platform independent, your customers can play your jMonkeyEn
</p>
</div>
<!-- EDIT2 SECTION "Requirements" [418-719] -->
<h2><a>Branding</a></h2>
<div>
@ -72,13 +72,12 @@ TODO: where does this info actually show up?
</p>
</div>
<!-- EDIT3 SECTION "Branding" [720-1444] -->
<h2><a>Creating the Distributable</a></h2>
<div>
<p>
<img src="/wiki/lib/exe/fetch.php">
<img src="nbdocs:/com/jme3/gde/core/docs/sdk/deploy_android.png">
When you run the build script provided by the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>, it automatically compiles your classes, libraries, and assets. It creates a <code>dist</code> directory in your project directory which contains the executable JAR and a directory with libraries.
</p>
@ -91,7 +90,7 @@ Here are your deployment options in detail:
</p>
</div>
<!-- EDIT4 SECTION "Creating the Distributable" [1445-1988] -->
<h3><a>Desktop Application (JAR)</a></h3>
<div>
@ -119,7 +118,7 @@ Most operating systems execute a JAR when users double-click on it, but you can
</p>
</div>
<!-- EDIT5 SECTION "Desktop Application (JAR)" [1989-2865] -->
<h3><a>Desktop Executables</a></h3>
<div>
@ -141,7 +140,7 @@ When you build your project, zip files for each selected platform will be create
</p>
</div>
<!-- EDIT6 SECTION "Desktop Executables" [2866-3441] -->
<h3><a>Web Start (JNLP)</a></h3>
<div>
@ -178,7 +177,7 @@ Also, see this <object classid="java:org.netbeans.modules.javahelp.BrowserDispla
</p>
</div>
<!-- EDIT7 SECTION "Web Start (JNLP)" [3442-5044] -->
<h3><a>Browser Applet</a></h3>
<div>
@ -243,7 +242,7 @@ The <code>dist/Applet</code> directory now contains all the files necessary for
</ul>
</div>
<!-- EDIT8 SECTION "Browser Applet" [5045-6809] -->
<h3><a>Android Mobile Device</a></h3>
<div>
@ -253,7 +252,7 @@ You can set the jMonkeyEngine <acronym title="Software Development Kit">SDK</acr
</p>
</div>
<!-- EDIT9 SECTION "Android Mobile Device" [6810-6985] -->
<h2><a>Tip: Switching Build Configurations</a></h2>
<div>
@ -278,7 +277,7 @@ Now you can use the <code>Set Project Configuration</code> popup menu to switch
</p>
</div>
<!-- EDIT10 SECTION "Tip: Switching Build Configurations" [6986-7761] -->
<h2><a>Tip: Reduce Distribution File Size</a></h2>
<div>
@ -321,4 +320,5 @@ jme3-libraries-gui, jme3-libraries-physics, jme3-libraries-video, etc.</div>
</span></div>
</div>
<!-- EDIT11 SECTION "Tip: Reduce Distribution File Size" [7762-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:application_deployment?do=export_xhtmlbody">view online version</a></em></p>

@ -7,7 +7,7 @@ AssetPacks are a way to package jME3 compatible assets like models, textures, so
</p>
</div>
<!-- EDIT1 SECTION "jMonkeyEngine SDK: AssetPacks" [1-519] -->
<h2><a>The AssetPack Browser</a></h2>
<div>
@ -28,7 +28,7 @@ The AssetPack browser uses a predefined directory to store the AssetPacks which
</p>
</div>
<!-- EDIT2 SECTION "The AssetPack Browser" [520-1342] -->
<h3><a>Using the browser</a></h3>
<div>
@ -55,7 +55,7 @@ The model will be added to your scene and all needed texture files will be copie
</p>
</div>
<!-- EDIT3 SECTION "Using the browser" [1343-1948] -->
<h2><a>AssetPack Projects</a></h2>
<div>
@ -81,7 +81,7 @@ You can access and change the project properties by right-clicking the project a
</p>
</div>
<!-- EDIT4 SECTION "AssetPack Projects" [1949-2622] -->
<h3><a>Adding Assets</a></h3>
<div>
@ -159,7 +159,7 @@ Supported formats for models (main files) are:
</ol>
</div>
<!-- EDIT5 SECTION "Adding Assets" [2623-5521] -->
<h3><a>AssetPack Publishing</a></h3>
<div>
@ -190,4 +190,5 @@ To make sure you can upload, you have to be registered on jmonkeyengine.org and
</span></div>
</div>
<!-- EDIT6 SECTION "AssetPack Publishing" [5522-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:asset_packs?do=export_xhtmlbody">view online version</a></em></p>

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

Loading…
Cancel
Save