OSDN Git Service

SDK:
authornormen667 <normen667@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Sat, 29 Jun 2013 17:12:01 +0000 (17:12 +0000)
committernormen667 <normen667@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Sat, 29 Jun 2013 17:12:01 +0000 (17:12 +0000)
- update manual content

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

203 files changed:
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/1.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/2.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/220px-trefoil_knot_arb.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/3.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/3d_models.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/4.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/5.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/6.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/animation.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/application_states.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/appstatesdemo.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/asset_manager.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/audio.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/audio_environment_presets.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/bloom_and_glow.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/bullet_multithreading.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/bump-mapped-sphere.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/butterfly-particle-emitter.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/camera.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/capture_audio_video_to_a_file.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/cinematics.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/collision_and_intersection.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/combo_moves.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/custom_controls.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/custom_meshes.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/debug-shapes.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/debugging.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/dof-blur.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/drop-shadows.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/effects_overview.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/elephant-pointlights.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/endless_terraingrid.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/explosion-5.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/fade.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/headless_server.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/hinges_and_joints.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/house-directionallight.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/hud.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/input_handling.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/j3m_material_files.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/jme3_shaders.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/light-scattering-filter.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/light-sources.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/light_and_shadow.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/loading_screen.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/localization.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/logging.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/making_the_camera_follow_a_character.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/material_definitions.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/materials_overview.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/mesh.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/monkey_zone.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/motionpath.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/mouse_picking.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/multiple_camera_views.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/multithreading.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/networking.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui-13.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui-example.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-screen-layer-panel.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty_gui.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty_gui_java_interaction.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty_gui_java_layout.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty_gui_overlay.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty_gui_popup_menu.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty_gui_projection.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty_gui_scenarios.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty_gui_xml_layout.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nurbs_3-d_surface.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/ogrecompatibility.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/open_game_finder.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/otoglow.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/otonobloom.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/particle.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/particle_emitters.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/physics.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/physics_listeners.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/post-processor_water.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/ragdoll.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/read_graphic_card_capabilites.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/remote-controlling_the_camera.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/save_and_load.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/screenshots.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_glass.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_light1.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_light2.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_matcap.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shadow-sponza-ssao.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shadow.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shape.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/simplewater.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/sky.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/spatial.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/swing_canvas.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/tanlglow1.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/terrain.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/terrain_collision.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/toon-dino.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/underwater2.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/update_loop.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/vehicles.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/walking_character.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water-post-muddy.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water-reflection-muddy.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/android.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-assets-models.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-effect-fire.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-materials.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-physics.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-scene.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-terrain.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_animation.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_asset.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_audio.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_collision.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_effects.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_input_system.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_main_event_loop.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_material.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_node.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_physics.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_picking.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_simpleapplication.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/hello_terrain.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/build_from_sources.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/build_jme3_sources_with_netbeans.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/1.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/2.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/3.1.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/3.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/3dsmax.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/4.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/5.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/6.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/7.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/8.gif
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-1.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-2.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-3.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-4.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_apply_bones.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_apply_mesh.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_envelopes.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_finished.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_rootbone.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/faq.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/appsettings.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/best_practices.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/coordinate-system.png
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/file_types.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/how_to_use_materials.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/math.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/multi-media_asset_pipeline.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/optimization.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/simpleapplication.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/ios.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/math.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/simpleapplication_from_the_commandline.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/terminology.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/the_scene_graph.html
sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/webstart.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/3ds_to_blender_to_jmp.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/application_deployment.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/applymaterial.jpg
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/asset_packs.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/blender.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/code_editor.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/debugging_profiling_testing.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/default_build_script.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/deploy_android.png
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/development.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/development/extension_library.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/development/general.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/development/model_loader.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/development/projects_assets.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/development/scene.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/development/sceneexplorer.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/development/setup.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/filters.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkey-branding.png
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-2.png
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-3.png
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-4.png
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-5.png
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/log_files.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/material-editor.png
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/material_editing.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/model_loader_and_viewer.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/project_creation.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/scene_composer.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/scene_explorer.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/terrain_editor.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/troubleshooting.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/use_own_jme.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/vehicle_creator.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/version_control.html
sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/welcome/3_0rc3.html
sdk/jme3-documentation/src/com/jme3/gde/docs/wiki-download-index.properties
sdk/jme3-documentation/src/com/jme3/gde/docs/wiki-map.xml

index 7886f41..7979ddc 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/1.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/1.jpg differ
index 0fc9572..9e07919 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/2.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/2.jpg differ
index 8974e48..cda20c6 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/220px-trefoil_knot_arb.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/220px-trefoil_knot_arb.png differ
index e966d4f..4161ce1 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/3.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/3.jpg differ
index 9cab330..d4c5c8d 100644 (file)
@@ -88,4 +88,4 @@ You can now use the <a href="/com/jme3/gde/docs/sdk.html">jMonkeyEngine SDK</a>
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:3d_models?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 913e1c5..bec6cde 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/4.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/4.jpg differ
index 3fe9f24..f46cb4e 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/5.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/5.jpg differ
index c2fc1a6..3955f21 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/6.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/6.jpg differ
index bfc4d21..59074ae 100644 (file)
@@ -21,11 +21,11 @@ JME3 only loads and plays animated models, it does not create them.
 What is required for an animated model? (<a href="/com/jme3/gde/docs/jme3/terminology#animation.html">See also: Animation terminology</a>)
 </p>
 <ol>
-<li><div> For each model, you have to segment the model into a skeleton (bone rigging). </div>
+<li><div> For each model, you have to segment the model into a skeleton (<strong>bone rigging</strong>). </div>
 </li>
-<li><div> For each motion, you have to specify how the animation distorts parts of the model (skinning). </div>
+<li><div> For each motion, you have to specify how the animation distorts parts of the model (<strong>skinning</strong>).  </div>
 </li>
-<li><div> For each animation, you have to specify a series of snapshots of how the bones are positioned (keyframes).</div>
+<li><div> For each animation, you have to specify a series of snapshots of how the bones are positioned (<strong>keyframes</strong>).</div>
 </li>
 <li><div> One model can contain several animations. You give every animation a name when you save it in the mesh editor.</div>
 </li>
@@ -62,7 +62,7 @@ What is required in your JME3-based Java class?
 </ul>
 
 </div>
-<!-- EDIT2 SECTION "Requirements" [168-2025] -->
+<!-- EDIT2 SECTION "Requirements" [168-2038] -->
 <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] -->
+<!-- EDIT3 SECTION "Code Samples" [2039-2947] -->
 <h2><a>Controlling Animations</a></h2>
 <div>
 
 </div>
-<!-- EDIT4 SECTION "Controlling Animations" [2935-2970] -->
+<!-- EDIT4 SECTION "Controlling Animations" [2948-2983] -->
 <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] -->
+<!-- EDIT5 SECTION "The Animation Control" [2984-3623] -->
 <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] -->
+<!-- EDIT6 SECTION "Animation Channels" [3624-4257] -->
 <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>
-<!-- EDIT8 TABLE [4347-4816] --><div><table>
+<!-- EDIT8 TABLE [4360-4829] --><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>
-<!-- EDIT9 TABLE [4818-5378] --><div><table>
+<!-- EDIT9 TABLE [4831-5391] --><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>
-<!-- EDIT10 TABLE [5380-5695] -->
+<!-- EDIT10 TABLE [5393-5708] -->
 </div>
-<!-- EDIT7 SECTION "Animation Control Properties" [4245-5697] -->
+<!-- EDIT7 SECTION "Animation Control Properties" [4258-5710] -->
 <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>
-<!-- EDIT12 TABLE [5791-6415] -->
+<!-- EDIT12 TABLE [5804-6428] -->
 <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>
-<!-- EDIT13 TABLE [6472-7105] -->
+<!-- EDIT13 TABLE [6485-7118] -->
 <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>
-<!-- EDIT14 TABLE [7345-7966] -->
+<!-- EDIT14 TABLE [7358-7979] -->
 </div>
-<!-- EDIT11 SECTION "Animation Channel Properties" [5698-7968] -->
+<!-- EDIT11 SECTION "Animation Channel Properties" [5711-7981] -->
 <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>
-<!-- EDIT16 TABLE [8154-8480] -->
+<!-- EDIT16 TABLE [8167-8493] -->
 <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] -->
+<!-- EDIT15 SECTION "Playing Animations" [7982-8586] -->
 <h3><a>Usage Example</a></h3>
 <div>
 
@@ -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] -->
+<!-- EDIT17 SECTION "Usage Example" [8587-9276] -->
 <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] -->
+<!-- EDIT18 SECTION "Animation Event Listener" [9277-9680] -->
 <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] -->
+<!-- EDIT19 SECTION "Responding to Animation End" [9681-10471] -->
 <h3><a>Responding to Animation Start</a></h3>
 <div>
 
@@ -398,5 +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>
\ No newline at end of file
+<!-- EDIT20 SECTION "Responding to Animation Start" [10472-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:animation?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 7b1f610..3f693ff 100644 (file)
@@ -62,20 +62,20 @@ You can! This is what AppStates are there for. An AppState class is subset of (o
 
 <p>
 
-Each AppState lets you define what happens in the following situations:
+Each AppState lets you define what happens to it in the following situations:
 </p>
 <ul>
 <li><div> <strong>The AppState is initialized:</strong> You load and initialize game data, InputHandlers, AppStates and Controls and attach nodes. <br/>
-The AppState has its own simpleInitApp() method, so to speak.</div>
+The AppState executes its own simpleInitApp() method when it is attached, so to speak.</div>
 </li>
 <li><div> <strong>The AppState has been enabled (unpaused):</strong> This toggles a boolean isEnabled() to true. Here you attach nodes and listeners that should become active while it&#039;s running. </div>
 </li>
-<li><div> <strong>While the AppState is running/paused:</strong> You can poll isEnabled() to define paused and unpaused game behaviour in the update() loop that. Polls and modify the game state, modify the scene graph, and triggers events. If !isEnabled(), write code that skips the running sections of this AppState&#039;s <code>update()</code> loop. <br/>
+<li><div> <strong>While the AppState is running/paused:</strong> You can poll isEnabled() to define paused and unpaused game behaviour in the update() loop. In update(), you poll and modify the game state, modify the scene graph, and trigger events. Test if <code>!isEnabled()</code>, and write code that skips the running sections of this AppState&#039;s <code>update()</code> loop. <br/>
 Each AppState has its own update loop, which hooks into the main simpleUpdate() loop (callback). </div>
 </li>
-<li><div> <strong>The AppState has been disabled (paused):</strong> This toggles a boolean isEnabled() to false. Switch to your specific &quot;paused&quot; state. </div>
+<li><div> <strong>The AppState has been disabled (paused):</strong> This toggles a boolean isEnabled() to false. Here you switch all objects to their specific &quot;paused&quot; behaviour. </div>
 </li>
-<li><div> <strong>The AppState is cleaned up:</strong> Here you decide whether to save this AppState&#039;s game state, unregister Controls and InputHandlers, detach related AppStates, and detach nodes from the rootNode.</div>
+<li><div> <strong>The AppState is cleaned up:</strong> Here you decide what happens when the AppState is detached. Save this AppState&#039;s game state, unregister Controls and InputHandlers, detach related AppStates, detach nodes from the rootNode, etc.</div>
 </li>
 </ul>
 
@@ -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] -->
+<!-- EDIT4 SECTION "Supported Features" [2035-3763] -->
 <h3><a>Usage</a></h3>
 <div>
 
@@ -105,9 +105,11 @@ To implement game logic:
 </li>
 </ul>
 </li>
-<li><div> Attach the AppState to the AppStateManager (<code>stateManager.attach(myAppState);</code>).</div>
+<li><div> Create and attach the AppState to the AppStateManager (<code>stateManager.attach(myAppState);</code>) and initialize it.</div>
 </li>
-<li><div> Activate and deactivate (unpause and pause) the AppStates that you need.</div>
+<li><div> Enable and disable (unpause and pause) the AppStates that you need during the game.</div>
+</li>
+<li><div> Detach the AppState from the AppStateManager (<code>stateManager.detach(myAppState);</code>) and clean it up it.</div>
 </li>
 </ol>
 
@@ -117,7 +119,7 @@ When you add several AppStates to one Application and activate them, their initi
 </p>
 
 </div>
-<!-- EDIT5 SECTION "Usage" [3650-4363] -->
+<!-- EDIT5 SECTION "Usage" [3764-4625] -->
 <h3><a>Code Samples</a></h3>
 <div>
 
@@ -137,7 +139,7 @@ JME3 comes with a BulletAppState that implements Physical behaviour (using the j
 </ul>
 
 </div>
-<!-- EDIT6 SECTION "Code Samples" [4364-5144] -->
+<!-- EDIT6 SECTION "Code Samples" [4626-5406] -->
 <h2><a>AppState</a></h2>
 <div>
 
@@ -182,9 +184,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>
-<!-- EDIT8 TABLE [5293-6855] -->
+<!-- EDIT8 TABLE [5555-7117] -->
 </div>
-<!-- EDIT7 SECTION "AppState" [5145-6856] -->
+<!-- EDIT7 SECTION "AppState" [5407-7118] -->
 <h2><a>AbstractAppState</a></h2>
 <div>
 
@@ -247,7 +249,7 @@ Definition:
 &#125;</pre>
 
 </div>
-<!-- EDIT9 SECTION "AbstractAppState" [6857-9029] -->
+<!-- EDIT9 SECTION "AbstractAppState" [7119-9291] -->
 <h2><a>Pausing and Unpausing</a></h2>
 <div>
 
@@ -257,7 +259,7 @@ You define what an AppState does when Paused or Unpaused, in the <code>setEnable
 </p>
 
 </div>
-<!-- EDIT10 SECTION "Pausing and Unpausing" [9030-9320] -->
+<!-- EDIT10 SECTION "Pausing and Unpausing" [9292-9582] -->
 <h2><a>AppStateManager</a></h2>
 <div>
 
@@ -277,7 +279,7 @@ 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>
-<!-- EDIT12 TABLE [9728-9938] -->
+<!-- EDIT12 TABLE [9990-10200] -->
 <p>
 
 The AppStateManager&#039;s <code>render(), postRender(), cleanup()</code> methods are internal, ignore them, users never call them directly.
@@ -297,12 +299,12 @@ The AppStateManager&#039;s <code>render(), postRender(), cleanup()</code> method
 </ul>
 
 </div>
-<!-- EDIT11 SECTION "AppStateManager" [9321-10704] -->
+<!-- EDIT11 SECTION "AppStateManager" [9583-10966] -->
 <h2><a>Best Practices</a></h2>
 <div>
 
 </div>
-<!-- EDIT13 SECTION "Best Practices" [10705-10732] -->
+<!-- EDIT13 SECTION "Best Practices" [10967-10994] -->
 <h3><a>Communication Among AppStates</a></h3>
 <div>
 
@@ -318,7 +320,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" [10733-11488] -->
+<!-- EDIT14 SECTION "Communication Among AppStates" [10995-11750] -->
 <h3><a>Initialize Familiar Class Fields</a></h3>
 <div>
 
@@ -349,5 +351,5 @@ public class MyAppState extends AbstractAppState &#123;
 &#125;</pre>
 
 </div>
-<!-- EDIT15 SECTION "Initialize Familiar Class Fields" [11489-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:application_states?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT15 SECTION "Initialize Familiar Class Fields" [11751-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:application_states?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 2347421..2ba7692 100644 (file)
@@ -4,15 +4,37 @@
 
 <p>
 
+<p><div>
+THIS DEMO IS OUT OF DATE AND NEEDS CORRECTING
+
+</div></p>
+
+</p>
+
+</div>
+<!-- EDIT1 SECTION "Simple AppStates Demo" [1-108] -->
+<h1><a>THIS DEMO IS OUT OF DATE AND NEEDS CORRECTING FOR NOW PLEASE SEE</a></h1>
+<div>
+
+<p>
+ <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:application_states"><param name="text" value="<html><u>http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:application_states</u></html>"><param name="textColor" value="blue"></object>
+</p>
+
+<p>
+Note: this tutorial needs to be fixed and is currently not correct.  One should almost never override stateDetached and stateAttached??? and should certainly never do anything scene related in them.
+</p>
+
+<p>
 This demo is a simple example of how you use AppStates to toggle between a StartScreen and a SettingsScreen (press RETURN) while the game is paused, and start the game by switching to a GameRunning state (press BACKSPACE). 
 </p>
 
 <p>
 There are four files, Main.java, GameRunningState.java, StartScreenState.java, SettingsScreenState.java. 
+
 </p>
 
 </div>
-<!-- EDIT1 SECTION "Simple AppStates Demo" [1-369] -->
+<!-- EDIT2 SECTION "THIS DEMO IS OUT OF DATE AND NEEDS CORRECTING FOR NOW PLEASE SEE" [109-793] -->
 <h2><a>Main.java</a></h2>
 <div>
 <pre>package chapter04.appstatedemo;
@@ -108,7 +130,7 @@ public class Main extends SimpleApplication &#123;
 &nbsp;</pre>
 
 </div>
-<!-- EDIT2 SECTION "Main.java" [370-3778] -->
+<!-- EDIT3 SECTION "Main.java" [794-4202] -->
 <h2><a>GameRunningState.java</a></h2>
 <div>
 <pre>package chapter04.appstatedemo;
@@ -200,7 +222,7 @@ public class GameRunningState extends AbstractAppState &#123;
 &#125;</pre>
 
 </div>
-<!-- EDIT3 SECTION "GameRunningState.java" [3779-6746] -->
+<!-- EDIT4 SECTION "GameRunningState.java" [4203-7170] -->
 <h2><a>SettingsScreenState.java</a></h2>
 <div>
 <pre>package chapter04.appstatedemo;
@@ -289,7 +311,7 @@ public class SettingsScreenState extends AbstractAppState &#123;
 &#125;</pre>
 
 </div>
-<!-- EDIT4 SECTION "SettingsScreenState.java" [6747-9561] -->
+<!-- EDIT5 SECTION "SettingsScreenState.java" [7171-9985] -->
 <h2><a>StartScreenState.java</a></h2>
 <div>
 <pre>package chapter04.appstatedemo;
@@ -378,5 +400,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>
\ No newline at end of file
+<!-- EDIT6 SECTION "StartScreenState.java" [9986-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:appstatesdemo?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index aee4d26..2f5b04d 100644 (file)
@@ -13,7 +13,7 @@ Advantages of the AssetManager:
 <ul>
 <li><div> The paths stay the same, no matter whether the game runs on Windows, Mac, Linux, etc!</div>
 </li>
-<li><div> The AssetManager automatically optimizes the handling of OpenGL objects. <br/>
+<li><div> The AssetManager automatically caches and optimizes the handling of OpenGL objects. <br/>
 For example, the same textures are not uploaded to the graphics card multiple times when multiple models use them.</div>
 </li>
 <li><div> The <a href="/com/jme3/gde/docs/sdk/default_build_script.html">default build script</a> automatically bundles the contents of the <code>assets</code> directory into the executable. </div>
@@ -43,7 +43,7 @@ See also <a href="/com/jme3/gde/docs/jme3/intermediate/best_practices.html">Best
 </p>
 
 </div>
-<!-- EDIT1 SECTION "AssetManager" [1-1691] -->
+<!-- EDIT1 SECTION "AssetManager" [1-1702] -->
 <h2><a>Usage</a></h2>
 <div>
 
@@ -71,7 +71,7 @@ Additionally, you can configure the Asset Manager and add any path to its root.
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Usage" [1692-2849] -->
+<!-- EDIT2 SECTION "Usage" [1703-2860] -->
 <h2><a>Asset Directory</a></h2>
 <div>
 
@@ -119,7 +119,7 @@ After the conversion, you move the .j3o file into the <code>assets/Models/</code
 </p>
 
 </div>
-<!-- EDIT3 SECTION "Asset Directory" [2850-5279] -->
+<!-- EDIT3 SECTION "Asset Directory" [2861-5290] -->
 <h2><a>Example Code: Loading Assets</a></h2>
 <div>
 
@@ -176,7 +176,7 @@ jME3 also offers a ClasspathLocator, ZipLocator, FileLocator, HttpZipLocator, an
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Example Code: Loading Assets" [5280-6752] -->
+<!-- EDIT4 SECTION "Example Code: Loading Assets" [5291-6763] -->
 <h2><a>Common AssetManager Tasks</a></h2>
 <div>
 <div><table>
@@ -203,9 +203,9 @@ rootNode.attachChild&#40;scene&#41;;</pre>
 </td>
        </tr>
 </table></div>
-<!-- EDIT6 TABLE [6792-7720] -->
+<!-- EDIT6 TABLE [6803-7731] -->
 </div>
-<!-- EDIT5 SECTION "Common AssetManager Tasks" [6753-7721] -->
+<!-- EDIT5 SECTION "Common AssetManager Tasks" [6764-7732] -->
 <h2><a>NullPointerException: Cannot locate resource?</a></h2>
 <div>
 
@@ -266,7 +266,7 @@ This ensures that the model&#039;s Texture paths keep working between your 3D me
 </p>
 
 </div>
-<!-- EDIT7 SECTION "NullPointerException: Cannot locate resource?" [7722-9798] -->
+<!-- EDIT7 SECTION "NullPointerException: Cannot locate resource?" [7733-9809] -->
 <h2><a>Asset Handling For Other IDEs: Codeless Projects</a></h2>
 <div>
 
@@ -316,5 +316,5 @@ Convert assets as described above.</div>
 </p>
 
 </div>
-<!-- EDIT8 SECTION "Asset Handling For Other IDEs: Codeless Projects" [9799-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:asset_manager?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT8 SECTION "Asset Handling For Other IDEs: Codeless Projects" [9810-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:asset_manager?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 2ba0809..cff5fee 100644 (file)
@@ -267,4 +267,4 @@ Advanced users find more info about OpenAL and its features here: <object classi
 
 </div>
 <!-- EDIT16 SECTION "Setting Audio Environment Properties" [6656-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:audio?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:audio?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index e611f60..ee5d922 100644 (file)
@@ -210,4 +210,4 @@ Smallwaterroom = new Environment &#40; new float&#91;&#93;&#123; 26, 36.2f, 0.70
 
 </div>
 <!-- EDIT17 SECTION "Water" [24958-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:audio_environment_presets?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:audio_environment_presets?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 980ff0c..c3066a7 100644 (file)
@@ -287,4 +287,4 @@ If you are using a glow color, set it to black
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:bloom_and_glow?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index e975256..df6a5ea 100644 (file)
@@ -62,4 +62,4 @@ Now the physics update happens in parallel to render(), that is, after the user&
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:bullet_multithreading?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 22629d2..7bdd73f 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/bump-mapped-sphere.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/bump-mapped-sphere.png differ
index 0a62a7b..08cb760 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/butterfly-particle-emitter.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/butterfly-particle-emitter.png differ
index 3a5c04a..370b0a6 100644 (file)
@@ -2,8 +2,13 @@
 <h1><a>The jME3 Camera</a></h1>
 <div>
 
+<p>
+
+Note that by default, the mouse pointer is invisible, and the mouse is set up to control the camera rotation.
+</p>
+
 </div>
-<!-- EDIT1 SECTION "The jME3 Camera" [1-31] -->
+<!-- EDIT1 SECTION "The jME3 Camera" [1-142] -->
 <h2><a>Default Camera</a></h2>
 <div>
 
@@ -52,7 +57,7 @@ The camera object is created with the following defaults:
                <td>cam.getUp(), setUp()</td><td>The up axis of the camera, usually Vector3f(0,1,0)</td>
        </tr>
        <tr>
-               <td>cam.getDirection(), setDirection()</td><td>The vector the camera is facing</td>
+               <td>cam.getDirection()</td><td>The vector the camera is facing</td>
        </tr>
        <tr>
                <td>cam.getAxes(), setAxes(left,up,dir)</td><td>One accessor for the three properties left/up/direction.</td>
@@ -82,21 +87,23 @@ The camera object is created with the following defaults:
                <td>cam.getScreenCoordinates()</td><td>?</td>
        </tr>
 </table></div>
-<!-- EDIT3 TABLE [583-1858] -->
+<!-- EDIT3 TABLE [694-1953] -->
 <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] -->
+<!-- EDIT2 SECTION "Default Camera" [143-2035] -->
 <h2><a>FlyBy Camera</a></h2>
 <div>
 
 <p>
 
-The flyby camera is an AppState that extends the default camera in com.jme3.app.SimpleApplication. It is preconfigured to respond to the WASD keys for walking forwards and backwards, and strafing to the sides; move the mouse to rotate the camera (&quot;Mouse Look&quot;), scroll the mouse wheel for zooming in or out. The QZ keys raise or lower the camera vertically.
-
+The <code>flyCam</code> class field gives you access to an AppState that extends the default camera in <code>com.jme3.app.SimpleApplication</code> with more features. The input manager of the <code>com.jme3.input.FlyByCamera</code> AppState is preconfigured to respond to the WASD keys for walking forwards and backwards, and strafing to the sides; move the mouse to rotate the camera (&quot;Mouse Look&quot;), scroll the mouse wheel for zooming in or out. The QZ keys raise or lower the camera vertically.
 </p>
+<pre>Q  W             up   forw
+A  S  D    --&gt;  left  back  right 
+Z               down  </pre>
 <div><table>
        <tr>
                <th>Method</th><th>Usage</th>
@@ -114,15 +121,20 @@ 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>
-<!-- EDIT5 TABLE [2326-2708] -->
+<!-- EDIT5 TABLE [2634-3016] -->
+<p>
+
+The FlyByCamera is active by default, but you can change all these defaults for your game.
+</p>
+
 </div>
-<!-- EDIT4 SECTION "FlyBy Camera" [1941-2709] -->
+<!-- EDIT4 SECTION "FlyBy Camera" [2036-3109] -->
 <h2><a>Chase Camera</a></h2>
 <div>
 
 <p>
 
-jME3 also supports a Chase Cam that can follow a moving target Spatial (<code>com.jme3.input.ChaseCamera</code>). Click and hold the mouse button to rotate around the target.
+jME3 also supports an optional Chase Cam that can follow a moving target Spatial (<code>com.jme3.input.ChaseCamera</code>). When you use the chase cam, the player clicks and hold the mouse button to rotate the camera around the camera target. You can use a chase cam if you need the mouse pointer visible in your game.
 </p>
 <pre>flyCam.setEnabled&#40;false&#41;;
 ChaseCamera chaseCam = new ChaseCamera&#40;cam, target, inputManager&#41;;</pre>
@@ -164,11 +176,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>
-<!-- EDIT7 TABLE [3017-4489] --><div><span>
+<!-- EDIT7 TABLE [3561-5033] --><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>
\ No newline at end of file
+<!-- EDIT6 SECTION "Chase Camera" [3110-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:camera?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index e982c4f..321422f 100644 (file)
@@ -10,7 +10,7 @@ make a cutscene for your game using the physics and characters in the
 game itself.  Screen capturing is the most straightforward way to do
 this, but it can slow down your game and produce low-quality video and
 audio as a result. A better way is to record video and audio directly
-from the game while it is running.
+from the game while it is running using VideoRecorderAppState.
 </p>
 
 <p>
@@ -21,7 +21,7 @@ feature to record high-quality game trailers!
 </p>
 
 </div>
-<!-- EDIT1 SECTION "Capture Audio/Video to a File" [1-630] -->
+<!-- EDIT1 SECTION "Capture Audio/Video to a File" [1-658] -->
 <h2><a>Simple Way</a></h2>
 <div>
 
@@ -39,10 +39,14 @@ Add the following code to your <code>simpleInitApp()</code> method.
 
 <p>
 The game will run slow, but the recording will be in high-quality and
-normal speed. The video files will be stored in your user home
-directory, if you want to save to another file, specify it in the
-VideoRecorderAppState constructor. Recording starts when the state is
-attached and ends when the application quits or the state is detached.
+normal speed. Recording starts when the state is
+attached, and ends when the application quits or the state is detached.
+</p>
+
+<p>
+The video files will be stored in your <strong>user home directory</strong>. 
+If you want to save to another path, specify a File object in the
+VideoRecorderAppState constructor. 
 </p>
 
 <p>
@@ -50,7 +54,7 @@ That&#039;s all!
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Simple Way" [631-1315] -->
+<!-- EDIT2 SECTION "Simple Way" [659-1362] -->
 <h2><a>Advanced Way</a></h2>
 <div>
 
@@ -153,7 +157,7 @@ a file.
 </p>
 
 </div>
-<!-- EDIT3 SECTION "Advanced Way" [1316-4508] -->
+<!-- EDIT3 SECTION "Advanced Way" [1363-4555] -->
 <h3><a>Basic Example</a></h3>
 <div>
 
@@ -201,7 +205,7 @@ public class Basic &#123;
 &#125;</pre>
 
 </div>
-<!-- EDIT4 SECTION "Basic Example" [4509-5641] -->
+<!-- EDIT4 SECTION "Basic Example" [4556-5688] -->
 <h3><a>How it works</a></h3>
 <div>
 
@@ -242,7 +246,7 @@ would be useless.
 </p>
 
 </div>
-<!-- EDIT5 SECTION "How it works" [5642-7280] -->
+<!-- EDIT5 SECTION "How it works" [5689-7327] -->
 <h3><a>Advanced Example</a></h3>
 <div>
 
@@ -582,13 +586,13 @@ public class Advanced extends SimpleApplication &#123;
 <p>
 
 <!--[if !IE]> -->
-<object>
+<object class="media" width="400" height="350" type="application/x-shockwave-flash" data="/wiki/lib/exe/fetch.php?hash=568504&amp;media=http%3A%2F%2Fwww.youtube.com%2Fv%2FoCEfK0yhDrY%3F.swf" >
 <!-- <![endif]-->
 <!--[if IE]>
 <object class="media" width="400" height="350" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" >
     <param name="movie" value="/wiki/lib/exe/fetch.php?hash=568504&amp;media=http%3A%2F%2Fwww.youtube.com%2Fv%2FoCEfK0yhDrY%3F.swf" />
 <!--><!-- -->
-  <param name="quality" value="high"/>
+  <param name="quality" value="high" />
 The <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.adobe.com/products/flashplayer/"><param name="text" value="<html><u>Adobe Flash Plugin</u></html>"><param name="textColor" value="blue"></object> is needed to display this content.
 </object>
 <!-- <![endif]-->
@@ -596,20 +600,20 @@ The <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Advanced Example" [7281-17184] -->
+<!-- EDIT6 SECTION "Advanced Example" [7328-17231] -->
 <h3><a>Using Advanced features to Record from more than one perspective at once</a></h3>
 <div>
 
 <p>
 
 <!--[if !IE]> -->
-<object>
+<object class="media" width="400" height="350" type="application/x-shockwave-flash" data="/wiki/lib/exe/fetch.php?hash=6921c2&amp;media=http%3A%2F%2Fwww.youtube.com%2Fv%2FWIJt9aRGusc%3F.swf" >
 <!-- <![endif]-->
 <!--[if IE]>
 <object class="media" width="400" height="350" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" >
     <param name="movie" value="/wiki/lib/exe/fetch.php?hash=6921c2&amp;media=http%3A%2F%2Fwww.youtube.com%2Fv%2FWIJt9aRGusc%3F.swf" />
 <!--><!-- -->
-  <param name="quality" value="high"/>
+  <param name="quality" value="high" />
 The <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.adobe.com/products/flashplayer/"><param name="text" value="<html><u>Adobe Flash Plugin</u></html>"><param name="textColor" value="blue"></object> is needed to display this content.
 </object>
 <!-- <![endif]-->
@@ -617,7 +621,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" [17185-17326] -->
+<!-- EDIT7 SECTION "Using Advanced features to Record from more than one perspective at once" [17232-17373] -->
 <h2><a>More Information</a></h2>
 <div>
 
@@ -649,5 +653,5 @@ listeners can be found here.
 </p>
 
 </div>
-<!-- EDIT8 SECTION "More Information" [17327-] -->
-<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>
\ No newline at end of file
+<!-- EDIT8 SECTION "More Information" [17374-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:capture_audio_video_to_a_file?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 56b7cc4..343f4c7 100644 (file)
@@ -4,7 +4,7 @@
 
 <p>
 
-JME3 cinematics (com.jme.cinematic) allow you to remote control nodes and cameras in a 3D game: You can script and and play cinematic scenes. Combined with screen recording software, you use cinematics to create <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://en.wikipedia.org/wiki/Cutscene"><param name="text" value="<html><u>cutscenes</u></html>"><param name="textColor" value="blue"></object> and movies/trailers of your game. Internally, Cinematics are implemented as <a href="/com/jme3/gde/docs/jme3/advanced/application_states.html">AppStates</a>. 
+JME3 cinematics (com.jme.cinematic) allow you to remote control nodes and cameras in a 3D game: You can script and and play cinematic scenes. You can use cinematics to create <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://en.wikipedia.org/wiki/Cutscene"><param name="text" value="<html><u>cutscenes</u></html>"><param name="textColor" value="blue"></object> and movies/trailers for your game. Internally, Cinematics are implemented as <a href="/com/jme3/gde/docs/jme3/advanced/application_states.html">AppStates</a>. 
 </p>
 
 <p>
@@ -19,12 +19,12 @@ This Node can be the rootNode, or a Node that is attached to the rootNode. </div
 </li>
 <li><div> Create a Cinematic object for this movie scene. The Cinematic will contain and manage the movie script.</div>
 </li>
-<li><div> For each line in your script (for each frame in your timeline), add a CinematicEvent to the Cinematic. </div>
+<li><div> For each line in your script (for each keyframe in your timeline), add a CinematicEvent to the Cinematic. </div>
 </li>
 </ol>
 
 </div>
-<!-- EDIT1 SECTION "JME3 Cinematics" [1-956] -->
+<!-- EDIT1 SECTION "JME3 Cinematics" [1-923] -->
 <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] -->
+<!-- EDIT2 SECTION "Sample Code" [924-1090] -->
 <h2><a>How to Use a Cinematic</a></h2>
 <div>
 
@@ -42,9 +42,9 @@ This Node can be the rootNode, or a Node that is attached to the rootNode. </div
 A Cinematic is like a movie script for a node. 
 </p>
 <pre>Cinematic cinematic = new Cinematic&#40;sceneNode, duration&#41;;
-cinematic.addCinematicEvent&#40;starttime1, track1&#41;;
-cinematic.addCinematicEvent&#40;starttime2, track2&#41;;
-cinematic.addCinematicEvent&#40;starttime2, track3&#41;;
+cinematic.addCinematicEvent&#40;starttime1, event1&#41;;
+cinematic.addCinematicEvent&#40;starttime2, event2&#41;;
+cinematic.addCinematicEvent&#40;starttime2, event3&#41;;
 ...
 stateManager.attach&#40;cinematic&#41;;</pre>
 <ol>
@@ -60,7 +60,7 @@ stateManager.attach&#40;cinematic&#41;;</pre>
 </li>
 <li><div> Create one CinematicEvent for each line of your movie script.  </div>
 <ul>
-<li><div> <code>track</code> is one motion of a moving object. You can add several tracks. More details below.</div>
+<li><div> <code>event</code> is one motion of a moving object. You can add several events. More details below.</div>
 </li>
 <li><div> <code>starttime</code> is the time when this particular cinematic event starts on the timeline. Specify the start time in seconds since the beginning of the cinematic.</div>
 </li>
@@ -85,64 +85,56 @@ stateManager.attach&#40;cinematic&#41;;</pre>
                <td>cinematic.pause()</td><td>Pauses the cinematic.</td>
        </tr>
 </table></div>
-<!-- EDIT4 TABLE [2215-2427] -->
+<!-- EDIT4 TABLE [2182-2394] -->
 </div>
-<!-- EDIT3 SECTION "How to Use a Cinematic" [1124-2428] -->
-<h2><a>Tracks (CinematicEvents)</a></h2>
+<!-- EDIT3 SECTION "How to Use a Cinematic" [1091-2394] -->
+<h2><a>Events(CinematicEvents)</a></h2>
 <div>
 
 <p>
 
-Just like a movie script consists of lines with instructions to the actors, each Cinematic consists of a series of tracks.
+Just like a movie script consists of lines with instructions to the actors, each Cinematic consists of a series of events.
 </p>
 
 <p>
-Here is the list of available CinematicEvents that you use as tracks. Each track remote-controls scene objects in a different way:
+Here is the list of available CinematicEvents that you use as events. Each track remote-controls scene objects in a different way:
 
 </p>
 <div><table>
        <tr>
-               <th>Tracks (CinematicEvents)</th><th>Description</th>
+               <th>Events(CinematicEvents)</th><th>Description</th>
        </tr>
        <tr>
-               <td>MotionTrack</td><td>Use a MotionTrack to move a Spatial non-linearly over time. A MotionTrack is based on a list of waypoints in a MotionPath. The curve goes through each waypoint, and you can adjust the tension of the curve to modify the roundedness of the path. This is the motion interpolation you are going to use in most cases. </td>
+               <td>MotionEvent</td><td>Use a MotionEvent to move a Spatial non-linearly over time. A MotionEvent is based on a list of waypoints in a MotionPath. The curve goes through each waypoint, and you can adjust the tension of the curve to modify the roundedness of the path. This is the motion interpolation you are going to use in most cases. </td>
        </tr>
        <tr>
-               <td>PositionTrack</td><td>Use a PositionTrack to move a Spatial linearly over time. This linear interpolation results in straight motion segments between the way points. Use this to make the remote-controlled objects zig-zag from one way point to the other in a straight line.</td>
+               <td>SoundEvent</td><td>Use a SoundEvent to play a <a href="/com/jme3/gde/docs/jme3/advanced/audio.html">sound</a> at a given time for the given duration.</td>
        </tr>
        <tr>
-               <td>RotationTrack</td><td>Use a RotationTrack to change the rotation of a Spatial over time. It spins the Spatial to the given angle in the given amount of time by linearly interpolating the rotation.</td>
+               <td>GuiEvent</td><td>Displays a <a href="/com/jme3/gde/docs/jme3/advanced/nifty_gui.html">Nifty GUI</a> at a given time for the given duration. Use it to display subtitles or HUD elements. Bind the Nifty <acronym title="Graphical User Interface">GUI</acronym> <acronym title="Extensible Markup Language">XML</acronym> to the cinematic using <code>cinematic.bindUi(&quot;path/to/nifty/file.xml&quot;);</code></td>
        </tr>
        <tr>
-               <td>ScaleTrack</td><td>Use a ScaleTrack to change the size of a Spatial over time. It resizes the Spatial in the given amount of time by linearly interpolating the scale.</td>
-       </tr>
-       <tr>
-               <td>SoundTrack</td><td>Use a SoundTrack to play a <a href="/com/jme3/gde/docs/jme3/advanced/audio.html">sound</a> at a given time for the given duration.</td>
-       </tr>
-       <tr>
-               <td>GuiTrack</td><td>Displays a <a href="/com/jme3/gde/docs/jme3/advanced/nifty_gui.html">Nifty GUI</a> at a given time for the given duration. Use it to display subtitles or HUD elements. Bind the Nifty <acronym title="Graphical User Interface">GUI</acronym> <acronym title="Extensible Markup Language">XML</acronym> to the cinematic using <code>cinematic.bindUi(&quot;path/to/nifty/file.xml&quot;);</code></td>
-       </tr>
-       <tr>
-               <td>AnimationTrack</td><td>Use this to start playing a model <a href="/com/jme3/gde/docs/jme3/advanced/animation.html">animation</a> at a given time (a character walking animation for example)</td>
+               <td>AnimationEvent</td><td>Use this to start playing a model <a href="/com/jme3/gde/docs/jme3/advanced/animation.html">animation</a> at a given time (a character walking animation for example)</td>
        </tr>
 </table></div>
-<!-- EDIT6 TABLE [2723-4144] -->
+<!-- EDIT6 TABLE [2688-3489] -->
 <p>
 
-The jMonkey team can add more types of tracks, just ask in the forum. 
+Of course one can make is own event implementation, by extending the AbstractCinematicEvent.
+
 </p>
 
 </div>
-<!-- EDIT5 SECTION "Tracks (CinematicEvents)" [2429-4218] -->
-<h3><a>MotionTrack</a></h3>
+<!-- EDIT5 SECTION "Events(CinematicEvents)" [2395-3583] -->
+<h3><a>MotionEvent</a></h3>
 <div>
 
 <p>
 
-A MotionTrack moves a Spatial along a complex path.
+A MotionEvent moves a Spatial along a complex path.
 
 </p>
-<pre>MotionTrack track = new MotionTrack&#40;thingNode, path&#41;;</pre>
+<pre>MotionEvent events= new MotionEvent &#40;thingNode, path&#41;;</pre>
 
 <p>
 Details of the constructor:
@@ -156,158 +148,131 @@ Details of the constructor:
 
 <p>
 
-To create a MotionTrack, do the following:
+To create a MotionEvent, do the following:
 </p>
 <ol>
-<li><div> <a href="/com/jme3/gde/docs/jme3/advanced/motionpath.html">Create a MotionPath</a></div>
+<li><div> <a href="/com/jme3/gde/docs/jme3/advanced/motiontrack.html">Create a MotionEvent</a></div>
 </li>
-<li><div> Create a MotionTrack based on the MotionPath.</div>
+<li><div> Create a MotionEvent based on the MotionPath.</div>
 </li>
-<li><div> Configure your MotionTrack (see below).</div>
+<li><div> Configure your MotionEvent (see below).</div>
 </li>
-<li><div> Add the MotionTrack to a Cinematic.</div>
+<li><div> Add the MotionEvent to a Cinematic.</div>
 </li>
 </ol>
 <div><table>
        <tr>
-               <th>MotionTrack configuration method</th><th>Usage</th>
+               <th>MotionEvent configuration method</th><th>Usage</th>
        </tr>
        <tr>
-               <td>track.setLoopMode(LoopMode.Loop)</td><td>Sets whether the animation along this path should loop (LoopMode.Loop) or play only once (LoopMode.DontLoop).</td>
+               <td>event.setLoopMode(LoopMode.Loop)</td><td>Sets whether the animation along this path should loop (LoopMode.Loop) or play only once (LoopMode.DontLoop).</td>
        </tr>
        <tr>
-               <td>track.setDirectionType(MotionTrack.Direction.None)</td><td>Sets the direction behavior type of the controled node. Direction.None deactivates this feature. You can choose from the following options: LookAt, Path, PathAndRotation, Rotation.</td>
+               <td>event.setDirectionType(MotionEvent.Direction.None)</td><td>Sets the direction behavior type of the controlled node. Direction.None deactivates this feature. You can choose from the following options: LookAt, Path, PathAndRotation, Rotation.</td>
        </tr>
        <tr>
-               <td>track.setDirectionType(MotionTrack.Direction.LookAt)</td><td>The spatial turns (rotates) to keep facing a certain point while moving. Specify the point with the <code>setLookAt()</code> method.</td>
+               <td>event.setDirectionType(MotionEvent.Direction.LookAt)</td><td>The spatial turns (rotates) to keep facing a certain point while moving. Specify the point with the <code>setLookAt()</code> method.</td>
        </tr>
        <tr>
-               <td>track.setDirectionType(MotionTrack.Direction.Path)</td><td>The spatial always faces in the direction of the path while moving.</td>
+               <td>event.setDirectionType(MotionEvent.Direction.Path)</td><td>The spatial always faces in the direction of the path while moving.</td>
        </tr>
        <tr>
-               <td>track.setDirectionType(MotionTrack.Direction.PathAndRotation)</td><td>The spatial faces the direction of the path, plus an added rotation. Use together with the <code>setRotation()</code> method.</td>
+               <td>event.setDirectionType(MotionEvent.Direction.PathAndRotation)</td><td>The spatial faces the direction of the path, plus an added rotation. Use together with the <code>setRotation()</code> method.</td>
        </tr>
        <tr>
-               <td>track.setDirectionType(MotionTrack.Direction.Rotation)</td><td>The spatial spins (rotates) while moving. You describe the spin by a custom quaternion. Use together with the <code>setRotation()</code> method.</td>
+               <td>event.setDirectionType(MotionEvent.Direction.Rotation)</td><td>The spatial spins (rotates) while moving. You describe the spin by a custom quaternion. Use together with the <code>setRotation()</code> method.</td>
        </tr>
        <tr>
-               <td>track.setLookAt(teapot.getWorldTranslation(), Vector3f.UNIT_Y)</td><td>The spatial always faces towards this location. Use together with <code>MotionTrack.Direction.LookAt</code>.</td>
+               <td>event.setLookAt(teapot.getWorldTranslation(), Vector3f.UNIT_Y)</td><td>The spatial always faces towards this location. Use together with <code>MotionEvent.Direction.LookAt</code>.</td>
        </tr>
        <tr>
-               <td>track.setRotation(quaternion)</td><td>Sets the rotation. Use together with <code>MotionTrack.Direction.Rotation</code> or <code>MotionTrack.Direction.PathAndRotation</code>.</td>
+               <td>event.setRotation(quaternion)</td><td>Sets the rotation. Use together with <code>MotionEvent.Direction.Rotation</code> or <code>MotionEvent.Direction.PathAndRotation</code>.</td>
        </tr>
 </table></div>
-<!-- EDIT8 TABLE [4701-6109] -->
+<!-- EDIT8 TABLE [4069-5478] -->
 <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.
+<strong>Tip:</strong> Most likely you remote-control more than one object in your scene. Give the events and paths useful names such as <code>dragonEvent</code>, <code>dragonPath</code>, <code>heroEvent</code>, <code>heroPath</code>, etc.
 </p>
 
 </div>
-<!-- EDIT7 SECTION "MotionTrack" [4219-6305] -->
-<h3><a>PositionTrack</a></h3>
+<!-- EDIT7 SECTION "MotionEvent" [3584-5673] -->
+<h3><a>SoundEvent</a></h3>
 <div>
 
 <p>
 
-A PositionTrack moves a Spatial in a straight line from its current position to the end position.
+A SoundEventplays a sound as part of the cinematic. 
 
 </p>
-<pre>PositionTrack track = new PositionTrack&#40;
-    thingNode, endPosition, duration, loopMode&#41;;</pre>
+<pre>SoundEvent&#40; audioPath, isStream, duration, loopMode &#41;</pre>
 
 <p>
+
 Details of the constructor:
 </p>
 <ul>
-<li><div> <code>thingNode</code> is the Spatial to be moved.</div>
+<li><div> <code>audioPath</code> is the path to an audio file as String, e.g. &quot;Sounds/mySound.wav&quot;.</div>
 </li>
-<li><div> <code>endPosition</code> is the target location as Vector3f. </div>
+<li><div> <code>isStream</code> toggles between streaming and buffering. Set to true to stream long audio file, set to false to play short buffered sounds.</div>
 </li>
-<li><div> <code>duration</code> is the time that it should take from start to end point.</div>
+<li><div> <code>duration</code> is the time that it should take to play.</div>
 </li>
 <li><div> <code>loopMode</code> can be LoopMode.Loop, LoopMode.DontLoop, LoopMode.Cycle.</div>
 </li>
 </ul>
 
-<p>
-
-The start location is always the current location of the Spatial.
-</p>
-
 </div>
-<!-- EDIT9 SECTION "PositionTrack" [6306-6882] -->
-<h3><a>RotationTrack</a></h3>
+<!-- EDIT9 SECTION "SoundEvent" [5674-6204] -->
+<h3><a>GuiEvent</a></h3>
 <div>
 
 <p>
 
-A RotationTrack remote-controls the rotation of a spatial.
+A GuiEventshows or hide a NiftyGUI as part of a cinematic.
 
 </p>
-<pre>RotationTrack thingRotationControl = new RotationTrack&#40;
-    thingNode, endRotation,  duration, loopMode&#41;;</pre>
+<pre>GuiEvent&#40; screen, duration, loopMode &#41;</pre>
 
 <p>
-Details of the constructor:
-</p>
-<ul>
-<li><div> <code>thingNode</code> is the Spatial to be rotated.</div>
-</li>
-<li><div> <code>endRotation</code> is the target rotation in Quaternion format. </div>
-</li>
-<li><div> <code>duration</code> is the time that it should take from start to target rotation.</div>
-</li>
-<li><div> <code>loopMode</code> can be LoopMode.Loop, LoopMode.DontLoop, LoopMode.Cycle.</div>
-</li>
-</ul>
 
-</div>
-<!-- EDIT10 SECTION "RotationTrack" [6883-7386] -->
-<h3><a>ScaleTrack</a></h3>
-<div>
-
-<p>
+You must use this together with bindUI() to specify the Nifty <acronym title="Graphical User Interface">GUI</acronym> <acronym title="Extensible Markup Language">XML</acronym> file that you want to load:
 
-A ScaleTrack remote-controls whether a spatial grows or shrinks.
 </p>
-<pre>ScaleTrack thingScaleControl = new ScaleTrack&#40;
-    thingNode, endScale,  duration, loopMode&#41;;</pre>
+<pre>cinematic.bindUi&#40;&quot;Interface/subtitle.xml&quot;&#41;;</pre>
 
 <p>
 Details of the constructor:
 </p>
 <ul>
-<li><div> <code>thingNode</code> is the Spatial to be resized.</div>
-</li>
-<li><div> <code>endScale</code> is the target Scale in Vector3f format. </div>
+<li><div> <code>screen</code> is the name of the Nifty <acronym title="Graphical User Interface">GUI</acronym> screen to load, as String. </div>
 </li>
-<li><div> <code>duration</code> is the time that it should take from start to target scale.</div>
+<li><div> <code>duration</code> is the time that it should take to play.</div>
 </li>
 <li><div> <code>loopMode</code> can be LoopMode.Loop, LoopMode.DontLoop, LoopMode.Cycle.</div>
 </li>
 </ul>
 
 </div>
-<!-- EDIT11 SECTION "ScaleTrack" [7387-7871] -->
-<h3><a>SoundTrack</a></h3>
+<!-- EDIT10 SECTION "GuiEvent" [6205-6732] -->
+<h3><a>AnimationEvent</a></h3>
 <div>
 
 <p>
 
-A SoundTrack plays a sound as part of the cinematic. 
+An AnimationEvent triggers an animation as part of a cinematic.
 
 </p>
-<pre>SoundTrack&#40; audioPath, isStream, duration, loopMode &#41;</pre>
+<pre>AnimationEvent&#40; thingNode, animationName, duration, loopMode &#41;</pre>
 
 <p>
 
 Details of the constructor:
 </p>
 <ul>
-<li><div> <code>audioPath</code> is the path to an audio file as String, e.g. &quot;Sounds/mySound.wav&quot;.</div>
+<li><div> <code>thingNode</code> is the Spatial whose animation you want to play.</div>
 </li>
-<li><div> <code>isStream</code> toggles between streaming and buffering. Set to true to stream long audio file, set to false to play short buffered sounds.</div>
+<li><div> <code>animationName</code> the name of the animation stored in the animated model that you want to trigger, as a String.</div>
 </li>
 <li><div> <code>duration</code> is the time that it should take to play.</div>
 </li>
@@ -316,65 +281,40 @@ Details of the constructor:
 </ul>
 
 </div>
-<!-- EDIT12 SECTION "SoundTrack" [7872-8404] -->
-<h3><a>GuiTrack</a></h3>
+<!-- EDIT11 SECTION "AnimationEvent" [6733-7245] -->
+<h3><a>Camera Management</a></h3>
 <div>
 
 <p>
 
-A GuiTrack shows or hide a NiftyGUI as part of a cinematic.
-
+There is a built in system for camera switching in Cinematics. It based on CameraNode, and the cinematic just enable the given CameraNode control at a given time.
 </p>
-<pre>GuiTrack&#40; screen, duration, loopMode &#41;</pre>
 
 <p>
+First you have to bind a camera to the cinematic with a unique name. You&#039;ll be provided with a CameraNode
 
-You must use this together with bindUI() to specify the Nifty <acronym title="Graphical User Interface">GUI</acronym> <acronym title="Extensible Markup Language">XML</acronym> file that you want to load:
-
-</p>
-<pre>cinematic.bindUi&#40;&quot;Interface/subtitle.xml&quot;&#41;;</pre>
-
-<p>
-Details of the constructor:
 </p>
-<ul>
-<li><div> <code>screen</code> is the name of the Nifty <acronym title="Graphical User Interface">GUI</acronym> screen to load, as String. </div>
-</li>
-<li><div> <code>duration</code> is the time that it should take to play.</div>
-</li>
-<li><div> <code>loopMode</code> can be LoopMode.Loop, LoopMode.DontLoop, LoopMode.Cycle.</div>
-</li>
-</ul>
-
-</div>
-<!-- EDIT13 SECTION "GuiTrack" [8405-8934] -->
-<h3><a>AnimationTrack</a></h3>
-<div>
+<pre> CameraNode camNode = cinematic.bindCamera&#40;&quot;topView&quot;, cam&#41;;</pre>
 
 <p>
 
-An AnimationTrack triggers an animation as part of a cinematic.
+then you can do whatever you want with this camera node : place it so that you have a the camera angle you&#039;d like, attach it to a motion event to have some camera scrolling, attach control of your own that give it whatever behavior you&#039;d like.
+In the above example, I want it to be a top view of the scene looking at the world origin.
 
 </p>
-<pre>AnimationTrack&#40; thingNode, animationName, duration, loopMode &#41;</pre>
+<pre> //set its position
+ camNode.setLocalTranslation&#40;new Vector3f&#40;0, 50, 0&#41;&#41;;
+ // set it to look at the world origin
+ camNode.lookAt&#40;Vector3F.ZERO, Vector3f.UNIT_Y&#41;;</pre>
 
 <p>
+Then i just have to schedule its activation in the cinematic. I want it to get activated 3 seconds after the start of the cinematic so I just have to do 
 
-Details of the constructor:
 </p>
-<ul>
-<li><div> <code>thingNode</code> is the Spatial whose animation you want to play.</div>
-</li>
-<li><div> <code>animationName</code> the name of the animation stored in the animated model that you want to trigger, as a String.</div>
-</li>
-<li><div> <code>duration</code> is the time that it should take to play.</div>
-</li>
-<li><div> <code>loopMode</code> can be LoopMode.Loop, LoopMode.DontLoop, LoopMode.Cycle.</div>
-</li>
-</ul>
+<pre> cinematic.activateCamera&#40;3,???topView???&#41;;</pre>
 
 </div>
-<!-- EDIT14 SECTION "AnimationTrack" [8935-9447] -->
+<!-- EDIT12 SECTION "Camera Management" [7246-8358] -->
 <h3><a>Customizations</a></h3>
 <div>
 
@@ -388,12 +328,12 @@ You can also create new CinematicEvent by extending <object classid="java:org.ne
 </p>
 
 </div>
-<!-- EDIT15 SECTION "Customizations" [9448-10493] -->
+<!-- EDIT13 SECTION "Customizations" [8359-9404] -->
 <h2><a>Interacting with Cinematics</a></h2>
 <div>
 
 </div>
-<!-- EDIT16 SECTION "Interacting with Cinematics" [10494-10534] -->
+<!-- EDIT14 SECTION "Interacting with Cinematics" [9405-9445] -->
 <h3><a>CinematicEventListener</a></h3>
 <div>
 <pre>CinematicEventListener cel = new CinematicEventListener&#40;&#41; &#123;
@@ -415,7 +355,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] -->
+<!-- EDIT15 SECTION "CinematicEventListener" [9446-9941] -->
 <h3><a>Physics Interaction</a></h3>
 <div>
 
@@ -425,15 +365,5 @@ Upcoming.
 </p>
 
 </div>
-<!-- EDIT18 SECTION "Physics Interaction" [11031-11072] -->
-<h2><a>More Information</a></h2>
-<div>
-
-<p>
-See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.org/groups/development-discussion-jme3/forum/topic/cinematics-system-for-jme3/"><param name="text" value="<html><u>Cinematics by Nehon</u></html>"><param name="textColor" value="blue"></object>
-
-</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>
\ No newline at end of file
+<!-- EDIT16 SECTION "Physics Interaction" [9942-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:cinematics?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 91cbb0e..a9f78fa 100644 (file)
@@ -8,7 +8,7 @@ The term collision can be used to refer to <a href="/com/jme3/gde/docs/jme3/adva
 </p>
 
 <p>
-Non-physical collision detection is interesting because it uses less computing resources than physical collision detection. The non-physical calculations are faster because they do not have any side effects such as pushing other objects or bumping off of them. Tasks such as <a href="/com/jme3/gde/docs/jme3/advanced/mouse_picking.html">mouse picking</a> are easily implemented using using mathematical techniques such as ray casting and intersections.  Experienced developers optimize their games by finding ways to simulate certain (otherwise expensive physical) interactions in a non-physical way. 
+Non-physical collision detection is interesting because it uses less computing resources than physical collision detection. The non-physical calculations are faster because they do not have any side effects such as pushing other objects or bumping off of them. Tasks such as <a href="/com/jme3/gde/docs/jme3/advanced/mouse_picking.html">mouse picking</a> are easily implemented using mathematical techniques such as ray casting and intersections.  Experienced developers optimize their games by finding ways to simulate certain (otherwise expensive physical) interactions in a non-physical way. 
 </p>
 
 <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] -->
+<!-- EDIT1 SECTION "Collision and Intersection" [1-1432] -->
 <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>
-<!-- EDIT3 TABLE [2081-2409] -->
+<!-- EDIT3 TABLE [2075-2403] -->
 <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>
-<!-- EDIT4 TABLE [2503-3036] -->
+<!-- EDIT4 TABLE [2497-3030] -->
 </div>
-<!-- EDIT2 SECTION "Collidable" [1439-3037] -->
+<!-- EDIT2 SECTION "Collidable" [1433-3031] -->
 <h3><a>Code Sample</a></h3>
 <div>
 
@@ -133,7 +133,7 @@ Knowing the distance of the collisions is useful for example when you intersect
 </p>
 
 </div>
-<!-- EDIT5 SECTION "Code Sample" [3038-5576] -->
+<!-- EDIT5 SECTION "Code Sample" [3032-5570] -->
 <h2><a>Bounding Volumes</a></h2>
 <div>
 
@@ -173,7 +173,7 @@ Supported types:
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Bounding Volumes" [5577-7620] -->
+<!-- EDIT6 SECTION "Bounding Volumes" [5571-7614] -->
 <h3><a>Usage</a></h3>
 <div>
 
@@ -186,7 +186,7 @@ For example you can use Bounding Volumes on custom meshes, or complex non-physic
 mesh.updateBound&#40;&#41;;</pre>
 
 </div>
-<!-- EDIT7 SECTION "Usage" [7621-7802] -->
+<!-- EDIT7 SECTION "Usage" [7615-7796] -->
 <h2><a>Mesh and Scene Graph Collision</a></h2>
 <div>
 
@@ -196,7 +196,7 @@ One of the supported <code>Collidable</code>s are meshes and scene graph objects
 </p>
 
 </div>
-<!-- EDIT8 SECTION "Mesh and Scene Graph Collision" [7803-8623] -->
+<!-- EDIT8 SECTION "Mesh and Scene Graph Collision" [7797-8617] -->
 <h2><a>Intersection</a></h2>
 <div>
 
@@ -224,7 +224,7 @@ Rays are used to perform line-of-sight calculations. This means you can detect w
 <p>
 Learn the details of how to implement <a href="/com/jme3/gde/docs/jme3/advanced/mouse_picking.html">Mouse Picking</a> here.
 </p>
-<hr/>
+<hr />
 
 <p>
 TODO:
@@ -237,5 +237,5 @@ TODO:
 </ul>
 
 </div>
-<!-- EDIT9 SECTION "Intersection" [8624-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:collision_and_intersection?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT9 SECTION "Intersection" [8618-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:collision_and_intersection?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 85d69ff..5253884 100644 (file)
@@ -267,4 +267,4 @@ Depending on the game genre, the designer can reward the players&#039; intrinsic
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:combo_moves?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 9e9ce87..4f959e0 100644 (file)
@@ -87,7 +87,7 @@ Examples: You can write
 
 <p>
 
-The possibilities are endless. <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)"/>
+The possibilities are endless. <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)" />
 </p>
 
 </div>
@@ -388,4 +388,4 @@ c.steerX&#40;steerX&#41;;</pre>
 
 </div>
 <!-- EDIT6 SECTION "Best Practices" [10700-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:custom_controls?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:custom_controls?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index de53563..bec4674 100644 (file)
@@ -5,7 +5,11 @@
 <p>
 <img src="/wiki/lib/exe/fetch.php">
 Use the Mesh class to create custom shapes that go beyond Quad, Box, Cylinder, and Sphere, even procedural shapes are possible. Thank you to KayTrance for providing the sample code!
-In this tutorial, we (re)create a very simple rectangular mesh, and we have a look at different ways of coloring it. A flat rectangle may not look useful because it&#039;s exactly the same as a <code>com.jme3.scene.shape.Quad</code>. We choose this simple example in order to show you how to build any shape out of triangles ??? without the distractions of more complex shapes.
+</p>
+
+<p>
+<strong>Note:</strong> In this tutorial, we (re)create a very simple rectangular mesh (a quad), and we have a look at different ways of coloring it. Coding a custom quad may not be very useful because it&#039;s exactly the same as the built-in <code>com.jme3.scene.shape.Quad</code>. We chose a simple quad to teach you how to build any shape out of triangles, without the distractions of more complex shapes.
+
 </p>
 <ul>
 <li><div> Full code sample: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/svn/branches/stable-alpha4/engine/src/test/jme3test/model/shape/TestCustomMesh.java"><param name="text" value="<html><u>TestCustomMesh.java</u></html>"><param name="textColor" value="blue"></object></div>
@@ -13,43 +17,68 @@ 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] -->
+<!-- EDIT1 SECTION "Custom Mesh Shapes" [1-834] -->
 <h2><a>Polygon Meshes</a></h2>
 <div>
 
 <p>
-Polygon meshes are made up of triangles. The corners of the triangles are vertices. So, when ever you create a new shape, you break it down into triangles.
-Let&#039;s look at a cube. A cube is made up of 6 rectangles. Each rectangle can be broken down into two triangles. This means you need 12 triangles to create a cube mesh. You also need to know the 8 corner coordinates (vertices). The trick is that you have to specify the vertices in a certain order: Each triangle separately, counter-clockwise.
-Sounds worse than it is ??? here is an example:
 
+Polygon <a href="/com/jme3/gde/docs/jme3/advanced/mesh.html">mesh</a>es are made up of triangles. The corners of the triangles are called vertices. When ever you create any new shape, you break it down into triangles.
+</p>
+
+<p>
+<strong>Example:</strong> Let&#039;s look at a cube. A cube is made up of 6 rectangles. Each rectangle can be broken down into two triangles. This means you need 12 triangles to describe a cube mesh. Therefor you must provide the coordinates of the triangles&#039; 8 corners (called vertices). 
+</p>
+
+<p>
+The important thing is that you have to specify the vertices of each triangle in the right order: Each triangle separately, counter-clockwise. 
+</p>
+
+<p>
+Sounds harder than it is ??? let&#039;s create a simple custom mesh, a quad.
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Polygon Meshes" [812-1383] -->
+<!-- EDIT2 SECTION "Polygon Meshes" [835-1518] -->
 <h2><a>Creating a Quad Mesh</a></h2>
 <div>
 
 <p>
-Okay, we want to create a Quad. A quad has four vertices, and is made up of two triangles.
-The base class for creating meshes is <code>com.jme3.scene.Mesh</code>.
 
+In this tutorial we want to create a 3x3 Quad. The quad has four vertices, and is made up of two triangles. In our example, we decide that the bottom left corner is at 0/0/0 and the top right is at 3/3/0. 
 </p>
-<pre>Mesh mesh = new Mesh&#40;&#41;;</pre>
+<pre>0,3,0--3,3,0
+| \        |
+|   \      |
+|     \    |
+|       \  |
+|         \|
+0,0,0--3,0,0</pre>
+
+</div>
+<!-- EDIT3 SECTION "Creating a Quad Mesh" [1519-1864] -->
+<h3><a>The Mesh Object</a></h3>
+<div>
 
 <p>
 
-If you create your own Mesh-based class, replace <code>mesh</code> by <code>this</code> in the following examples: 
+The base class for creating meshes is <code>com.jme3.scene.Mesh</code>.
 
 </p>
-<pre>public class MyMesh extends Mesh &#123;  &#125;</pre>
+<pre>Mesh mesh = new Mesh&#40;&#41;;</pre>
+
+<p>
+Tip: If you create your own Mesh-based class (<code>public class MyMesh extends Mesh {  }</code>), replace the variable <code>mesh</code> by <code>this</code> in the following examples.
+</p>
 
 </div>
-<!-- EDIT3 SECTION "Creating a Quad Mesh" [1384-1766] -->
-<h3><a>Vertices</a></h3>
+<!-- EDIT4 SECTION "The Mesh Object" [1865-2157] -->
+<h3><a>Vertex Coordinates</a></h3>
 <div>
 
 <p>
-To define your own shape, determine its vertex positions in space. Store them in an array using com.jme3.math.Vector3f. For a Quad, we need four vertices: Bottom left, bottom right, top left, top right. We name the array <code>vertices[]</code>.
+
+To define your own shape, determine the shape&#039;s <strong>vertex coordinates</strong> in 3D space. Store the list of corner positions in an <code>com.jme3.math.Vector3f</code> array. For a Quad, we need four vertices: Bottom left, bottom right, top left, top right. We name the array <code>vertices[]</code>.
 
 </p>
 <pre>Vector3f &#91;&#93; vertices = new Vector3f&#91;4&#93;;
@@ -59,12 +88,12 @@ 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] -->
+<!-- EDIT5 SECTION "Vertex Coordinates" [2158-2664] -->
 <h3><a>Texture Coordinates</a></h3>
 <div>
 
 <p>
-Next, define the Quad&#039;s 2D texture coordinates for each vertex, in the same order: Bottom left, bottom right, top left, top right. We name this array <code>texCoord[]</code>
+Next, we define the Quad&#039;s 2D <strong>texture coordinates</strong> for each vertex, in the same order as the vertices: Bottom left, bottom right, top left, top right. We name this Vector2f array <code>texCoord[]</code>
 
 </p>
 <pre>Vector2f&#91;&#93; texCoord = new Vector2f&#91;4&#93;;
@@ -73,17 +102,33 @@ texCoord&#91;1&#93; = new Vector2f&#40;1,0&#41;;
 texCoord&#91;2&#93; = new Vector2f&#40;0,1&#41;;
 texCoord&#91;3&#93; = new Vector2f&#40;1,1&#41;;</pre>
 
+<p>
+
+This syntax means, when you apply a texture to this mesh, the texture will fill the quad from corner to corner at 100% percent size. Especially when you stitch together a larger mesh, you use this to tell the renderer whether, and how exactly, you want to cover the whole mesh. E.g. if you use .5f or 2f as texture coordinates instead of 1f, textures will be stretched or shrunk accordingly.
+</p>
+
 </div>
-<!-- EDIT5 SECTION "Texture Coordinates" [2223-2608] -->
+<!-- EDIT6 SECTION "Texture Coordinates" [2665-3475] -->
 <h3><a>Connecting the Dots</a></h3>
 <div>
 
 <p>
-Next we turn the unrelated coordinates into triangles ??? We define the order in which the mesh is constructed. Think of these indexes as coming in groups of three. Each group of indexes describes one triangle. Note that you must specify the vertices counter-clockwise!
+Next we turn these unrelated coordinates into <strong>triangles</strong>: We define the order in which each triangle is constructed. Think of these indexes as coming in groups of three. Each group of indexes describes one triangle. If the corners are identical, you can (and should!) reuse an index for several triangles. 
+</p>
+
+<p>
+Remember that you must specify the vertices counter-clockwise. 
 
 </p>
 <pre>int &#91;&#93; indexes = &#123; 2,0,1, 1,3,2 &#125;;</pre>
+
+<p>
+
+This syntax means:
+</p>
 <ul>
+<li><div> The indices 0,1,2,3 stand for the four vertices that you specified for the quad in <code>vertices[]</code>.</div>
+</li>
 <li><div> The 2,0,1 triangle starts at top left, continues bottom left, and ends at bottom right.</div>
 </li>
 <li><div> The 1,3,2 triangle start at bottom right, continues top right, and ends at top left.</div>
@@ -94,18 +139,28 @@ Next we turn the unrelated coordinates into triangles ??? We define the order in
 |  \ |
 0--1\1</pre>
 
+<p>
+
+If the shape is more complex, it has more triangles, and therefor also more vertices/indices. Just continue expanding the list by adding groups of three indices for each triangle. (For example a three-triangle &quot;house&quot; shape has 5 vertices/indices and you&#039;d specify three groups: <code>int [] indexes = { 2,0,1, 1,3,2, 2,3,4 };</code>.) 
+</p>
+
+<p>
+<p><div>If you get the order wrong (clockwise) for some of the triangles, then these triangles face backwards. If the <a href="/com/jme3/gde/docs/jme3/advanced/spatial.html">Spatial</a>&#039;s material uses the default <code>FaceCullMode.Back</code> (see &quot;face culling&quot;), the broken triangles appear as holes in the rendered mesh. You need to identify and fix them in your code.
+</div></p>
+</p>
+
 </div>
-<!-- EDIT6 SECTION "Connecting the Dots" [2609-3204] -->
+<!-- EDIT7 SECTION "Connecting the Dots" [3476-4947] -->
 <h3><a>Setting the Mesh Buffer</a></h3>
 <div>
 
 <p>
-The Mesh data is stored in a buffer.
+You store the Mesh data in a buffer.
 </p>
 <ol>
 <li><div> Using <code>com.jme3.util.BufferUtils</code>, we create three buffers for the three types of information we have:</div>
 <ul>
-<li><div> vertex positions,</div>
+<li><div> vertex coordinates,</div>
 </li>
 <li><div> texture coordinates,</div>
 </li>
@@ -113,11 +168,11 @@ The Mesh data is stored in a buffer.
 </li>
 </ul>
 </li>
-<li><div> We assign the data to the appropriate type of buffer inside the mesh object. The three buffer types are taken from an enum in <code>com.jme3.scene.VertexBuffer.Type</code>.</div>
+<li><div> We assign the data to the appropriate type of buffer inside the <code>Mesh</code> object. The three buffer types (<code>Position</code>, <code>TextCoord</code>, <code>Index</code>) are taken from an enum in <code>com.jme3.scene.VertexBuffer.Type</code>.</div>
 </li>
-<li><div> The third parameter describes the number of components of the values. Vertex postions are 3 float values, texture coordinates are 2 float values, and the indices are 3 ints representing 3 vertices in a triangle.</div>
+<li><div> The integer parameter describes the number of components of the values. Vertex postions are 3 float values, texture coordinates are 2 float values, and the indices are 3 ints representing 3 vertices in a triangle.</div>
 </li>
-<li><div> In order for jMonkey to correctly show the mesh in the scene, it needs to know the bounds of our new mesh. This can easily be achieved by calling the updateBound() method on it.</div>
+<li><div> To render the mesh in the scene, we need to pre-calculate the bounding volume of our new mesh: Call the <code>updateBound()</code> method on it.</div>
 </li>
 </ol>
 <pre>mesh.setBuffer&#40;Type.Position, 3, BufferUtils.createFloatBuffer&#40;vertices&#41;&#41;;
@@ -128,20 +183,20 @@ mesh.updateBound&#40;&#41;;</pre>
 <p>
 
 Our Mesh is ready! Now we want to see it.
-
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Setting the Mesh Buffer" [3205-4320] -->
+<!-- EDIT8 SECTION "Setting the Mesh Buffer" [4948-6071] -->
 <h2><a>Using the Mesh in a Scene</a></h2>
 <div>
 
 <p>
-We create a <code>com.jme3.scene.Geometry</code>, apply a simple color material to it, and attach it to the rootNode to make it appear in the scene.
+We create a <code>com.jme3.scene.Geometry</code> from our <code>mesh</code>, apply a simple color material to it, and attach it to the rootNode to make it appear in the scene.
 
 </p>
-<pre>Geometry geo = new Geometry&#40;&quot;OurMesh&quot;, mesh&#41;;
-Material mat = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
+<pre>Geometry geo = new Geometry&#40;&quot;OurMesh&quot;, mesh&#41;; // using our custom mesh object
+Material mat = new Material&#40;assetManager, 
+    &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
 mat.setColor&#40;&quot;Color&quot;, ColorRGBA.Blue&#41;;
 geo.setMaterial&#40;mat&#41;;
 rootNode.attachChild&#40;geo&#41;;</pre>
@@ -149,43 +204,50 @@ rootNode.attachChild&#40;geo&#41;;</pre>
 <p>
 
 Ta-daa!
-
 </p>
 
 </div>
-<!-- EDIT8 SECTION "Using the Mesh in a Scene" [4321-4740] -->
+<!-- EDIT9 SECTION "Using the Mesh in a Scene" [6072-6547] -->
 <h2><a>Dynamic Meshes</a></h2>
 <div>
 
 <p>
-If modifying a mesh dynamically in a way which would change the model&#039;s bounds then you need to call updateModelBound() on the Geometry object containing the mesh after calling updateBounds() on the mesh object. There is a warning on updateModelBounds about not usually needing to use it but that can be ignored in this special case.
+
+If you are modifying a mesh dynamically in a way which changes the model&#039;s bounds, you need to update it:
+</p>
+<ol>
+<li><div> Call <code>updateBounds()</code> on the mesh object, and then </div>
+</li>
+<li><div> call <code>updateModelBound()</code> on the Geometry object containing the mesh. </div>
+</li>
+</ol>
+
+<p>
+The updateModelBounds() method warns you about not usually needing to use it, but that can be ignored in this special case.
 </p>
 
 </div>
-<!-- EDIT9 SECTION "Dynamic Meshes" [4741-5102] -->
+<!-- EDIT10 SECTION "Dynamic Meshes" [6548-6942] -->
 <h2><a>Optional Mesh Features</a></h2>
 <div>
 
 <p>
 There are more vertex buffers in a Mesh than the three shown above. For an overview, see also <a href="/com/jme3/gde/docs/jme3/advanced/mesh.html">mesh</a>.
-
 </p>
 
 </div>
-<!-- EDIT10 SECTION "Optional Mesh Features" [5103-5241] -->
+<!-- EDIT11 SECTION "Optional Mesh Features" [6943-7082] -->
 <h3><a>Example: Vertex Colors</a></h3>
 <div>
 
 <p>
-Vertex coloring is a simple way of coloring meshes. Instead of just assigning one solid color, each vertex (corner) has a color assigned. The faces between the vertices are then colored with a gradient. You can use the same mesh <code>mesh</code> object that you defined above.
-
+Vertex coloring is a simple way of coloring meshes. Instead of just assigning one solid color, each vertex (corner) has a color assigned. The faces between the vertices are then colored with a gradient. For this demo, you can use the same mesh <code>mesh</code> object that you defined above.
 </p>
-<pre>Geometry geo = new Geometry &#40;&quot;ColoredMesh&quot;, mesh&#41;;
+<pre>Geometry geo = new Geometry &#40;&quot;ColoredMesh&quot;, mesh&#41;; // using the custom mesh
 Material matVC = new Material&#40;assetManager, &quot;Common/MatDefs/Misc/Unshaded.j3md&quot;&#41;;
 matVC.setBoolean&#40;&quot;VertexColor&quot;, true&#41;;</pre>
 
 <p>
-
 You create a float array color buffer:
 </p>
 <ul>
@@ -209,10 +271,11 @@ You create a float array color buffer:
 </ul>
 
 <p>
-Loop over the colorArray buffer to quickly set some RGBA value for each vertex. As usual, RGBA color values range from 0.0f to 1.0f. <strong>Note that the color values in this example are arbitrarily chosen.</strong> It&#039;s just a quick loop to give every vertex a different RGBA value (a purplish gray, purple, a greenish gray, green, see screenshot), without writing too much code. For your own mesh, you&#039;d assign meaningful values for the color buffer depending on which color you want your mesh to have.
 
+Loop over the colorArray buffer to quickly set some RGBA value for each vertex. As usual, RGBA color values range from 0.0f to 1.0f. <strong>Note that the color values in this example are arbitrarily chosen.</strong> It&#039;s just a quick loop to give every vertex a different RGBA value (a purplish gray, purple, a greenish gray, green, see screenshot), without writing too much code. For your own mesh, you&#039;d assign meaningful values for the color buffer depending on which color you want your mesh to have.
 </p>
-<pre>for&#40;int i = 0; i &lt; 4; i++&#41;&#123;
+<pre>// note: the red and green values are arbitray in this example
+for&#40;int i = 0; i &lt; 4; i++&#41;&#123;
    // Red value (is increased by .2 on each next vertex here)
    colorArray&#91;colorIndex++&#93;= 0.1f+&#40;.2f*i&#41;;
    // Green value (is reduced by .2 on each next vertex)
@@ -224,7 +287,6 @@ Loop over the colorArray buffer to quickly set some RGBA value for each vertex.
 &#125;</pre>
 
 <p>
-
 Next, set the color buffer. An RGBA color value contains four float components, thus the parameter <code>4</code>.
 
 </p>
@@ -233,36 +295,38 @@ geo.setMaterial&#40;matVC&#41;;</pre>
 
 <p>
 
-Now you see a gradient color extending from each vertex.
-
+When you run this code, you see a gradient color extending from each vertex.
 </p>
 
 </div>
-<!-- EDIT11 SECTION "Example: Vertex Colors" [5242-7391] -->
-<h3><a>Example: Shaded Mesh with Normals</a></h3>
+<!-- EDIT12 SECTION "Example: Vertex Colors" [7083-9361] -->
+<h3><a>Example: Using Meshes With Lighting.j3md</a></h3>
 <div>
 
 <p>
-The examples used the mesh together with the Unshaded.j3md material. If you want to use the Mesh with a Phong illuminated material (such as Lighting.j3md), the mesh needs to include information about its normals. (The Normals encode in which direction a mesh polygon is facing, which is important for calculating light and shadow.)
 
+The previous examples used the mesh together with the <code>Unshaded.j3md</code> material. If you want to use the mesh with a Phong illuminated material (such as <code>Lighting.j3md</code>), the mesh must include information about its Normals. (Normal Vectors encode in which direction a mesh polygon is facing, which is important for calculating light and shadow!)
 </p>
 <pre>float&#91;&#93; normals = new float&#91;12&#93;;
 normals = new float&#91;&#93;&#123;0,0,1, 0,0,1, 0,0,1, 0,0,1&#125;;
 mesh.setBuffer&#40;Type.Normal, 3, BufferUtils.createFloatBuffer&#40;normals&#41;&#41;;</pre>
 
 <p>
+You need to specify as many normals as the polygon has vertices. For a flat quad, the four normals point in the same direction. In this case, the direction is the Z unit vector (0,0,1), this means our quad is facing the camera. 
+</p>
 
-You need as many normals as the polygon has vertices. For a flat quad, they point all in the same direction. In this case, the direction is the Z unit vector (Vector3f.UNIT_Z), this means the quad is facing the camera.
+<p>
+If the mesh is more complex or rounded, calculate cross products of neighbouring vertices to identify normal vectors!
 </p>
 
 </div>
-<!-- EDIT12 SECTION "Example: Shaded Mesh with Normals" [7392-8163] -->
+<!-- EDIT13 SECTION "Example: Using Meshes With Lighting.j3md" [9362-10288] -->
 <h3><a>Example: Point Mode</a></h3>
 <div>
 
 <p>
-Alternatively, you can show the vertices as colored points instead of coloring the faces.
 
+Additionally to coloring the faces as just described, you can hide the faces and show only the vertices as colored corner points. 
 </p>
 <pre>Geometry coloredMesh = new Geometry &#40;&quot;ColoredMesh&quot;, cMesh&#41;;
 ...
@@ -277,39 +341,46 @@ rootNode.attachChild&#40;geo&#41;;</pre>
 
 <p>
 
-This will result in a 10 px dot being rendered for each of the four vertices. The dot has the vertex color you specified above. The Quad&#039;s faces are not rendered at all. This can be used for a special debugging or editing mode.
+This will result in a 10 px dot being rendered for each of the four vertices. The dot has the vertex color you specified above. The Quad&#039;s faces are not rendered at all in this mode. You can use this to visualize a special debugging or editing mode in your game.
 </p>
 
 </div>
-<!-- EDIT13 SECTION "Example: Point Mode" [8164-8819] -->
+<!-- EDIT14 SECTION "Example: Point Mode" [10289-11022] -->
 <h2><a>Debugging Tip: Culling</a></h2>
 <div>
 
 <p>
 
-By default, jME3 optimizes a mesh by culling (not drawing) its backfaces. It determines which side the front or backface of a mesh is by the order of the vertices: The frontface is the one where the vertices are specified counter-clockwise.
+By default, jME3 optimizes a mesh by &quot;backface culling&quot;, this means not drawing the inside. It determines the side of a triangle by the order of the vertices: The frontface is the face where the vertices are specified counter-clockwise.
 </p>
 
 <p>
-This means for you that your custom mesh is invisible when seen from &quot;behind&quot; or from the inside. This may not be a problem, often this is even intended because it&#039;s faster. The player will not look at the inside of most things anyway. For example, if your custom mesh is a closed polyhedron, or a flat wallpaper-like object, then rendering the backfaces (the inside of the pillar, the back of the painting, etc) would indeed be a waste of resources.
+This means for you that, by default, your custom mesh is invisible when seen from &quot;behind&quot; or from the inside. This may not be a problem, typically this is even intended, because it&#039;s faster. The player will not look at the inside of most things anyway. For example, if your custom mesh is a closed polyhedron, or a flat wallpaper-like object, then rendering the backfaces (the inside of the pillar, the back of the painting, etc) would indeed be a waste of resources.
 </p>
 
 <p>
-In case however that your usecase requires the backfaces to be visible, you have two options:
+In case however that your usecase requires the backfaces be visible, you have two options:
 </p>
 <ul>
-<li><div> If you have a very simple scene, you can just deactivate backface culling for this one mesh&#039;s material. <br/>
-<code>mat.getAdditionalRenderState().setFaceCullMode(FaceCullMode.Off);</code></div>
+<li><div> If you have a very simple scene, you can simply deactivate backface culling for this one mesh&#039;s material. <pre>mat.getAdditionalRenderState().setFaceCullMode(FaceCullMode.Off);</pre>
+</div>
 </li>
-<li><div> The recommended solution is to specify each triangle twice, the second time with the opposite order of vertices. The second, reversed triangle is a second frontface that replaces the culled backface. <br/>
-<code>int[] indexes = { 2,0,1, 1,3,2, 2,3,1, 1,0,2 }; </code></div>
+<li><div> Another solution for truly double-sided meshes is to specify each triangle twice, the second time with the opposite order of vertices. The second (reversed) triangle is a second frontface that covers up the culled backface. <pre>int[] indexes = { 2,0,1, 1,3,2, 2,3,1, 1,0,2 };</pre>
+</div>
 </li>
 </ul>
+<hr />
 
 <p>
+See also: 
 
-See also: <a href="/com/jme3/gde/docs/jme3/advanced/spatial.html">Spatial</a> ??? contains more info about how to debug custom meshes (that do not render as expected) by changing the default culling behaviour.
 </p>
+<ul>
+<li><div> <a href="/com/jme3/gde/docs/jme3/advanced/spatial.html">Spatial</a> ??? contains more info about how to debug custom meshes (that do not render as expected) by changing the default culling behaviour.</div>
+</li>
+<li><div> <a href="/com/jme3/gde/docs/jme3/advanced/mesh.html">Mesh</a> ??? more details about advanced Mesh properties</div>
+</li>
+</ul>
 <div><span>
        <a href="/wiki/doku.php/tag:spatial?do=showtag&amp;tag=tag%3Aspatial">spatial</a>,
        <a href="/wiki/doku.php/tag:node?do=showtag&amp;tag=tag%3Anode">node</a>,
@@ -319,5 +390,5 @@ See also: <a href="/com/jme3/gde/docs/jme3/advanced/spatial.html">Spatial</a> ??
 </span></div>
 
 </div>
-<!-- EDIT14 SECTION "Debugging Tip: Culling" [8820-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:custom_meshes?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT15 SECTION "Debugging Tip: Culling" [11023-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:custom_meshes?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 69f7ff5..998330a 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/debug-shapes.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/debug-shapes.png differ
index e39b358..69f16ed 100644 (file)
@@ -272,4 +272,4 @@ Then attach the scene processor to the <acronym title="Graphical User Interface"
 
 </div>
 <!-- EDIT11 SECTION "See also" [8425-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:debugging?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:debugging?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 41c560f..7fabbee 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/dof-blur.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/dof-blur.png differ
index a353750..6f628f2 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/drop-shadows.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/drop-shadows.png differ
index 4dbac81..74789eb 100644 (file)
@@ -296,7 +296,7 @@ Thanks for your awesome contributions! Keep them coming!
 <li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/effect/TestMovingParticle.java"><param name="text" value="<html><u>jme3/src/test/jme3test/effect/TestMovingParticle.java</u></html>"><param name="textColor" value="blue"></object> ??? dust, smoke</div>
 </li>
 </ul>
-<hr/>
+<hr />
 
 <p>
 See also:
@@ -318,4 +318,4 @@ See also:
 
 </div>
 <!-- EDIT20 SECTION "Particle Emitters: Explosions, Fire, Smoke" [8466-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:effects_overview?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:effects_overview?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 5803ec7..7edbb1b 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/elephant-pointlights.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/elephant-pointlights.png differ
index 60c93a6..f3ea783 100644 (file)
@@ -63,12 +63,13 @@ HeightMapGrid adds the possibility of loading terrain tiles on demand instead of
 <div>
 
 <p>
+<img src="nbdocs:/com/jme3/gde/docs/wp-uploads/2011/06/grid-tiles.jpg">
 After playing around with the terrain in jME3, soon comes the requirement of having larger explorable lands. Increasing the size of one TerrainQuad leads to more memory usage, while it will still be easy to reach the worlds boundaries. That???s why TerrainGrid was designed. It extends the TerraindQuad class and uses 4 HeightMaps (dark blue) as the four sub-quad. This means that a terrain of size 513 will use tiles of 257. Also an LRUCache is built into the terrain package, so surrounding tiles (green) can be pre-cached on a different thread, lowering the loading time. The quads are updated as the camera approaches the boundary of the light blue section.
 
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Motivation" [2426-3108] -->
+<!-- EDIT4 SECTION "Motivation" [2426-3157] -->
 <h2><a>Rationale</a></h2>
 <div>
 
@@ -84,7 +85,7 @@ There exist also two basic HeightMapGrid implementations:
 </ul>
 
 </div>
-<!-- EDIT5 SECTION "Rationale" [3109-4319] -->
+<!-- EDIT5 SECTION "Rationale" [3158-4368] -->
 <h2><a>Usage</a></h2>
 <div>
 <ol>
@@ -111,5 +112,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>
\ No newline at end of file
+<!-- EDIT6 SECTION "Usage" [4369-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:endless_terraingrid?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index fc06d84..a805cdb 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/explosion-5.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/explosion-5.png differ
index ebaea7f..1d784bb 100644 (file)
@@ -47,4 +47,4 @@ You can also change the fade duration using <code>fade.setDuration()</code>.
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:fade?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 74d8031..13a786a 100644 (file)
@@ -92,4 +92,4 @@ Okay, so you can now start your game in a headless &#039;server mode&#039;, wher
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:headless_server?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 2991944..27c50a8 100644 (file)
@@ -232,4 +232,4 @@ When you disable the motor, the chained nodes are exposed to gravity again:
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:hinges_and_joints?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 3cd00ed..c4ad7a7 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/house-directionallight.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/house-directionallight.png differ
index 2a4025a..3188e34 100644 (file)
@@ -217,4 +217,4 @@ For HUDs, you basically follow the same instructions as for creating a normal <a
 
 </div>
 <!-- EDIT10 SECTION "See also" [5723-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:hud?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:hud?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 6068ef1..3414c7f 100644 (file)
@@ -385,4 +385,4 @@ The abstraction of separating triggers and mappings has the advantage that you c
 
 </div>
 <!-- EDIT15 SECTION "Let Users Remap Keys" [10201-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:input_handling?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:input_handling?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 1568064..df5dd38 100644 (file)
@@ -359,4 +359,4 @@ The <acronym title="Portable Network Graphics">PNG</acronym> file is in the same
 
 </div>
 <!-- EDIT15 SECTION "Related Links" [9445-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:j3m_material_files?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:j3m_material_files?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 620a71d..f301a85 100644 (file)
@@ -234,7 +234,7 @@ JME3 uses some global uniforms for lighting :
 </ul>
 
 <p>
-these uniforms are passed to the shader without having to declare them in the j3md file, but you have to specify in the technique definition &quot; LightMode MultiPass&quot; see lighting.j3md for more information.
+These uniforms are passed to the shader without having to declare them in the j3md file, but you have to specify in the technique definition &quot; LightMode MultiPass&quot; see lighting.j3md for more information.
 <br/>
 
 
@@ -464,4 +464,4 @@ Those attributes are deprecated since GLSL 1.3 (opengl 3), hence JME3 global uni
 
 </div>
 <!-- EDIT16 SECTION "Useful links" [12053-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:jme3_shaders?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:jme3_shaders?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 371760a..cd9c299 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/light-scattering-filter.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/light-scattering-filter.png differ
index ac70306..40da7db 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/light-sources.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/light-sources.png differ
index 3861d89..024d322 100644 (file)
@@ -177,11 +177,11 @@ LightControl lightControl = new LightControl&#40;myLight&#41;;
 spatial.addControl&#40;lightControl&#41;; // this spatial controls the position of this light.</pre>
 
 <p>
-Obviously, this does apply to AmbientLights which have no position.
+Obviously, this does not apply to AmbientLights, which have no position.
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Light Follows Spatial" [5326-5886] -->
+<!-- EDIT7 SECTION "Light Follows Spatial" [5326-5891] -->
 <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] -->
+<!-- EDIT8 SECTION "Simple Lighting" [5892-8541] -->
 <h2><a>BasicShadowRenderer</a></h2>
 <div>
 
@@ -280,8 +280,39 @@ 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>
+<!-- EDIT9 SECTION "BasicShadowRenderer" [8542-10211] -->
+<h2><a>DirectionalLightShadowRenderer</a></h2>
+<div>
+
+<p>
+
+Full sample code
+</p>
+<ul>
+<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/light/TestDirectionalLightShadow.java"><param name="text" value="<html><u>TestDirectionalLightShadow.java</u></html>"><param name="textColor" value="blue"></object></div>
+</li>
+</ul>
+<pre>        DirectionalLight sun = new DirectionalLight&#40;&#41;;
+        sun.setColor&#40;ColorRGBA.White&#41;;
+        sun.setDirection&#40;cam.getDirection&#40;&#41;&#41;;
+        rootNode.addLight&#40;sun&#41;;
+&nbsp;
+        /* Drop shadows */
+        final int SHADOWMAP_SIZE=1024;
+        DirectionalLightShadowRenderer dlsr = new DirectionalLightShadowRenderer&#40;assetManager, SHADOWMAP_SIZE, 3&#41;;
+        dlsr.setLight&#40;sun&#41;;
+        viewPort.addProcessor&#40;dlsr&#41;;
+&nbsp;
+        DirectionalLightShadowFilter dlsf = new DirectionalLightShadowFilter&#40;assetManager, SHADOWMAP_SIZE, 3&#41;;
+        dlsf.setLight&#40;sun&#41;;
+        dlsf.setEnabled&#40;true&#41;;
+        FilterPostProcessor fpp = new FilterPostProcessor&#40;assetManager&#41;;
+        fpp.addFilter&#40;dlsf&#41;;
+        viewPort.addProcessor&#40;fpp&#41;;</pre>
+
+</div>
+<!-- EDIT10 SECTION "DirectionalLightShadowRenderer" [10212-11184] -->
+<h2><a>Parallel-Split Shadow Map (deprecated)</a></h2>
 <div>
 
 <p>
@@ -344,7 +375,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] -->
+<!-- EDIT11 SECTION "Parallel-Split Shadow Map (deprecated)" [11185-12920] -->
 <h2><a>Screen Space Ambient Occlusion</a></h2>
 <div>
 
@@ -376,5 +407,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>
\ No newline at end of file
+<!-- EDIT12 SECTION "Screen Space Ambient Occlusion" [12921-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:light_and_shadow?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 35dad55..6afcb67 100644 (file)
@@ -564,4 +564,4 @@ public class TestLoadingScreen1 extends SimpleApplication implements ScreenContr
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:loading_screen?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 66b9b2b..338ac66 100644 (file)
@@ -180,4 +180,4 @@ Typical problems include:
 
 </div>
 <!-- EDIT7 SECTION "More Documentation" [5132-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:localization?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:localization?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 2bec43b..f76baff 100644 (file)
@@ -117,4 +117,4 @@ This behaviour can be partially modified by overriding the method handleError in
 
 </div>
 <!-- EDIT5 SECTION "Advanced Error Handling" [3469-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:logging?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:logging?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 3560dd8..ac6e4b8 100644 (file)
@@ -19,11 +19,11 @@ There are two ways how the camera can do that:
 
 <p>
 
-<strong>Important:</strong> Using third-person view requires you to deactivate the default flyCam (first-person view). This means that you have to configure your own navigation (<a href="/com/jme3/gde/docs/jme3/advanced/input_handling.html">key inputs and analogListener</a>) that make your player character walk. For moving a physical player character, use <code>player.setWalkDirection()</code>, for a non-pysical character you can use <code>player.move()</code>.
+<strong>Important:</strong> Using third-person view requires you to deactivate the default flyCam (first-person view). This means that you have to configure your own navigation (<a href="/com/jme3/gde/docs/jme3/advanced/input_handling.html">key inputs and analogListener</a>) that make your player character walk. For moving a physical player character, use <code>player.setWalkDirection()</code>, for a non-physical character you can use <code>player.move()</code>.
 </p>
 
 </div>
-<!-- EDIT1 SECTION "Making the Camera Follow a 3rd-Person Character" [1-989] -->
+<!-- EDIT1 SECTION "Making the Camera Follow a 3rd-Person Character" [1-990] -->
 <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] -->
+<!-- EDIT2 SECTION "Code Samples" [991-1372] -->
 <h2><a>Camera Node</a></h2>
 <div>
 
@@ -76,7 +76,7 @@ Example: Use with <a href="/com/jme3/gde/docs/jme3/advanced/physics.html">Charac
 The camera&#039;s transformation is copied over the spatial&#039;s transformation. Use with first-person flyCam.</td>
        </tr>
 </table></div>
-<!-- EDIT4 TABLE [2445-2956] -->
+<!-- EDIT4 TABLE [2446-2957] -->
 <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] -->
+<!-- EDIT3 SECTION "Camera Node" [1373-3198] -->
 <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>
-<!-- EDIT6 TABLE [3732-5144] -->
+<!-- EDIT6 TABLE [3733-5145] -->
 <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] -->
+<!-- EDIT5 SECTION "Chase Camera" [3199-5388] -->
 <h2><a>Which to Choose?</a></h2>
 <div>
 
@@ -171,7 +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>
-<!-- EDIT8 TABLE [5473-5944] -->
+<!-- EDIT8 TABLE [5474-5945] -->
 </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>
\ No newline at end of file
+<!-- EDIT7 SECTION "Which to Choose?" [5389-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:making_the_camera_follow_a_character?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 3eea553..d3c6fea 100644 (file)
@@ -190,4 +190,4 @@ You can create your own Material Definitions and place them in your project&#039
 
 </div>
 <!-- EDIT6 SECTION "Related Links" [5385-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:material_definitions?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:material_definitions?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 9771474..a227288 100644 (file)
@@ -101,12 +101,12 @@ setVector3(&quot;NormalScale&quot;, new Vector3f(0,0,0)); </td>
        </tr>
        <tr>
                <td> Common/MatDefs/Terrain/Terrain.j3md </td><td> Splat textures for e.g. terrains. <br/>
-See also: <a href="/com/jme3/gde/docs/jme3/beginner/hello_terrain.html">Hello Terrain</a> </td><td> setTexture(&quot;Texture1&quot;, assetManager.loadTexture(&quot;&quot;)); (red) <br/>
- setFloat(&quot;Texture1Scale&quot;,1f); <br/>
- setTexture(&quot;Texture2&quot;, assetManager.loadTexture(&quot;&quot;)); (green) <br/>
- setFloat(&quot;Texture2Scale&quot;,1f); <br/>
-setTexture(&quot;Texture3&quot;, assetManager.loadTexture(&quot;&quot;)); (blue)  <br/>
- setFloat(&quot;Texture3Scale&quot;,1f); <br/>
+See also: <a href="/com/jme3/gde/docs/jme3/beginner/hello_terrain.html">Hello Terrain</a> </td><td> setTexture(&quot;Tex1&quot;, assetManager.loadTexture(&quot;&quot;)); (red) <br/>
+ setFloat(&quot;Tex1Scale&quot;,1f); <br/>
+ setTexture(&quot;Tex2&quot;, assetManager.loadTexture(&quot;&quot;)); (green) <br/>
+ setFloat(&quot;Tex2Scale&quot;,1f); <br/>
+setTexture(&quot;Tex3&quot;, assetManager.loadTexture(&quot;&quot;)); (blue)  <br/>
+ setFloat(&quot;Tex3Scale&quot;,1f); <br/>
 setTexture(&quot;Alpha&quot;, assetManager.loadTexture(&quot;&quot;)); </td>
        </tr>
        <tr>
@@ -143,9 +143,9 @@ setColor(&quot;GlowColor&quot;, ColorRGBA.White); <br/>
  setBoolean(&quot;PointSprite&quot;,true); </td>
        </tr>
 </table></div>
-<!-- EDIT5 TABLE [2975-5491] -->
+<!-- EDIT5 TABLE [2975-5467] -->
 </div>
-<!-- EDIT3 SECTION "Unshaded Coloring and Textures" [1718-5492] -->
+<!-- EDIT3 SECTION "Unshaded Coloring and Textures" [1718-5468] -->
 <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>
-<!-- EDIT7 TABLE [6152-7870] --><div><table>
+<!-- EDIT7 TABLE [6128-7846] --><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>
-<!-- EDIT8 TABLE [7872-10158] -->
+<!-- EDIT8 TABLE [7848-10134] -->
 </div>
-<!-- EDIT6 SECTION "Phong Illuminated" [5493-10159] -->
+<!-- EDIT6 SECTION "Phong Illuminated" [5469-10135] -->
 <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>
-<!-- EDIT10 TABLE [10193-10564] -->
+<!-- EDIT10 TABLE [10169-10540] -->
 </div>
-<!-- EDIT9 SECTION "Other: Test and Debug" [10160-10565] -->
+<!-- EDIT9 SECTION "Other: Test and Debug" [10136-10541] -->
 <h2><a>RenderStates</a></h2>
 <div>
 
 </div>
-<!-- EDIT11 SECTION "RenderStates" [10566-10591] -->
+<!-- EDIT11 SECTION "RenderStates" [10542-10567] -->
 <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>
-<!-- EDIT13 TABLE [10616-13066] -->
+<!-- EDIT13 TABLE [10592-13042] -->
 <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] -->
+<!-- EDIT12 SECTION "Transparency" [10568-13341] -->
 <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>Culls 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 (such as node attachment, collision shapes, interactions, etc) active.</td>
        </tr>
 </table></div>
-<!-- EDIT15 TABLE [13385-14527] -->
+<!-- EDIT15 TABLE [13361-14503] -->
 </div>
-<!-- EDIT14 SECTION "Culling" [13366-14528] -->
+<!-- EDIT14 SECTION "Culling" [13342-14504] -->
 <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>
-<!-- EDIT17 TABLE [14554-15320] -->
+<!-- EDIT17 TABLE [14530-15296] -->
 <p>
 
 <strong>Related Links</strong>
@@ -389,7 +389,7 @@ Later, put the Geometry (not the Material!) in the appropriate render queue
 </span></div>
 
 </div>
-<!-- EDIT16 SECTION "Miscellaneous" [14529-] --><div>
+<!-- EDIT16 SECTION "Miscellaneous" [14505-] --><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> 
@@ -399,4 +399,4 @@ Minnaert is a shader type.</div>
 <div><sup><a href="#fnt__4">4)</a></sup> 
 WardIso is a shader type.</div>
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:materials_overview?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:materials_overview?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 96246b2..e235962 100644 (file)
@@ -12,16 +12,13 @@ All visible game elements in a scene, whether it is a Model or a Shape, are made
 
 </p>
 <ul>
-<li><div> Meshes are made up of triangles. <br/>
-<code>getTriangleCount(???)</code> and <code>getTriangle(???)</code></div>
+<li><div> Meshes are made up of triangles: <code>getTriangleCount(???)</code> and <code>getTriangle(???)</code></div>
 </li>
-<li><div> Each mesh has a unique ID <br/>
-<code>getId()</code></div>
+<li><div> Each mesh has a unique ID: <code>getId()</code></div>
 </li>
 <li><div> Meshes have transformations: Location (local translation), rotation, scale.</div>
 </li>
-<li><div> Meshes have a bounding volume. jME3 can detect intersections (that is, non-physical collisions) between meshes, or between meshes and 2D elements such as rays. <br/>
-<code>collideWith()</code>.</div>
+<li><div> Meshes have a bounding volume. jME3 can detect intersections (that is, non-physical collisions) between meshes, or between meshes and 2D elements such as rays: <code>collideWith()</code>.</div>
 </li>
 <li><div> Meshes are locked with <code>setStatic()</code> and unlocked with <code>setDynamic()</code>. </div>
 <ul>
@@ -31,25 +28,35 @@ All visible game elements in a scene, whether it is a Model or a Shape, are made
 </li>
 </ul>
 </li>
-<li><div> (Optional) Meshes can have a LOD (level of detail optimization) that renders more or less details depending on distance from the camera.</div>
-</li>
 </ul>
 
 <p>
 
-You can use default <a href="/com/jme3/gde/docs/jme3/advanced/shape.html">Shape</a>s as meshes; load <a href="/com/jme3/gde/docs/jme3/advanced/3d_models.html">3D models</a> (i.e. meshes created in external applications); or create free-form <a href="/com/jme3/gde/docs/jme3/advanced/custom_meshes.html">custom meshes</a> programmatically. 
+You have several options when <a href="/com/jme3/gde/docs/jme3/advanced/spatial.html">creating Geometries from meshes</a>:
 </p>
+<ul>
+<li><div> Use built-in <a href="/com/jme3/gde/docs/jme3/advanced/shape.html">Shape</a>s as meshes; </div>
+</li>
+<li><div> Load <a href="/com/jme3/gde/docs/jme3/advanced/3d_models.html">3D models</a> (that is, meshes created in external applications); or </div>
+</li>
+<li><div> Create free-form <a href="/com/jme3/gde/docs/jme3/advanced/custom_meshes.html">custom meshes</a> programmatically. </div>
+</li>
+</ul>
 
 </div>
-<!-- EDIT1 SECTION "Polygon Meshes" [1-1216] -->
+<!-- EDIT1 SECTION "Polygon Meshes" [1-1154] -->
 <h2><a>Vertex Buffer</a></h2>
 <div>
 
 <p>
 
 The VertexBuffer contains a particular type of geometry data used by Meshes. Every VertexBuffer set on a Mesh is sent as an attribute to the vertex shader to be processed.
-
 </p>
+
+</div>
+<!-- EDIT2 SECTION "Vertex Buffer" [1155-1354] -->
+<h3><a>Mesh Vertex Buffers</a></h3>
+<div>
 <div><table>
        <tr>
                <th>Vertex Buffer Type</th><th>Description</th>
@@ -97,18 +104,23 @@ 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>
-<!-- EDIT3 TABLE [1417-2236] --><div><table>
+<!-- EDIT4 TABLE [1386-2205] -->
+</div>
+<!-- EDIT3 SECTION "Mesh Vertex Buffers" [1355-2206] -->
+<h3><a>Mesh Properties</a></h3>
+<div>
+<div><table>
        <tr>
                <th>Mesh method</th><th>Description</th>
        </tr>
        <tr>
-               <td>setLineWidth(1)</td>
+               <td>setLineWidth(1)</td><td>the thickness of the line if using Mode.Lines</td>
        </tr>
        <tr>
-               <td>setPointSize(4.0f)</td>
+               <td>setPointSize(4.0f)</td><td>the thickness of the point when using Mode.Points</td>
        </tr>
        <tr>
-               <td>setBound(boundingVolume)</td>
+               <td>setBound(boundingVolume)</td><td>if you need to specifiy a custom optimized bounding volume</td>
        </tr>
        <tr>
                <td>setStatic()</td><td>Locks the mesh so you cannot modify it anymore, thus optimizing its data (faster).</td>
@@ -117,27 +129,32 @@ The VertexBuffer contains a particular type of geometry data used by Meshes. Eve
                <td>setDynamic()</td><td>Unlocks the mesh so you can modified it, but this will un-optimize the data (slower).</td>
        </tr>
        <tr>
-               <td>setMode(Mesh.Mode.Points)</td><td> Used to set mesh modes, see below</td>
+               <td>setMode(Mesh.Mode.Points)</td><td>Used to set mesh rendering modes, see below.</td>
        </tr>
        <tr>
-               <td>getId()</td>
+               <td>getId()</td><td>returns the Mesh ID</td>
        </tr>
        <tr>
-               <td>getTriangle(int,tri)</td>
+               <td>getTriangle(int,tri)</td><td>returns data of triangle number <code>int</code> into variable <code>tri</code></td>
        </tr>
        <tr>
-               <td>scaleTextureCoordinates(Vector2f)</td>
+               <td>scaleTextureCoordinates(Vector2f)</td><td>How the texture will be stretched over the whole mesh.</td>
        </tr>
 </table></div>
-<!-- EDIT4 TABLE [2238-2665] --><div><table>
+<!-- EDIT6 TABLE [2234-2957] -->
+</div>
+<!-- EDIT5 SECTION "Mesh Properties" [2207-2958] -->
+<h3><a>Mesh Rendering Modes</a></h3>
+<div>
+<div><table>
        <tr>
                <th>Mesh Mode</th><th>Description</th>
        </tr>
        <tr>
-               <td>Mesh.Mode.Points</td><td>Show only corner points</td>
+               <td>Mesh.Mode.Points</td><td>Show only corner points (vertices) of mesh</td>
        </tr>
        <tr>
-               <td>Mesh.Mode.Lines</td><td>Show lines</td>
+               <td>Mesh.Mode.Lines</td><td>Show lines (edges) of mesh</td>
        </tr>
        <tr>
                <td>Mesh.Mode.LineLoop</td><td>?</td>
@@ -158,7 +175,17 @@ The VertexBuffer contains a particular type of geometry data used by Meshes. Eve
                <td>Mesh.Mode.Hybrid</td><td>?</td>
        </tr>
 </table></div>
-<!-- EDIT5 TABLE [2667-2908] --><div><span>
+<!-- EDIT8 TABLE [2991-3267] -->
+</div>
+<!-- EDIT7 SECTION "Mesh Rendering Modes" [2959-3268] -->
+<h3><a>Level of Detail</a></h3>
+<div>
+
+<p>
+
+Optionally, custom meshes can have a LOD (level of detail optimization) that renders more or less detail, depending on the distance of the mesh from the camera. You have to specify several vertex buffers, one for each level of detail you want (very far away with few details, close up with all details, and something in the middle). Use <code>setLodLevels(VertexBuffer[] lodLevels)</code>. 
+</p>
+<div><span>
        <a href="/wiki/doku.php/tag:spatial?do=showtag&amp;tag=tag%3Aspatial">spatial</a>,
        <a href="/wiki/doku.php/tag:node?do=showtag&amp;tag=tag%3Anode">node</a>,
        <a href="/wiki/doku.php/tag:mesh?do=showtag&amp;tag=tag%3Amesh">mesh</a>,
@@ -167,5 +194,5 @@ The VertexBuffer contains a particular type of geometry data used by Meshes. Eve
 </span></div>
 
 </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>
\ No newline at end of file
+<!-- EDIT9 SECTION "Level of Detail" [3269-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:mesh?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 8e435e6..4f5cfc6 100644 (file)
@@ -338,4 +338,4 @@ MonkeyZone is hosted at GoogleCode, where you can check out the jMonkeyEngine <a
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:monkey_zone?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 4f31071..453588f 100644 (file)
@@ -118,4 +118,4 @@ In this example, you just print the status at every way point. In a game you cou
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:motionpath?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 2af3a74..77760ca 100644 (file)
@@ -82,7 +82,7 @@ The following <code>pick target</code> input mapping implements an action that d
 </p>
 
 <p>
-<strong>Note:</strong> Picking with a visible pouse pointer implies that your application can no longer use the default flyCam where the MouseAxisTrigger rotates the camera. You have to deactivate the flyCam mappings and provide custom mappings. Either different inputs rotate the camera, or the camera is fixed.
+<strong>Note:</strong> Picking with a visible mouse pointer implies that your application can no longer use the default flyCam where the MouseAxisTrigger rotates the camera. You have to deactivate the flyCam mappings and provide custom mappings. Either different inputs rotate the camera, or the camera is fixed.
 
 </p>
 <ol>
@@ -147,4 +147,4 @@ The following example rotates Spatials named &quot;Red Box&quot; or &quot;Blue B
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:mouse_picking?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 363a81b..080c2ae 100644 (file)
@@ -230,4 +230,4 @@ You have full control to determine which Nodes the camera can see! It can see th
 
 </div>
 <!-- EDIT7 SECTION "ViewPort Settings" [5653-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:multiple_camera_views?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:multiple_camera_views?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 1b083c6..efb2918 100644 (file)
@@ -6,26 +6,25 @@
 
 jME3 is similar to Swing in that for speed and efficiency all changes to the world must be made in a single update thread. This is happening automatically if using Controls and AppSates update metod or simpleUpdate however whenever you pass work to another thread you need to hand the results back to the main jME3 thread before making any changes to the scene graph.
 </p>
-<pre>    public void rotateGeography(final Geography goe, final Quaternian rot) {
-        mainApp.enqueue(new Callable&lt;Spatial&gt;() {
-
-            public Spatial call() throws Exception {
-                return geo.rotate(rot);
-            }
-            
-        });
-    }</pre>
+<pre>public void rotateGeometry&#40;final Geometry geo, final Quaternion rot&#41; &#123;
+    mainApp.enqueue&#40;new Callable&lt;Spatial&gt;&#40;&#41; &#123;
+        public Spatial call&#40;&#41; throws Exception &#123;
+            return geo.rotate&#40;rot&#41;;
+        &#125;
+    &#125;&#41;;
+&#125;</pre>
 
 <p>
-Note that this example does not fetch the returned value by calling <code>get()</code> on the Future object returned from <code>enqueue()</code>. This means that the example method <code>rotateGeography()</code> will return immediately and will not wait for the rotation to be processed before continuing.
+Note that this example does not fetch the returned value by calling <code>get()</code> on the Future object returned from <code>enqueue()</code>. This means that the example method <code>rotateGeometry()</code> will return immediately and will not wait for the rotation to be processed before continuing.
 </p>
 
 <p>
 If the processing thread needs to wait or needs the return value then <code>get()</code> or the other methods in the returned Future object such as <code>isDone()</code> can be used.
+
 </p>
 
 </div>
-<!-- EDIT1 SECTION "The jME3 Threading Model" [1-1133] -->
+<!-- EDIT1 SECTION "The jME3 Threading Model" [1-1092] -->
 <h1><a>Multithreading Optimization</a></h1>
 <div>
 
@@ -35,7 +34,7 @@ First, make sure you know what <a href="/com/jme3/gde/docs/jme3/advanced/applica
 </p>
 
 <p>
-More complex games may feature complex mathematical operations or artificially intelligent calculations (such as path finding for several NPCs). If you make many time-intensive calls on the same thread (in the update loop), they will block one another, and thus slow down the game to a degree that makes it unplayable. If your game requires long running tasks, you should run them concurrently on separate threads, which speeds up the application considerably.
+More complex games may feature complex mathematical operations or artificial intelligence calculations (such as path finding for several NPCs). If you make many time-intensive calls on the same thread (in the update loop), they will block one another, and thus slow down the game to a degree that makes it unplayable. If your game requires long running tasks, you should run them concurrently on separate threads, which speeds up the application considerably.
 </p>
 
 <p>
@@ -47,7 +46,7 @@ Effectively, each for-loop in the main update loop might be a chance for multith
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Multithreading Optimization" [1134-2265] -->
+<!-- EDIT2 SECTION "Multithreading Optimization" [1093-2223] -->
 <h2><a>Java Multithreading</a></h2>
 <div>
 
@@ -66,7 +65,7 @@ The java.util.concurrent package provides a good foundation for multithreading a
 </ul>
 
 </div>
-<!-- EDIT3 SECTION "Java Multithreading" [2266-3338] -->
+<!-- EDIT3 SECTION "Java Multithreading" [2224-3296] -->
 <h2><a>Multithreading in jME3</a></h2>
 <div>
 
@@ -84,7 +83,7 @@ To avoid slowdown, we decide to keep the pathfinding operations in the NPC Contr
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Multithreading in jME3" [3339-4011] -->
+<!-- EDIT4 SECTION "Multithreading in jME3" [3297-3969] -->
 <h3><a>Executor</a></h3>
 <div>
 
@@ -111,7 +110,7 @@ In your simple application you can override the destroy method and shutdown the
     &#125;</pre>
 
 </div>
-<!-- EDIT5 SECTION "Executor" [4012-5087] -->
+<!-- EDIT5 SECTION "Executor" [3970-5045] -->
 <h3><a>Control Class Fields</a></h3>
 <div>
 
@@ -131,7 +130,7 @@ Here we also created the Future variable to track the state of this task.
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Control Class Fields" [5088-5678] -->
+<!-- EDIT6 SECTION "Control Class Fields" [5046-5636] -->
 <h3><a>Control Update() Method</a></h3>
 <div>
 
@@ -179,7 +178,7 @@ Remember not to mess with the class fields after starting the thread, because th
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Control Update() Method" [5679-7549] -->
+<!-- EDIT7 SECTION "Control Update() Method" [5637-7507] -->
 <h3><a>The Callable</a></h3>
 <div>
 
@@ -231,7 +230,7 @@ private Callable&lt;MyWayList&gt; findWay = new Callable&lt;MyWayList&gt;&#40;&#
 &#125;;</pre>
 
 </div>
-<!-- EDIT8 SECTION "The Callable" [7550-9916] -->
+<!-- EDIT8 SECTION "The Callable" [7508-9874] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -250,5 +249,5 @@ The cool thing about this approach is that every entity creates one self-contain
 </span></div>
 
 </div>
-<!-- EDIT9 SECTION "Conclusion" [9917-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:multithreading?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT9 SECTION "Conclusion" [9875-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:multithreading?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 0515d2e..ea71f70 100644 (file)
@@ -490,4 +490,4 @@ If you have set up a server in your home network, and the game clients cannot re
 
 </div>
 <!-- EDIT26 SECTION "Troubleshooting" [15004-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:networking?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:networking?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index fd6531a..3a05b90 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui-13.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui-13.png differ
index cf76d1a..3b02843 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui-example.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui-example.png differ
index 6b36f75..af86c31 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-gui.png differ
index 4687009..9a142d9 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-screen-layer-panel.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nifty-screen-layer-panel.png differ
index f27afeb..4a9fdd8 100644 (file)
@@ -192,4 +192,4 @@ Logger.getLogger(&quot;NiftyInputEventHandlingLog&quot;).setLevel(Level.SEVERE);
 
 </div>
 <!-- EDIT8 SECTION "Nifty Logging (Nifty 1.3.1)" [4718-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index eca0d33..65166b5 100644 (file)
@@ -318,4 +318,4 @@ You&#039;re done with the basic Nifty <acronym title="Graphical User Interface">
 
 </div>
 <!-- EDIT7 SECTION "Next Steps" [9330-] -->
-<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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_java_interaction?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 6454f4e..8ac3878 100644 (file)
@@ -639,4 +639,4 @@ Integrate the <acronym title="Graphical User Interface">GUI</acronym> into the g
 
 </div>
 <!-- EDIT14 SECTION "Next Steps" [17734-] -->
-<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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_java_layout?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index e0df90f..76ca041 100644 (file)
@@ -89,4 +89,4 @@ Now that you have layed out and integrated the <acronym title="Graphical User In
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_overlay?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 157376a..59281ce 100644 (file)
@@ -91,4 +91,4 @@ To handle menu item events (i.e. calling a method when you click on a menu item)
   &#125;;</pre>
 
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_popup_menu?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_popup_menu?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index d96c37f..ff6c1f6 100644 (file)
@@ -108,4 +108,4 @@ Now that you have layed out and integrated the <acronym title="Graphical User In
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_projection?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 61c385d..ca47d84 100644 (file)
@@ -323,7 +323,7 @@ Inside myCustomStyles.xml you define styles like this:
 Learn more about how to create styles by looking at the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://sourceforge.net/apps/mediawiki/nifty-gui/index.php?title=Build_from_Source"><param name="text" value="<html><u>Nifty GUI source code</u></html>"><param name="textColor" value="blue"></object> for ???nifty-style-black???. Copy it as a template and change it to create your own style.
 
 </p>
-<hr/>
+<hr />
 
 <p>
 Learn more from the NiftyGUI page:
@@ -346,4 +346,4 @@ Learn more from the NiftyGUI page:
 
 </div>
 <!-- EDIT14 SECTION "Design Your Own Styles" [9494-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_scenarios?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_scenarios?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 87cd6cb..5450391 100644 (file)
@@ -293,8 +293,12 @@ The font used is jME3&#039;s default font &quot;Interface/Fonts/Default.fnt&quot
 
 Before you can use any control, you must load a Control Definition first. Add the following two lines <em>before</em> your screen definitions:
 </p>
-<pre>  <span>&lt;useControls filename=&quot;nifty-default-controls.xml&quot; /&gt;</span>
-  <span>&lt;useStyles filename=&quot;nifty-default-styles.xml&quot; /&gt;</span></pre>
+<pre>  <span>&lt;useStyles filename=&quot;nifty-default-styles.xml&quot; /&gt;</span>
+  <span>&lt;useControls filename=&quot;nifty-default-controls.xml&quot; /&gt;</span></pre>
+
+<p>
+Note that the useStyles tag must be the first child of the nifty tag, otherwise you will see an error in design view.
+</p>
 
 </div>
 
@@ -347,7 +351,7 @@ Nifty additionally offers many customizable controls such as check boxes, text f
 </p>
 
 </div>
-<!-- EDIT10 SECTION "Add Controls" [8477-10445] -->
+<!-- EDIT10 SECTION "Add Controls" [8477-10564] -->
 <h2><a>Intermediate Result</a></h2>
 <div>
 
@@ -365,7 +369,7 @@ Compare this result with the layout draft above.
 </p>
 
 </div>
-<!-- EDIT11 SECTION "Intermediate Result" [10446-10806] -->
+<!-- EDIT11 SECTION "Intermediate Result" [10565-10925] -->
 <h2><a>Next Steps</a></h2>
 <div>
 
@@ -387,5 +391,5 @@ Integrate the <acronym title="Graphical User Interface">GUI</acronym> into the g
 </span></div>
 
 </div>
-<!-- EDIT12 SECTION "Next Steps" [10807-] -->
-<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>
\ No newline at end of file
+<!-- EDIT12 SECTION "Next Steps" [10926-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:nifty_gui_xml_layout?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index b22f709..2335887 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nurbs_3-d_surface.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/nurbs_3-d_surface.png differ
index 4c96319..305f6d1 100644 (file)
@@ -72,4 +72,4 @@ Test Character - <object classid="java:org.netbeans.modules.javahelp.BrowserDisp
 
 </div>
 <!-- EDIT4 SECTION "Troubleshooting" [997-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:ogrecompatibility?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:ogrecompatibility?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 6547f9b..de00e9f 100644 (file)
@@ -193,4 +193,4 @@ A: TBD</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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:open_game_finder?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 23d005b..2dd4c83 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/otoglow.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/otoglow.png differ
index d1124e6..f1cb62c 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/otonobloom.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/otonobloom.png differ
index 439cc45..41a9f70 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/particle.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/particle.png differ
index 9e909da..9db856d 100644 (file)
@@ -225,7 +225,7 @@ The following effect textures are available by default from <code>test-data.jar<
 
 Browse the full source code of all <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/#svn%2Ftrunk%2Fengine%2Fsrc%2Ftest%2Fjme3test%2Feffect"><param name="text" value="<html><u>effect examples</u></html>"><param name="textColor" value="blue"></object> here.
 </p>
-<hr/>
+<hr />
 
 <p>
 
@@ -238,4 +238,4 @@ See also: <a href="/com/jme3/gde/docs/jme3/advanced/effects_overview.html">Effec
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:particle_emitters?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 3b1595a..4da7e2e 100644 (file)
@@ -21,23 +21,58 @@ If you are looking for info on how to respond to physics events such as collisio
 <div>
 
 <p>
+jME3 has a complete, slightly adapted but fully wrapped Bullet <acronym title="Application Programming Interface">API</acronym> that uses normal jME math objects (Vector3f, Quaternion etc) as input/output data. All normal bullet objects like RigidBodies, Constraints (called &quot;Joints&quot; in jME3) and the various collision shapes are available, all mesh formats can be converted from jME to bullet.
+</p>
 
-Bullet physics runs internally at 60fps by default. This rate is not dependent on the actual framerate and it does not lock the framerate at 60fps. Instead, when the actual fps is higher than the physics framerate the system will display interpolated positions for the physics objects. When the framerate is lower than the physics framerate, the physics space will be stepped multiple times per frame to make up for the missing calculations. You create a Bullet PhysicsSpace in jME3 with a <code>com.jme3.bullet.BulletAppState</code>. 
+<p>
+The PhysicsSpace object is the central object in bullet and all objects have to be added to it so they are physics-enabled. You can create multiple physics spaces as well to have multiple independent physics simulations or to run simulations in the background that you step at a different pace. You can also create a Bullet PhysicsSpace in jME3 with a <code>com.jme3.bullet.BulletAppState</code> which runs a PhysicsSpace along the update loop, which is the easiest way to instantiate a physics space. It can be run in a mode where it runs in parallel to rendering, yet syncs to the update loop so you can apply physics changes safely during the update() calls of Controls and SimpleApplication.
 </p>
 
 <p>
-Internally, the updating and syncing of the actual physics objects happens in the following way:
+The base bullet objects are also available as simple to use controls that can be attached to spatials to directly control these by physics forces and influences. The RigidBodyControl for example includes a simple constructor that automatically creates a hull collision shape or a mesh collision shape based on the given input mass and the mesh of the spatial it is attached to. This makes enabling physics on a Geometry as simple as &quot;spatial.addControl(new RigidBodyControl(1));&quot;
 </p>
-<ol>
-<li><div> collision callbacks (<code>BulletAppState.update()</code>)</div>
+
+<p>
+Due to some differences in how bullet and jME handle the scene and other objects relations there is some things to remember about the controls implementation:
+</p>
+<ul>
+<li><div> The collision shape is not automatically updated when the spatial mesh changes</div>
+<ul>
+<li><div> You can update it by reattaching the control or by using the CollisionShapeFactory yourself.</div>
 </li>
-<li><div> user update (<code>simpleUpdate</code> in main loop, <code>update()</code> in Controls and AppStates)</div>
+</ul>
 </li>
-<li><div> physics to scenegraph syncing and applying (<code>updateLogicalState()</code>)</div>
+<li><div> In bullet the scale parameter is on the collision shape (which equals the mesh in jME3) and not on the RigidBody so you cannot scale a collision shape without scaling any other RigidBody with reference of it</div>
+<ul>
+<li><div> Note that you should share collision shapes in general and that j3o files loaded from file do that as well when instantiated twice so this is something to consider.</div>
 </li>
-<li><div> stepping physics (before or in parallel to <code>Application.render()</code>)</div>
+</ul>
 </li>
-</ol>
+<li><div> <strong>Physics objects remain in the physics space when their spatials are detached from the scene graph!</strong></div>
+<ul>
+<li><div> Use PhysicsSpace.remove(physicsObject) or simply physicsControl.setEnabled(false); to remove them from the PhysicsSpace</div>
+</li>
+</ul>
+</li>
+<li><div> If you apply forces to the physics object in an update() call they might not get applied because internally bullet still runs at 60fps while your app might run at 120.</div>
+<ul>
+<li><div> You can use the PhysicsTickListener interface and register with the physics space and use the preTick() method to be sure that you actually apply the force in the right moment.</div>
+</li>
+<li><div> Reading values from the physics objects in the update loop should always yield correct values but they might not change over several fames due to the same reason.</div>
+</li>
+</ul>
+</li>
+<li><div> Reading or writing from the physics objects during the render phase is not recommended as this is when the physics space is stepped and would cause data corruption. This is why the debug display does not work properly in a threaded BulletAppState</div>
+</li>
+<li><div> Bullet always uses world coordinates, there is no such concept as nodes so the object will be moved into a world location with no regard to its parent spatial.</div>
+<ul>
+<li><div> You can configure this behavior using the setApplyPhysicsLocal() method on physics controls but remember the physics space still runs in world coordinates so you can visually detach things that will actually still collide in the physics space.</div>
+</li>
+<li><div> To use the local applying to simulate e.g. the internal physics system of a train passing by, simply create another BulletAppState and add all models with physics controls in local mode to a node. When you move the node the physics will happen all the same but the objects will move along with the node.</div>
+</li>
+</ul>
+</li>
+</ul>
 
 <p>
 
@@ -52,8 +87,27 @@ When you use this physics simulation, values correspond to the following units:
 </li>
 </ul>
 
+<p>
+
+Bullet physics runs internally at 60fps by default. This rate is not dependent on the actual framerate and it does not lock the framerate at 60fps. Instead, when the actual fps is higher than the physics framerate the system will display interpolated positions for the physics objects. When the framerate is lower than the physics framerate, the physics space will be stepped multiple times per frame to make up for the missing calculations. 
+</p>
+
+<p>
+Internally, the updating and syncing of the actual physics objects in the BulletAppState happens in the following way:
+</p>
+<ol>
+<li><div> collision callbacks (<code>BulletAppState.update()</code>)</div>
+</li>
+<li><div> user update (<code>simpleUpdate</code> in main loop, <code>update()</code> in Controls and AppStates)</div>
+</li>
+<li><div> physics to scenegraph syncing and applying (<code>updateLogicalState()</code>)</div>
+</li>
+<li><div> stepping physics (before or in parallel to <code>Application.render()</code>)</div>
+</li>
+</ol>
+
 </div>
-<!-- EDIT2 SECTION "Technical Overview" [868-2043] -->
+<!-- EDIT2 SECTION "Technical Overview" [868-5940] -->
 <h2><a>Sample Code</a></h2>
 <div>
 
@@ -73,7 +127,7 @@ Full code samples are here:
 </ul>
 
 </div>
-<!-- EDIT3 SECTION "Sample Code" [2044-2643] -->
+<!-- EDIT3 SECTION "Sample Code" [5941-6540] -->
 <h2><a>Physics Application</a></h2>
 <div>
 
@@ -133,7 +187,7 @@ Let&#039;s look at the details:
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Physics Application" [2644-3845] -->
+<!-- EDIT4 SECTION "Physics Application" [6541-7742] -->
 <h2><a>Create a CollisionShape</a></h2>
 <div>
 
@@ -173,7 +227,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>
-<!-- EDIT6 TABLE [4304-5701] -->
+<!-- EDIT6 TABLE [8201-9598] -->
 <p>
 
 All non-mesh CollisionShapes can be used for dynamic, kinematic, as well as static Spatials. (Code samples see below)
@@ -200,7 +254,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>
-<!-- EDIT7 TABLE [5822-7339] -->
+<!-- EDIT7 TABLE [9719-11236] -->
 <p>
 
 On a CollisionShape, you can apply a few properties
@@ -214,7 +268,7 @@ On a CollisionShape, you can apply a few properties
 <code>new Vector3f(1f,2f,1f)</code></td>
        </tr>
 </table></div>
-<!-- EDIT8 TABLE [7393-7930] -->
+<!-- EDIT8 TABLE [11290-11827] -->
 <p>
 
 The mesh-accurate shapes can use a CollisionShapeFactory as constructor (code samples see below).
@@ -231,7 +285,7 @@ The mesh-accurate shapes can use a CollisionShapeFactory as constructor (code sa
 </p>
 
 </div>
-<!-- EDIT5 SECTION "Create a CollisionShape" [3846-8600] -->
+<!-- EDIT5 SECTION "Create a CollisionShape" [7743-12497] -->
 <h3><a>CollisionShape Code Samples</a></h3>
 <div>
 <ul>
@@ -262,7 +316,7 @@ The mesh-accurate shapes can use a CollisionShapeFactory as constructor (code sa
 </ul>
 
 </div>
-<!-- EDIT9 SECTION "CollisionShape Code Samples" [8601-9727] -->
+<!-- EDIT9 SECTION "CollisionShape Code Samples" [12498-13624] -->
 <h2><a>Create PhysicsControl</a></h2>
 <div>
 
@@ -283,7 +337,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/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>
-<!-- EDIT11 TABLE [10119-11098] --><div><table>
+<!-- EDIT11 TABLE [14016-14995] --><div><table>
        <tr>
                <th>Special PhysicsControls</th><th> Usage</th><th> Examples </th>
        </tr>
@@ -298,14 +352,14 @@ PhysicsVehicleWheel</td><td> Special Control used for <a href="/com/jme3/gde/doc
                <td>RagDollControl</td><td>Special Control used for <a href="/com/jme3/gde/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>
-<!-- EDIT12 TABLE [11100-11612] -->
+<!-- EDIT12 TABLE [14997-15509] -->
 <p>
 
 Click the links for details on the special PhysicsControls. This article is about RigidBodyControl.
 </p>
 
 </div>
-<!-- EDIT10 SECTION "Create PhysicsControl" [9728-11714] -->
+<!-- EDIT10 SECTION "Create PhysicsControl" [13625-15611] -->
 <h3><a>PhysicsControls Code Samples</a></h3>
 <div>
 
@@ -344,7 +398,7 @@ gameLevel.addControl&#40;new RigidBodyControl&#40;0.0f&#41;&#41;; // explicit ze
 </p>
 
 </div>
-<!-- EDIT13 SECTION "PhysicsControls Code Samples" [11715-13294] -->
+<!-- EDIT13 SECTION "PhysicsControls Code Samples" [15612-17191] -->
 <h2><a>Add PhysicsControl to Spatial</a></h2>
 <div>
 
@@ -361,7 +415,7 @@ For each physical Spatial in the scene:
 </ol>
 
 </div>
-<!-- EDIT14 SECTION "Add PhysicsControl to Spatial" [13295-13542] -->
+<!-- EDIT14 SECTION "Add PhysicsControl to Spatial" [17192-17439] -->
 <h2><a>Add PhysicsControl to PhysicsSpace</a></h2>
 <div>
 
@@ -388,7 +442,7 @@ myThing_geo.removeFromParent&#40;&#41;;</pre>
 </p>
 
 </div>
-<!-- EDIT15 SECTION "Add PhysicsControl to PhysicsSpace" [13543-14358] -->
+<!-- EDIT15 SECTION "Add PhysicsControl to PhysicsSpace" [17440-18255] -->
 <h2><a>Changing the Scale of a PhysicsControl</a></h2>
 <div>
 
@@ -427,7 +481,7 @@ With the corresponding output below:
 </p>
 
 </div>
-<!-- EDIT16 SECTION "Changing the Scale of a PhysicsControl" [14359-16109] -->
+<!-- EDIT16 SECTION "Changing the Scale of a PhysicsControl" [18256-20006] -->
 <h3><a>PhysicsSpace Code Samples</a></h3>
 <div>
 
@@ -457,9 +511,9 @@ setWorldMin(new Vector3f(-10000f, -10000f, -10000f));</td><td>Specifies the size
                <td>setCcdMotionThreshold()</td><td>The amount of motion in 1 physics tick to trigger the continuous motion detection in moving objects that push one another. Rarely used, but necessary if your moving objects get stuck or roll through one another.</td>
        </tr>
 </table></div>
-<!-- EDIT18 TABLE [16336-17543] -->
+<!-- EDIT18 TABLE [20233-21440] -->
 </div>
-<!-- EDIT17 SECTION "PhysicsSpace Code Samples" [16110-17544] -->
+<!-- EDIT17 SECTION "PhysicsSpace Code Samples" [20007-21441] -->
 <h2><a>Specify Physical Properties</a></h2>
 <div>
 
@@ -499,7 +553,7 @@ This setting has an impact on performance, so use it sparingly. </td><td> Brick:
 Rubber ball: 1.0f </td>
        </tr>
 </table></div>
-<!-- EDIT20 TABLE [17769-19279] -->
+<!-- EDIT20 TABLE [21666-23176] -->
 <p>
 
 On a RigidBodyControl, you can apply the following physical forces:
@@ -520,9 +574,9 @@ On a RigidBodyControl, you can apply the following physical forces:
 (See detailed explanation below.) </td>
        </tr>
 </table></div>
-<!-- EDIT21 TABLE [19350-19960] -->
+<!-- EDIT21 TABLE [23247-23857] -->
 </div>
-<!-- EDIT19 SECTION "Specify Physical Properties" [17545-19960] -->
+<!-- EDIT19 SECTION "Specify Physical Properties" [21442-23857] -->
 <h3><a>Kinematic vs Dynamic vs Static</a></h3>
 <div>
 
@@ -572,7 +626,7 @@ setKinematic(true);</td><td>setMass(1f); <br/>
 setKinematic(false);</td>
        </tr>
 </table></div>
-<!-- EDIT23 TABLE [20197-21256] -->
+<!-- EDIT23 TABLE [24094-25153] -->
 </div>
 
 <h4><a>When Do I Use Kinematic Objects?</a></h4>
@@ -595,7 +649,7 @@ setKinematic(false);</td>
 </p>
 
 </div>
-<!-- EDIT22 SECTION "Kinematic vs Dynamic vs Static" [19961-22362] -->
+<!-- EDIT22 SECTION "Kinematic vs Dynamic vs Static" [23858-26259] -->
 <h2><a>Forces: Moving Dynamic Objects</a></h2>
 <div>
 
@@ -633,7 +687,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>
-<!-- EDIT25 TABLE [22468-23457] -->
+<!-- EDIT25 TABLE [26365-27354] -->
 <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.
@@ -667,13 +721,13 @@ removeCollideWithGroup(COLLISION_GROUP_01)</td><td>Collision Groups are integer
                <td> setSleepingThreshold(float,float)</td><td>Sets the sleeping thresholds which define when the object gets deactivated to save resources. The first value is the linear threshold and the second the angular. Low values keep the object active when it barely moves (slow precise performance), high values put the object to sleep immediately (imprecise fast performance). (?) </td>
        </tr>
        <tr>
-               <td> setCcdMotionThreshold(0f) </td><td>Sets the amount of motion that has to happen in one physics tick to trigger the continuous motion detection in movign obejcts that push one another. This avoids the problem of fast objects moving through other objects. Set to zero to disable (default).</td>
+               <td> setCcdMotionThreshold(0f) </td><td>Sets the amount of motion that has to happen in one physics tick to trigger the continuous motion detection in moving objects that push one another. This avoids the problem of fast objects moving through other objects. Set to zero to disable (default).</td>
        </tr>
        <tr>
-               <td> setCcdSweptSphereRadius(.5f)</td><td>Bullet does not use the full collision shape for continuous collision detection, instead it uses a &quot;swept sphere&quot; shape to approximate a motion, which can be imprecise and cause strange behaviours such as objects passign through one another or getting stuck. Only relevant for fast moving dynamic bodies. </td>
+               <td> setCcdSweptSphereRadius(.5f)</td><td>Bullet does not use the full collision shape for continuous collision detection, instead it uses a &quot;swept sphere&quot; shape to approximate a motion, which can be imprecise and cause strange behaviors such as objects passing through one another or getting stuck. Only relevant for fast moving dynamic bodies. </td>
        </tr>
 </table></div>
-<!-- EDIT26 TABLE [23875-25831] -->
+<!-- EDIT26 TABLE [27772-29727] -->
 <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.
@@ -681,7 +735,7 @@ removeCollideWithGroup(COLLISION_GROUP_01)</td><td>Collision Groups are integer
 </p>
 
 </div>
-<!-- EDIT24 SECTION "Forces: Moving Dynamic Objects" [22363-26173] -->
+<!-- EDIT24 SECTION "Forces: Moving Dynamic Objects" [26260-30069] -->
 <h2><a>Best Practices</a></h2>
 <div>
 <ul>
@@ -717,8 +771,8 @@ removeCollideWithGroup(COLLISION_GROUP_01)</td><td>Collision Groups are integer
 </span></div>
 
 </div>
-<!-- EDIT27 SECTION "Best Practices" [26174-] --><div>
+<!-- EDIT27 SECTION "Best Practices" [30070-] --><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>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:physics?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:physics?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 15d91dc..4807163 100644 (file)
@@ -256,4 +256,4 @@ myNode.getControl&#40;RigidBodyControl.class&#41;.setCollideWithGroups&#40;Physi
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:physics_listeners?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 17ea8cb..b106f4f 100644 (file)
@@ -270,7 +270,7 @@ manager.loadTexture(&quot;Textures/foam.png&quot;) )</td><td>This foam texture w
 
 You should also add audio nodes with water sounds to complete the effect.
 </p>
-<pre>AudioNode waves = new AudioNode&#40;assetManager, &quot;Sound/Environment/Ocean Waves.ogg&quot;, false&#41;;
+<pre>AudioNode waves = new AudioNode&#40;assetManager, &quot;Sounds/Environment/Ocean Waves.ogg&quot;, false&#41;;
 waves.setLooping&#40;true&#41;;
 audioRenderer.playSource&#40;waves&#41;;</pre>
 
@@ -278,7 +278,7 @@ audioRenderer.playSource&#40;waves&#41;;</pre>
 
 See also: <a href="/com/jme3/gde/docs/jme3/advanced/audio.html">audio</a>. 
 </p>
-<hr/>
+<hr />
 
 <p>
 See also:
@@ -292,4 +292,4 @@ See also:
 
 </div>
 <!-- EDIT13 SECTION "Sound Effects" [9633-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:post-processor_water?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:post-processor_water?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index c9d85fe..9908a03 100644 (file)
@@ -214,4 +214,4 @@ If you experience weird behaviour in a ragdoll ??? such as exploding into pieces
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:ragdoll?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 7511500..1dedb03 100644 (file)
@@ -69,4 +69,4 @@ VertexTextureFetch, FloatTexture, TextureCompressionLATC]</pre>
 
 </div>
 <!-- EDIT2 SECTION "Examples" [732-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:read_graphic_card_capabilites?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:read_graphic_card_capabilites?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 9275d7d..0c9af26 100644 (file)
@@ -56,4 +56,4 @@ If desired, attach the camNode to a MotionTrack to let it travel along waypoints
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:remote-controlling_the_camera?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index e2f012c..fbb87dd 100644 (file)
@@ -167,7 +167,7 @@ To make a custom class savable:
 
 <p>
 
-<p><div>As with all serialization, remember that if you ever change data types in custom classes, the updated read() methods will no longer be able to read your old files.
+<p><div>As with all serialization, remember that if you ever change data types in custom classes, the updated read() methods will no longer be able to read your old files. Also there has to be a constructor that takes no Parameters.
 </div></p>
 </p>
 <div><span>
@@ -190,4 +190,4 @@ To make a custom class savable:
 
 </div>
 <!-- EDIT5 SECTION "Custom Savable Class" [3303-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:save_and_load?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:save_and_load?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 3261f3b..33a0986 100644 (file)
@@ -24,4 +24,4 @@ The screenshot is saved to the user directory.
 </p>
 
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:screenshots?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:screenshots?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 8974aa3..fd68080 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_glass.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_glass.jpg differ
index 383b4ed..113de5e 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_light1.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_light1.jpg differ
index 62885b7..34727e7 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_light2.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_light2.jpg differ
index 043193c..28881fd 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_matcap.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shaderblow_matcap.jpg differ
index 892fb41..7bf0dea 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shadow-sponza-ssao.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shadow-sponza-ssao.png differ
index de7ec94..2ea538a 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shadow.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/shadow.png differ
index 6c1bb98..33eaf14 100644 (file)
@@ -196,4 +196,4 @@ rootNode.attachChild&#40;geom&#41;;                    // attach geometry to a n
 
 </div>
 <!-- EDIT6 SECTION "See also" [5360-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:shape?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:shape?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 85b4a7e..f201ebc 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/simplewater.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/simplewater.png differ
index d968832..4c68a71 100644 (file)
@@ -99,4 +99,4 @@ Box or Sphere?
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:sky?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 29a7e5a..2ac9597 100644 (file)
@@ -89,20 +89,21 @@ The polygon <a href="/com/jme3/gde/docs/jme3/advanced/mesh.html">Mesh</a> inside
 
 <p>
 
-Cloned spatials share the same mesh, while each cloned spatial can have its own local transformation (translation, rotation, and scale) in the scene. This means you only use <code>clone()</code> on spatials whose meshes never change. The most common use case for cloning is when you use several Spatials that are based on the same <a href="/com/jme3/gde/docs/jme3/advanced/shape.html">Shape</a>s. 
+Cloned spatials share the same mesh, while each cloned spatial can have its own local transformation (translation, rotation, and scale) in the scene. This means you only use <code>clone()</code> on spatials whose meshes never change. The most common use case for cloning is when you use several Spatials that are based on the same <a href="/com/jme3/gde/docs/jme3/advanced/shape.html">Shape</a>s (e.g. trees, crates)
 </p>
 
 <p>
-The second use case is: When you load a model using <code>loadModel()</code> from the AssetManager, you may get a <code>clone()</code>ed object. In particular:
+The second use case is: When you load a model using <code>loadModel()</code> from the AssetManager, you may automatically get a <code>clone()</code>ed object. In particular:
 </p>
 <ul>
-<li><div> If the model is not animated (it has no <code><a href="/com/jme3/gde/docs/jme3/advanced/animation.html">AnimControl</a></code>), you get a clone. All clones share one mesh object. (Uses less memory)</div>
+<li><div> If the model is not animated (it has no <code><a href="/com/jme3/gde/docs/jme3/advanced/animation.html">AnimControl</a></code>), jME loads a clone. All clones share one mesh object in order to use less memory.</div>
 </li>
-<li><div> If the model is animated (it has a <code><a href="/com/jme3/gde/docs/jme3/advanced/animation.html">AnimControl</a></code>), then <code>loadModel()</code> duplicates the mesh for each loaded instance. (Uses more memory)</div>
+<li><div> If the model is animated (it has a <code><a href="/com/jme3/gde/docs/jme3/advanced/animation.html">AnimControl</a></code>), then <code>loadModel()</code> duplicates the mesh for each loaded instance. (Uses more memory, but can animate.)</div>
 </li>
 </ul>
 
 <p>
+
 Usually there is no need to manually use any of the <code>clone()</code> methods on models. Using the <a href="/com/jme3/gde/docs/jme3/advanced/asset_manager.html">Asset Manager</a>&#039;s <code>loadModel()</code> method will automatically do the right thing for your models.
 </p>
 
@@ -112,7 +113,7 @@ Usually there is no need to manually use any of the <code>clone()</code> methods
 </p>
 
 </div>
-<!-- EDIT5 SECTION "What is a Clone?" [3729-4984] -->
+<!-- EDIT5 SECTION "What is a Clone?" [3729-5049] -->
 <h2><a>How to Add Fields and Methods to a Spatial</a></h2>
 <div>
 
@@ -127,15 +128,15 @@ You can include custom user data ???that is, custom Java objects and methods???
 </p>
 
 <p>
-This first example adds an integer field named <code>health</code> to the Spatial <code>player_node</code>, and initializes it to 100.
+This first example adds an integer field named <code>health</code> to the Spatial <code>playerNode</code>, and initializes it to 100.
 
 </p>
-<pre>player_node.setUserData&#40;&quot;health&quot;, 100&#41;;</pre>
+<pre>playerNode.setUserData&#40;&quot;health&quot;, 100&#41;;</pre>
 
 <p>
 The second example adds a set of custom accessor methods to the player object. You create a <a href="/com/jme3/gde/docs/jme3/advanced/custom_controls.html">custom PlayerControl() class</a> and you add this control to the Spatial:
 </p>
-<pre>player_node.addControl&#40;new PlayerControl&#40;&#41;&#41;;</pre>
+<pre>playerNode.addControl&#40;new PlayerControl&#40;&#41;&#41;;</pre>
 
 <p>
 In your PlayerControl() class, you define custom methods that set and get your user data in the <code>spatial</code> object. For example, the control could add accessors that set and get the player&#039;s health:
@@ -148,11 +149,11 @@ public void setHealth&#40;int h&#41; &#123;
 &#125;</pre>
 
 <p>
-Elsewhere in your code, you can access this data wherever you have access to the Spatial <code>player_node</code>. 
+Elsewhere in your code, you can access this data wherever you have access to the Spatial <code>playerNode</code>. 
 </p>
-<pre>health = player_node.getControl&#40;PlayerControl.class&#41;.getHealth&#40;&#41;;
+<pre>health = playerNode.getControl&#40;PlayerControl.class&#41;.getHealth&#40;&#41;;
 ...
-player_node.getControl&#40;PlayerControl.class&#41;.setHealth&#40;99&#41;;</pre>
+playerNode.getControl&#40;PlayerControl.class&#41;.setHealth&#40;99&#41;;</pre>
 <ul>
 <li><div> You can add as many data objects (of String, Boolean, Integer, Float, Array types) to a Spatial as you want. Just make sure to label them with unique case-sensitive strings (<code>health</code>, <code>Inventory</code>, <code>equipment</code>, etc). </div>
 </li>
@@ -171,7 +172,7 @@ This is how you list all data keys that are already defined for one Spatial:
 &#125;</pre>
 
 </div>
-<!-- EDIT6 SECTION "How to Add Fields and Methods to a Spatial" [4985-7561] -->
+<!-- EDIT6 SECTION "How to Add Fields and Methods to a Spatial" [5050-7620] -->
 <h2><a>How to Access a Named Sub-Mesh</a></h2>
 <div>
 
@@ -196,7 +197,7 @@ 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>
-<!-- EDIT7 SECTION "How to Access a Named Sub-Mesh" [7562-8364] -->
+<!-- EDIT7 SECTION "How to Access a Named Sub-Mesh" [7621-8423] -->
 <h2><a>What is Culling?</a></h2>
 <div>
 
@@ -205,18 +206,22 @@ There are two types of culling: Face culling, and view frustrum culling.
 </p>
 
 <p>
-<strong>Face culling</strong> refers to not drawing certain polygons of a mesh. The &quot;inside&quot; of the mesh (the so called backface) is never visible to the player, and as an optimization, game engines skip calculating backfaces by default.  You may want to deactivate Face Culling while debugging custom meshes, so you can see them in case you turned them inside-out by accident.
+<strong>Face culling</strong> means not drawing certain polygons of a mesh. Face culling behaviour is a property of the material.
+</p>
+
+<p>
+Usage: The &quot;inside&quot; of a mesh (the so called backface) is typically never visible to the player, and as an optimization, the <code>Back</code> mode skips calculating all backfaces by default. Activating the <code>Off</code> or <code>Front</code> modes can be useful when you are debugging <a href="/com/jme3/gde/docs/jme3/advanced/custom_meshes.html">custom meshes</a> and try to identify accidental inside-out faces. 
 </p>
 
 <p>
-You can switch the com.jme3.material.RenderState.FaceCullMode to
+You can switch the com.jme3.material.RenderState.FaceCullMode to either:
 </p>
 <ul>
-<li><div> <code>FaceCullMode.Back</code> (default) ??? only the frontsides of a mesh are drawn. This is the normal behaviour. </div>
+<li><div> <code>FaceCullMode.Back</code> (default) ??? Only the frontsides of a mesh are drawn. Backface culling is the default behaviour. </div>
 </li>
-<li><div> <code>FaceCullMode.Front</code> ??? only the backsides of meshes are drawn. The mesh will probably turn invisible. Useful if you are debugging a hand-made mesh and try to identify accidental inside-out faces.</div>
+<li><div> <code>FaceCullMode.Front</code> ??? Only the backsides of a mesh are drawn. A mesh with frontface culling will most likely be invisible. Used for debugging &quot;inside-out&quot; custom meshes.</div>
 </li>
-<li><div> <code>FaceCullMode.FrontAndBack</code> ??? The mesh becomes invisible. </div>
+<li><div> <code>FaceCullMode.FrontAndBack</code> ??? Use this to make a mesh temporarily invisible. </div>
 </li>
 <li><div> <code>FaceCullMode.Off</code> ??? Every side of the mesh is drawn. Looks normal, but slows down large scenes.</div>
 </li>
@@ -255,7 +260,7 @@ Example:
 <pre>spatial.setCullHint&#40;CullHint.Never&#41;; // always drawn</pre>
 
 </div>
-<!-- EDIT8 SECTION "What is Culling?" [8365-10701] -->
+<!-- EDIT8 SECTION "What is Culling?" [8424-10857] -->
 <h2><a>See also</a></h2>
 <div>
 <ul>
@@ -273,5 +278,5 @@ Example:
 </span></div>
 
 </div>
-<!-- EDIT9 SECTION "See also" [10702-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:spatial?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT9 SECTION "See also" [10858-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:spatial?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 46c7f13..179c055 100644 (file)
@@ -185,4 +185,4 @@ Remember, to navigate in the scene, click and drag (!) the mouse, or press the W
 
 </div>
 <!-- EDIT6 SECTION "Navigation" [6020-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:swing_canvas?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:swing_canvas?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 4c9ee2e..aaf4e4f 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/tanlglow1.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/tanlglow1.png differ
index 834117c..c092e20 100644 (file)
@@ -305,4 +305,4 @@ PS: As an alternative to an image-based height map, you can also generate a Hill
 
 </div>
 <!-- EDIT9 SECTION "Code Sample: Terrain.j3md" [9436-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:terrain?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:terrain?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index b714789..519b0f5 100644 (file)
@@ -127,12 +127,9 @@ public class HelloTerrainCollision extends SimpleApplication
     terrain.addControl&#40;control&#41;;
 &nbsp;
     /** 6. Add physics: */ 
-    // We set up collision detection for the scene by creating a
-    // compound collision shape and a static RigidBodyControl with mass zero.*/
-    CollisionShape terrainShape =
-            CollisionShapeFactory.createMeshShape&#40;&#40;Node&#41; terrain&#41;;
-    landscape = new RigidBodyControl&#40;terrainShape, 0&#41;;
-    terrain.addControl&#40;landscape&#41;;
+    // We set up collision detection for the scene by creating a static 
+    RigidBodyControl with mass zero.*/
+    terrain.addControl&#40;new RigidBodyControl&#40;0&#41;&#41;;
 &nbsp;
     // We set up collision detection for the player by creating
     // a capsule collision shape and a CharacterControl.
@@ -213,12 +210,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-8791] -->
+<!-- EDIT2 SECTION "Sample Code" [402-8616] -->
 <h2><a>Understanding the Code</a></h2>
 <div>
 
 </div>
-<!-- EDIT3 SECTION "Understanding the Code" [8792-8824] -->
+<!-- EDIT3 SECTION "Understanding the Code" [8617-8649] -->
 <h3><a>The Terrain Code</a></h3>
 <div>
 
@@ -236,7 +233,7 @@ Read <a href="/com/jme3/gde/docs/jme3/beginner/hello_terrain.html">Hello Terrain
 </ol>
 
 </div>
-<!-- EDIT4 SECTION "The Terrain Code" [8825-9281] -->
+<!-- EDIT4 SECTION "The Terrain Code" [8650-9106] -->
 <h3><a>The Collision Detection Code</a></h3>
 <div>
 
@@ -260,7 +257,7 @@ Read <a href="/com/jme3/gde/docs/jme3/beginner/hello_collision.html">Hello Colli
 </ol>
 
 </div>
-<!-- EDIT5 SECTION "The Collision Detection Code" [9282-10182] -->
+<!-- EDIT5 SECTION "The Collision Detection Code" [9107-10007] -->
 <h3><a>Combining the Two</a></h3>
 <div>
 
@@ -270,18 +267,13 @@ Here are the changed parts to combine the two:
 
 </p>
 <ol>
-<li><div> The CollisionShapeFactory creates the CollisionShape <code>terrainShape</code> for the <code>terrain</code> node.</div>
+<li><div> You create a static (zero-mass) RigidBodyControl. </div>
 </li>
-<li><div> Out of the <code>terrainShape</code>, you create a static (zero-mass) RigidBodyControl <code>landscape</code>. </div>
-</li>
-<li><div> Add the <code>landscape</code> control to the <code>terrain</code> to make it physical.</div>
+<li><div> Add the control to the <code>terrain</code> to make it physical.</div>
 </li>
 </ol>
 <pre>/** 6. Add physics: */ 
-    CollisionShape terrainShape =
-            CollisionShapeFactory.createMeshShape&#40;&#40;Node&#41; terrain&#41;;
-    landscape = new RigidBodyControl&#40;terrainShape, 0&#41;;
-    terrain.addControl&#40;landscape&#41;;  </pre>
+    terrain.addControl&#40;new RigidBodyControl&#40;0&#41;&#41;;  </pre>
 
 <p>
 You attach the <code>terrain</code> and the first-person <code>player</code> to the rootNode, and to the physics space, to make them appear in the game world.
@@ -290,7 +282,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" [10183-11031] -->
+<!-- EDIT6 SECTION "Combining the Two" [10008-10557] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -302,7 +294,7 @@ You see that you can combine snippets of sample code (such as HelloTerrain and H
 <p>
 You should spawn high up in the area and fall down to the map, giving you a few seconds to survey the area.  Then walk around and see how you like the lay of the land.
 </p>
-<hr/>
+<hr />
 
 <p>
 See also:
@@ -320,5 +312,5 @@ See also:
 </span></div>
 
 </div>
-<!-- EDIT7 SECTION "Conclusion" [11032-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:terrain_collision?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT7 SECTION "Conclusion" [10558-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:terrain_collision?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index f4a14ce..b402d14 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/toon-dino.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/toon-dino.png differ
index 01bb0b9..f4cb15a 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/underwater2.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/underwater2.jpg differ
index acc20a7..8da02f3 100644 (file)
@@ -84,4 +84,4 @@ Examples: Weather behaviour, light behaviour, physics behaviour, individual NPC
 
 </div>
 <!-- EDIT2 SECTION "Usage" [1171-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:update_loop?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:update_loop?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 391a857..815488d 100644 (file)
@@ -338,4 +338,4 @@ For a more advanced example, look at <object classid="java:org.netbeans.modules.
 <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>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:vehicles?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:vehicles?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 25d3269..80bebd2 100644 (file)
@@ -4,15 +4,20 @@
 
 <p>
 
-In the <a href="/com/jme3/gde/docs/jme3/beginner/hello_collision.html">Hello Collision</a> tutorial and the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/bullet/TestQ3.java"><param name="text" value="<html><u>TestQ3.java</u></html>"><param name="textColor" value="blue"></object> code sample you have seen how to create collidable landscapes and walk around in a first-person perspective. The first-person camera is enclosed by a collision shape and is steered by CharacterControl. 
+In the <a href="/com/jme3/gde/docs/jme3/beginner/hello_collision.html">Hello Collision</a> tutorial and the <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/test/jme3test/bullet/TestQ3.java"><param name="text" value="<html><u>TestQ3.java</u></html>"><param name="textColor" value="blue"></object> code sample you have seen how to create collidable landscapes and walk around in a first-person perspective. The first-person camera is enclosed by a collision shape and is steered by the BetterCharacterControl. 
 </p>
 
 <p>
 Other games however require a third-person perspective of the character: In these cases you use a CharacterControl on a Spatial. This example also shows how to set up custom navigation controls, so you can press WASD to make the third-person character walk; and how to implement dragging the mouse to rotate.
 </p>
 
+<p>
+<p><div>Some details on this page still need to be updated from old CharacterControl <acronym title="Application Programming Interface">API</acronym> to BetterCharacterControl <acronym title="Application Programming Interface">API</acronym>.
+</div></p>
+</p>
+
 </div>
-<!-- EDIT1 SECTION "Walking Character" [1-727] -->
+<!-- EDIT1 SECTION "Walking Character" [1-869] -->
 <h2><a>Sample Code</a></h2>
 <div>
 
@@ -42,13 +47,13 @@ The code in this tutorial is a combination of these samples.
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Sample Code" [728-1646] -->
-<h2><a>CharacterControl</a></h2>
+<!-- EDIT2 SECTION "Sample Code" [870-1788] -->
+<h2><a>BetterCharacterControl</a></h2>
 <div>
 
 <p>
 
-When you load a character model, give it a RigidBodyControl, and use forces to push it around, you do not get the desired behaviour: RigidBodyControl&#039;ed objects (such as cubes and spheres) roll or tip over when pushed by physical forces. This is not the behaviour that you expect of a walking character. JME3&#039;s BulletPhysics integration offers a special CharacterControl with a <code>setWalkDirection()</code> method. You use it to create simple characters that treat floors and walls as solid, and always stays locked upright while moving.
+Motivation: When you load a character model, give it a RigidBodyControl, and use forces to push it around, you do not get the desired behaviour: RigidBodyControl&#039;ed objects (such as cubes and spheres) roll or tip over when pushed by physical forces. This is not the behaviour that you expect of a walking character. JME3&#039;s BulletPhysics integration offers a BetterCharacterControl with a <code>setWalkDirection()</code> method. You use it to create simple characters that treat floors and walls as solid, and always stays locked upright while moving.
 </p>
 
 <p>
@@ -98,19 +103,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>
-<!-- EDIT4 TABLE [3560-4723] -->
+<!-- EDIT4 TABLE [3718-4881] -->
 <p>
 
 For best practices on how to use <code>setWalkDirection()</code>, see the Navigation Inputs example below.
 </p>
 
 </div>
-<!-- EDIT3 SECTION "CharacterControl" [1647-4823] -->
+<!-- EDIT3 SECTION "BetterCharacterControl" [1789-4981] -->
 <h2><a>Walking Character Demo</a></h2>
 <div>
 
 </div>
-<!-- EDIT5 SECTION "Walking Character Demo" [4824-4859] -->
+<!-- EDIT5 SECTION "Walking Character Demo" [4982-5017] -->
 <h3><a>Code Skeleton</a></h3>
 <div>
 <pre>public class WalkingCharacterDemo extends SimpleApplication
@@ -132,7 +137,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" [4860-5477] -->
+<!-- EDIT6 SECTION "Code Skeleton" [5018-5635] -->
 <h3><a>Overview</a></h3>
 <div>
 
@@ -162,7 +167,7 @@ To create a walking character:
 </ol>
 
 </div>
-<!-- EDIT7 SECTION "Overview" [5478-6001] -->
+<!-- EDIT7 SECTION "Overview" [5636-6159] -->
 <h3><a>Activate Physics</a></h3>
 <div>
 <pre>private BulletAppState bulletAppState;
@@ -175,7 +180,7 @@ public void simpleInitApp&#40;&#41; &#123;
 &#125;</pre>
 
 </div>
-<!-- EDIT8 SECTION "Activate Physics" [6002-6295] -->
+<!-- EDIT8 SECTION "Activate Physics" [6160-6453] -->
 <h3><a>Initialize the Scene</a></h3>
 <div>
 
@@ -218,7 +223,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" [6296-7762] -->
+<!-- EDIT9 SECTION "Initialize the Scene" [6454-7920] -->
 <h3><a>Create the Animated Character</a></h3>
 <div>
 
@@ -260,7 +265,7 @@ public void simpleInitApp&#40;&#41; &#123;
 </p>
 
 </div>
-<!-- EDIT10 SECTION "Create the Animated Character" [7763-9100] -->
+<!-- EDIT10 SECTION "Create the Animated Character" [7921-9258] -->
 <h3><a>Set Up AnimControl and AnimChannels</a></h3>
 <div>
 
@@ -288,7 +293,7 @@ The attackChannel only controls one arm, while the walking channels controls the
 </p>
 
 </div>
-<!-- EDIT11 SECTION "Set Up AnimControl and AnimChannels" [9101-10126] -->
+<!-- EDIT11 SECTION "Set Up AnimControl and AnimChannels" [9259-10284] -->
 <h3><a>Add ChaseCam / CameraNode</a></h3>
 <div>
 <pre>private ChaseCamera chaseCam;
@@ -302,7 +307,7 @@ public void simpleInitApp&#40;&#41; &#123;
   ...</pre>
 
 </div>
-<!-- EDIT12 SECTION "Add ChaseCam / CameraNode" [10127-10346] -->
+<!-- EDIT12 SECTION "Add ChaseCam / CameraNode" [10285-10504] -->
 <h3><a>Handle Navigation</a></h3>
 <div>
 
@@ -425,5 +430,5 @@ public void onAnimChange&#40;AnimControl control, AnimChannel channel, String an
 </span></div>
 
 </div>
-<!-- EDIT13 SECTION "Handle Navigation" [10347-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:walking_character?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT13 SECTION "Handle Navigation" [10505-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:walking_character?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index cf85799..58423c3 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water-post-muddy.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water-post-muddy.png differ
index 29d04ff..41aceed 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water-reflection-muddy.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water-reflection-muddy.png differ
index 6d0ab2d..ba7a0b0 100644 (file)
@@ -214,4 +214,4 @@ You can offer a switch to set the water Material to a static texture ??? for use
 
 </div>
 <!-- EDIT5 SECTION "Settings" [4566-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:water?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:water?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 7824b26..e01cf49 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/advanced/water.png differ
index bf26c4f..398f280 100644 (file)
@@ -179,6 +179,11 @@ The default android run target uses the default device set in the Android config
 </p>
 
 <p>
+<p><div>When running your application on some Android devices, having a debugging session open via certain IDEs <strong>will significantly lower performance</strong> (some reports suggest a drop from 60 FPS to 4-8 FPS) until the debug session is detached or the application is started directly from the device.
+</div></p>
+</p>
+
+<p>
 Optionally, download <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/downloads/detail?name=Jme3Beta1Demo.apk&amp;can=1&amp;q="><param name="text" value="<html><u>Jme3Beta1Demo.apk</u></html>"><param name="textColor" value="blue"></object>
 </p>
 
@@ -207,6 +212,11 @@ Activating the nbandroid plugin in the jMonkeyEngine <acronym title="Software De
 </li>
 </ol>
 
+<p>
+
+*If the android plugin is not in that list follow <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.nbandroid.org/p/installation.html"><param name="text" value="<html><u>these instructions</u></html>"><param name="textColor" value="blue"></object>.*
+</p>
+
 </div>
 
 <h4><a>Notes</a></h4>
@@ -229,7 +239,7 @@ Activating the nbandroid plugin in the jMonkeyEngine <acronym title="Software De
 </ul>
 
 </div>
-<!-- EDIT8 SECTION "Beta Instructions" [1854-6380] -->
+<!-- EDIT8 SECTION "Beta Instructions" [1854-6815] -->
 <h2><a>Android Considerations</a></h2>
 <div>
 
@@ -253,7 +263,7 @@ You can use the jMonkeyEngine <acronym title="Software Development Kit">SDK</acr
 </p>
 
 </div>
-<!-- EDIT9 SECTION "Android Considerations" [6381-7747] -->
+<!-- EDIT9 SECTION "Android Considerations" [6816-8182] -->
 <h2><a>Using Android specific functions</a></h2>
 <div>
 
@@ -275,7 +285,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" [7748-9528] -->
+<!-- EDIT10 SECTION "Using Android specific functions" [8183-9963] -->
 <h2><a>More Info</a></h2>
 <div>
 
@@ -301,5 +311,5 @@ The <acronym title="Software Development Kit">SDK</acronym> will later provide t
 </span></div>
 
 </div>
-<!-- EDIT11 SECTION "More Info" [9529-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:android?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT11 SECTION "More Info" [9964-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:android?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 1770d77..d87c3d2 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-assets-models.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-assets-models.png differ
index 93fc101..24096dc 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-effect-fire.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-effect-fire.png differ
index d18e81b..fb9a2ce 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-materials.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-materials.png differ
index 060b524..7b02a37 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-physics.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-physics.png differ
index fb02d63..7eaf67b 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-scene.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-scene.png differ
index 5d6bb8c..e42e21b 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-terrain.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/beginner/beginner-terrain.png differ
index 0fea73b..754f166 100644 (file)
@@ -129,7 +129,7 @@ Don&#039;t forget to add a light source to make the material visible.
 
 </div>
 <!-- EDIT3 SECTION "Creating and Loading Animated Models" [2942-4362] -->
-<h2><a>Animation Controler and Channel</a></h2>
+<h2><a>Animation Controller and Channel</a></h2>
 <div>
 
 <p>
@@ -177,7 +177,7 @@ In your case, where you want animations to chain for the whole skeleton, you jus
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Animation Controler and Channel" [4363-6301] -->
+<!-- EDIT4 SECTION "Animation Controller and Channel" [4363-6302] -->
 <h2><a>Responding to Animation Events</a></h2>
 <div>
 
@@ -202,7 +202,7 @@ Add <code>implements AnimEventListener</code> to the class declaration. This int
   &#125;</pre>
 
 </div>
-<!-- EDIT5 SECTION "Responding to Animation Events" [6302-7189] -->
+<!-- EDIT5 SECTION "Responding to Animation Events" [6303-7190] -->
 <h2><a>Trigger Animations After User Input</a></h2>
 <div>
 
@@ -258,7 +258,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" [7190-9078] -->
+<!-- EDIT6 SECTION "Trigger Animations After User Input" [7191-9079] -->
 <h2><a>Exercises</a></h2>
 <div>
 
@@ -327,7 +327,7 @@ Can you identify individual bones in the skeleton?
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Exercises" [9079-10946] -->
+<!-- EDIT7 SECTION "Exercises" [9080-10947] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -340,7 +340,7 @@ Now you can load animated models, identify stored animations, and trigger animat
 Now that your character can walk, wouldn&#039;t it be cool if it could also pick up things, or aim a weapon at things, or open doors? Time to reveal the secrets of <a href="/com/jme3/gde/docs/jme3/beginner/hello_picking.html">mouse picking</a>!
 
 </p>
-<hr/>
+<hr />
 
 <p>
 See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="https://docs.google.com/leaf?id=0B9hhZie2D-fEYmRkMTYwN2YtMzQ0My00NTM4LThhOTYtZTk1MTRlYTNjYTc3&amp;hl=en"><param name="text" value="<html><u>Creating Animated OgreXML Models in Blender</u></html>"><param name="textColor" value="blue"></object>
@@ -357,5 +357,5 @@ See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer">
 </span></div>
 
 </div>
-<!-- EDIT8 SECTION "Conclusion" [10947-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_animation?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT8 SECTION "Conclusion" [10948-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_animation?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index db43825..07f98cf 100644 (file)
@@ -466,7 +466,7 @@ Now you know how to populate the scenegraph with static shapes and models, and h
 Let&#039;s add some action to the scene and continue with the <a href="/com/jme3/gde/docs/jme3/beginner/hello_main_event_loop.html">Update Loop</a>!
 
 </p>
-<hr/>
+<hr />
 
 <p>
 <strong>See also:</strong>
@@ -498,4 +498,4 @@ Let&#039;s add some action to the scene and continue with the <a href="/com/jme3
 
 </div>
 <!-- EDIT13 SECTION "Conclusion" [15726-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_asset?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_asset?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index eeefda9..e3dc913 100644 (file)
@@ -7,7 +7,7 @@ Previous: <a href="/com/jme3/gde/docs/jme3/beginner/hello_terrain.html">Hello Te
 </p>
 
 <p>
-This tutorial explains how to add 3D sound to a game, and how make sounds play together with events, such as clicking. You learn how to use an Audio Listener and Audio Nodes. You also make use of an Action Listener and a MouseButtonTrigger from the previous <a href="/com/jme3/gde/docs/jme3/beginner/hello_input_system.html">Hello Input</a> tutorial to make a mouse click trigger a gun shot sound.
+This tutorial explains how to add 3D sound to a game, and how to make sounds play together with events, such as clicking. You learn how to use an Audio Listener and Audio Nodes. You also make use of an Action Listener and a MouseButtonTrigger from the previous <a href="/com/jme3/gde/docs/jme3/beginner/hello_input_system.html">Hello Input</a> tutorial to make a mouse click trigger a gun shot sound.
 </p>
 
 <p>
@@ -17,7 +17,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-680] -->
+<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (11) - Hello Audio" [1-683] -->
 <h2><a>Sample Code</a></h2>
 <div>
 <pre>package jme3test.helloworld;
@@ -110,13 +110,13 @@ When you run the sample, you should see a blue cube. You should hear a nature-li
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Sample Code" [681-3516] -->
+<!-- EDIT2 SECTION "Sample Code" [684-3519] -->
 <h2><a>Understanding the Code Sample</a></h2>
 <div>
 
 <p>
 
-In the <code>initSimpleApp()</code> method, you create a simple blue cube geometry called <code>player</code> and attach it to the scene ??? this just arbitrary sample content, so you see something when running the audio sample.
+In the <code>initSimpleApp()</code> method, you create a simple blue cube geometry called <code>player</code> and attach it to the scene ??? this is just arbitrary sample content, so you see something when running the audio sample.
 </p>
 
 <p>
@@ -124,7 +124,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" [3517-3851] -->
+<!-- EDIT3 SECTION "Understanding the Code Sample" [3520-3857] -->
 <h2><a>AudioNodes</a></h2>
 <div>
 
@@ -184,7 +184,7 @@ Here you make audio_nature a positional sound that comes from a certain place. F
 </p>
 
 </div>
-<!-- EDIT4 SECTION "AudioNodes" [3852-6941] -->
+<!-- EDIT4 SECTION "AudioNodes" [3858-6947] -->
 <h2><a>Triggering Sound</a></h2>
 <div>
 
@@ -216,7 +216,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" [6942-8406] -->
+<!-- EDIT5 SECTION "Triggering Sound" [6948-8412] -->
 <h2><a>Ambient or Situational?</a></h2>
 <div>
 
@@ -265,7 +265,7 @@ Apart from the looping boolean, another difference is where <code>play().playIns
 </ul>
 
 </div>
-<!-- EDIT6 SECTION "Ambient or Situational?" [8407-9637] -->
+<!-- EDIT6 SECTION "Ambient or Situational?" [8413-9643] -->
 <h2><a>Buffered or Streaming?</a></h2>
 <div>
 
@@ -288,7 +288,7 @@ Note that streamed sounds can not loop (i.e. setLooping will not work as you exp
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Buffered or Streaming?" [9638-10219] -->
+<!-- EDIT7 SECTION "Buffered or Streaming?" [9644-10225] -->
 <h2><a>Play() or PlayInstance()?</a></h2>
 <div>
 <div><table>
@@ -305,9 +305,9 @@ Note that streamed sounds can not loop (i.e. setLooping will not work as you exp
                <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>
-<!-- EDIT9 TABLE [10259-10503] -->
+<!-- EDIT9 TABLE [10265-10509] -->
 </div>
-<!-- EDIT8 SECTION "Play() or PlayInstance()?" [10220-10504] -->
+<!-- EDIT8 SECTION "Play() or PlayInstance()?" [10226-10510] -->
 <h2><a>Your Ear in the Scene</a></h2>
 <div>
 
@@ -329,7 +329,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" [10505-11207] -->
+<!-- EDIT10 SECTION "Your Ear in the Scene" [10511-11213] -->
 <h2><a>Global, Directional, Positional?</a></h2>
 <div>
 
@@ -339,7 +339,7 @@ In this example, you defined the nature sound as coming from a certain position,
 </p>
 
 <p>
-It makes equally sense to make the gunshot positional, and let the ambient sound come from every direction. How do you decide which type of 3D sound to use from case to case?
+It makes equal sense to make the gunshot positional, and let the ambient sound come from every direction. How do you decide which type of 3D sound to use from case to case?
 </p>
 <ul>
 <li><div> In a game with moving enemies you may want to make the gun shot or footsteps positional sounds. In these cases you must move the AudioNode to the location of the enemy before <code>playInstance()</code>ing it. This way a player with stereo speakers hears from which direction the enemy is coming.</div>
@@ -356,7 +356,7 @@ In short, you must choose in every situation whether it makes sense for a sound
 </p>
 
 </div>
-<!-- EDIT11 SECTION "Global, Directional, Positional?" [11208-12566] -->
+<!-- EDIT11 SECTION "Global, Directional, Positional?" [11214-12570] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -373,7 +373,7 @@ You now know how to add the two most common types of sound to your game: Global
 Want some fire and explosions to go with your sounds? Read on to learn more about <a href="/com/jme3/gde/docs/jme3/beginner/hello_effects.html">effects</a>.
 
 </p>
-<hr/>
+<hr />
 
 <p>
 
@@ -391,5 +391,5 @@ See also:
 </span></div>
 
 </div>
-<!-- EDIT12 SECTION "Conclusion" [12567-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_audio?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT12 SECTION "Conclusion" [12571-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_audio?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 456e65b..e6082fe 100644 (file)
@@ -183,7 +183,7 @@ public class HelloCollision extends SimpleApplication
 &#125;</pre>
 
 <p>
-Run the sample. You should see a town square with houses and a monument. Use the WASD keys and the mouse to navigate around with a first-person perspective. Run forward and jump by pressing W and Space. Note how you step over the sidewalk, and up the steps to the monument. You can walk in the alleys between the houses, but the walls are solid. Don&#039;t walk over the edge of the world! <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)"/>
+Run the sample. You should see a town square with houses and a monument. Use the WASD keys and the mouse to navigate around with a first-person perspective. Run forward and jump by pressing W and Space. Note how you step over the sidewalk, and up the steps to the monument. You can walk in the alleys between the houses, but the walls are solid. Don&#039;t walk over the edge of the world! <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)" />
 </p>
 
 </div>
@@ -450,7 +450,7 @@ For all other directions: Every time the user presses one of the WASD keys, you
 
 <p>
 
-Previously in the <code>onAction()</code> method, you have collected the info in which direction the user wants to go in terms of &quot;forward&quot; or &quot;left&quot;. In the update loop, you repatedly poll the current rotation of the camera. You calculate the actual vectors to which &quot;forward&quot; or &quot;left&quot; corresponds in the coordinate system.
+Previously in the <code>onAction()</code> method, you have collected the info in which direction the user wants to go in terms of &quot;forward&quot; or &quot;left&quot;. In the update loop, you repeatedly poll the current rotation of the camera. You calculate the actual vectors to which &quot;forward&quot; or &quot;left&quot; corresponds in the coordinate system.
 </p>
 
 <p>
@@ -494,7 +494,7 @@ This is how the walking is triggered:
 </p>
 
 </div>
-<!-- EDIT11 SECTION "3. setWalkDirection()" [17259-19293] -->
+<!-- EDIT11 SECTION "3. setWalkDirection()" [17259-19294] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -508,7 +508,7 @@ You learned to speed up the physics calculations by using the CollisionShapeFact
 Terrains are another type of scene in which you will want to walk around. Let&#039;s proceed with learning <a href="/com/jme3/gde/docs/jme3/beginner/hello_terrain.html">how to generate terrains</a> now. 
 
 </p>
-<hr/>
+<hr />
 
 <p>
 
@@ -535,5 +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>
\ No newline at end of file
+<!-- EDIT12 SECTION "Conclusion" [19295-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_collision?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 9b7f759..0ea66d7 100644 (file)
@@ -201,11 +201,11 @@ The following particle textures included in <code>test-data.jar</code>. You can
 <!-- EDIT5 TABLE [5533-6332] -->
 <p>
 
-Copy them into you <code>assets/Effects</code> directory to use them.
+Copy them into your <code>assets/Effects</code> directory to use them.
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Default Particle Textures" [5385-6395] -->
+<!-- EDIT4 SECTION "Default Particle Textures" [5385-6396] -->
 <h2><a>Creating Custom Textures</a></h2>
 <div>
 
@@ -251,7 +251,7 @@ Create a grayscale texture in a graphic editor, and save it to your <code>assets
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Creating Custom Textures" [6396-7793] -->
+<!-- EDIT6 SECTION "Creating Custom Textures" [6397-7794] -->
 <h3><a>Emitter Parameters</a></h3>
 <div>
 
@@ -323,7 +323,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>
-<!-- EDIT8 TABLE [8364-9836] -->
+<!-- EDIT8 TABLE [8365-9837] -->
 <p>
 
 You can find details about <a href="/com/jme3/gde/docs/jme3/advanced/particle_emitters#configure_parameters.html">effect parameters</a> here.
@@ -336,7 +336,7 @@ Add and modify one parameter at a time, and try different values until you get t
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Emitter Parameters" [7794-10345] -->
+<!-- EDIT7 SECTION "Emitter Parameters" [7795-10346] -->
 <h2><a>Exercise</a></h2>
 <div>
 
@@ -356,7 +356,7 @@ Can you &quot;invert&quot; the fire effect into a small waterfall? Here some tip
 </ul>
 
 </div>
-<!-- EDIT9 SECTION "Exercise" [10346-10636] -->
+<!-- EDIT9 SECTION "Exercise" [10347-10637] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -369,7 +369,7 @@ You have learned that many different effects can be created by changing the para
 Now you move on to another exciting chapter ??? the simulation of <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_physics"><param name="text" value="<html><u>physical objects</u></html>"><param name="textColor" value="blue"></object>. Let&#039;s shoot some cannon balls at a brick wall!
 
 </p>
-<hr/>
+<hr />
 <div><span>
        <a href="/wiki/doku.php/tag:beginner?do=showtag&amp;tag=tag%3Abeginner">beginner</a>,
        <a href="/wiki/doku.php/tag:documentation?do=showtag&amp;tag=tag%3Adocumentation">documentation</a>,
@@ -379,5 +379,5 @@ Now you move on to another exciting chapter ??? the simulation of <object classi
 </span></div>
 
 </div>
-<!-- EDIT10 SECTION "Conclusion" [10637-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_effects?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT10 SECTION "Conclusion" [10638-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_effects?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index eb48280..8fcecd1 100644 (file)
@@ -293,7 +293,7 @@ Mappings registered to the <strong>AnalogListener</strong> are triggered repeate
 
 <p>
 
-In order to see the total time that a key has been pressed for then the incoming value can be accumulated. The analogue listener may also need to be combined with an action listener so that you are notified when they key is released.
+In order to see the total time that a key has been pressed for then the incoming value can be accumulated. The analogue listener may also need to be combined with an action listener so that you are notified when the key is released.
 </p>
 <ul>
 <li><div> Example: Navigational events (e.g. Left, Right, Rotate, Run, Strafe), situations where you interact continuously. </div>
@@ -325,7 +325,7 @@ Mappings registered to the <strong>ActionListener</strong> are digital either-or
       &#125;</pre>
 
 </div>
-<!-- EDIT5 SECTION "Analog, Pressed, or Released?" [9013-11038] -->
+<!-- EDIT5 SECTION "Analog, Pressed, or Released?" [9013-11037] -->
 <h2><a>Table of Triggers</a></h2>
 <div>
 
@@ -361,14 +361,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>
-<!-- EDIT7 TABLE [11271-11867] -->
+<!-- EDIT7 TABLE [11270-11866] -->
 <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" [11039-12101] -->
+<!-- EDIT6 SECTION "Table of Triggers" [11038-12100] -->
 <h2><a>Exercises</a></h2>
 <div>
 <ol>
@@ -396,7 +396,7 @@ inputManager.addMapping&#40;&quot;Pause&quot;,  new KeyTrigger&#40;usersPauseKey
 </p>
 
 </div>
-<!-- EDIT8 SECTION "Exercises" [12102-12786] -->
+<!-- EDIT8 SECTION "Exercises" [12101-12785] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -418,5 +418,5 @@ Now you can already write a little interactive game! But wouldn&#039;t it be coo
 </span></div>
 
 </div>
-<!-- EDIT9 SECTION "Conclusion" [12787-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_input_system?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT9 SECTION "Conclusion" [12786-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_input_system?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index f552e15..348012f 100644 (file)
@@ -89,7 +89,7 @@ Now have a closer look at the <code>simpleUpdate()</code> method ??? this is the
 
 <p>
 
-A rotating object is just a simple example. In the update loop, you typically have many tests and trigger various game actions. This is were you update score and health points, check for collisions, make enemies calculate their next move, roll the dice whether a trap has been set off, play random ambient sounds, and much more.  
+A rotating object is just a simple example. In the update loop, you typically have many tests and trigger various game actions. This is where you update score and health points, check for collisions, make enemies calculate their next move, roll the dice whether a trap has been set off, play random ambient sounds, and much more.  
 
 </p>
 <ul>
@@ -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] -->
+<!-- EDIT4 SECTION "Using the Update Loop" [2398-3232] -->
 <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] -->
+<!-- EDIT5 SECTION "Init - Update - Render" [3233-4502] -->
 <h2><a>Exercises</a></h2>
 <div>
 
@@ -189,7 +189,7 @@ Look back at the <a href="/com/jme3/gde/docs/jme3/beginner/hello_node.html">Hell
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Exercises" [4502-5273] -->
+<!-- EDIT6 SECTION "Exercises" [4503-5274] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -201,7 +201,7 @@ Now you are listening to the update loop, &quot;the heart beat&quot; of the game
 <p>
 The next thing the game needs is some <em>inter</em>action! Continue learning how to <a href="/com/jme3/gde/docs/jme3/beginner/hello_input_system.html">respond to user input</a>.
 </p>
-<hr/>
+<hr />
 
 <p>
 See also:
@@ -221,5 +221,5 @@ See also:
 </span></div>
 
 </div>
-<!-- EDIT7 SECTION "Conclusion" [5274-] -->
-<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>
\ No newline at end of file
+<!-- EDIT7 SECTION "Conclusion" [5275-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_main_event_loop?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index e685fba..127db9b 100644 (file)
@@ -417,7 +417,7 @@ You have also learned that a material can be stored in a .j3m file. The file ref
 Now that you know how to load models and how to assign good-looking materials to them, let&#039;s have a look at how to animate models in the next chapter, <a href="/com/jme3/gde/docs/jme3/beginner/hello_animation.html">Hello Animation</a>.
 
 </p>
-<hr/>
+<hr />
 
 <p>
 See also
@@ -431,7 +431,7 @@ See also
 </li>
 <li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.googlecode.com/files/jME3_materials.pdf"><param name="text" value="<html><u>jME3 Materials documentation</u></html>"><param name="textColor" value="blue"></object> (<acronym title="Portable Document Format">PDF</acronym>)</div>
 </li>
-<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.youtube.com/watch?v=Feu3-mrpolc"><param name="text" value="<html><u>Video Tutorial: Editing and Assigning Materials to Models in jMonkeyEngine SDK</u></html>"><param name="textColor" value="blue"></object></div>
+<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.youtube.com/watch?v=Feu3-mrpolc"><param name="text" value="<html><u>Video Tutorial: Editing and Assigning Materials to Models in jMonkeyEngine SDK (from 2010, is there a newer one?</u></html>"><param name="textColor" value="blue"></object></div>
 </li>
 <li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.blender.org/education-help/tutorials/materials/"><param name="text" value="<html><u>Creating textures in Blender</u></html>"><param name="textColor" value="blue"></object></div>
 </li>
@@ -451,4 +451,4 @@ See also
 
 </div>
 <!-- EDIT11 SECTION "Conclusion" [14066-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_material?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_material?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 34adcb9..275a166 100644 (file)
@@ -251,7 +251,7 @@ If you run the app with only the code up to here, you see two cubes: A red cube
 
 <p>
 
-You can transform (e.g. rotate) Geometries around their own center, or around a user defined center point. A user defined center point for one or more Geometries is called pivot.
+You can transform (e.g. rotate) Geometries around their own center, or around a user defined center point. A user defined center point for one or more Geometries is called pivot.
 
 </p>
 <ul>
@@ -264,7 +264,7 @@ You can transform (e.g. rotate) Geometries around their own center, or around a
 </ul>
 
 </div>
-<!-- EDIT7 SECTION "What is a Pivot Node?" [6875-8195] -->
+<!-- EDIT7 SECTION "What is a Pivot Node?" [6875-8197] -->
 <h2><a>How do I Populate the Scenegraph?</a></h2>
 <div>
 <div><table>
@@ -298,9 +298,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>
-<!-- EDIT9 TABLE [8243-9536] -->
+<!-- EDIT9 TABLE [8245-9538] -->
 </div>
-<!-- EDIT8 SECTION "How do I Populate the Scenegraph?" [8196-9537] -->
+<!-- EDIT8 SECTION "How do I Populate the Scenegraph?" [8198-9539] -->
 <h2><a>How do I Transform Spatials?</a></h2>
 <div>
 
@@ -324,7 +324,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>
-<!-- EDIT11 TABLE [9661-10177] --><div><table>
+<!-- EDIT11 TABLE [9663-10179] --><div><table>
        <tr>
                <th> Scaling resizes Spatials </th><th> X-axis </th><th> Y-axis </th><th> Z-axis </th>
        </tr>
@@ -336,7 +336,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>
-<!-- EDIT12 TABLE [10179-10668] --><div><table>
+<!-- EDIT12 TABLE [10181-10670] --><div><table>
        <tr>
                <th> Rotation turns Spatials </th><th> X-axis </th><th> Y-axis </th><th> Z-axis </th>
        </tr>
@@ -352,9 +352,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>
-<!-- EDIT13 TABLE [10670-11451] -->
+<!-- EDIT13 TABLE [10672-11453] -->
 </div>
-<!-- EDIT10 SECTION "How do I Transform Spatials?" [9538-11452] -->
+<!-- EDIT10 SECTION "How do I Transform Spatials?" [9540-11454] -->
 <h2><a>How do I Troubleshoot Spatials?</a></h2>
 <div>
 
@@ -384,9 +384,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>
-<!-- EDIT15 TABLE [11584-12642] -->
+<!-- EDIT15 TABLE [11586-12644] -->
 </div>
-<!-- EDIT14 SECTION "How do I Troubleshoot Spatials?" [11453-12643] -->
+<!-- EDIT14 SECTION "How do I Troubleshoot Spatials?" [11455-12645] -->
 <h2><a>How do I Add Custom Data to Spatials?</a></h2>
 <div>
 
@@ -419,7 +419,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?" [12644-14097] -->
+<!-- EDIT16 SECTION "How do I Add Custom Data to Spatials?" [12646-14099] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -445,5 +445,5 @@ Since standard shapes like spheres and boxes get old fast, continue with the nex
 </span></div>
 
 </div>
-<!-- EDIT17 SECTION "Conclusion" [14098-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_node?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT17 SECTION "Conclusion" [14100-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_node?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 4e1ba5b..5c9efd9 100644 (file)
@@ -319,7 +319,7 @@ In this &quot;shoot at the wall&quot; example, you use Geometries such as cannon
 
 <p>
 
-We want to create brick Geometries from those boxes. For each Geometry with physcial properties, you create a RigidBodyControl.
+We want to create brick Geometries from those boxes. For each Geometry with physical properties, you create a RigidBodyControl.
 </p>
 <pre>  private RigidBodyControl brick_phy;</pre>
 
@@ -482,7 +482,7 @@ This code sample does the following:
 </li>
 <li><div> You create a RigidBodyControl floor_phy for floor_geo.</div>
 <ul>
-<li><div> floor_phy has a mass of 0f <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="middle" alt=":!:"/></div>
+<li><div> floor_phy has a mass of 0f <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="middle" alt=":!:" /></div>
 </li>
 <li><div> You add floor_phy to floor_geo.</div>
 </li>
@@ -650,4 +650,4 @@ You have learned how to activate the jBullet PhysicsSpace in an application by a
 
 </div>
 <!-- EDIT16 SECTION "Conclusion" [19693-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_physics?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_physics?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 186660d..b0090df 100644 (file)
@@ -506,7 +506,7 @@ Use your imagination from here:
 Now, wouldn&#039;t it be nice if those targets and the floor were solid objects and you could walk around between them? Let&#039;s continue to learn about <a href="/com/jme3/gde/docs/jme3/beginner/hello_collision.html">Collision Detection</a>.
 
 </p>
-<hr/>
+<hr />
 
 <p>
 See also:
@@ -534,4 +534,4 @@ See also:
 
 </div>
 <!-- EDIT14 SECTION "Conclusion" [16464-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_picking?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_picking?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 8420d27..3e18d7e 100644 (file)
@@ -13,85 +13,85 @@ Next: <a href="/com/jme3/gde/docs/jme3/beginner/hello_node.html">Hello Node</a>
 </p>
 
 <p>
-Nesta s??rie de tutoriais, n??s assumimos que voc?? usa o <a href="/com/jme3/gde/docs/sdk.html">SDK</a> da jMonkeyEngine. Como um desenvolvedor Java intermedi??rio ou avan??ado, voc?? rapidamente ver?? que, em geral, voc?? pode desenvolver c??digo da jMonkeyEngine em qualquer ambiente de desenvolvimento integrado (NetBeans IDE, Eclipse, IntelliJ) ou mesmo da linha de comando.
+In this tutorial series, we assume that you use the jMonkeyEngine <a href="/com/jme3/gde/docs/sdk.html">SDK</a>. As an intermediate or advanced Java developer, you will quickly see that, in general, you can develop jMonkeyEngine code in any integrated development environment (NetBeans IDE, Eclipse, IntelliJ) or even from the <a href="/com/jme3/gde/docs/jme3/simpleapplication_from_the_commandline.html">command line</a>. 
 </p>
 
 <p>
-OK, Vamos nos aprontar para criar nossa primeira aplica????o jMonkeyEngine3.
+OK, let&#039;s get ready to create our first jMonkeyEngine3 application.
 </p>
 
 </div>
-<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (1) - Hello SimpleApplication" [1-723] -->
-<h2><a>Crie um Projeto</a></h2>
+<!-- EDIT1 SECTION "jMonkeyEngine 3 Tutorial (1) - Hello SimpleApplication" [1-726] -->
+<h2><a>Create a Project</a></h2>
 <div>
 
 <p>
 
-Na <acronym title="Software Development Kit">SDK</acronym> da jMonkeyEngine:
+In the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>:
 </p>
 <ol>
-<li><div> Escolha Arquivo (File)???Novo Projeto (New Project)??? do menu principal.</div>
+<li><div> Choose File???New Project??? from the main menu.</div>
 </li>
-<li><div> No assistente de Novo Projeto, selecione o modelo JME3???Jogo B??sico (Basic Game). Clique em prosseguir (Next). </div>
+<li><div> In the New Project wizard, select the template JME3???Basic Game. Click Next. </div>
 <ol>
-<li><div> Especifique um nome de projeto, e.g. &quot;HelloWorldTutorial&quot;</div>
+<li><div> Specify a project name, e.g. &quot;HelloWorldTutorial&quot;</div>
 </li>
-<li><div> Especifique um caminho para armazenar seu novo projeto, e.g. um diret??rio projetosjMonkey no seu diret??rio de usu??rio.</div>
+<li><div> Specify a path where to store your new project, e.g. a <code>jMonkeyProjects</code> directory in your home directory.</div>
 </li>
 </ol>
 </li>
-<li><div> Clique em terminar (Finish). </div>
+<li><div> Click Finish. </div>
 </li>
 </ol>
 
 <p>
 
-Se voc?? tem perguntas, leia mais sobre Cria????o de Projeto aqui.
+If you have questions, read more about <a href="/com/jme3/gde/docs/sdk/project_creation.html">Project Creation</a> here.
 </p>
 
 <p>
-<p><div>N??s recomendamos atravessar os passos voc?? mesmo, como descrito nos tutoriais. Alternativamente, voc?? pode criar um projeto baseado no modelo <a href="/com/jme3/gde/docs/sdk/sample_code.html">JmeTests</a> no <acronym title="Software Development Kit">SDK</acronym> da jMonkeyEngine. Isto criar?? um projeto que j?? cont??m as amostras jme3test.helloworld (e muitas outras). Por exemplo, voc?? pode usar o projeto JmeTests para verificar se voc?? tem a solu????o certa.
+<p><div>We recommend to go through the steps yourself, as described in the tutorials. Alternatively, you can create a project based on the <a href="/com/jme3/gde/docs/sdk/sample_code.html">JmeTests</a> template in the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>. It will create a project that already contains the <code>jme3test.helloworld</code> samples (and many others). For example, you can use the JmeTests project to verify whether you got the solution right.
 </div></p>
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Crie um Projeto" [724-1670] -->
-<h2><a>Escreva uma aplica????o de amostra</a></h2>
+<!-- EDIT2 SECTION "Create a Project" [727-1588] -->
+<h2><a>Write a SimpleApplication</a></h2>
 <div>
 
 <p>
 
-Para este tutorial, voc?? deseja criar um pacote jme3test.helloworld no seu projeto, e criar um arquivo <code>HelloJME3.java</code> nele
+For this tutorial, you want to create a <code>jme3test.helloworld</code> package in your project, and create a file <code>HelloJME3.java</code> in it
 </p>
 
 <p>
-No <acronym title="Software Development Kit">SDK</acronym> da jMonkeyEngine:
+In the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym>:
 </p>
 <ol>
-<li><div> D?? um clique com o bot??o direito no n?? pacotes de c??digo-fonte (Source Packages) de seu projeto.</div>
+<li><div> Right-click the Source Packages node of your project.</div>
 </li>
-<li><div> Escolha Novo (New)??? ???Classe Java (Java Class) para criar um novo arquivo.</div>
+<li><div> Choose New??????Java Class to create a new file.</div>
 </li>
-<li><div> Digite o nome da classe: <code>HelloJME3</code></div>
+<li><div> Enter the class name: <code>HelloJME3</code></div>
 </li>
-<li><div> Digite o nome do pacote: <code>jme3test.helloworld</code>.</div>
+<li><div> Enter the package name: <code>jme3test.helloworld</code>. </div>
 </li>
-<li><div> Clique em Finalizar (Finish).</div>
+<li><div> Click Finish.</div>
 </li>
 </ol>
 
 <p>
-O <acronym title="Software Development Kit">SDK</acronym> cria o arquivo HelloJME3.java para voc??.
+The <acronym title="Software Development Kit">SDK</acronym> creates the file HelloJME3.java for you.
 </p>
 
 </div>
-<!-- EDIT3 SECTION "Escreva uma aplica????o de amostra" [1671-2240] -->
-<h2><a>C??digo de Amostra</a></h2>
+<!-- EDIT3 SECTION "Write a SimpleApplication" [1589-2061] -->
+<h2><a>Sample Code</a></h2>
 <div>
 
 <p>
 
-Substitua os conte??dos do arquivo HelloJME3.java com o seguinte c??digo:
+Replace the contents of the HelloJME3.java file with the following code:
 </p>
 <pre>package jme3test.helloworld;
 &nbsp;
@@ -125,48 +125,48 @@ public class HelloJME3 extends SimpleApplication &#123;
 &#125;</pre>
 
 <p>
-D?? um clique com o bot??o direito na classe HelloJME3 class e escolha Executar (Run). Se um di??logo de configura????es da jME3 aparecer, confirme as configura????es padr??o.
+Right-click the HelloJME3 class and choose Run. If a jME3 settings dialog pops up, confirm the default settings.
 </p>
 <ol>
-<li><div> Voc?? deveria ver uma janela simples exibindo um cubo 3D.</div>
+<li><div> You should see a simple window displaying a 3D cube.</div>
 </li>
-<li><div> Pressione as teclas WASD keys e mova para navegar ao redor.</div>
+<li><div> Press the WASD keys and move the mouse to navigate around.</div>
 </li>
-<li><div> Olhe no texto do FPS e na informa????o de contagem de objeto na esquerda-fundo. Voc?? usar?? esta informa????o durante o desenvolvimento, e voc?? remover?? ela para a libera????o. (Para ler os n??meros corretamente, considere que as 14 linhas de texto contam como 14 objetos com 914 v??rtices.)</div>
+<li><div> Look at the FPS text and object count information in the bottom left. You will use this information during development, and you will remove it for the release. (To read the numbers correctly, consider that the 14 lines of text counts as 14 objects with 914 vertices.)</div>
 </li>
-<li><div> Pressione Escape (Esc) para fechar a aplica????o.</div>
+<li><div> Press Escape to close the application.</div>
 </li>
 </ol>
 
 <p>
-Parab??ns! Agora camos decobrir como isso funciona!
+Congratulations! Now let&#039;s find out how it works!
 </p>
 
 </div>
-<!-- EDIT4 SECTION "C??digo de Amostra" [2241-4272] -->
-<h2><a>Compreendendo o c??digo</a></h2>
+<!-- EDIT4 SECTION "Sample Code" [2062-3976] -->
+<h2><a>Understanding the Code</a></h2>
 <div>
 
 <p>
 
-O c??digo acima tem inicializado a cena, e iniciado a aplica????o.
+The code above has initialized the scene, and started the application.
 </p>
 
 </div>
-<!-- EDIT5 SECTION "Compreendendo o c??digo" [4273-4377] -->
-<h3><a>Inicie a SimpleApplication</a></h3>
+<!-- EDIT5 SECTION "Understanding the Code" [3977-4084] -->
+<h3><a>Start the SimpleApplication</a></h3>
 <div>
 
 <p>
 
-Olhe na primeira linha. A classe HelloJME3.java estende <code>com.jme3.app.SimpleApplication</code>. 
+Look at the first line. The HelloJME3.java class extends <code>com.jme3.app.SimpleApplication</code>. 
 </p>
 <pre>public class HelloJME3 extends SimpleApplication &#123;
   // your code...
 &#125;</pre>
 
 <p>
-Todo jogo JME3 ?? uma inst??ncia de com.jme3.app.SimpleApplication. A classe SimpleApplication gerencia seu grafo de cena 3D e automaticamente desenha ele para a tela ??? isto ??, em breve, o que uma engine de jogo faz para voc??
+Every JME3 game is an instance of <code>com.jme3.app.SimpleApplication</code>. The SimpleApplication class manages your 3D scene graph and automatically draws it to the screen ??? that is, in short, what a game engine does for you
 </p>
 
 <p>
@@ -188,7 +188,7 @@ This code opens your application window. Let&#039;s learn how you put something
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Inicie a SimpleApplication" [4378-5344] -->
+<!-- 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>
-<!-- EDIT8 TABLE [5386-5859] -->
+<!-- EDIT8 TABLE [5086-5559] -->
 <p>
 
 If you are unfamiliar with the vocabulary, read more about <a href="/com/jme3/gde/docs/jme3/the_scene_graph.html">the Scene Graph</a> here.
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Understanding the Terminology" [5345-5952] -->
+<!-- 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 b = new Box&#40;Vector3f.ZERO, 1, 1, 1&#41;; // create a 2x2x2 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" [5953-7952] -->
+<!-- EDIT9 SECTION "Initialize the Scene" [5653-7652] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
@@ -326,7 +326,7 @@ The now following tutorials teach how you accomplish these tasks with the jMonke
 Continue with the <a href="/com/jme3/gde/docs/jme3/beginner/hello_node.html">Hello Node</a> tutorial, where you learn more details about how to initialize the game world, also known as the scene graph.
 
 </p>
-<hr/>
+<hr />
 
 <p>
 See also:
@@ -349,5 +349,5 @@ See also:
 </span></div>
 
 </div>
-<!-- EDIT10 SECTION "Conclusion" [7953-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_simpleapplication?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT10 SECTION "Conclusion" [7653-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_simpleapplication?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index ea536d3..bc24b63 100644 (file)
@@ -226,14 +226,14 @@ It requires an image from a JME Texture.</div>
 <li><div> Load the heightmap.</div>
 </li>
 </ol>
-<pre>AbstractHeightMap heightmap = null;
+<pre>    AbstractHeightMap heightmap = null;
     Texture heightMapImage = assetManager.loadTexture&#40;
             &quot;Textures/Terrain/splat/mountains512.png&quot;&#41;;
     heightmap = new ImageBasedHeightMap&#40;heightMapImage.getImage&#40;&#41;&#41;;
     heightmap.load&#40;&#41;;</pre>
 
 </div>
-<!-- EDIT4 SECTION "Looking at the Heightmap Code" [6265-7514] -->
+<!-- EDIT4 SECTION "Looking at the Heightmap Code" [6265-7518] -->
 <h2><a>What is Texture Splatting?</a></h2>
 <div>
 
@@ -301,7 +301,7 @@ Now you start painting the texture:
 </p>
 
 </div>
-<!-- EDIT5 SECTION "What is Texture Splatting?" [7515-10434] -->
+<!-- EDIT5 SECTION "What is Texture Splatting?" [7519-10438] -->
 <h3><a>Looking at the Texturing Code</a></h3>
 <div>
 
@@ -357,7 +357,7 @@ Use <code>setWrap(WrapMode.Repeat)</code> to make the small texture fill the wid
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Looking at the Texturing Code" [10435-12573] -->
+<!-- EDIT6 SECTION "Looking at the Texturing Code" [10439-12577] -->
 <h2><a>What is a Terrain?</a></h2>
 <div>
 
@@ -395,7 +395,7 @@ Create a TerrainQuad with the following arguments:
 </ol>
 
 </div>
-<!-- EDIT7 SECTION "What is a Terrain?" [12574-13657] -->
+<!-- EDIT7 SECTION "What is a Terrain?" [12578-13661] -->
 <h3><a>Looking at the Terrain Code</a></h3>
 <div>
 
@@ -430,7 +430,7 @@ You have created the terrain object.
 </p>
 
 </div>
-<!-- EDIT8 SECTION "Looking at the Terrain Code" [13658-14420] -->
+<!-- EDIT8 SECTION "Looking at the Terrain Code" [13662-14424] -->
 <h2><a>What is LOD (Level of Detail)?</a></h2>
 <div>
 
@@ -446,12 +446,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)?" [14421-15013] -->
+<!-- EDIT9 SECTION "What is LOD (Level of Detail)?" [14425-15017] -->
 <h2><a>Exercises</a></h2>
 <div>
 
 </div>
-<!-- EDIT10 SECTION "Exercises" [15014-15036] -->
+<!-- EDIT10 SECTION "Exercises" [15018-15040] -->
 <h3><a>Exercise 1: Texture Layers</a></h3>
 <div>
 
@@ -470,15 +470,16 @@ 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" [15037-15346] -->
+<!-- EDIT11 SECTION "Exercise 1: Texture Layers" [15041-15350] -->
 <h3><a>Exercise 2: Randomized Terrains</a></h3>
 <div>
 
 <p>
 
-The following two lines generate the heightmap object based on your user-defined image:
+The following three lines generate the heightmap object based on your user-defined image:
 </p>
-<pre>Texture heightMapImage = assetManager.loadTexture&#40;
+<pre>    AbstractHeightMap heightmap = null;
+    Texture heightMapImage = assetManager.loadTexture&#40;
         &quot;Textures/Terrain/splat/mountains512.png&quot;&#41;;
     heightmap = new ImageBasedHeightMap&#40;heightMapImage.getImage&#40;&#41;&#41;;</pre>
 
@@ -486,7 +487,7 @@ The following two lines generate the heightmap object based on your user-defined
 Instead, you can also let JME3 generate a random landscape for you:
 </p>
 <ol>
-<li><div> What result do you get when you replace the above two heightmap lines by the following lines and run the sample?<pre>HillHeightMap heightmap = null;
+<li><div> What result do you get when you replace the above three heightmap lines by the following lines and run the sample?<pre>HillHeightMap heightmap = null;
 HillHeightMap.NORMALIZE_RANGE = 100; // optional
 try &#123;
     heightmap = new HillHeightMap&#40;513, 1000, 50, 100, &#40;byte&#41; 3&#41;; // byte 3 is a random seed
@@ -528,10 +529,11 @@ You see the variety of hilly landscapes that can be generated using this method.
 <p>
 <p><div>For this exercise, you can keep using the splat Material from the sample code above. Just don&#039;t be surprised that the Material does not match the shape of the newly randomized landscape. If you want to generate real matching splat textures for randomized heightmaps, you need to write a custom method that, for example, creates an alphamap from the heightmap by replacing certain grayscales with certain RGB values.
 </div></p>
+
 </p>
 
 </div>
-<!-- EDIT12 SECTION "Exercise 2: Randomized Terrains" [15347-17360] -->
+<!-- EDIT12 SECTION "Exercise 2: Randomized Terrains" [15351-17411] -->
 <h3><a>Exercise 3: Solid Terrains</a></h3>
 <div>
 
@@ -541,20 +543,20 @@ Can you combine what you learned here and in <a href="/com/jme3/gde/docs/jme3/be
 </p>
 
 </div>
-<!-- EDIT13 SECTION "Exercise 3: Solid Terrains" [17361-17530] -->
+<!-- EDIT13 SECTION "Exercise 3: Solid Terrains" [17412-17581] -->
 <h2><a>Conclusion</a></h2>
 <div>
 
 <p>
 
-You have learned how to create terrains that are more efficient than loading one giant model. You know how to create generate random or handmade heightmaps. You can add a LOD control to render large terrains faster. You are aware that you can combine what you learned about collison detection to make the terrain solid to a physical player. You are also able to texture a terrain &quot;like a boss&quot; using layered Materials and texture splatting. You are aware that the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> provides a TerrainEditor that helps with most of these manual tasks.
+You have learned how to create terrains that are more efficient than loading one giant model. You know how to generate random or create handmade heightmaps. You can add a LOD control to render large terrains faster. You are aware that you can combine what you learned about collision detection to make the terrain solid to a physical player. You are also able to texture a terrain &quot;like a boss&quot; using layered Materials and texture splatting. You are aware that the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> provides a TerrainEditor that helps with most of these manual tasks.
 </p>
 
 <p>
 Do you want to hear your players say &quot;ouch!&quot; when they bump into a wall or fall off a hill? Continue with learning <a href="/com/jme3/gde/docs/jme3/beginner/hello_audio.html">how to add sound</a> to your game.
 
 </p>
-<hr/>
+<hr />
 
 <p>
 See also:
@@ -572,5 +574,5 @@ See also:
 </span></div>
 
 </div>
-<!-- EDIT14 SECTION "Conclusion" [17531-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_terrain?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT14 SECTION "Conclusion" [17582-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_terrain?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 78c88b0..e387c87 100644 (file)
@@ -46,7 +46,7 @@ We recommend downloading the <object classid="java:org.netbeans.modules.javahelp
 For a detailed description of the created jar files see <a href="/com/jme3/gde/docs/jme3/jme3_source_structure#structure_of_jmonkeyengine3_jars.html">this list</a>.
 
 </p>
-<hr/>
+<hr />
 
 <p>
 Learn more about:
@@ -63,4 +63,4 @@ Learn more about:
 </span></div>
 
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:build_from_sources?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:build_from_sources?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index fa83264..c5268f5 100644 (file)
@@ -148,7 +148,7 @@ If you are working on a game project that depends on jme3:
 This tip works for any third-party JAR library that you use. (You may have to download the javadoc/sources from their home page separately).
 
 </p>
-<hr/>
+<hr />
 
 <p>
 Sources used: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/wiki/BuildJme3"><param name="text" value="<html><u>BuildJme3</u></html>"><param name="textColor" value="blue"></object>, <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.jmonkeyengine.com/forum/index.php?topic=13108.0"><param name="text" value="<html><u>NetBeans tutorial from forum</u></html>"><param name="textColor" value="blue"></object>
@@ -160,4 +160,4 @@ Sources used: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplay
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:build_jme3_sources_with_netbeans?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index e2f97aa..e2b02e4 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/1.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/1.gif differ
index 96d619d..b9ae868 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/2.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/2.gif differ
index d917448..c7dd9a3 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/3.1.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/3.1.gif differ
index cffb997..2e40bea 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/3.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/3.gif differ
index b619fe0..9a4450b 100644 (file)
@@ -221,7 +221,7 @@ public class TestOgreMaxImport extends SimpleApplication &#123;
       mat.setColor&#40;&quot;Color&quot;, ColorRGBA.Green&#41;;
       mat.getAdditionalRenderState&#40;&#41;.setDepthTest&#40;false&#41;;
       skeletonDebug.setMaterial&#40;mat&#41;;
-      model.attachChild&#40;skeletonDebug&#41;;
+      &#40;&#40;Node&#41; ac.getSpatial&#40;&#41;&#41;.attachChild&#40;skeletonDebug&#41;;
 &nbsp;
       // create a channel and start the wobble animation
       final AnimChannel channel = ac.createChannel&#40;&#41;;
@@ -284,10 +284,11 @@ You will see your worms strange movements. Have fun!
 
 <p>
 <img src="nbdocs:/com/jme3/gde/docs/jme3/external/3dsmax-12.png">
+
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Export and Import" [3396-6885] -->
+<!-- EDIT7 SECTION "Export and Import" [3396-6903] -->
 <h1><a>3ds Max Biped Animation to JME3</a></h1>
 <div>
 
@@ -297,7 +298,7 @@ You can also use the biped operator to animate models, but you have to consider
 </p>
 
 </div>
-<!-- EDIT8 SECTION "3ds Max Biped Animation to JME3" [6886-7030] -->
+<!-- EDIT8 SECTION "3ds Max Biped Animation to JME3" [6904-7048] -->
 <h3><a>Creating a character in 3dsMax</a></h3>
 <div>
 
@@ -336,7 +337,7 @@ I will not tell you in detail how to model a character. There I many good tutori
 </ul>
 
 </div>
-<!-- EDIT9 SECTION "Creating a character in 3dsMax" [7031-7770] -->
+<!-- EDIT9 SECTION "Creating a character in 3dsMax" [7049-7788] -->
 <h3><a>Creating a simple walk animation</a></h3>
 <div>
 <ul>
@@ -365,7 +366,7 @@ I will not tell you in detail how to model a character. There I many good tutori
 </ul>
 
 </div>
-<!-- EDIT10 SECTION "Creating a simple walk animation" [7771-8582] -->
+<!-- EDIT10 SECTION "Creating a simple walk animation" [7789-8600] -->
 <h3><a>Preparing the export and setting up OgreMax</a></h3>
 <div>
 <ul>
@@ -420,7 +421,7 @@ I will not tell you in detail how to model a character. There I many good tutori
 </ul>
 
 </div>
-<!-- EDIT11 SECTION "Preparing the export and setting up OgreMax" [8583-10257] -->
+<!-- EDIT11 SECTION "Preparing the export and setting up OgreMax" [8601-10275] -->
 <h3><a>Fixing the location</a></h3>
 <div>
 <ul>
@@ -445,7 +446,7 @@ I will not tell you in detail how to model a character. There I many good tutori
 </ul>
 
 </div>
-<!-- EDIT12 SECTION "Fixing the location" [10258-11067] -->
+<!-- EDIT12 SECTION "Fixing the location" [10276-11085] -->
 <h3><a>Export and Import</a></h3>
 <div>
 <ul>
@@ -509,7 +510,7 @@ public class TestOgreMaxImport extends SimpleApplication &#123;
       mat.setColor&#40;&quot;Color&quot;, ColorRGBA.Green&#41;;
       mat.getAdditionalRenderState&#40;&#41;.setDepthTest&#40;false&#41;;
       skeletonDebug.setMaterial&#40;mat&#41;;
-      // model.attachChild(skeletonDebug);
+      &#40;&#40;Node&#41; ac.getSpatial&#40;&#41;&#41;.attachChild&#40;skeletonDebug&#41;;
 &nbsp;
       // create a channel and start the walk animation
       final AnimChannel channel = ac.createChannel&#40;&#41;;
@@ -612,5 +613,5 @@ As you can see, the LOD is working:
 </p>
 
 </div>
-<!-- EDIT13 SECTION "Export and Import" [11068-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:external:3dsmax?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT13 SECTION "Export and Import" [11086-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:external:3dsmax?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 2242070..0c91298 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/4.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/4.gif differ
index ebf57f4..f5fb42e 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/5.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/5.gif differ
index 8c3f029..b4c61a6 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/6.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/6.gif differ
index d4d352e..ffb5348 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/7.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/7.gif differ
index fb0f71d..e961284 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/8.gif and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/8.gif differ
index 0a000cc..5005be7 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-1.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-1.png differ
index e89a969..c2d6903 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-2.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-2.png differ
index d357b5a..4f176c9 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-3.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-3.png differ
index e30d88c..d4aea8b 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-4.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender-material-4.png differ
index a96d258..7a29a58 100644 (file)
@@ -8,7 +8,7 @@ This section discusses how to create and import models from Blender3D (2.62+, se
 
 </div>
 <!-- EDIT1 SECTION "Creating assets in Blender3D" [1-320] -->
-<h2><a>Asset Management</a></h2>
+<h3><a>Asset Management</a></h3>
 <div>
 
 <p>
@@ -16,45 +16,45 @@ For the managing of assets in general, be sure to read the <a href="/com/jme3/gd
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Asset Management" [321-553] -->
-<h1><a>Creating Models</a></h1>
+<!-- EDIT2 SECTION "Asset Management" [321-551] -->
+<h3><a>Creating Models</a></h3>
 <div>
 
 <p>
 Game-compatible models are models that basically only consist of a mesh and UV-mapped textures, in some cases animations. All other material parameters or effects (like particles etc.) can not be expected to be transferred properly and probably would not translate to live rendering very well anyway.
 </p>
 
-<p>
-Note that BMeshes are not yet supported by the importers and exporters so please use the &quot;legacy mesh format&quot; for now in blender 2.63+
-</p>
-
 </div>
-<!-- EDIT3 SECTION "Creating Models" [554-1021] -->
+<!-- EDIT3 SECTION "Creating Models" [552-879] -->
 <h2><a>UV Mapped Textures</a></h2>
 <div>
 
 <p>
 To successfully import a texture, the texture <strong>has to</strong> be UV-mapped to the model. Heres how to assign diffuse, normal and specular maps:
-</p>
 
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender-material-4.png">
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender-material-3.png">
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender-material-2.png">
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender-material-1.png">
 </p>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender-material-4.png"> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender-material-3.png"></div>
+</li>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender-material-2.png"> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender-material-1.png"></div>
+</li>
+</ul>
 
 <p>
-Its important to note that each used texture will create one separate geometry. So its best to either combine the UV maps or use a premade atlas with different texture types from the start and then map the uv coords of the models to the atlas instead of painting on the texture. This works best for large models like cities and space ships.
 
+Its important to note that each used texture will create one separate geometry. So its best to either combine the UV maps or use a premade atlas with different texture types from the start and then map the uv coords of the models to the atlas instead of painting on the texture. This works best for large models like cities and space ships.
 </p>
 
 </div>
-<!-- EDIT4 SECTION "UV Mapped Textures" [1022-1722] -->
+<!-- EDIT4 SECTION "UV Mapped Textures" [880-1593] -->
 <h2><a>Animations</a></h2>
 <div>
 
 <p>
+Animations for jME3 have to be bone animations, simple object movement is supported by the blender importer, mesh deformation or other forms of animation are not supported.
+</p>
+
+<p>
 To create an animation from scratch do the following:
 </p>
 <ul>
@@ -118,10 +118,16 @@ To create an animation from scratch do the following:
 </li>
 <li><div> Each action will be an animation available via the animation control in jME after the import</div>
 </li>
+<li><div> <strong>Press the &quot;F&quot; button next to the action so it will be saved even if theres no references</strong></div>
+<ul>
+<li><div> The animation would else be deleted if its not the active animation on the armature and the file is saved</div>
+</li>
+</ul>
+</li>
 </ul>
 
 </div>
-<!-- EDIT5 SECTION "Animations" [1723-3497] -->
+<!-- EDIT5 SECTION "Animations" [1594-3751] -->
 <h3><a>Model Checklist</a></h3>
 <div>
 
@@ -133,35 +139,45 @@ Sometimes you do not create the model yourself and often times models from the w
 To export an animated model in Blender make sure the following conditions are met:
 
 </p>
-<ol>
+<ul>
 <li><div> The animation has to be a <strong>bone animation</strong></div>
 </li>
 <li><div> Apply Location, Rotation and Scale to the mesh on Blender: On 3D View editor on Blender, select the mesh in Object Mode and go to the 3D View Editor???s header ??? Object Menu ??? Apply ??? Location / Rotation / Scale.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_apply_mesh.png"></div>
+</li>
+</ul>
 </li>
 <li><div> Apply Location, Rotation and Scale to the armature on Blender: On 3D View editor on Blender, select the armature in Object Mode and go to the 3D View Editor???s header ??? Object Menu ??? Apply ??? Location / Rotation / Scale.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_apply_bones.png"></div>
+</li>
+</ul>
 </li>
-<li><div> Set the mesh???s origin point in the bottom of the mesh (see the images below).</div>
+<li><div> Set the mesh???s origin point in the bottom of the mesh (see the image below).</div>
 </li>
-<li><div> Set the armature???s origin point in the bottom of the armature (see the images below).</div>
+<li><div> Set the armature???s origin point in the bottom of the armature (see the image below).</div>
 </li>
-<li><div> Armature???s origin point and mesh???s origin point must be in the same location(see the images below).</div>
+<li><div> Armature???s origin point and mesh???s origin point must be in the same location(see the image below).</div>
 </li>
-<li><div> Use a root bone located in the armature???s origin. This root bone must be in vertical position (see the images below) and it is the root bone of the armature. If you rotate the root bone, the the entire armature might be rotate when you import the model into jMonkey (I???m just mentioning the result, I don???t know where is the problem (jMonkey importer or blender???s ogre exporter plugin)).</div>
+<li><div> Use a root bone located in the armature???s origin. This root bone must be in vertical position (see the image below) and it is the root bone of the armature. If you rotate the root bone, the the entire armature might be rotate when you import the model into jMonkey (I???m just mentioning the result, I don???t know where is the problem (jMonkey importer or blender???s ogre exporter plugin)).</div>
 </li>
-<li><div> Uncheck ???Bone Envelopes??? checkbox on the Armature modifier for the mesh (see the images below).</div>
+<li><div> Uncheck ???Bone Envelopes??? checkbox on the Armature modifier for the mesh (see the image below).</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_envelopes.png"></div>
 </li>
-<li><div> Uncheck ???Envelopes??? checkbox on the armature (see the images below).</div>
+</ul>
+</li>
+<li><div> Uncheck ???Envelopes??? checkbox on the armature (see the image below).</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_rootbone.png"></div>
 </li>
-</ol>
+</ul>
+</li>
+</ul>
 
 <p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_apply_mesh.png">
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_apply_bones.png">
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_envelopes.png">
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_rootbone.png">
-</p>
 
-<p>
 You can use SkeletonDebugger to show the skeleton on your game in order to check if the mesh and the skeleton are loaded correctly:
 
 </p>
@@ -185,13 +201,13 @@ You can use SkeletonDebugger to show the skeleton on your game in order to check
     mat.getAdditionalRenderState&#40;&#41;.setDepthTest&#40;false&#41;;
     skeletonDebug.setMaterial&#40;mat&#41;;
     soldier2Node.attachChild&#40;skeletonDebug&#41;;</pre>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_finished.png"></div>
+</li>
+</ul>
 
 <p>
 
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/blender_finished.png">
-</p>
-
-<p>
 Also check out these videos and resources:
 
 </p>
@@ -205,8 +221,8 @@ Also check out these videos and resources:
 </ul>
 
 </div>
-<!-- EDIT6 SECTION "Model Checklist" [3498-7032] -->
-<h1><a>NormalMap baking</a></h1>
+<!-- EDIT6 SECTION "Model Checklist" [3752-7310] -->
+<h2><a>NormalMap baking</a></h2>
 <div>
 
 <p>
@@ -215,66 +231,60 @@ Models for live rendering should have a low polygon count. To increase the perce
 </p>
 
 </div>
-<!-- EDIT7 SECTION "NormalMap baking" [7033-7364] -->
-<h2><a>Blender modeling lowPoly &amp; highPoly</a></h2>
+<!-- EDIT7 SECTION "NormalMap baking" [7311-7639] -->
+<h3><a>Blender modeling lowPoly &amp; highPoly</a></h3>
 <div>
+<ul>
+<li><div> If you use the multiresolution modifier you only need one object. Lets look at this example:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/1.gif"></div>
+</li>
+</ul>
+</li>
+<li><div> Add a multiresolution modifier:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/3.1.gif"></div>
+</li>
+</ul>
+</li>
+<li><div> There are two types of modifiers: Catmull-Clark and Simple. </div>
+<ul>
+<li><div> Simple is better for things like walls or floors.</div>
+</li>
+<li><div> Catmull-Clark is better for objects like spheres.</div>
+</li>
+</ul>
+</li>
+<li><div> When using Catmull-Clark with a higher &quot;subdivide&quot; value (more than 3) its good to have the &quot;preview&quot; value above 0 and less than the subdivide level. This is because Catmull-Clark smoothes the vertices, so the normalMap is not so precise.</div>
+</li>
+<li><div> Here is an example of Prewiew 1, it&#039;s more smooth than the original mesh:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/2.gif"></div>
+</li>
+</ul>
+</li>
+<li><div> Enable &quot;Sculpt Mode&quot; in blender and design the highPoly version of your model like here:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/3.gif"></div>
+</li>
+</ul>
+</li>
+<li><div> Now go into Render Tab, and bake a normalMap using same configuration as here:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/4.gif"></div>
+</li>
+</ul>
+</li>
+</ul>
 
 <p>
-
-If you use the multiresolution modifier you only need one object. Lets look at this example:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/1.gif">
-</p>
-
-<p>
-Add a multiresolution modifier:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/3.1.gif">
-</p>
-
-<p>
-There are two types of modifiers: Catmull-Clark and Simple. 
-- Simple is better for things like walls or floors.
-- Catmull-Clark is better for objects like spheres.
-</p>
-
-<p>
-When using Catmull-Clark with a higher &quot;subdivide&quot; value (more than 3) its good to have the &quot;preview&quot; value above 0 and less than the subdivide level. This is because Catmull-Clark smoothes the vertices, so the normalMap is not so precise.
-</p>
-
-<p>
-Here is an example of Prewiew 1, it&#039;s more smooth than the original mesh:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/2.gif">
-</p>
-
-<p>
-Enable &quot;Sculpt Mode&quot; in blender and design the highPoly version of your model like here:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/3.gif">
-</p>
-
-<p>
-Now go into Render Tab, and bake a normalMap using same configuration as here:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/4.gif">
 <p><div>Remember! The actual preview affects the baking output and mesh export!
 </div></p>
 </p>
 
 </div>
-<!-- EDIT8 SECTION "Blender modeling lowPoly & highPoly" [7365-8434] -->
-<h2><a>Fixing the normal colors in Blender</a></h2>
+<!-- EDIT8 SECTION "Blender modeling lowPoly & highPoly" [7640-8762] -->
+<h3><a>Fixing the normal colors in Blender</a></h3>
 <div>
 
 <p>
@@ -284,46 +294,42 @@ Blender has its own normal colors standard. We need to fix the colors to prepare
 
 <p>
 To do this, go to the Blender Node Window
-</p>
 
-<p>
-Here is Blender Node example. It fixes the normal colors:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/5.gif">
-</p>
-
-<p>
-Here is the colors configuration:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/6.gif">
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/7.gif">
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/8.gif">
-</p>
-
-<p>
-<p><div>Sometimes it will be needed to change R and G scale and add some blur for better effect. Do it like on image below
-</div></p>
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/exception2.gif">
-</p>
-
-<p>
-After rendering, save the file to a destination you want and use it with the JME Lighting Material and the lowpoly version of the model.
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/ready_normal.gif">
 </p>
+<ul>
+<li><div> Here is Blender Node example. It fixes the normal colors:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/5.gif"></div>
+</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><div> Here is the colors configuration:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/6.gif"> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/7.gif"> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/8.gif"></div>
+</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><div> Sometimes it will be needed to change R and G scale and add some blur for better effect. Do it like on image below</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/exception2.gif"></div>
+</li>
+</ul>
+</li>
+<li><div> After rendering, save the file to a destination you want and use it with the JME Lighting Material and the lowpoly version of the model.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/ready_normal.gif"></div>
+</li>
+</ul>
+</li>
+</ul>
 
 </div>
-<!-- EDIT9 SECTION "Fixing the normal colors in Blender" [8435-9228] -->
-<h1><a>LightMap baking</a></h1>
+<!-- EDIT9 SECTION "Fixing the normal colors in Blender" [8763-9572] -->
+<h2><a>LightMap baking</a></h2>
 <div>
 
 <p>
@@ -332,98 +338,111 @@ The goal of this tutorial is to explain briefly how to bake light map in blender
 </p>
 
 </div>
-<!-- EDIT10 SECTION "LightMap baking" [9229-9432] -->
-<h2><a>Blender modeling + texturing</a></h2>
+<!-- EDIT10 SECTION "LightMap baking" [9573-9774] -->
+<h3><a>Blender modeling + texturing</a></h3>
 <div>
-
-<p>
-create a mesh in blender and unwrap it to create uvs
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/1.jpg">
-</p>
-
-<p>
-In the mesh tab you can see the sets of Uvs, it will create the first one.<br/>
-
-You can assign w/e texture on it, i used the built in checker of blender for the example.<br/>
-
-Then in this list, create a new one and click on the camera icon so that baking is made with this set. Name it LightUvMap.<br/>
-
-Then in the 3D view in edit mode select all your mesh vertice and hit &#039;U&#039;/LightMap pack then ok it will unfold the mesh for light map.<br/>
-
-Then create a new image, go to the render tab an all at the end check the &quot;Bake&quot; section and select shadows. Then click bake.<br/>
-
-If all went ok it will create a light map like this.<br/>
-
-<img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/2.jpg">
-</p>
-
-<p>
-Then go to the material tab, create a new one for your model and go to the Texture Tab.<br/>
-
-Create 2 textures one for the color map, and one for the light map.<br/>
-
-In the Mapping section be sure to select coordinates : UV and select the good set of coordinates.<br/>
-
-<img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/3.jpg">
-</p>
-
-<p>
-
-then the light map<br/>
-
-<img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/4.jpg">
-</p>
+<ul>
+<li><div> create a mesh in blender and unwrap it to create uvs</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/1.jpg"></div>
+</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><div> In the mesh tab you can see the sets of Uvs, it will create the first one.</div>
+<ul>
+<li><div> You can assign w/e texture on it, i used the built in checker of blender for the example.</div>
+</li>
+</ul>
+</li>
+<li><div> In this list, create a new one and click on the camera icon so that baking is made with this set. Name it LightUvMap.</div>
+</li>
+<li><div> In the 3D view in edit mode select all your mesh vertice and hit &#039;U&#039;/LightMap pack then ok it will unfold the mesh for light map.</div>
+</li>
+<li><div> Create a new image, go to the render tab an all at the end check the &quot;Bake&quot; section and select shadows. Then click bake.</div>
+</li>
+<li><div> If all went ok it will create a light map like this.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/2.jpg"></div>
+</li>
+</ul>
+</li>
+<li><div> Go to the material tab, create a new one for your model and go to the Texture Tab.</div>
+</li>
+<li><div> Create 2 textures one for the color map, and one for the light map.</div>
+</li>
+<li><div> In the Mapping section be sure to select coordinates : UV and select the good set of coordinates.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/3.jpg"></div>
+</li>
+</ul>
+</li>
+<li><div> Then the light map</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/4.jpg"></div>
+</li>
+</ul>
+</li>
+</ul>
 
 </div>
-<!-- EDIT11 SECTION "Blender modeling + texturing" [9433-10544] -->
-<h2><a>Importing the model in the SDK and creating the appropriate material</a></h2>
+<!-- EDIT11 SECTION "Blender modeling + texturing" [9775-10909] -->
+<h3><a>Importing the model in the SDK and creating the appropriate material</a></h3>
 <div>
 
 <p>
-Once this is done, export your model with the ogre exporter, and turn it into J3o with the <acronym title="Software Development Kit">SDK</acronym>. <br/>
+Once this is done, export your model with the ogre exporter (or import it directly via the blend importer), and turn it into J3o with the <acronym title="Software Development Kit">SDK</acronym>.
 
-Create material for it using the lighting definition.<br/>
-
-Add the colorMap in the diffuse map slot and the lightMap in the light map slot.<br/>
-
-Make sure you check &quot;SeparateTexCoords&quot;<br/>
-
-<img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/5.jpg">
 </p>
+<ul>
+<li><div> Create material for it using the lighting definition.</div>
+</li>
+<li><div> Add the colorMap in the diffuse map slot and the lightMap in the light map slot.</div>
+</li>
+<li><div> Make sure you check &quot;SeparateTexCoords&quot;</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/5.jpg"></div>
+</li>
+</ul>
+</li>
+<li><div> It should roughly result in something like that :</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/6.jpg"></div>
+</li>
+</ul>
+</li>
+</ul>
 
 <p>
-It should roughly result in something like that : <br/>
 
-<img src="nbdocs:/com/jme3/gde/docs/jme3/advanced/6.jpg">
+The blend file, the ogre xml files and the textures can be found in the download section of the google code repo
 </p>
 
 <p>
-The blend file, the ogre xml files and the textures can be found in the download section of the google code repo<br/>
-
 <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://code.google.com/p/jmonkeyengine/downloads/detail?name=LightMap.zip&amp;can=2&amp;q=#makechanges"><param name="text" value="<html><u>http://code.google.com/p/jmonkeyengine/downloads/detail?name=LightMap.zip&amp;can=2&amp;q=#makechanges</u></html>"><param name="textColor" value="blue"></object>
 </p>
 
 </div>
-<!-- EDIT12 SECTION "Importing the model in the SDK and creating the appropriate material" [10545-11229] -->
-<h1><a>SkyBox baking</a></h1>
+<!-- EDIT12 SECTION "Importing the model in the SDK and creating the appropriate material" [10910-11654] -->
+<h2><a>SkyBox baking</a></h2>
 <div>
 
 <p>
-There are several ways to create static images to use for a sky in your game. This will describe the concepts used in blender and create an ugly sky <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)"/> Check the links below for other ways and prettier skies.
+There are several ways to create static images to use for a sky in your game. This will describe the concepts used in blender and create an ugly sky <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)" /> Check the links below for other ways and prettier skies.
 </p>
 
 <p>
 A sky box is a texture mapped cube, it can also, loosely, be called en EnvMap or a CubeMap. The camera is inside the cube and the clever thing that jME does is to draw the sky so it is always behind whatever else is in your scene. Imagine the monkey is the camera in the picture.
-</p>
 
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/skybox-concept.png">
 </p>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/skybox-concept.png"></div>
+</li>
+</ul>
 
 <p>
+
 But a real sky is not a box around our heads, it is more like a sphere. So if we put any old image in the sky it will look strange and might even look like a box. This is not what we want. The trick is to distort the image so that it will <em>look</em> like a sphere even if it in fact is a picture pasted on a box. Luckily blender can do that tricky distortion for us.
 </p>
 
@@ -432,75 +451,72 @@ The screenshots are from Blender 2.63 but the equivalent operations have been in
 </p>
 
 <p>
-So let&#039;s get started, fire up blender and you&#039;ll see something like this.
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/start-screen2.png">
-</p>
-
-<p>
-The cube in the start scene is perfect for us. What we&#039;ll do is have Blender render the scene onto that cube. The resulting image is what we&#039;ll use for our sky box. So our jME sky will look like we stood inside the blender box and looked out on the scene in blender.
-</p>
-
-<p>
-Start by selecting the box and set its material to shadeless.
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/shadeless.png">
-</p>
-
-<p>
-Now we will create a texture for the box. Make sure the texture is an <code>Environment Map</code>, that the <code>Viewpoint Object</code> is set to the cube. The resolution is how large the resulting image will be. More pixels makes the sky look better but comes at the cost of texture memory. You&#039;ll have to trim the resolution to what works in your application.
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/texture.png">
-</p>
+So let&#039;s get started
 
-<p>
-Next up is the fun part, create the sky scene in blender. You can do whatever fits your application, include models for a city landscape, set up a texture mapped sphere in blender with a nice photographed sky, whatever you can think will make a good sky.
-I am not so creative so I created this scene:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/scene.png">
-</p>
-
-<p>
-Now render the scene (press F12). It doesn&#039;t actually matter where the camera is in blender but you might see something similar to this:
-</p>
-
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/render.png">
-</p>
-
-<p>
-You can see that Blender has actually drawn the scene onto the cube. This is exactly what we want. Now to save the image.
-</p>
-
-<p>
-Select the texture of the cube and select save environment map.
 </p>
+<ul>
+<li><div> Fire up blender and you&#039;ll see something like this.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/start-screen2.png"></div>
+</li>
+</ul>
+</li>
+<li><div> The cube in the start scene is perfect for us. What we&#039;ll do is have Blender render the scene onto that cube. The resulting image is what we&#039;ll use for our sky box. So our jME sky will look like we stood inside the blender box and looked out on the scene in blender.</div>
+</li>
+<li><div> Start by selecting the box and set its material to shadeless.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/shadeless.png"></div>
+</li>
+</ul>
+</li>
+<li><div> Now we will create a texture for the box. Make sure the texture is an <code>Environment Map</code>, that the <code>Viewpoint Object</code> is set to the cube. The resolution is how large the resulting image will be. More pixels makes the sky look better but comes at the cost of texture memory. You&#039;ll have to trim the resolution to what works in your application.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/texture.png"></div>
+</li>
+</ul>
+</li>
+<li><div> Next up is the fun part, create the sky scene in blender. You can do whatever fits your application, include models for a city landscape, set up a texture mapped sphere in blender with a nice photographed sky, whatever you can think will make a good sky. I am not so creative so I created this scene:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/scene.png"></div>
+</li>
+</ul>
+</li>
+<li><div> Now render the scene (press F12). It doesn&#039;t actually matter where the camera is in blender but you might see something similar to this:</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/render.png"></div>
+</li>
+</ul>
+</li>
+<li><div> You can see that Blender has actually drawn the scene onto the cube. This is exactly what we want. Now to save the image.</div>
+</li>
+<li><div> Select the texture of the cube and select save environment map.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/saveenvmap.png"></div>
+</li>
+</ul>
+</li>
+<li><div> That is it for Blender. Open the saved image in some image editor (I use the Gimp from <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.gimp.org"><param name="text" value="<html><u>http://www.gimp.org</u></html>"><param name="textColor" value="blue"></object> here).</div>
+</li>
+</ul>
 
 <p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/saveenvmap.png">
-</p>
 
-<p>
-That is it for Blender. Open the saved image in some image editor (I use the Gimp from <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.gimp.org"><param name="text" value="<html><u>http://www.gimp.org</u></html>"><param name="textColor" value="blue"></object> here).
 <p><div>The <acronym title="Software Development Kit">SDK</acronym> also contains an image editor, right-click the image and select &quot;edit image&quot; to open it.
 </div></p>
-You will notice that Blender has taken the 6 sides of the cube and pasted together into one image (3x2). So now we need to cut it up again into 6 separate images. In gimp I usually set the guides to where I want to cut and then go into Filters???Web???Slice and let gimp cut it up for me.
-</p>
 
-<p>
-<img src="nbdocs:/com/jme3/gde/docs/jme3/external/post-slice.png">
 </p>
+<ul>
+<li><div> You will notice that Blender has taken the 6 sides of the cube and pasted together into one image (3x2). So now we need to cut it up again into 6 separate images. In gimp I usually set the guides to where I want to cut and then go into Filters???Web???Slice and let gimp cut it up for me.</div>
+<ul>
+<li><div> <img src="nbdocs:/com/jme3/gde/docs/jme3/external/post-slice.png"></div>
+</li>
+</ul>
+</li>
+<li><div> Next up is to move the image files into your assets directory and create the sky in jME. You can do that in the Scene Composer by right clicking the scene node, select <code>Add Spatial</code> and then select <code>Skybox</code>.</div>
+</li>
+</ul>
 
 <p>
-Next up is to move the image files into your assets directory and create the sky in jME. You can do that in the Scene Composer by right clicking the scene node, select <code>Add Spatial</code> and then select <code>Skybox</code>.
 If you want to do it from code, here is an example:
 </p>
 <pre>public void simpleInitApp&#40;&#41; &#123;
@@ -532,7 +548,7 @@ If you want to do it from code, here is an example:
 </p>
 
 </div>
-<!-- EDIT13 SECTION "SkyBox baking" [11230-15837] -->
+<!-- EDIT13 SECTION "SkyBox baking" [11655-16338] -->
 <h3><a>Further reading</a></h3>
 <div>
 <ul>
@@ -543,5 +559,5 @@ If you want to do it from code, here is an example:
 </ul>
 
 </div>
-<!-- EDIT14 SECTION "Further reading" [15838-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:external:blender?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT14 SECTION "Further reading" [16339-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:external:blender?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 8040bc8..a823892 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_apply_bones.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_apply_bones.png differ
index 285d40c..f1de050 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_apply_mesh.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_apply_mesh.png differ
index 4f8ecfa..4621480 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_envelopes.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_envelopes.png differ
index 95da95b..bf2f1f5 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_finished.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_finished.png differ
index 5fa5227..b8bf546 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_rootbone.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/external/blender_rootbone.png differ
index a8d80c6..df52ea0 100644 (file)
@@ -154,11 +154,12 @@ this.assetManager.registerLocator&#40;&quot;town.zip&quot;, ZipLocator.class&#41
 
 <p>
 
+Note that you should not register every single folder containing a texture as the assetmanager will not be able to discern between images with the same name anymore.
 <strong>Learn more:</strong> <a href="/com/jme3/gde/docs/jme3/advanced/asset_manager.html">Asset Manager</a>
 </p>
 
 </div>
-<!-- EDIT13 SECTION "Why do I get AssetNotFoundException when loading X ?" [5426-6308] -->
+<!-- EDIT13 SECTION "Why do I get AssetNotFoundException when loading X ?" [5426-6474] -->
 <h3><a>How do I Create 3-D models, textures, sounds?</a></h3>
 <div>
 
@@ -174,7 +175,7 @@ You create sounds in an audio editor, for example, Audacity, and export them as
 </p>
 
 </div>
-<!-- EDIT14 SECTION "How do I Create 3-D models, textures, sounds?" [6309-7306] -->
+<!-- EDIT14 SECTION "How do I Create 3-D models, textures, sounds?" [6475-7472] -->
 <h3><a>How do I load a 3-D model into the scene?</a></h3>
 <div>
 
@@ -194,7 +195,7 @@ Spatial ninja = assetManager.loadModel&#40;&quot;Models/Ninja/Ninja.j3o&quot;&#4
 </p>
 
 </div>
-<!-- EDIT15 SECTION "How do I load a 3-D model into the scene?" [7307-8512] -->
+<!-- EDIT15 SECTION "How do I load a 3-D model into the scene?" [7473-8678] -->
 <h3><a>How do initialize the scene?</a></h3>
 <div>
 
@@ -205,12 +206,12 @@ Use the simpleInitApp() method in SimpleApplication (or initApp() in Application
 </p>
 
 </div>
-<!-- EDIT16 SECTION "How do initialize the scene?" [8513-8845] -->
+<!-- EDIT16 SECTION "How do initialize the scene?" [8679-9011] -->
 <h2><a>I want to transform objects in the scene</a></h2>
 <div>
 
 </div>
-<!-- EDIT17 SECTION "I want to transform objects in the scene" [8846-8898] -->
+<!-- EDIT17 SECTION "I want to transform objects in the scene" [9012-9064] -->
 <h3><a>How do I move or turn or resize a spatial?</a></h3>
 <div>
 
@@ -226,7 +227,7 @@ To move or turn or resize a spatial you use transformations. You can concatenate
 </p>
 
 </div>
-<!-- EDIT18 SECTION "How do I move or turn or resize a spatial?" [8899-9480] -->
+<!-- EDIT18 SECTION "How do I move or turn or resize a spatial?" [9065-9646] -->
 <h3><a>How do I make a spatial move by itself?</a></h3>
 <div>
 
@@ -239,7 +240,7 @@ Change the geometry&#039;s translation (position) live in the update loop using
 </p>
 
 </div>
-<!-- EDIT19 SECTION "How do I make a spatial move by itself?" [9481-10344] -->
+<!-- EDIT19 SECTION "How do I make a spatial move by itself?" [9647-10510] -->
 <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>
@@ -250,7 +251,7 @@ Change the geometry&#039;s translation (position) live in the update loop using
 </p>
 
 </div>
-<!-- EDIT20 SECTION "How do I access a named sub-mesh in Model?" [10345-10512] -->
+<!-- EDIT20 SECTION "How do I access a named sub-mesh in Model?" [10511-10678] -->
 <h3><a>How do I make procedural or custom shapes?</a></h3>
 <div>
 
@@ -261,12 +262,12 @@ You can programmatically create com.jme3.scene.Mesh&#039;es.
 </p>
 
 </div>
-<!-- EDIT21 SECTION "How do I make procedural or custom shapes?" [10513-10673] -->
+<!-- EDIT21 SECTION "How do I make procedural or custom shapes?" [10679-10839] -->
 <h2><a>I want to change the surface of objects in the scene</a></h2>
 <div>
 
 </div>
-<!-- EDIT22 SECTION "I want to change the surface of objects in the scene" [10674-10738] -->
+<!-- EDIT22 SECTION "I want to change the surface of objects in the scene" [10840-10904] -->
 <h3><a>Why is my UV wrapping / texture appearance all wrong?</a></h3>
 <div>
 
@@ -284,7 +285,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>
-<!-- EDIT23 SECTION "Why is my UV wrapping / texture appearance all wrong?" [10739-11288] -->
+<!-- EDIT23 SECTION "Why is my UV wrapping / texture appearance all wrong?" [10905-11454] -->
 <h3><a>How do I scale, mirror, or wrap a texture?</a></h3>
 <div>
 
@@ -302,7 +303,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>
-<!-- EDIT24 SECTION "How do I scale, mirror, or wrap a texture?" [11289-11830] -->
+<!-- EDIT24 SECTION "How do I scale, mirror, or wrap a texture?" [11455-11996] -->
 <h3><a>How do I change color or shininess of an material?</a></h3>
 <div>
 
@@ -315,7 +316,7 @@ Use the AssetManager to load Materials, and change material settings.
 </p>
 
 </div>
-<!-- EDIT25 SECTION "How do I change color or shininess of an material?" [11831-12418] -->
+<!-- EDIT25 SECTION "How do I change color or shininess of an material?" [11997-12584] -->
 <h3><a>How do I make a surface wood, stone, metal, etc?</a></h3>
 <div>
 
@@ -328,7 +329,7 @@ Create Textures as image files. Use the AssetManager to load a Material and use
 </p>
 
 </div>
-<!-- EDIT26 SECTION "How do I make a surface wood, stone, metal, etc?" [12419-13192] -->
+<!-- EDIT26 SECTION "How do I make a surface wood, stone, metal, etc?" [12585-13358] -->
 <h3><a>Why are materials too bright, too dark, or flickering?</a></h3>
 <div>
 
@@ -337,7 +338,7 @@ If you use a lit material (based on Lighting.j3md) then you must attach a light
 </p>
 
 </div>
-<!-- EDIT27 SECTION "Why are materials too bright, too dark, or flickering?" [13193-14006] -->
+<!-- EDIT27 SECTION "Why are materials too bright, too dark, or flickering?" [13359-14172] -->
 <h3><a>How do I make geometries cast a shadow?</a></h3>
 <div>
 
@@ -350,7 +351,7 @@ Use com.jme3.shadow.BasicShadowRenderer together with com.jme3.light.Directional
 </p>
 
 </div>
-<!-- EDIT28 SECTION "How do I make geometries cast a shadow?" [14007-14515] -->
+<!-- EDIT28 SECTION "How do I make geometries cast a shadow?" [14173-14681] -->
 <h3><a>How do I make materials transparent?</a></h3>
 <div>
 
@@ -366,7 +367,7 @@ Assign a texture with an alpha channel to a Material and set the Material&#039;s
 </p>
 
 </div>
-<!-- EDIT29 SECTION "How do I make materials transparent?" [14516-14952] -->
+<!-- EDIT29 SECTION "How do I make materials transparent?" [14682-15118] -->
 <h3><a>How do I force or disable culling?</a></h3>
 <div>
 
@@ -390,7 +391,7 @@ You can also deactivate the <code>com.jme3.scene.Spatial.CullHint</code> of a wh
 </p>
 
 </div>
-<!-- EDIT30 SECTION "How do I force or disable culling?" [14953-15501] -->
+<!-- EDIT30 SECTION "How do I force or disable culling?" [15119-15667] -->
 <h3><a>Can I draw only an outline of the scene?</a></h3>
 <div>
 
@@ -406,12 +407,12 @@ Add a renders state to the material&#039;s and activate <code>Wireframe</code>.
 </p>
 
 </div>
-<!-- EDIT31 SECTION "Can I draw only an outline of the scene?" [15502-15738] -->
+<!-- EDIT31 SECTION "Can I draw only an outline of the scene?" [15668-15904] -->
 <h2><a>I want to control the camera</a></h2>
 <div>
 
 </div>
-<!-- EDIT32 SECTION "I want to control the camera" [15739-15779] -->
+<!-- EDIT32 SECTION "I want to control the camera" [15905-15945] -->
 <h3><a>How do I switch between third-person and first-person view ?</a></h3>
 <div>
 
@@ -433,18 +434,18 @@ chaseCam = new ChaseCamera&#40;cam, spatial, inputManager&#41;;</pre>
 </ul>
 
 </div>
-<!-- EDIT33 SECTION "How do I switch between third-person and first-person view ?" [15780-16836] -->
+<!-- EDIT33 SECTION "How do I switch between third-person and first-person view ?" [15946-17002] -->
 <h3><a>How do I increase camera speed?</a></h3>
 <div>
 <pre>flyCam.setMoveSpeed&#40;50f&#41;;</pre>
 
 </div>
-<!-- EDIT34 SECTION "How do I increase camera speed?" [16837-16923] -->
+<!-- EDIT34 SECTION "How do I increase camera speed?" [17003-17089] -->
 <h2><a>Actions, Interactions, Physics</a></h2>
 <div>
 
 </div>
-<!-- EDIT35 SECTION "Actions, Interactions, Physics" [16924-16966] -->
+<!-- EDIT35 SECTION "Actions, Interactions, Physics" [17090-17132] -->
 <h3><a>How do I implement game logic / game mechanics?</a></h3>
 <div>
 
@@ -455,7 +456,7 @@ Use Controls to define the behaviour of types of Spatials. Use Application State
 </p>
 
 </div>
-<!-- EDIT36 SECTION "How do I implement game logic / game mechanics?" [16967-17528] -->
+<!-- EDIT36 SECTION "How do I implement game logic / game mechanics?" [17133-17694] -->
 <h3><a>How do I let players interact via keyboard?</a></h3>
 <div>
 
@@ -466,7 +467,7 @@ Use com.jme3.input.KeyInput and a Input Listener.
 </p>
 
 </div>
-<!-- EDIT37 SECTION "How do I let players interact via keyboard?" [17529-17736] -->
+<!-- EDIT37 SECTION "How do I let players interact via keyboard?" [17695-17902] -->
 <h3><a>How do I let players interact by clicking?</a></h3>
 <div>
 
@@ -479,7 +480,7 @@ Players typically click the mouse to pick up objects, to open doors, to shoot a
 </p>
 
 </div>
-<!-- EDIT38 SECTION "How do I let players interact by clicking?" [17737-18561] -->
+<!-- EDIT38 SECTION "How do I let players interact by clicking?" [17903-18727] -->
 <h3><a>How do I animate characters?</a></h3>
 <div>
 
@@ -492,7 +493,7 @@ Create an animated OgreMesh model with bones in a 3-D mesh editor (e.g. Blender)
 </p>
 
 </div>
-<!-- EDIT39 SECTION "How do I animate characters?" [18562-19033] -->
+<!-- EDIT39 SECTION "How do I animate characters?" [18728-19199] -->
 <h3><a>How do I keep players from falling through walls and floors?</a></h3>
 <div>
 
@@ -503,7 +504,7 @@ Use collision detection. The most common solution is to use jme&#039;s physics i
 </p>
 
 </div>
-<!-- EDIT40 SECTION "How do I keep players from falling through walls and floors?" [19034-19396] -->
+<!-- EDIT40 SECTION "How do I keep players from falling through walls and floors?" [19200-19562] -->
 <h3><a>How do I make balls/wheels/etc bounce and roll?</a></h3>
 <div>
 
@@ -516,7 +517,7 @@ Add physics controls to Spatials and give them spherical or cylindrical bounding
 </p>
 
 </div>
-<!-- EDIT41 SECTION "How do I make balls/wheels/etc bounce and roll?" [19397-19994] -->
+<!-- EDIT41 SECTION "How do I make balls/wheels/etc bounce and roll?" [19563-20160] -->
 <h3><a>How do I debug weird Physics behaviour?</a></h3>
 <div>
 
@@ -526,7 +527,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>
-<!-- EDIT42 SECTION "How do I debug weird Physics behaviour?" [19995-20308] -->
+<!-- EDIT42 SECTION "How do I debug weird Physics behaviour?" [20161-20474] -->
 <h3><a>How do I make a walking character?</a></h3>
 <div>
 
@@ -539,7 +540,7 @@ Code samples: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplay
 </p>
 
 </div>
-<!-- EDIT43 SECTION "How do I make a walking character?" [20309-20867] -->
+<!-- EDIT43 SECTION "How do I make a walking character?" [20475-21033] -->
 <h3><a>How do I steer vehicles?</a></h3>
 <div>
 
@@ -552,7 +553,7 @@ Code samples: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplay
 </p>
 
 </div>
-<!-- EDIT44 SECTION "How do I steer vehicles?" [20868-21235] -->
+<!-- EDIT44 SECTION "How do I steer vehicles?" [21034-21401] -->
 <h3><a>Can objects swing like a pendulums, chains, ropebridges?</a></h3>
 <div>
 
@@ -564,12 +565,12 @@ Use a PhysicsControl&#039;s hinges and joints.
 </p>
 
 </div>
-<!-- EDIT45 SECTION "Can objects swing like a pendulums, chains, ropebridges?" [21236-21636] -->
+<!-- EDIT45 SECTION "Can objects swing like a pendulums, chains, ropebridges?" [21402-21802] -->
 <h2><a>Default GUI Display</a></h2>
 <div>
 
 </div>
-<!-- EDIT46 SECTION "Default GUI Display" [21637-21668] -->
+<!-- EDIT46 SECTION "Default GUI Display" [21803-21834] -->
 <h3><a>What are these FPS/Objects/Vertices/Triangles statistics?</a></h3>
 <div>
 
@@ -581,7 +582,7 @@ At the bottom left of every default SimpleGame, you see the <a href="/com/jme3/g
 </p>
 
 </div>
-<!-- EDIT47 SECTION "What are these FPS/Objects/Vertices/Triangles statistics?" [21669-22196] -->
+<!-- EDIT47 SECTION "What are these FPS/Objects/Vertices/Triangles statistics?" [21835-22362] -->
 <h3><a>How do I get rid of the FPS/Objects statistics?</a></h3>
 <div>
 
@@ -600,7 +601,7 @@ setDisplayStatView(false); // to hide the statistics </pre>
 </p>
 
 </div>
-<!-- EDIT48 SECTION "How do I get rid of the FPS/Objects statistics?" [22197-22461] -->
+<!-- EDIT48 SECTION "How do I get rid of the FPS/Objects statistics?" [22363-22627] -->
 <h3><a>How do I display score, health, mini-maps, status icons?</a></h3>
 <div>
 
@@ -613,7 +614,7 @@ Attach text and pictures to the orthogonal <code>guiNode</code> to create a head
 </p>
 
 </div>
-<!-- EDIT49 SECTION "How do I display score, health, mini-maps, status icons?" [22462-23054] -->
+<!-- EDIT49 SECTION "How do I display score, health, mini-maps, status icons?" [22628-23220] -->
 <h3><a>How do I display buttons and UI controls?</a></h3>
 <div>
 
@@ -626,7 +627,7 @@ Sample Code: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplaye
 </p>
 
 </div>
-<!-- EDIT50 SECTION "How do I display buttons and UI controls?" [23055-23499] -->
+<!-- EDIT50 SECTION "How do I display buttons and UI controls?" [23221-23665] -->
 <h3><a>How do i display a loading screen?</a></h3>
 <div>
 
@@ -637,12 +638,12 @@ Instead of having a frozen frame while your games loads, you can have a loading
 </p>
 
 </div>
-<!-- EDIT51 SECTION "How do i display a loading screen?" [23500-23716] -->
+<!-- EDIT51 SECTION "How do i display a loading screen?" [23666-23882] -->
 <h2><a>Nifty GUI</a></h2>
 <div>
 
 </div>
-<!-- EDIT52 SECTION "Nifty GUI" [23717-23738] -->
+<!-- EDIT52 SECTION "Nifty GUI" [23883-23904] -->
 <h3><a>I get NoSuchElementException when adding controls (buttons etc)!</a></h3>
 <div>
 
@@ -653,7 +654,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>
-<!-- EDIT53 SECTION "I get NoSuchElementException when adding controls (buttons etc)!" [23739-23974] -->
+<!-- EDIT53 SECTION "I get NoSuchElementException when adding controls (buttons etc)!" [23905-24140] -->
 <h3><a>Where can I find example code of Nifty GUI&#039;s XML and Java classes?</a></h3>
 <div>
 
@@ -662,7 +663,7 @@ Verify that you include a controls definition file link in your <acronym title="
 </p>
 
 </div>
-<!-- EDIT54 SECTION "Where can I find example code of Nifty GUI's XML and Java classes?" [23975-24137] -->
+<!-- EDIT54 SECTION "Where can I find example code of Nifty GUI's XML and Java classes?" [24141-24303] -->
 <h3><a>Is there Java Doc for Nifty GUI?</a></h3>
 <div>
 
@@ -671,12 +672,12 @@ Verify that you include a controls definition file link in your <acronym title="
 </p>
 
 </div>
-<!-- EDIT55 SECTION "Is there Java Doc for Nifty GUI?" [24138-24263] -->
+<!-- EDIT55 SECTION "Is there Java Doc for Nifty GUI?" [24304-24429] -->
 <h2><a>I want to create an environment with sounds, effects, and landscapes</a></h2>
 <div>
 
 </div>
-<!-- EDIT56 SECTION "I want to create an environment with sounds, effects, and landscapes" [24264-24344] -->
+<!-- EDIT56 SECTION "I want to create an environment with sounds, effects, and landscapes" [24430-24510] -->
 <h3><a>How do I play sounds and noises?</a></h3>
 <div>
 
@@ -689,7 +690,7 @@ Use AudioRenderer, Listener, and AudioNode from com.jme3.audio.*.
 </p>
 
 </div>
-<!-- EDIT57 SECTION "How do I play sounds and noises?" [24345-24648] -->
+<!-- EDIT57 SECTION "How do I play sounds and noises?" [24511-24814] -->
 <h3><a>How do I make fire, smoke, explosions, swarms, magic spells?</a></h3>
 <div>
 
@@ -702,7 +703,7 @@ For swarm like effects you use particle emitters.
 </p>
 
 </div>
-<!-- EDIT58 SECTION "How do I make fire, smoke, explosions, swarms, magic spells?" [24649-25304] -->
+<!-- EDIT58 SECTION "How do I make fire, smoke, explosions, swarms, magic spells?" [24815-25470] -->
 <h3><a>How do I make water, waves, reflections?</a></h3>
 <div>
 
@@ -715,7 +716,7 @@ Use a special post-processor renderer from com.jme3.water.*.
 </p>
 
 </div>
-<!-- EDIT59 SECTION "How do I make water, waves, reflections?" [25305-26065] -->
+<!-- EDIT59 SECTION "How do I make water, waves, reflections?" [25471-26231] -->
 <h3><a>How do I make fog, bloom, blur, light scattering?</a></h3>
 <div>
 
@@ -726,7 +727,7 @@ Use special post-processor renderers from com.jme3.post.*.
 </p>
 
 </div>
-<!-- EDIT60 SECTION "How do I make fog, bloom, blur, light scattering?" [26066-26240] -->
+<!-- EDIT60 SECTION "How do I make fog, bloom, blur, light scattering?" [26232-26406] -->
 <h3><a>How do I generate a terrain?</a></h3>
 <div>
 
@@ -739,7 +740,7 @@ Use com.jme3.terrain.*. The JMonkeyEngine also provides you with a Terrain Edito
 </p>
 
 </div>
-<!-- EDIT61 SECTION "How do I generate a terrain?" [26241-26624] -->
+<!-- EDIT61 SECTION "How do I generate a terrain?" [26407-26790] -->
 <h3><a>How do I make a sky?</a></h3>
 <div>
 
@@ -757,12 +758,12 @@ skyGeo.setQueueBucket&#40;Bucket.Sky&#41; </pre>
 </p>
 
 </div>
-<!-- EDIT62 SECTION "How do I make a sky?" [26625-27004] -->
+<!-- EDIT62 SECTION "How do I make a sky?" [26791-27170] -->
 <h2><a>I want to access to back-end properties</a></h2>
 <div>
 
 </div>
-<!-- EDIT63 SECTION "I want to access to back-end properties" [27005-27056] -->
+<!-- EDIT63 SECTION "I want to access to back-end properties" [27171-27222] -->
 <h3><a>How do I read out graphic card capabilities?</a></h3>
 <div>
 
@@ -774,7 +775,7 @@ If your game is heavily using features that older cards do not support, you can
 Logger.getLogger&#40;HelloJME3.class.getName&#40;&#41;&#41;.log&#40;Level.INFO, &quot;Capabilities: {0}&quot;, caps.toString&#40;&#41;&#41;;</pre>
 
 </div>
-<!-- EDIT64 SECTION "How do I read out graphic card capabilities?" [27057-27492] -->
+<!-- EDIT64 SECTION "How do I read out graphic card capabilities?" [27223-27658] -->
 <h3><a>How do I Run jMonkeyEngine 3 with OpenGL1?</a></h3>
 <div>
 
@@ -791,7 +792,7 @@ For the jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> it
 </p>
 
 </div>
-<!-- EDIT65 SECTION "How do I Run jMonkeyEngine 3 with OpenGL1?" [27493-27772] -->
+<!-- EDIT65 SECTION "How do I Run jMonkeyEngine 3 with OpenGL1?" [27659-27938] -->
 <h3><a>How do I optimize the heck out of the Scene Graph?</a></h3>
 <div>
 
@@ -808,7 +809,7 @@ Batching means that all Geometries with the same Material are combined into one
 </p>
 
 </div>
-<!-- EDIT66 SECTION "How do I optimize the heck out of the Scene Graph?" [27773-28242] -->
+<!-- EDIT66 SECTION "How do I optimize the heck out of the Scene Graph?" [27939-28408] -->
 <h3><a>How do I prevent users from unzipping my JAR?</a></h3>
 <div>
 
@@ -818,12 +819,12 @@ Add an <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><pa
 </p>
 
 </div>
-<!-- EDIT67 SECTION "How do I prevent users from unzipping my JAR?" [28243-28492] -->
+<!-- EDIT67 SECTION "How do I prevent users from unzipping my JAR?" [28409-28658] -->
 <h2><a>I want to do maths</a></h2>
 <div>
 
 </div>
-<!-- EDIT68 SECTION "I want to do maths" [28493-28523] -->
+<!-- EDIT68 SECTION "I want to do maths" [28659-28689] -->
 <h3><a>What does addLocal() / multLocal() etc mean?</a></h3>
 <div>
 
@@ -841,7 +842,7 @@ Many maths functions (mult(), add(), subtract(), etc) come as local and a non-lo
 </li>
 </ul>
 </li>
-<li><div> Example 2: <code>v.mult(b).add(b);</code> <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="middle" alt=":!:"/></div>
+<li><div> Example 2: <code>v.mult(b).add(b);</code> <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="middle" alt=":!:" /></div>
 <ul>
 <li><div> <strong>Watch out:</strong> This calculates the expected result, but unless you actually use the return value, it is discarded!</div>
 </li>
@@ -876,7 +877,7 @@ Many maths functions (mult(), add(), subtract(), etc) come as local and a non-lo
 </ol>
 
 </div>
-<!-- EDIT69 SECTION "What does addLocal() / multLocal() etc mean?" [28524-29885] -->
+<!-- EDIT69 SECTION "What does addLocal() / multLocal() etc mean?" [28690-30051] -->
 <h3><a>What is the difference between World and Local coordinates?</a></h3>
 <div>
 
@@ -886,7 +887,7 @@ World coordinates of a Spatial are its absolute coordinates in the 3D scene (thi
 </p>
 
 </div>
-<!-- EDIT70 SECTION "What is the difference between World and Local coordinates?" [29886-30195] -->
+<!-- EDIT70 SECTION "What is the difference between World and Local coordinates?" [30052-30361] -->
 <h3><a>How do I convert Degrees to Radians?</a></h3>
 <div>
 
@@ -900,5 +901,5 @@ Multiply degree value by FastMath.DEG_TO_RAD to convert it to radians.
 </span></div>
 
 </div>
-<!-- EDIT71 SECTION "How do I convert Degrees to Radians?" [30196-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:faq?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT71 SECTION "How do I convert Degrees to Radians?" [30362-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:faq?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index eb54512..b6df625 100644 (file)
@@ -208,4 +208,4 @@ Provide the unique name of your jME3 application as the String argument. For exa
 
 </div>
 <!-- EDIT10 SECTION "Saving and Loading Settings" [7446-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:appsettings?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:appsettings?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 9b7ec05..b45f8f2 100644 (file)
@@ -33,28 +33,31 @@ As a quick overview, answer yourself the following questions:
 <ul>
 <li><div> Motivation</div>
 <ul>
-<li><div> Sum up your game idea in one sentence. If you can&#039;t, it&#039;s too complicated.</div>
+<li><div> Sum up your game idea in one catchy sentence. If you can&#039;t, it&#039;s too complicated. <br/>
+E.g. &quot;Craft by day, fight by night!&quot;</div>
 </li>
-<li><div> Who&#039;s the target group? Are you making it for yourself or are you trying to attract the masses?</div>
+<li><div> Who&#039;s the target group? Are you making it for your friends or are you trying to attract the masses?</div>
 </li>
 </ul>
 </li>
 <li><div> Game type</div>
 <ul>
-<li><div> Point of view (camera)? What character(s) does the player control? (if applicable)</div>
+<li><div> Point of view (first- or third-person camera)? What characters does the player control? (if applicable)</div>
 </li>
 <li><div> Time- or turn-based?</div>
 </li>
-<li><div> Genre, setting, background story? (If applicable)</div>
+<li><div> Genre (drama, horror, adventure, mystery, comedy, educational, documentary)? </div>
+</li>
+<li><div> Setting and background story? (historic, fantasy, anime, futuristic, utopia/dystopia, pirate, zombie, vampire???)? </div>
 </li>
 </ul>
 </li>
 <li><div> Gameplay</div>
 <ul>
-<li><div> What is the start state, what is the end state (if any)?</div>
+<li><div> What is the start state, what is the end state? (if applicable)</div>
 </li>
 <li><div> What resources does the player manage? How are resources gained, transformed, spent? <br/>
-E.g. speed, gold, health, &quot;points&quot;.</div>
+E.g. &quot;points&quot;, health, speed, gold, xp, mana.</div>
 </li>
 <li><div> How does the player interact? Define rules, challenges, game mechanics.</div>
 </li>
@@ -71,9 +74,9 @@ E.g. models, terrains; materials, textures; noises, music, voices; video, cutsce
 </li>
 <li><div> Interface</div>
 <ul>
-<li><div> Can you achieve a high degree of input control? Even minor navigation and interaction glitches make the game unsolvable.</div>
+<li><div> Can you achieve a high degree of input control? (Even minor navigation and interaction glitches make the game unsolvable.)</div>
 </li>
-<li><div> Decide how to reflect current status, and changes in game states. E.g. health/damage.</div>
+<li><div> Decide how to reflect current status, and changes in game states. E.g. health/damage in HUD.</div>
 </li>
 <li><div> Decide how to reward good moves and discourage bad ones.</div>
 </li>
@@ -82,7 +85,7 @@ E.g. models, terrains; materials, textures; noises, music, voices; video, cutsce
 </ul>
 
 </div>
-<!-- EDIT3 SECTION "Requirements Gathering" [635-2013] -->
+<!-- EDIT3 SECTION "Requirements Gathering" [635-2261] -->
 <h3><a>Planning Development Milestones</a></h3>
 <div>
 
@@ -144,7 +147,7 @@ How you name or number these stages is fully up to your team. Development teams
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Planning Development Milestones" [2014-3798] -->
+<!-- EDIT4 SECTION "Planning Development Milestones" [2262-4046] -->
 <h3><a>Use File Version Control</a></h3>
 <div>
 
@@ -163,7 +166,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" [3799-4631] -->
+<!-- EDIT5 SECTION "Use File Version Control" [4047-4879] -->
 <h2><a>Multi-Media Asset Pipeline</a></h2>
 <div>
 <div><table>
@@ -189,14 +192,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>
-<!-- EDIT7 TABLE [4672-5558] -->
+<!-- EDIT7 TABLE [4920-5806] -->
 <p>
 
 Learn details about the <a href="/com/jme3/gde/docs/jme3/intermediate/multi-media_asset_pipeline.html">Multi-Media Asset Pipeline</a> here.
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Multi-Media Asset Pipeline" [4632-5641] -->
+<!-- EDIT6 SECTION "Multi-Media Asset Pipeline" [4880-5889] -->
 <h2><a>Development Phase</a></h2>
 <div>
 
@@ -208,7 +211,7 @@ Even for large experienced game producers, the creation of such a complex game i
 </p>
 
 </div>
-<!-- EDIT8 SECTION "Development Phase" [5642-6291] -->
+<!-- EDIT8 SECTION "Development Phase" [5890-6539] -->
 <h3><a>Extend SimpleApplication</a></h3>
 <div>
 
@@ -233,7 +236,7 @@ Also, your own framework gives all your games a common look and feel.
 </p>
 
 </div>
-<!-- EDIT9 SECTION "Extend SimpleApplication" [6292-7575] -->
+<!-- EDIT9 SECTION "Extend SimpleApplication" [6540-7823] -->
 <h3><a>Where to Start?</a></h3>
 <div>
 
@@ -261,7 +264,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?" [7576-8943] -->
+<!-- EDIT10 SECTION "Where to Start?" [7824-9191] -->
 <h3><a>The Smart Way to Add Custom Methods and Fields</a></h3>
 <div>
 
@@ -302,7 +305,7 @@ Example: Players have <strong>methods</strong> such as <code>walk(), addGold(),
 </p>
 
 <p>
-If your game is even more complex, you may want to learn about &quot;real&quot; Entity Systems, which form a quite different programming paradigm from object oriented coding but are scalable to very large proportions. Note however that this topic is very unintuitive to handle for an OOP programmer and you should really decide on a case basis if you really need this or not and gather some experiences before diving head first into a MMO project <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)"/>
+If your game is even more complex, you may want to learn about &quot;real&quot; Entity Systems, which form a quite different programming paradigm from object oriented coding but are scalable to very large proportions. Note however that this topic is very unintuitive to handle for an OOP programmer and you should really decide on a case basis if you really need this or not and gather some experiences before diving head first into a MMO project <img src="/wiki/lib/images/smileys/icon_smile.gif" class="middle" alt=":-)" />
 </p>
 <ul>
 <li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/"><param name="text" value="<html><u>http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/</u></html>"><param name="textColor" value="blue"></object> </div>
@@ -320,7 +323,7 @@ If your game is even more complex, you may want to learn about &quot;real&quot;
 </ul>
 
 </div>
-<!-- EDIT11 SECTION "The Smart Way to Add Custom Methods and Fields" [8944-12067] -->
+<!-- EDIT11 SECTION "The Smart Way to Add Custom Methods and Fields" [9192-12315] -->
 <h3><a>The Smart Way to Access Game Features</a></h3>
 <div>
 
@@ -338,7 +341,7 @@ An AppState has access to all game features in the SimpleApplication via the <co
 this.app.getRootNode&#40;&#41;.attachChild&#40; sky &#41;;</pre>
 
 </div>
-<!-- EDIT12 SECTION "The Smart Way to Access Game Features" [12068-12905] -->
+<!-- EDIT12 SECTION "The Smart Way to Access Game Features" [12316-13153] -->
 <h3><a>The Smart Way to Implement Game Logic</a></h3>
 <div>
 
@@ -400,7 +403,7 @@ Read all about <a href="/com/jme3/gde/docs/jme3/advanced/custom_controls.html">C
 </p>
 
 </div>
-<!-- EDIT13 SECTION "The Smart Way to Implement Game Logic" [12906-15708] -->
+<!-- EDIT13 SECTION "The Smart Way to Implement Game Logic" [13154-15956] -->
 <h3><a>Optimize Application Performance</a></h3>
 <div>
 <ul>
@@ -413,7 +416,7 @@ Read all about <a href="/com/jme3/gde/docs/jme3/advanced/custom_controls.html">C
 </ul>
 
 </div>
-<!-- EDIT14 SECTION "Optimize Application Performance" [15709-16432] -->
+<!-- EDIT14 SECTION "Optimize Application Performance" [15957-16680] -->
 <h3><a>Don&#039;t Mess With Geometric State</a></h3>
 <div>
 
@@ -431,7 +434,7 @@ Read all about <a href="/com/jme3/gde/docs/jme3/advanced/custom_controls.html">C
 </ul>
 
 </div>
-<!-- EDIT15 SECTION "Don't Mess With Geometric State" [16433-16922] -->
+<!-- EDIT15 SECTION "Don't Mess With Geometric State" [16681-17170] -->
 <h3><a>Maintain Internal Documentation</a></h3>
 <div>
 
@@ -454,7 +457,7 @@ Treat javadoc as messages to your future self. &quot;genNextVal() generates the
 </p>
 
 </div>
-<!-- EDIT16 SECTION "Maintain Internal Documentation" [16923-17659] -->
+<!-- EDIT16 SECTION "Maintain Internal Documentation" [17171-17907] -->
 <h2><a>Debugging and Test Phase</a></h2>
 <div>
 
@@ -480,12 +483,12 @@ Treat javadoc as messages to your future self. &quot;genNextVal() generates the
 </p>
 
 </div>
-<!-- EDIT17 SECTION "Debugging and Test Phase" [17660-20276] -->
+<!-- EDIT17 SECTION "Debugging and Test Phase" [17908-20524] -->
 <h2><a>Release Phase</a></h2>
 <div>
 
 </div>
-<!-- EDIT18 SECTION "Release Phase" [20277-20303] -->
+<!-- EDIT18 SECTION "Release Phase" [20525-20551] -->
 <h3><a>Pre-Release To-Do List</a></h3>
 <div>
 <ul>
@@ -510,7 +513,7 @@ Treat javadoc as messages to your future self. &quot;genNextVal() generates the
 </ul>
 
 </div>
-<!-- EDIT19 SECTION "Pre-Release To-Do List" [20304-21255] -->
+<!-- EDIT19 SECTION "Pre-Release To-Do List" [20552-21503] -->
 <h3><a>Distributing the Executables</a></h3>
 <div>
 
@@ -548,7 +551,7 @@ Decide whether you want to release your game as WebStart, desktop JAR, mobile AP
 (.APK)</td><td>Game runs on Android devices.</td><td>Android devices do not support post-procesor effects.</td>
        </tr>
 </table></div>
-<!-- EDIT21 TABLE [21709-22929] -->
+<!-- EDIT21 TABLE [21957-23177] -->
 <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.
@@ -558,7 +561,16 @@ Which ever method you choose, a Java-Application works on the main operating sys
 The distribution appears in a newly generated <code>dist</code> directory inside your project directory. These are the files that you upload or burn to CD to distribute to your customers.
 
 </p>
+<hr />
+
+<p>
+See also:
+</p>
+<ul>
+<li><div> <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.gamedev.net/page/resources/_/creative/game-design/developing-your-game-concept-by-making-a-design-document-r3004"><param name="text" value="<html><u>gamedev.net: Developing Your Game Concept By Making A Design Document</u></html>"><param name="textColor" value="blue"></object></div>
+</li>
+</ul>
 
 </div>
-<!-- EDIT20 SECTION "Distributing the Executables" [21256-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:best_practices?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT20 SECTION "Distributing the Executables" [21504-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:best_practices?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index c404239..86a1ec8 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/coordinate-system.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/jme3/intermediate/coordinate-system.png differ
index 19f9457..c16629d 100644 (file)
@@ -46,9 +46,17 @@ Each custom .j3m Material is based on a material definition. Advanced users can
                <td>.OBJ, .MTL</td><td>3D model</td><td>Wavefront</td>
        </tr>
        <tr>
-               <td>.blend</td><td>3D model</td><td>Blender version 2.49 or 2.5x</td>
+               <td>.blend</td><td>3D model</td><td>Blender version 2.49 onwards (tested up to 2.65)</td>
        </tr>
        <tr>
+               <td>COLLADA</td><td> 3D model</td><td>Imported via Blender bundled with the <acronym title="Software Development Kit">SDK</acronym></td>
+       </tr>
+       <tr>
+               <td>3DS</td><td>3D model</td><td>Imported via Blender bundled with the <acronym title="Software Development Kit">SDK</acronym></td>
+       </tr>
+</table></div>
+<!-- EDIT5 TABLE [1113-1440] --><div><table>
+       <tr>
                <td>.<acronym title="Joint Photographics Experts Group">JPG</acronym>, .<acronym title="Portable Network Graphics">PNG</acronym>, .<acronym title="Graphics Interchange Format">GIF</acronym></td><td>image</td><td>Textures, icons</td>
        </tr>
        <tr>
@@ -73,7 +81,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>
-<!-- EDIT5 TABLE [1113-1628] -->
+<!-- EDIT6 TABLE [1442-1768] -->
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:file_types?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 3d3161c..6f8f200 100644 (file)
@@ -282,7 +282,7 @@ To make a Geometry transparent or translucent:
 <li><div> (For colored Materials) In any RGBA color, the first three are Red-Green-Blue, and the last float is the Alpha channel. For example, to replace ColorRGBA.Red with a translucent red: <pre>mat.setColor&#40;&quot;Color&quot;, new ColorRGBA&#40;1,0,0,0.5f&#41;&#41;;</pre>
 </div>
 </li>
-<li><div> (For textured Materials) Supply an AlphaMap that outlines which areas are transparent. <pre>setTexture&#40;&quot;AlphaMap&quot;, assetManager.loadTexture&#40;&quot;Textures/window_alpha.png&quot;&#41;&#41;;</pre>
+<li><div> (For textured Materials) Supply an AlphaMap that outlines which areas are transparent. <pre>mat.setTexture&#40;&quot;AlphaMap&quot;, assetManager.loadTexture&#40;&quot;Textures/window_alpha.png&quot;&#41;&#41;;</pre>
 </div>
 </li>
 <li><div> (For textured Materials) If the DiffuseMap has an alpha channel, use: <pre>mat.setBoolean&#40;&quot;UseAlpha&quot;,true&#41;;</pre>
@@ -326,7 +326,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>
-<!-- EDIT10 TABLE [10065-11453] -->
+<!-- EDIT10 TABLE [10069-11457] -->
 <p>
 
 <p><div>It is possible to load a DiffuseMap texture that has an Alpha channel, and combine it with an underlying Material Color. 
@@ -339,7 +339,7 @@ Deactivate Alpha Testing for gradually <strong>translucent</strong> objects, suc
 </p>
 
 </div>
-<!-- EDIT9 SECTION "(Optional) Transparent" [8445-12092] -->
+<!-- EDIT9 SECTION "(Optional) Transparent" [8445-12096] -->
 <h2><a>(Optional) Wireframe</a></h2>
 <div>
 
@@ -356,7 +356,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>
-<!-- EDIT12 TABLE [12307-12592] --><div><span>
+<!-- EDIT12 TABLE [12311-12596] --><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>,
@@ -366,5 +366,5 @@ Additionally to the above settings, you can switch off and on a wireframe render
 </span></div>
 
 </div>
-<!-- EDIT11 SECTION "(Optional) Wireframe" [12093-] -->
-<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>
\ No newline at end of file
+<!-- EDIT11 SECTION "(Optional) Wireframe" [12097-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:how_to_use_materials?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 91afc1e..a66f936 100644 (file)
@@ -123,4 +123,4 @@ float z = FastMath.sin(phi)*r;</td>
 
 </div>
 <!-- EDIT5 SECTION "Local vs Non-local methods?" [2558-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:math?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:math?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index c03c50b..144caf8 100644 (file)
@@ -8,11 +8,11 @@ Assets are files that are not code. Your multi-media assets includes, for exampl
 
 </p>
 <ul>
-<li><div> You create textures in a graphic editor, for example Gimp, and export them as <acronym title="Portable Network Graphics">PNG</acronym> or <acronym title="Joint Photographics Experts Group">JPG</acronym>.</div>
+<li><div> You create textures in a graphic editor, for example <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://gimp.org"><param name="text" value="<html><u>Gimp</u></html>"><param name="textColor" value="blue"></object>, and export them as <acronym title="Portable Network Graphics">PNG</acronym> or <acronym title="Joint Photographics Experts Group">JPG</acronym>.</div>
 </li>
-<li><div> You create models in a 3D mesh editor, for example <a href="/com/jme3/gde/docs/jme3/external/blender.html">Blender</a>, and export it in Ogre Mesh <acronym title="Extensible Markup Language">XML</acronym> or Wavefront OBJ format. </div>
+<li><div> You <a href="/com/jme3/gde/docs/jme3/external/blender.html">create models</a> in a 3D mesh editor, for example <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://blender.org"><param name="text" value="<html><u>Blender</u></html>"><param name="textColor" value="blue"></object>, and export them in Ogre Mesh <acronym title="Extensible Markup Language">XML</acronym> or Wavefront OBJ format. </div>
 </li>
-<li><div> You create sounds in an audio editor, for example Audacity, and export them as WAVE or OGG.</div>
+<li><div> You create sounds in an audio editor, for example <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://audacity.sourceforge.net"><param name="text" value="<html><u>Audacity</u></html>"><param name="textColor" value="blue"></object>, and export them as WAVE or OGG.</div>
 </li>
 </ul>
 <div><table>
@@ -37,16 +37,19 @@ Assets are files that are not code. Your multi-media assets includes, for exampl
        <tr>
                <td> Convert original models to JME3&#039;s .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 automatically packaged into the final JAR.</td>
        </tr>
+       <tr>
+               <td>Agree on naming schemes and folder schemes with your artists early on to avoid confusion. E.g. keep naming schemes for bones and certain model parts. Try to keep your assets folder clean, its like your codes class structure.</td><td>Don&#039;t mindlessly import downloaded models and other assets into your project without keeping a structure and knowing the files work. You can reimport, delete junk.</td>
+       </tr>
 </table></div>
-<!-- EDIT2 TABLE [542-1617] -->
+<!-- EDIT2 TABLE [623-2089] -->
 <p>
 
 Read on for details.
 </p>
 
 </div>
-<!-- EDIT1 SECTION "Multi-Media Asset Pipeline" [1-1640] -->
-<h3><a>Use The Assets Folder</a></h3>
+<!-- EDIT1 SECTION "Multi-Media Asset Pipeline" [1-2112] -->
+<h2><a>Use The Assets Folder</a></h2>
 <div>
 
 <p>
@@ -88,7 +91,7 @@ Example: For car models, create <code>Textures/vehicles/car1/</code>, <code>Mate
 
 <p>
 
-<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.youtube.com/all_comments?v=HFR4socSv_E"><param name="text" value="<html><u>Video: Horrible things happen if you mess up labeling your assets. Seriously. ;-)</u></html>"><param name="textColor" value="blue"></object>
+<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.youtube.com/watch?v=HFR4socSv_E"><param name="text" value="<html><u>Video: Horrible things happen if you mess up labeling your assets. Seriously. ;-)</u></html>"><param name="textColor" value="blue"></object>
 </p>
 
 <p>
@@ -102,8 +105,8 @@ See also:
 </ul>
 
 </div>
-<!-- EDIT3 SECTION "Use The Assets Folder" [1641-3530] -->
-<h3><a>Create Textures and Materials</a></h3>
+<!-- EDIT3 SECTION "Use The Assets Folder" [2113-3997] -->
+<h2><a>Create Textures and Materials</a></h2>
 <div>
 
 <p>
@@ -128,16 +131,17 @@ Install a graphic editor such as Gimp or Photoshop. <strong>Consult the graphic
 
 <p>
 
-Storing the textures inside your project directory is necessary for the paths in JME&#039;s binary model files (.j3o) to work. Treat the paths of your assets like class names of java classes, they define a specific asset. When you later generate .j3o files, compile class files, and distribute the project, paths and files need to be available in their final absolute form. It is imperative to keep the same directory structure from beginning to end.
+Storing the textures inside your project directory is necessary for the paths in JME&#039;s binary model files (.j3o) to work. Treat the paths of your assets like class names of java classes, they define a specific asset. When you later generate .j3o files, and compile class files, and distribute the application, all paths and files need to be available in their final, absolute form. 
 </p>
 
 <p>
-If you ever change the assets directory structure, you will have to do manual refactoring (just as for Java package name changes): You will need to re-export all affected models, regenerate all affected .j3o files, and manually update all affected paths in your code.
+<p><div>It is imperative to keep the same directory structure from beginning to end. If you ever change the assets directory structure, you have to do manual refactoring (just as for Java package name changes): Re-export all affected models, regenerate all affected .j3o files, and manually update all affected path Strings in your code.
+</div></p>
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Create Textures and Materials" [3531-4768] -->
-<h3><a>Create 3D Models</a></h3>
+<!-- EDIT4 SECTION "Create Textures and Materials" [3998-5259] -->
+<h2><a>Create 3D Models</a></h2>
 <div>
 
 <p>
@@ -146,17 +150,17 @@ Install a mesh editor such as <a href="/com/jme3/gde/docs/jme3/external/blender.
 </p>
 
 <p>
-<p><div>Note that UV coords are part of the mesh and not part of the material, so if you import your mesh successfully you can later apply the texture again and it will map correctly.
+<p><div>Note that UV coords are part of the mesh and not part of the material, so if you import your mesh successfully, you can later apply the texture again and it will map correctly.
 </div></p>
 
 </p>
 <ol>
 <li><div> Create 3D models in a mesh editor. </div>
 <ol>
-<li><div> Create simple <strong>low-polygon models</strong>. High-polygon models may look pretty in static 3D art contests, but they unnecessarily slow down dynamic games.</div>
+<li><div> Create efficient <strong>low-polygon models</strong>. High-polygon models may look pretty in static 3D art contests, but they slow down dynamic games!</div>
 </li>
-<li><div> Create materials for your models either in the 3D editor, or in the jME3 <acronym title="Software Development Kit">SDK</acronym>. Only use <strong>Diffuse Map (minimum), Normal Map, Glow Map, and Specular Map.</strong> <br/>
-Every material feature not listed in the <a href="/com/jme3/gde/docs/jme3/advanced/materials_overview.html">Materials Overview</a> is unsupported and ignored by JME3.</div>
+<li><div> <a href="/com/jme3/gde/docs/jme3/advanced/j3m_material_files.html">Create materials</a> for your models either in the 3D editor, or in the jME3 <acronym title="Software Development Kit">SDK</acronym>. Only use the following material features: <strong>Diffuse Map or Diffuse Color (minimum); plus optionally Normal Map, Glow Map, Specular Map.</strong> <br/>
+Every material feature not listed in the <a href="/com/jme3/gde/docs/jme3/advanced/materials_overview.html">Materials Overview</a> is unsupported and ignored by JME3&#039;s renderer.</div>
 </li>
 <li><div> Unwrap the model in the 3D editor and generate a <strong>UV texture</strong> (i.e. one texture file that contains all the pieces of one model from different angles). <br/>
 Don&#039;t use multiple separate texture files with one model, it will break the model into several meshes.</div>
@@ -165,9 +169,9 @@ Don&#039;t use multiple separate texture files with one model, it will break the
 </li>
 <li><div> Export the model mesh in one of the following formats: <strong>.blend, Wavefront .OBJ/.MTL, Ogre .mesh/.material/.scene</strong>.</div>
 <ol>
-<li><div> <strong>Bake</strong> each texture into one file when exporting. (Create a Texture Atlas.)</div>
+<li><div> <strong>Bake</strong> each texture into one file when exporting. Create a Texture Atlas.</div>
 </li>
-<li><div> <strong>Save exported models to subfolders of the <code>assets/Textures</code> directory, together with their Textures.</strong> (for now)</div>
+<li><div> <strong>Save exported models to subfolders of the <code>assets/Textures</code> (sic) directory, so they are together with their textures</strong>!</div>
 </li>
 </ol>
 </li>
@@ -179,15 +183,14 @@ See also: <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer">
 </p>
 
 <p>
-<p><div><strong>When I load the model in JME, why does it look different than in the 3D editor?</strong> <br/>
-3D models will never look identical in a game engine and in a mesh editor. Mesh editors are optimized for high-quality offline rendering, and many of the material and texture options simply do not work in a live rendering context. Also, the shaders that render the materials in JME are different than in your mesh editor&#039;s renderer. Remind your graphic designers to only focus on features that game engines support.
+<p><div><strong>When I load the model in JME3, why does it look different than in the 3D editor?</strong> <br/>
+3D models will never look identical in a game engine and in a mesh editor. Mesh editors are optimized for high-quality offline rendering, and many of the material and texture options simply do not work in a live rendering context such as games. Also, the shaders that render the materials in JME3 are different implementations than in your mesh editor&#039;s renderer. Remind your graphic designers to <a href="/com/jme3/gde/docs/jme3/advanced/materials_overview.html">focus on features that game engines support</a>.
 </div></p>
-
 </p>
 
 </div>
-<!-- EDIT5 SECTION "Create 3D Models" [4769-6921] -->
-<h3><a>Convert 3D Models to .j3o Format</a></h3>
+<!-- EDIT5 SECTION "Create 3D Models" [5260-7588] -->
+<h2><a>Convert 3D Models to .j3o Format</a></h2>
 <div>
 
 <p>
@@ -212,31 +215,37 @@ The paths in the j3o now reference files with an absolute <code>assets/Textures/
 This process ensures that the texture paths are correct, and it also keeps your <code>assets/Models</code> folder free from textures. You can reuse your set of textures for many models.
 </p>
 
+</div>
+<!-- EDIT6 SECTION "Convert 3D Models to .j3o Format" [7589-8388] -->
+<h3><a>Must I convert to .j3o? Yes!</a></h3>
+<div>
+
 <p>
-<strong>Must I convert to .j3o? ??? Yes!</strong>
+
+The .j3o file format is an optimized format to store parts of a jME3 scene graph for 3-D games.
 </p>
 <ul>
-<li><div> .j3o is an optimized format to store parts of a jME3 scene graph. A .j3o file can contain one shape, one model, or a whole scene.</div>
+<li><div> A .j3o file can contain one shape, one model, or a whole scene.</div>
 </li>
-<li><div> Only .j3o files can store all of jme3&#039;s material and other options, other formats can only be considered meshes with UV mapping data and always need to be worked on.</div>
+<li><div> Only .j3o files can store all of jme3&#039;s material options and other features. Other formats can only be considered meshes with UV mapping data and always need extra work.</div>
 </li>
 <li><div> .j3o files work seamlessly across platforms and can also be automatically adapted for certain platforms on distribution.</div>
 </li>
 <li><div> (Optional) You can store the model&#039;s physical properties, materials, lights, particle emitters, and audio nodes, in the .j3o file. <br/>
-Use the jMonkeyEngine SceneComposer to add these properties.</div>
+Use Java commands, or use the <a href="/com/jme3/gde/docs/sdk/scene_composer.html">jMonkeyEngine SDK SceneComposer</a> as a user-friendly interface to add these properties.</div>
 </li>
-<li><div> The default Ant build script copies .j3o / .j3m files, sounds, and textures, into the distributable JAR automatically.</div>
+<li><div> The default Ant build script copies .j3o files, .j3m files, sounds, and textures, into the distributable JAR automatically.</div>
 </li>
 </ul>
 
 <p>
 
-<p><div>Important: Unoptimized external model files (.mesh.xml, .material, .obj, .mat, .blend, etc) are not bundled by the default build script into the final executables! If you try to run executables containing code that loads non-.j3o models, you get a <strong>Runtime Error</strong> (resource not found). The final application code should only reference .j3o files. (Note that you will not get this runtime error when running development builds straight from the <acronym title="Software Development Kit">SDK</acronym>!)
+<p><div>Important: Unoptimized external model files (.mesh.xml, .material, .obj, .mat, .blend, etc) are not bundled by the default build script into the final game builds in the <code>dist</code> directory! If you or your customers try to run games containing code that loads non-.j3o models, you get a AssetNotFoundException <strong>Runtime Error</strong> (resource not found). Your final application code should only reference .j3o files. ??? Note that your developers will not get this runtime error when running development builds straight from the <acronym title="Software Development Kit">SDK</acronym>.
 </div></p>
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Convert 3D Models to .j3o Format" [6922-8983] -->
+<!-- EDIT7 SECTION "Must I convert to .j3o? Yes!" [8389-9851] -->
 <h2><a>See Also</a></h2>
 <div>
 <ul>
@@ -255,5 +264,5 @@ Use the jMonkeyEngine SceneComposer to add these properties.</div>
 </span></div>
 
 </div>
-<!-- EDIT7 SECTION "See Also" [8984-] -->
-<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>
\ No newline at end of file
+<!-- EDIT8 SECTION "See Also" [9852-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:multi-media_asset_pipeline?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 43461ed..1dbc153 100644 (file)
@@ -34,10 +34,12 @@ You can optimize nodes using the SceneComposer in the <acronym title="Software D
 </li>
 <li><div> Using a <a href="/com/jme3/gde/docs/jme3/advanced/texture_atlas.html">Texture Atlas</a> provides limited individual texturing of batched geometries.</div>
 </li>
+<li><div> Using the still experimental BatchNode allows batching Geometry while keeping the single Geometry objects movable separately (similar to animation, the buffer gets updated per Geometry position).</div>
+</li>
 </ul>
 
 </div>
-<!-- EDIT2 SECTION "Maintain low Geometry count" [157-1193] -->
+<!-- EDIT2 SECTION "Maintain low Geometry count" [157-1393] -->
 <h2><a>Avoid creating new objects</a></h2>
 <div>
 
@@ -51,7 +53,7 @@ Check your math operations for opportunities to use the <em>local</em> version o
 </p>
 
 </div>
-<!-- EDIT3 SECTION "Avoid creating new objects" [1194-1690] -->
+<!-- EDIT3 SECTION "Avoid creating new objects" [1394-1890] -->
 <h2><a>Avoid large objects in physics</a></h2>
 <div>
 
@@ -61,7 +63,7 @@ To offload much computation to the less CPU intense physics broadphase collision
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Avoid large objects in physics" [1691-2095] -->
+<!-- EDIT4 SECTION "Avoid large objects in physics" [1891-2295] -->
 <h2><a>Check the Statistics</a></h2>
 <div>
 
@@ -92,5 +94,5 @@ Generally jME3 is well optimized and optimizes these things correctly. Read <a h
 </span></div>
 
 </div>
-<!-- EDIT5 SECTION "Check the Statistics" [2096-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:intermediate:optimization?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT5 SECTION "Check the Statistics" [2296-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:optimization?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index db385d0..61087b0 100644 (file)
@@ -145,15 +145,15 @@ getRenderer();</td><td>Low-level and high-level rendering interface. Mostly used
 getGuiViewPort()</td><td>The view object for the orthogonal <acronym title="Graphical User Interface">GUI</acronym> view. Only used internally for <a href="/com/jme3/gde/docs/jme3/advanced/hud.html">HUD</a>s. </td>
        </tr>
        <tr>
-               <td>timer</td><td>An internally used update loop timer. You already have access to the float <code>tpf</code> in the simpleUpdate() loop to time actions according to the time per frame.</td>
+               <td>timer</td><td>An internal update loop timer, don&#039;t use. See <code>tpf</code> in <code>simpleUpdate()</code> below to learn about timers.</td>
        </tr>
        <tr>
                <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>
-<!-- EDIT5 TABLE [4640-5836] -->
+<!-- EDIT5 TABLE [4640-5782] -->
 </div>
-<!-- EDIT2 SECTION "Application Class" [1719-5837] -->
+<!-- EDIT2 SECTION "Application Class" [1719-5783] -->
 <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>
-<!-- EDIT7 TABLE [6405-6948] --><div><table>
+<!-- EDIT7 TABLE [6351-6894] --><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>
-<!-- EDIT8 TABLE [6950-7742] --><div><table>
+<!-- EDIT8 TABLE [6896-7688] --><div><table>
        <tr>
                <th>SimpleApplication Interface</th><th>Purpose</th>
        </tr>
@@ -217,13 +217,14 @@ getFlyByCamera()</td><td>The default first-person fly-by camera control. This de
                <td>public void simpleInitApp()</td><td>Override this method to initialize the game scene. Here you load and create objects, attach Spatials to the rootNode, and bring everything in its starts position. See also <a href="/com/jme3/gde/docs/jme3/advanced/application_states.html">Application States</a> for best practices.</td>
        </tr>
        <tr>
-               <td>public void simpleUpdate(float tpf)</td><td>Override this method to have access to the <a href="/com/jme3/gde/docs/jme3/advanced/update_loop.html">update loop</a>. Use this loop to poll the current game state and respond to changes, or to let the game mechanics generate encounters and initiate state changes. Use tpf (time per frame) as a factor to time events. For more info on how to hook into the <a href="/com/jme3/gde/docs/jme3/advanced/update_loop.html">update loop</a>, see <a href="/com/jme3/gde/docs/jme3/advanced/application_states.html">Application States</a> and <a href="/com/jme3/gde/docs/jme3/advanced/custom_controls.html">Custom Controls</a>. </td>
+               <td>public void simpleUpdate(float tpf)</td><td>Override this method to hook into the <a href="/com/jme3/gde/docs/jme3/advanced/update_loop.html">update loop</a>, all code you put here is repeated in a loop. Use this loop to poll the current game state and respond to changes, or to let the game mechanics generate encounters and initiate state changes. Use the float <code>tpf</code> as a factor to time actions relative to the <em>time per frame</em> in seconds: <code>tpf</code> is large on slow PCs, and small on fast PCs. <br/>
+For more info on how to hook into the <a href="/com/jme3/gde/docs/jme3/advanced/update_loop.html">update loop</a>, see <a href="/com/jme3/gde/docs/jme3/advanced/application_states.html">Application States</a> and <a href="/com/jme3/gde/docs/jme3/advanced/custom_controls.html">Custom Controls</a>. </td>
        </tr>
        <tr>
-               <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>
+               <td>public void simpleRender(RenderManager rm)</td><td><strong>Optional:</strong> Advanced developers can override this method if the need to modify the frameBuffer and scene graph directly.</td>
        </tr>
 </table></div>
-<!-- EDIT9 TABLE [7744-8662] -->
+<!-- EDIT9 TABLE [7690-8760] -->
 <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/docs/jme3/intermediate/appsettings.html">AppSettings</a>.
@@ -231,7 +232,7 @@ getFlyByCamera()</td><td>The default first-person fly-by camera control. This de
 </p>
 
 </div>
-<!-- EDIT6 SECTION "SimpleApplication Class" [5838-9094] -->
+<!-- EDIT6 SECTION "SimpleApplication Class" [5784-9192] -->
 <h2><a>Default Input Mappings</a></h2>
 <div>
 
@@ -257,7 +258,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>
-<!-- EDIT11 TABLE [9365-9630] -->
+<!-- EDIT11 TABLE [9463-9728] -->
 <p>
 
 As long as the <code>flyCam</code> is enabled, the following so-called &quot;WASD&quot; inputs, including MouseLook, are available:
@@ -307,9 +308,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>
-<!-- EDIT12 TABLE [9746-10357] -->
+<!-- EDIT12 TABLE [9844-10455] -->
 </div>
-<!-- EDIT10 SECTION "Default Input Mappings" [9095-10358] -->
+<!-- EDIT10 SECTION "Default Input Mappings" [9193-10456] -->
 <h2><a>Defaults and Customization</a></h2>
 <div>
 
@@ -323,12 +324,12 @@ The following example shows how you can remove one of the default AppStates, in
 
 </p>
 <ul>
-<li><div> Either In your application&#039;s contructor, you create the SimpleApplication with only the AppStates you want to keep: <pre>public MyAppliction&#40;&#41; &#123;
+<li><div> Either, in your application&#039;s contructor, you create the SimpleApplication with only the AppStates you want to keep: <pre>public MyAppliction&#40;&#41; &#123;
   super&#40; new StatsAppState&#40;&#41;, new DebugKeysAppState&#40;&#41; &#41;;
 &#125;</pre>
 </div>
 </li>
-<li><div> Or in the <code>simpleInitApp()</code> method, you remove the ones you do not want to keep: <pre>  public void simpleInitApp&#40;&#41; &#123;
+<li><div> Or, in the <code>simpleInitApp()</code> method, you remove the ones you do not want to keep: <pre>  public void simpleInitApp&#40;&#41; &#123;
     stateManager.detach&#40; stateManager.getState&#40;FlyCamAppState.class&#41;&#41;;
     ...</pre>
 </div>
@@ -350,5 +351,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>
\ No newline at end of file
+<!-- EDIT13 SECTION "Defaults and Customization" [10457-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:intermediate:simpleapplication?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 73c77bf..0e2ab36 100644 (file)
@@ -98,4 +98,4 @@ Java code for iOS should be in the <code>ios/src</code> folder as well for clean
 
 </div>
 <!-- EDIT5 SECTION "Creating native and java code for iOS" [2997-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:ios?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:ios?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 653234a..305bd48 100644 (file)
@@ -1080,4 +1080,4 @@ float z = &#40; &#40;BoundingBox&#41;spatial.getWorldBound&#40;&#41;&#41;.getZEx
 
 </div>
 <!-- EDIT58 SECTION "See Also" [27132-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:math?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:math?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index d722568..d15b929 100644 (file)
@@ -32,7 +32,7 @@ HelloJME3/src
 
 <p>
 
-To install the development version of jme3, <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://www.jmonkeyengine.com/nightly/"><param name="text" value="<html><u>download the nightly build</u></html>"><param name="textColor" value="blue"></object>, unzip the folder into a directory named <code>jme3</code>. The filenames here are just an example, but they will always be something like <code>jME3_xx-xx-2011</code>. 
+To install the development version of jme3, <object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://nightly.jmonkeyengine.org/"><param name="text" value="<html><u>download the nightly build</u></html>"><param name="textColor" value="blue"></object>, unzip the folder into a directory named <code>jme3</code>. The filenames here are just an example, but they will always be something like <code>jME3_xx-xx-2011</code>. 
 </p>
 <pre>mkdir jme3
 cd jme3
@@ -47,11 +47,11 @@ ant run
 cd ..</pre>
 
 <p>
-If you see a Test Chooser open now, the build was successful. <strong>Tip:</strong> Use <code>ant</code> to build the libraries without running the demos.
+If you see a Test Chooser application open now, the build was successful. <strong>Tip:</strong> Use just <code>ant</code> instead of <code>ant run</code> to build the libraries without running the demos.
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Installing the JME3 Framework" [679-1380] -->
+<!-- EDIT2 SECTION "Installing the JME3 Framework" [679-1416] -->
 <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] -->
+<!-- EDIT3 SECTION "Sample Project Directory Structure" [1417-1814] -->
 <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] -->
+<!-- EDIT4 SECTION "Libraries" [1815-2389] -->
 <h3><a>Sample Code</a></h3>
 <div>
 
@@ -121,7 +121,7 @@ public class HelloJME3 extends SimpleApplication &#123;
 &#125;</pre>
 
 </div>
-<!-- EDIT5 SECTION "Sample Code" [2354-3287] -->
+<!-- EDIT5 SECTION "Sample Code" [2390-3323] -->
 <h2><a>Build and Run</a></h2>
 <div>
 
@@ -147,13 +147,13 @@ If a settings dialog pops up, confirm the default settings. You should now see a
 </p>
 
 </div>
-<!-- EDIT6 SECTION "Build and Run" [3288-4740] -->
+<!-- EDIT6 SECTION "Build and Run" [3324-4776] -->
 <h2><a>Recommended Asset Directory Structure</a></h2>
 <div>
 
 <p>
 
-For media files and other assets, we recommend creating the following project structure:
+For <a href="/com/jme3/gde/docs/jme3/intermediate/multi-media_asset_pipeline.html">multi-media files, models, and other assets</a>, we recommend creating the following project structure:
 </p>
 <pre>cd HelloJME3
 mkdir assets
@@ -167,12 +167,12 @@ mkdir assets/Sounds
 mkdir assets/Textures</pre>
 
 <p>
-This will allow the default assetManager to load media files stored in the <code>assets</code> directory, like in this example:
+This directory structure will allow <a href="/com/jme3/gde/docs/jme3/intermediate/simpleapplication.html">SimpleApplication</a>&#039;s default <a href="/com/jme3/gde/docs/jme3/advanced/asset_manager.html">AssetManager</a> to load media files from your <code>assets</code> directory, like in this example:
 </p>
 <pre>import com.jme3.scene.Spatial;
 ...
-Spatial elephant = assetManager.loadModel(&quot;Models/Elephant/Elephant.meshxml&quot;);
-rootNode.attachChild(elephant);
+  Spatial elephant = assetManager.loadModel(&quot;Models/Elephant/Elephant.meshxml&quot;);
+  rootNode.attachChild(elephant);
 ...</pre>
 
 <p>
@@ -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] -->
+<!-- EDIT7 SECTION "Recommended Asset Directory Structure" [4777-5893] -->
 <h2><a>Next Steps</a></h2>
 <div>
 
@@ -194,5 +194,5 @@ Now follow the <a href="/com/jme3/gde/docs/jme3.html">tutorials</a> and write yo
 </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>
\ No newline at end of file
+<!-- EDIT8 SECTION "Next Steps" [5894-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:simpleapplication_from_the_commandline?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 6465b1d..05bc67e 100644 (file)
@@ -425,6 +425,8 @@ E.g. the thigh Bone is connected to the upper leg Skin.</div>
 <li><div> The connection between bones and skin sections is gradual: You assign weights how much each skin polygon is affected by any bone&#039;s motion. <br/>
 E.g. when the thigh bone moves, the leg is fully affected, the hips joints less so, and the head not at all.</div>
 </li>
+<li><div> jMonkeyEngine supports hardware skinning (on the GPU, not on the CPU).</div>
+</li>
 </ul>
 </li>
 <li><div> <strong>Keyframe Animation:</strong> A keyframe is one recorded snapshot of a motion sequence.</div>
@@ -456,7 +458,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] -->
+<!-- EDIT26 SECTION "Rigging and Skinning" [12903-15439] -->
 <h2><a>Kinematics</a></h2>
 <div>
 <ul>
@@ -467,16 +469,16 @@ E.g. when the thigh bone moves, the leg is fully affected, the hips joints less
 </ul>
 
 </div>
-<!-- EDIT27 SECTION "Kinematics" [15363-15627] -->
+<!-- EDIT27 SECTION "Kinematics" [15440-15704] -->
 <h2><a>Controller and Channel</a></h2>
 <div>
 
 <p>
-In the JME3 application, you register animated models to the Animation Controller. The controller object gives you access to the available animation sequences. The controller has several channels, each channels can run one animation sequence at a time. To run several sequences, you create several channels, and run them in parallel.
+In the JME3 application, you register animated models to the Animation Controller. The controller object gives you access to the available animation sequences. The controller has several channels, each channel can run one animation sequence at a time. To run several sequences, you create several channels, and run them in parallel.
 </p>
 
 </div>
-<!-- EDIT28 SECTION "Controller and Channel" [15628-15997] -->
+<!-- EDIT28 SECTION "Controller and Channel" [15705-16073] -->
 <h1><a>Artificial Intelligence (AI)</a></h1>
 <div>
 
@@ -527,7 +529,7 @@ There are lots of resources explaining interesting AI algorithms:
 </ul>
 
 </div>
-<!-- EDIT29 SECTION "Artificial Intelligence (AI)" [15998-19483] -->
+<!-- EDIT29 SECTION "Artificial Intelligence (AI)" [16074-19559] -->
 <h1><a>Math</a></h1>
 <div>
 
@@ -536,7 +538,7 @@ There are lots of resources explaining interesting AI algorithms:
 </p>
 
 </div>
-<!-- EDIT30 SECTION "Math" [19484-19557] -->
+<!-- EDIT30 SECTION "Math" [19560-19633] -->
 <h2><a>Coordinates</a></h2>
 <div>
 
@@ -547,7 +549,7 @@ In contrast to a vector (which looks similar), a coordinate is a location, not a
 </p>
 
 </div>
-<!-- EDIT31 SECTION "Coordinates" [19558-19947] -->
+<!-- EDIT31 SECTION "Coordinates" [19634-20023] -->
 <h3><a>The Origin</a></h3>
 <div>
 
@@ -561,7 +563,7 @@ The origin is the central point in the 3D world, where the three axes meet. It&#
 </p>
 
 </div>
-<!-- EDIT32 SECTION "The Origin" [19948-20152] -->
+<!-- EDIT32 SECTION "The Origin" [20024-20228] -->
 <h2><a>Vectors</a></h2>
 <div>
 
@@ -574,10 +576,10 @@ A vector has a length and a direction, like an arrow in 3D space. A vector start
 <strong>Example:</strong> 
 </p>
 <pre>Vector3f v = new Vector3f&#40; 17f , -4f , 0f &#41;; // starts at (0/0/0)
-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>
+Vector3f v = new Vector3f&#40; 8f , 0f , 33f &#41;.add&#40;new Vector3f&#40; 0f , -2f , -2f &#41;&#41;; // starts at (8,-2,31)</pre>
 
 </div>
-<!-- EDIT33 SECTION "Vectors" [20153-20602] -->
+<!-- EDIT33 SECTION "Vectors" [20229-20679] -->
 <h3><a>Unit Vectors</a></h3>
 <div>
 
@@ -601,7 +603,7 @@ Negate the vegator to change its direction, e.g. (-1, 0, 0) = left.
 </p>
 
 </div>
-<!-- EDIT34 SECTION "Unit Vectors" [20603-21101] -->
+<!-- EDIT34 SECTION "Unit Vectors" [20680-21178] -->
 <h3><a>Normalized Vectors</a></h3>
 <div>
 
@@ -616,7 +618,7 @@ When you normalize a vector, it still has the same direction, but you lose the i
 </p>
 
 </div>
-<!-- EDIT35 SECTION "Normalized Vectors" [21102-21445] -->
+<!-- EDIT35 SECTION "Normalized Vectors" [21179-21522] -->
 <h3><a>Surface Normal Vectors</a></h3>
 <div>
 
@@ -628,7 +630,7 @@ You calculate the Surface Normal by calculating the cross product.
 </p>
 
 </div>
-<!-- EDIT36 SECTION "Surface Normal Vectors" [21446-21658] -->
+<!-- EDIT36 SECTION "Surface Normal Vectors" [21523-21735] -->
 <h3><a>Cross Product</a></h3>
 <div>
 
@@ -645,7 +647,7 @@ In 3D space, speaking of an orthogonal only makes sense with respect to a plane.
 </p>
 
 </div>
-<!-- EDIT37 SECTION "Cross Product" [21659-22369] -->
+<!-- EDIT37 SECTION "Cross Product" [21736-22446] -->
 <h3><a>Transformation</a></h3>
 <div>
 
@@ -659,7 +661,7 @@ Examples: Falling and rotating bricks in 3D Tetris.
 </p>
 
 </div>
-<!-- EDIT38 SECTION "Transformation" [22370-22634] -->
+<!-- EDIT38 SECTION "Transformation" [22447-22711] -->
 <h3><a>Slerp</a></h3>
 <div>
 
@@ -677,7 +679,7 @@ Example: A burning meteorite Geometry slerps from &quot;position p1, rotation r1
 </p>
 
 </div>
-<!-- EDIT39 SECTION "Slerp" [22635-23404] -->
+<!-- EDIT39 SECTION "Slerp" [22712-23481] -->
 <h1><a>Game Developer Jargon</a></h1>
 <div>
 <ul>
@@ -686,7 +688,7 @@ Example: A burning meteorite Geometry slerps from &quot;position p1, rotation r1
 </ul>
 
 </div>
-<!-- EDIT40 SECTION "Game Developer Jargon" [23405-23568] -->
+<!-- EDIT40 SECTION "Game Developer Jargon" [23482-23645] -->
 <h1><a>3D graphics Terminology Wiki book</a></h1>
 <div>
 <ul>
@@ -695,5 +697,5 @@ Example: A burning meteorite Geometry slerps from &quot;position p1, rotation r1
 </ul>
 
 </div>
-<!-- EDIT41 SECTION "3D graphics Terminology Wiki book" [23569-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:terminology?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT41 SECTION "3D graphics Terminology Wiki book" [23646-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:terminology?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 41e8329..f5bd67d 100644 (file)
@@ -34,19 +34,19 @@ The coordinate system consists of:
 
 </p>
 <ul>
-<li><div> The origin, a single point in space.</div>
+<li><div> The <em>origin</em>, a single central point in space.</div>
 <ul>
-<li><div> This point is always at coordinate (0,0,0)</div>
+<li><div> The origin point is always at coordinate zero, in Java: <code>new Vector3f(0,0,0)</code>.</div>
 </li>
 </ul>
 </li>
-<li><div> Three coordinate axes that are mutually perpendicular, and meet in the origin. </div>
+<li><div> Three <em>coordinate axes</em> that are mutually perpendicular, and meet in the origin. </div>
 <ul>
-<li><div> The X axis is &quot;right/left&quot;</div>
+<li><div> The X axis starts left and goes right.</div>
 </li>
-<li><div> The Y axis is &quot;up/down&quot;</div>
+<li><div> The Y axis starts below and goes up.</div>
 </li>
-<li><div> The Z axis is &quot;towards you/away from you&quot;</div>
+<li><div> The Z axis starts away from you, and goes towards you.</div>
 </li>
 </ul>
 </li>
@@ -54,39 +54,109 @@ The coordinate system consists of:
 
 <p>
 
-Every point in 3D space is defined by its (x,y,z) coordinates. The data type for vectors is com.jme3.math.Vector3f. 
+Every point in 3D space is uniquely defined by its X,Y,Z coordinates. The three numeric coordinates express how many &quot;steps&quot; from each of the three axes a point is. The data type for all vectors in jME3 is <code>com.jme3.math.Vector3f</code>. All vectors are relative to the described coordinate system.  <br/>
+Example: The point <code>new Vector3f(3,-5,1)</code> is 3 steps to the right, 5 steps down, and 1 towards you.
 </p>
 
 <p>
-For your orientation, the default camera&#039;s location is (0.0f,0.0f,10.0f), and it is looking in the direction described by the unit vector (0.0f, 0.0f, -1.0f). This means your point of view is on the positive side of the Z axis, looking towards the origin, down the Z axis.
+<p><div>The unit of meassurement (&quot;one step&quot;) in jME3 is the <strong>world unit</strong>, short: wu. Typically, 1 wu is considered to be one meter. As long as you are consistant throughout your game, 1 wu can be any distance you like.
+</div></p>
 </p>
 
 <p>
-The unit of meassurement is <code>world unit</code> (wu). Typically, 1 wu is considered to be one meter. All scales, vectors and points are relative to this coordinate system.
+For your orientation:
+</p>
+<ul>
+<li><div> The default camera&#039;s location is <code>Vector3f(0.0f, 0.0f, 10.0f)</code>.</div>
+</li>
+<li><div> The default camera is looking in the direction described by the (so called) negative Z unit vector <code>Vector3f(0.0f, 0.0f, -1.0f)</code>. </div>
+</li>
+</ul>
+
+<p>
+This means the player&#039;s point of view is on the positive side of the Z axis, looking back, towards the origin, down the Z axis.
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Coordinate System" [397-1443] -->
+<!-- EDIT2 SECTION "Coordinate System" [397-1966] -->
+<h2><a>How to move yourself through the 3D scene</a></h2>
+<div>
+
+<p>
+
+When you play a 3D game, you typically want to navigate the 3D scene. Note that by default, the mouse pointer is invisible, and the mouse is set up to control the camera rotation!
+</p>
+
+<p>
+By default, jME3 uses the following common navigation inputs
+
+</p>
+<div><table>
+       <tr>
+               <th> Game Inputs </th><th> Camera Motion </th><th> Player POV </th>
+       </tr>
+       <tr>
+               <td>Press the W and S keys</td><td>move the camera forward, and backward</td><td>you walk back and forth</td>
+       </tr>
+       <tr>
+               <td>Press the A and D keys</td><td>move the camera left and right</td><td>you step left or right</td>
+       </tr>
+       <tr>
+               <td>Press the Q and Y keys</td><td>move the camera up and down</td><td>you fly up and down</td>
+       </tr>
+       <tr>
+               <td>Move the mouse left-right</td><td>rotate the camera left/right</td><td>you look left or right</td>
+       </tr>
+       <tr>
+               <td>Move the mouse forwards-backwards</td><td>rotate up/down</td><td>you look at the sky or your feet</td>
+       </tr>
+</table></div>
+<!-- EDIT4 TABLE [2265-2712] -->
+<p>
+
+These default settings are called &quot;WASD keys&quot; and &quot;Mouse Look&quot;. You can customize <a href="/com/jme3/gde/docs/jme3/advanced/input_handling.html">input handling</a> for your game. Sorry, but these settings work best on a QWERTY/QWERTZ keyboard.
+</p>
+
+</div>
+<!-- EDIT3 SECTION "How to move yourself through the 3D scene" [1967-2910] -->
 <h2><a>Scene Graph and RootNode</a></h2>
 <div>
 
 <p>
 
-The scene graph represents your 3D world. Objects in the jME3 scene graph are called <a href="/com/jme3/gde/docs/jme3/advanced/spatial.html">Spatial</a>s. Everything attached to the <em>rootNode</em> is part of the scene graph. <em>Attaching</em> a Spatial to the rootNode (or other nodes) adds the Spatial to the scene; <em>detaching</em> removes it.
+The <em>scene graph</em> represents your 3D world. Objects in the jME3 scene graph are called <a href="/com/jme3/gde/docs/jme3/advanced/spatial.html">Spatial</a>s. Everything attached to the parent <em>rootNode</em> is part of your scene. Your game inherits the <code>rootNode</code> object from the <code>SimpleApplication</code> class. 
 </p>
 
 <p>
 <img src="nbdocs:/com/jme3/gde/docs/jme3/intermediate/scene-graph.png">
+
+</p>
+<ul>
+<li><div> <em>Attaching</em> a Spatial to the rootNode (or its child nodes) adds it to the scene; </div>
+</li>
+<li><div> <em>Detaching</em> a Spatial from the rootNode (or its child nodes) removes it from the scene.</div>
+</li>
+</ul>
+
+<p>
+
+All objects in the scene graph are in a parent-child relationship. When you transform (move, rotate, scale) one parent, all its children follow.
+</p>
+
+<p>
+<p><div>The scene graph only manages the parent-child relationship of spatials. The actual location, rotation, or scale of an object is stored inside each Spatial. 
+</div></p>
+
 </p>
 
 </div>
-<!-- EDIT3 SECTION "Scene Graph and RootNode" [1444-1820] -->
+<!-- EDIT5 SECTION "Scene Graph and RootNode" [2911-3763] -->
 <h2><a>Spatials: Node vs Geometry</a></h2>
 <div>
 
 <p>
 
-A Spatial can be transformed, loaded and saved. There are two types of Spatials, <em>Nodes</em> and <em>Geometries</em>.
+A Spatial can be transformed (in other words, it has a location, a rotation, and a scale). A Spatial can be loaded and saved as a .3jo file. There are two types of Spatials, <em>Nodes</em> and <em>Geometries</em>:
 
 </p>
 <div><table>
@@ -103,18 +173,18 @@ A Spatial can be transformed, loaded and saved. There are two types of Spatials,
                <th> Visibility: </th><td> A visible 3-D object. </td><td> An invisible &quot;handle&quot; for a group of objects. </td>
        </tr>
        <tr>
-               <th> Purpose: </th><td> Represents the &quot;look&quot; of an object: Shape, color, texture, opacity/transparency. </td><td> Groups Geometries and other Nodes together: You transform a Node to affect all attached Nodes. </td>
+               <th> Purpose: </th><td> A Geometry represents the &quot;look&quot; of an object: Shape, color, texture, opacity/transparency. </td><td> A Node groups Geometries and other Nodes together: You transform a Node to affect all attached Nodes (parent-child relationship). </td>
        </tr>
        <tr>
                <th> Content: </th><td> Transformations, mesh, material. </td><td> Transformations. No mesh, no material. </td>
        </tr>
        <tr>
-               <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>
+               <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 audioNode, a custom grouping node for a vehicle plus its passengers, etc. </td>
        </tr>
 </table></div>
-<!-- EDIT5 TABLE [1973-2678] -->
+<!-- EDIT7 TABLE [4009-4793] -->
 </div>
-<!-- EDIT4 SECTION "Spatials: Node vs Geometry" [1821-2679] -->
+<!-- EDIT6 SECTION "Spatials: Node vs Geometry" [3764-4794] -->
 <h2><a>How to Use This Knowledge?</a></h2>
 <div>
 
@@ -128,7 +198,7 @@ The <a href="/com/jme3/gde/docs/jme3.html">intermediate and advanced documentati
 </p>
 
 </div>
-<!-- EDIT6 SECTION "How to Use This Knowledge?" [2680-3212] -->
+<!-- EDIT8 SECTION "How to Use This Knowledge?" [4795-5327] -->
 <h2><a>See also</a></h2>
 <div>
 <ul>
@@ -136,6 +206,8 @@ The <a href="/com/jme3/gde/docs/jme3.html">intermediate and advanced documentati
 </li>
 <li><div> <a href="/com/jme3/gde/docs/jme3/advanced/traverse_scenegraph.html">Traverse SceneGraph</a> ??? Find any Node or Geometry in the scenegraph.</div>
 </li>
+<li><div> <a href="/com/jme3/gde/docs/jme3/advanced/camera.html">Camera</a> ??? Learn more about the Camera in the scene.</div>
+</li>
 </ul>
 <div><span>
        <a href="/wiki/doku.php/tag:spatial?do=showtag&amp;tag=tag%3Aspatial">spatial</a>,
@@ -147,5 +219,5 @@ The <a href="/com/jme3/gde/docs/jme3.html">intermediate and advanced documentati
 </span></div>
 
 </div>
-<!-- EDIT7 SECTION "See also" [3213-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:the_scene_graph?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT9 SECTION "See also" [5328-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:the_scene_graph?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 8d62c6b..a362464 100644 (file)
@@ -126,4 +126,4 @@ In your main() method, if running under WebStart, tell jME3 it is running in a l
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/jme3:webstart?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 2cfbc44..5bab980 100644 (file)
@@ -67,4 +67,4 @@ As you can see, the .blend model was automatically converted to .j3o binary form
 
 </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>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:3ds_to_blender_to_jmp?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index d92a0bc..796bf7b 100644 (file)
@@ -48,7 +48,7 @@ Make your game unique and recognizable:
 </li>
 <li><div> Vendor: Enter your name (the development team)</div>
 </li>
-<li><div> Description: Write one line why your game is the coolest ever <img src="/wiki/lib/images/smileys/icon_wink.gif" class="middle" alt=";-)"/></div>
+<li><div> Description: Write one line why your game is the coolest ever <img src="/wiki/lib/images/smileys/icon_wink.gif" class="middle" alt=";-)" /></div>
 </li>
 <li><div> Homepage: Enter your web <acronym title="Uniform Resource Locator">URL</acronym>, so your fans can find you</div>
 </li>
@@ -157,7 +157,7 @@ Web Start allows your users to start your application by simply clicking a link
 <ol>
 <li><div> In the Application&gt;Web Start category, check the box to Enable Web Start.</div>
 </li>
-<li><div> Check the box to make the application self-signed. <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="middle" alt=":!:"/></div>
+<li><div> Check the box to make the application self-signed. <img src="/wiki/lib/images/smileys/icon_exclaim.gif" class="middle" alt=":!:" /></div>
 </li>
 <li><div> Optionally, check the box to allow offline use.</div>
 </li>
@@ -343,4 +343,4 @@ jme3-libraries-gui, jme3-libraries-physics, jme3-libraries-video, etc.</div>
 
 </div>
 <!-- EDIT12 SECTION "Tip: Reduce Distribution File Size" [8306-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:application_deployment?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:application_deployment?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 5298937..eedf04a 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/applymaterial.jpg and b/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/applymaterial.jpg differ
index 56de8a9..c56d09b 100644 (file)
@@ -201,4 +201,4 @@ You can publish your AssetPacks either as a zip file or directly to jmonkeyengin
 
 </div>
 <!-- EDIT7 SECTION "AssetPack Publishing" [5684-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:asset_packs?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:asset_packs?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 156f6b7..e390c43 100644 (file)
@@ -331,7 +331,7 @@ P.S.
 This text might be edited in a meantime if I forgot about something ;)
 
 </p>
-<hr/>
+<hr />
 
 <p>
 See also:
@@ -350,4 +350,4 @@ See also:
 
 </div>
 <!-- EDIT10 SECTION "Notes" [7965-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:blender?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:blender?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 23f46bf..7efac7e 100644 (file)
@@ -240,7 +240,7 @@ By default, jMonkeyEngine uses the same <object classid="java:org.netbeans.modul
 <li><div> Press <strong>F1</strong> for Help</div>
 </li>
 </ul>
-<hr/>
+<hr />
 
 <p>
 See also
@@ -258,4 +258,4 @@ See also
 
 </div>
 <!-- EDIT9 SECTION "Tips and Tricks" [5060-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:code_editor?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:code_editor?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 331b8cb..334a7f4 100644 (file)
@@ -234,4 +234,4 @@ See also:
 
 </div>
 <!-- EDIT4 SECTION "Profiling" [3983-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:debugging_profiling_testing?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:debugging_profiling_testing?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 8056427..fd40382 100644 (file)
@@ -120,4 +120,4 @@ Don&#039;t edit the base <code>*-impl.xml</code> files directly, if you deactiva
 
 </div>
 <!-- EDIT4 SECTION "Adding Custom Targets" [1980-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:default_build_script?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:default_build_script?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index f1f7f93..9258b45 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/deploy_android.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/deploy_android.png differ
index 5d69658..5fd7aeb 100644 (file)
@@ -23,6 +23,8 @@ If you feel like you want to make an addition to jMonkeyEngine <acronym title="S
 </li>
 <li><div> <a href="/com/jme3/gde/docs/sdk/development/general.html">Creating components</a></div>
 </li>
+<li><div> <a href="/com/jme3/gde/docs/sdk/build_platform.html">Building the jME SDK from scratch</a> (not necessary for plugin development, only for contributors)</div>
+</li>
 </ul>
 
 </div>
@@ -116,4 +118,4 @@ Also check out this Essential NetBeans Platform Refcard: <object classid="java:o
 </span></div>
 
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:development?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index e2a0cec..6029e81 100644 (file)
@@ -77,4 +77,4 @@ After you are done, you can <a href="/com/jme3/gde/docs/sdk/development/setup#jm
 </p>
 
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:extension_library?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:development:extension_library?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 3415732..e2eb638 100644 (file)
@@ -19,4 +19,4 @@ You will see a list of components you can add to your project. A wizard will gui
 </p>
 
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:general?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:development:general?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 1c032e8..ca41bb2 100644 (file)
@@ -16,7 +16,9 @@ You can create custom model importers for the jMonkeyEngine <acronym title="Soft
 </li>
 <li><div> Change DataObject to extend SpatialAssetDataObject</div>
 </li>
-<li><div> Implement loadAsset method in DataObject (if necessary, most model formats should load normally via the loader)</div>
+<li><div> Implement getAssetKey(): if(!assetKey instanceof MyKeyType){assetKey = new MyKeyType(oldKey);} return key;</div>
+</li>
+<li><div> Maybe implement loadAsset method in DataObject (if necessary, most model formats should load normally via the loader)</div>
 </li>
 <li><div> Create AssetManagerConfigurator </div>
 </li>
@@ -39,4 +41,4 @@ See also:
 </span></div>
 
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:model_loader?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:development:model_loader?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 9ec8ba8..4ddd780 100644 (file)
@@ -73,4 +73,4 @@ public class BlenderAssetManagerConfigurator implements AssetManagerConfigurator
 
 </div>
 <!-- EDIT4 SECTION "New Asset File Types" [1356-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:projects_assets?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:development:projects_assets?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 5b1868d..04eace7 100644 (file)
@@ -49,7 +49,7 @@ public void resultChanged&#40;LookupEvent ev&#41; &#123;
     Collection&lt;JmeSpatial&gt; items = &#40;Collection&lt;JmeSpatial&gt;&#41; result.allInstances&#40;&#41;;
     for &#40;JmeSpatial jmeSpatial : items&#41; &#123;
         //Using the JmeSpatials properties you can modify the spatial directly from the AWT thread:
-        spatial.getPropertySets&#40;&#41;&#91;0&#93;.setValue&#40;&quot;Local Translation&quot;, Vector3f.ZERO&#41;;
+        jmeSpatial.getPropertySets&#40;&#41;&#91;0&#93;.setValue&#40;&quot;Local Translation&quot;, Vector3f.ZERO&#41;;
         return;
     &#125;
 &#125;</pre>
@@ -72,7 +72,7 @@ for &#40;JmeSpatial jmeSpatial : items&#41; &#123;
 &#125;</pre>
 
 </div>
-<!-- EDIT3 SECTION "Listening for Node selection" [617-2664] -->
+<!-- EDIT3 SECTION "Listening for Node selection" [617-2667] -->
 <h2><a>Requesting the Scene</a></h2>
 <div>
 
@@ -116,7 +116,7 @@ public void sceneClosed&#40;SceneRequest request&#41; &#123;
 &#125;</pre>
 
 </div>
-<!-- EDIT4 SECTION "Requesting the Scene" [2665-4627] -->
+<!-- EDIT4 SECTION "Requesting the Scene" [2668-4630] -->
 <h2><a>Undo/Redo support</a></h2>
 <div>
 
@@ -162,5 +162,5 @@ Note: Its important that you use the method addEdit(Object source, UndoableEdit
 </p>
 
 </div>
-<!-- EDIT5 SECTION "Undo/Redo support" [4628-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:scene?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT5 SECTION "Undo/Redo support" [4631-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:development:scene?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index ebe7d65..32156e2 100644 (file)
@@ -402,4 +402,4 @@ public class AddSkyboxAction extends AbstractNewSpatialWizardAction &#123;
 
 </div>
 <!-- EDIT5 SECTION "Adding items to the add and tools menus" [6865-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:sceneexplorer?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:development:sceneexplorer?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 3ceb3cf..6798f93 100644 (file)
@@ -127,21 +127,25 @@ And thats it, from now on each time you commit changes to your module it will be
 
 </div>
 
-<h4><a>Building library jar files on the server</a></h4>
+<h4><a>Building wrapped library jar files on the server</a></h4>
 <div>
 
 <p>
-You can just build your library locally and update and commit the jar file and javadoc/sources zip files to the contrib repo, the users plugins will automatically be updated with the new jar files. You can however also build the whole library project on the server.
+You can just build your library locally and update and commit the jar file and javadoc/sources zip files to the <code>release/libs</code> folder of your plugin in the contrib repo. The users plugins will automatically be updated with the new jar files. You can however also build the library project on the server.
 </p>
 
 <p>
-As only the module project is being built on the server, any projects that create the actual jar files for library plugins (&quot;normal&quot; projects from the <acronym title="Software Development Kit">SDK</acronym>/NetBeans) have to be built from the module build file. To do that simply add the following ant targets to the module build file:
+As normally only the module project is being built on the server, any projects that create the actual jar files for library plugins (&quot;normal&quot; projects from the <acronym title="Software Development Kit">SDK</acronym>/NetBeans) have to be built from the module build file. To do that simply add the following ant targets to the module build file (adapt to your project file and folder names):
 
 </p>
 <pre><span>&lt;target name=&quot;init&quot; depends=&quot;basic-init,files-init,build-init,-javac-init,-build-subproject&quot;/&gt;</span>
 <span>&lt;target name=&quot;-build-subproject&quot;&gt;</span>
-    <span>&lt;ant dir=&quot;./MySubProject&quot; inheritall=&quot;false&quot; target=&quot;jar&quot;/&gt;</span>
-    <span>&lt;copy file=&quot;./MySubProject/dist/MySubProject.jar&quot; todir=&quot;release/libs&quot;/&gt;</span>
+    <span>&lt;ant dir=&quot;./AI&quot; inheritall=&quot;false&quot; inheritrefs=&quot;false&quot; target=&quot;clean&quot;/&gt;</span>
+    <span>&lt;ant dir=&quot;./AI&quot; inheritall=&quot;false&quot; inheritrefs=&quot;false&quot; target=&quot;jar&quot;/&gt;</span>
+    <span>&lt;ant dir=&quot;./AI&quot; inheritall=&quot;false&quot; inheritrefs=&quot;false&quot; target=&quot;javadoc&quot;/&gt;</span>
+    <span>&lt;zip basedir=&quot;./AI/dist/javadoc&quot; file=&quot;release/libs/jME3-ai-javadoc.zip&quot;/&gt;</span>
+    <span>&lt;zip basedir=&quot;./AI/src&quot; file=&quot;release/libs/jME3-ai-sources.zip&quot;/&gt;</span>
+    <span>&lt;copy file=&quot;./AI/dist/jME3-ai.jar&quot; todir=&quot;release/libs&quot;/&gt;</span>
 <span><span>&lt;/target&gt;</span></span></pre>
 
 <p>
@@ -152,4 +156,4 @@ As only the module project is being built on the server, any projects that creat
 
 </div>
 <!-- EDIT3 SECTION "jMonkeyEngine SDK Contributions Update Center" [1393-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:development:setup?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:development:setup?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 6050a73..35d3a7c 100644 (file)
@@ -95,4 +95,4 @@ viewPort.addProcessor&#40;processor&#41;;</pre>
 
 </div>
 <!-- EDIT5 SECTION "Loading filters in a game" [1470-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:filters?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:filters?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 1ab57be..60c16b4 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkey-branding.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkey-branding.png differ
index 1810c65..a30fd2f 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-2.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-2.png differ
index 769400e..5accbc2 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-3.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-3.png differ
index d582c3e..dfb9e4d 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-4.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-4.png differ
index c2ef24b..b53a41e 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-5.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/jmonkeyplatform-docu-5.png differ
index af3e401..2b7ea1f 100644 (file)
@@ -46,4 +46,4 @@ The message log contains all paths and <a href="/com/jme3/gde/docs/jme3/advanced
 
 </div>
 <!-- EDIT2 SECTION "Example Log" [677-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:log_files?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:log_files?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 7adc7c6..d0bdab4 100644 (file)
Binary files a/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/material-editor.png and b/sdk/jme3-documentation/src/com/jme3/gde/docs/sdk/material-editor.png differ
index 52a51c0..0f88f59 100644 (file)
@@ -113,7 +113,7 @@ Or in your Java code
 </li>
 </ul>
 <pre>mywall.setMaterial&#40;assetManager.loadAsset&#40; &quot;Materials/mat_wall.j3m&quot;&#41;&#41;;</pre>
-<hr/>
+<hr />
 
 <p>
 <strong>See also:</strong>
@@ -143,4 +143,4 @@ Or in your Java code
 
 </div>
 <!-- EDIT4 SECTION "Using .j3m Materials" [2215-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:material_editing?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:material_editing?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index f38b763..a074f3f 100644 (file)
@@ -186,4 +186,4 @@ To have a valid jME3 object, the paths to textures and other assets belonging to
 
 </div>
 <!-- EDIT9 SECTION "About the projects AssetManager" [4993-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:model_loader_and_viewer?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:model_loader_and_viewer?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index fdc6ef1..4ba1ce9 100644 (file)
@@ -277,4 +277,4 @@ Choose samples from the TestChooser and try out the included demos.</div>
 
 </div>
 <!-- EDIT8 SECTION "Running Sample Projects" [8010-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:project_creation?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:project_creation?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 1eebc9c..704bf7e 100644 (file)
@@ -205,4 +205,4 @@ Also note that although it its possible to directly link external model files (O
 
 </div>
 <!-- EDIT9 SECTION "Saving the Scene" [4637-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:scene_composer?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:scene_composer?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 8a8e8c3..a6c55af 100644 (file)
@@ -76,4 +76,4 @@ Right-click a Spatial or Node in the SceneExplorer to add other Spatials like Pa
 
 </div>
 <!-- EDIT6 SECTION "Adding Objects to the scene" [1349-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:scene_explorer?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:scene_explorer?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 6dce226..7b5a354 100644 (file)
@@ -210,9 +210,16 @@ Note that whenever you modify the height of the terrain, you should re-generate
 <div>
 
 <p>
-When you want to load a scene into your game that has terrain, you have to set the camera on the LOD control in order for it to work correctly:
-
+There are a few things your code needs to do to load the terrain.
 </p>
+<ul>
+<li><div> You must first use the asset manager to load the scene, see the <a href="/com/jme3/gde/docs/jme3/beginner/hello_asset.html">hello asset tutorial</a>.</div>
+</li>
+<li><div> The terrain (as you can see on the left in the editor) is a sub-node of the scene, so you have to write code to investigate the child nodes of the scene until you find the node that is the terrain, see <a href="/com/jme3/gde/docs/jme3/the_scene_graph.html">this tutorial for scene graph concepts</a>.</div>
+</li>
+<li><div> You also have to set the camera on the LOD control in order for it to work correctly:</div>
+</li>
+</ul>
 <pre>TerrainLodControl lodControl = &#40;&#40;Node&#41;terrain&#41;.getControl&#40;TerrainLodControl.class&#41;;
             if &#40;lodControl != null&#41;
                 lodControl.setCamera&#40;getCamera&#40;&#41;&#41;;</pre>
@@ -227,4 +234,4 @@ When you want to load a scene into your game that has terrain, you have to set t
 
 </div>
 <!-- EDIT17 SECTION "Loading Terrain Into Your Game" [6564-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:terrain_editor?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:terrain_editor?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 6577d73..981fbef 100644 (file)
@@ -32,11 +32,12 @@ Mac users navigate to <code>Contents/Resources/jmonkeyplatform/etc/</code>.</div
 <div>
 
 <p>
-<strong>On Windows and Linux make sure you have the latest driver installed. Make sure its the one supplied by the card manufacturer and not just the <acronym title="Operating System">OS</acronym>-default one.</strong>
+<strong>On Windows and Linux make sure you have the latest driver installed. Make sure its the one supplied by the card manufacturer and not just the <acronym title="Operating System">OS</acronym>-default one.</strong> On OSX, make sure you have the latest update for your MacOS.
+
 </p>
 
 </div>
-<!-- EDIT3 SECTION "Graphics Card Driver" [767-960] -->
+<!-- EDIT3 SECTION "Graphics Card Driver" [767-1020] -->
 <h3><a>Stability / Graphics issues</a></h3>
 <div>
 
@@ -79,7 +80,7 @@ Compiz on Linux might cause issues, if you set its rendering quality to &quot;me
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Stability / Graphics issues" [961-2293] -->
+<!-- EDIT4 SECTION "Stability / Graphics issues" [1021-2353] -->
 <h3><a>Updating problems</a></h3>
 <div>
 
@@ -88,7 +89,7 @@ If you have problems updating the <acronym title="Software Development Kit">SDK<
 </p>
 
 </div>
-<!-- EDIT5 SECTION "Updating problems" [2294-2541] -->
+<!-- EDIT5 SECTION "Updating problems" [2354-2601] -->
 <h3><a>Preferences and Settings</a></h3>
 <div>
 
@@ -107,7 +108,16 @@ To completely remove and/or reinstall the <acronym title="Software Development K
 </ul>
 
 </div>
-<!-- EDIT6 SECTION "Preferences and Settings" [2542-3030] -->
+<!-- EDIT6 SECTION "Preferences and Settings" [2602-3090] -->
+<h3><a>Log</a></h3>
+<div>
+
+<p>
+To see or post the error output of the <acronym title="Software Development Kit">SDK</acronym> in the forum, you can find the log of the application in the settings folder above too, the file is called <code>var/log/messages.log</code>
+</p>
+
+</div>
+<!-- EDIT7 SECTION "Log" [3091-3280] -->
 <h3><a>Getting error messages and reporting issues</a></h3>
 <div>
 
@@ -116,7 +126,7 @@ When an exception happens in the <acronym title="Software Development Kit">SDK</
 </p>
 
 </div>
-<!-- EDIT7 SECTION "Getting error messages and reporting issues" [3031-3420] -->
+<!-- EDIT8 SECTION "Getting error messages and reporting issues" [3281-3670] -->
 <h3><a>Known Issues</a></h3>
 <div>
 
@@ -132,5 +142,5 @@ For a list of known issues and possible workarounds see the following link:
 </span></div>
 
 </div>
-<!-- EDIT8 SECTION "Known Issues" [3421-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:troubleshooting?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT9 SECTION "Known Issues" [3671-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:troubleshooting?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index edde1e1..ee739e1 100644 (file)
@@ -41,4 +41,4 @@
 </span></div>
 
 </div>
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:use_own_jme?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:use_own_jme?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index a72bf0d..b1b78f4 100644 (file)
@@ -72,4 +72,4 @@ control.accelerate&#40;100&#41;;</pre>
 
 </div>
 <!-- EDIT4 SECTION "Code Sample" [1076-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:vehicle_creator?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:vehicle_creator?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 5212944..b929ecc 100644 (file)
@@ -222,4 +222,4 @@ See also:
 
 </div>
 <!-- EDIT7 SECTION "No Version Control? Local History!" [5454-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:version_control?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:version_control?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index d8de53b..549e562 100644 (file)
@@ -3,16 +3,15 @@
 <div>
 
 <p>
-You are running the latest version of the <acronym title="Software Development Kit">SDK</acronym> Application (jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> 3.0RC3), see below how you can check for incremental updates.
+<strong>You are running an experimental build or nightly version of the <acronym title="Software Development Kit">SDK</acronym> (jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> 3.0RC3-pre-svn)</strong>
 </p>
 
 <p>
-This place will be updated with the latest news about your <acronym title="Software Development Kit">SDK</acronym>.
-
+This place will be updated with the latest news about the <acronym title="Software Development Kit">SDK</acronym>, see below how you can check for incremental updates.
 </p>
 
 </div>
-<!-- EDIT1 SECTION "Welcome to the jMonkeyEngine SDK" [1-251] -->
+<!-- EDIT1 SECTION "Welcome to the jMonkeyEngine SDK" [1-272] -->
 <h3><a>Getting Started</a></h3>
 <div>
 
@@ -21,11 +20,11 @@ Press the &quot;New Project&quot; button to create a new Project. Press the &quo
 </p>
 
 <p>
-<img src="nbdocs:/com/jme3/gde/docs/sdk/welcome/new_project.png" class="media" alt=""/>
+<img src="nbdocs:/com/jme3/gde/docs/sdk/welcome/new_project.png" class="media" alt="" />
 </p>
 
 </div>
-<!-- EDIT2 SECTION "Getting Started" [252-471] -->
+<!-- EDIT2 SECTION "Getting Started" [273-492] -->
 <h3><a>Tutorials / Manual</a></h3>
 <div>
 
@@ -34,11 +33,11 @@ By pressing &quot;F1&quot; you can open the manual which contains up to date tut
 </p>
 
 <p>
-<img src="nbdocs:/com/jme3/gde/docs/sdk/welcome/search_field.png" class="media" alt=""/>
+<img src="nbdocs:/com/jme3/gde/docs/sdk/welcome/search_field.png" class="media" alt="" />
 </p>
 
 </div>
-<!-- EDIT3 SECTION "Tutorials / Manual" [472-735] -->
+<!-- EDIT3 SECTION "Tutorials / Manual" [493-756] -->
 <h3><a>Updates</a></h3>
 <div>
 
@@ -47,10 +46,18 @@ You can check for incremental updates to the application via the Help menu:
 </p>
 
 <p>
-<img src="nbdocs:/com/jme3/gde/docs/sdk/welcome/help_update.png" class="media" alt=""/>
+<img src="nbdocs:/com/jme3/gde/docs/sdk/welcome/help_update.png" class="media" alt="" />
+</p>
+
+</div>
+<!-- EDIT4 SECTION "Updates" [757-892] -->
+<h3><a>Troubleshooting</a></h3>
+<div>
 
+<p>
+If you experience problems or instability issues with the <acronym title="Software Development Kit">SDK</acronym>, <a href="/com/jme3/gde/docs/sdk/troubleshooting.html">click here to see common troubleshooting tips.</a>
 </p>
 
 </div>
-<!-- EDIT4 SECTION "Updates" [736-] -->
-<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:welcome:3_0rc3?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
+<!-- EDIT5 SECTION "Troubleshooting" [893-] -->
+<p><em><a href="http://hub.jmonkeyengine.org/wiki/doku.php/sdk:welcome:3_0rc3?do=export_xhtmlbody">view online version</a></em></p>
\ No newline at end of file
index 1274562..1838dbf 100644 (file)
@@ -1,5 +1,5 @@
 javahelp_path = com/jme3/gde/docs
-wiki_url = http://jmonkeyengine.org/wiki/doku.php/
+wiki_url = http://hub.jmonkeyengine.org/wiki/doku.php/
 wiki_pages = sdk:project_creation,\
 sdk:3ds_to_blender_to_jmp,\
 sdk:application_deployment,\
index f4fb298..501eeb9 100644 (file)
@@ -1 +1 @@
-<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 2.0//EN" "http://java.sun.com/products/javahelp/map_2_0.dtd">\r<map version="2.0">\r<!-- DO NOT EDIT THIS FILE, EDIT wiki-download-index.properties INSTEAD! -->\r<mapID target="sdk.project_creation" url="sdk/project_creation.html"/>\r<mapID target="sdk.3ds_to_blender_to_jmp" url="sdk/3ds_to_blender_to_jmp.html"/>\r<mapID target="sdk.application_deployment" url="sdk/application_deployment.html"/>\r<mapID target="sdk.asset_packs" url="sdk/asset_packs.html"/>\r<mapID target="sdk.blender" url="sdk/blender.html"/>\r<mapID target="sdk.code_editor" url="sdk/code_editor.html"/>\r<mapID target="sdk.debugging_profiling_testing" url="sdk/debugging_profiling_testing.html"/>\r<mapID target="sdk.default_build_script" url="sdk/default_build_script.html"/>\r<mapID target="sdk.filters" url="sdk/filters.html"/>\r<mapID target="sdk.log_files" url="sdk/log_files.html"/>\r<mapID target="sdk.material_editing" url="sdk/material_editing.html"/>\r<mapID target="sdk.model_loader_and_viewer" url="sdk/model_loader_and_viewer.html"/>\r<mapID target="sdk.project_creation" url="sdk/project_creation.html"/>\r<mapID target="sdk.scene_composer" url="sdk/scene_composer.html"/>\r<mapID target="sdk.scene_explorer" url="sdk/scene_explorer.html"/>\r<mapID target="sdk.terrain_editor" url="sdk/terrain_editor.html"/>\r<mapID target="sdk.troubleshooting" url="sdk/troubleshooting.html"/>\r<mapID target="sdk.use_own_jme" url="sdk/use_own_jme.html"/>\r<mapID target="sdk.vehicle_creator" url="sdk/vehicle_creator.html"/>\r<mapID target="sdk.version_control" url="sdk/version_control.html"/>\r<mapID target="sdk.development" url="sdk/development.html"/>\r<mapID target="sdk.development.extension_library" url="sdk/development/extension_library.html"/>\r<mapID target="sdk.development.general" url="sdk/development/general.html"/>\r<mapID target="sdk.development.model_loader" url="sdk/development/model_loader.html"/>\r<mapID target="sdk.development.projects_assets" url="sdk/development/projects_assets.html"/>\r<mapID target="sdk.development.scene" url="sdk/development/scene.html"/>\r<mapID target="sdk.development.sceneexplorer" url="sdk/development/sceneexplorer.html"/>\r<mapID target="sdk.development.setup" url="sdk/development/setup.html"/>\r<mapID target="sdk.welcome.3_0rc3" url="sdk/welcome/3_0rc3.html"/>\r<mapID target="jme3.android" url="jme3/android.html"/>\r<mapID target="jme3.ios" url="jme3/ios.html"/>\r<mapID target="jme3.build_jme3_sources_with_netbeans" url="jme3/build_jme3_sources_with_netbeans.html"/>\r<mapID target="jme3.build_from_sources" url="jme3/build_from_sources.html"/>\r<mapID target="jme3.simpleapplication_from_the_commandline" url="jme3/simpleapplication_from_the_commandline.html"/>\r<mapID target="jme3.faq" url="jme3/faq.html"/>\r<mapID target="jme3.math" url="jme3/math.html"/>\r<mapID target="jme3.terminology" url="jme3/terminology.html"/>\r<mapID target="jme3.the_scene_graph" url="jme3/the_scene_graph.html"/>\r<mapID target="jme3.webstart" url="jme3/webstart.html"/>\r<mapID target="jme3.external.blender" url="jme3/external/blender.html"/>\r<mapID target="jme3.external.3dsmax" url="jme3/external/3dsmax.html"/>\r<mapID target="jme3.intermediate.appsettings" url="jme3/intermediate/appsettings.html"/>\r<mapID target="jme3.intermediate.best_practices" url="jme3/intermediate/best_practices.html"/>\r<mapID target="jme3.intermediate.file_types" url="jme3/intermediate/file_types.html"/>\r<mapID target="jme3.intermediate.how_to_use_materials" url="jme3/intermediate/how_to_use_materials.html"/>\r<mapID target="jme3.intermediate.math" url="jme3/intermediate/math.html"/>\r<mapID target="jme3.intermediate.multi-media_asset_pipeline" url="jme3/intermediate/multi-media_asset_pipeline.html"/>\r<mapID target="jme3.intermediate.optimization" url="jme3/intermediate/optimization.html"/>\r<mapID target="jme3.intermediate.simpleapplication" url="jme3/intermediate/simpleapplication.html"/>\r<mapID target="jme3.advanced.3d_models" url="jme3/advanced/3d_models.html"/>\r<mapID target="jme3.advanced.animation" url="jme3/advanced/animation.html"/>\r<mapID target="jme3.advanced.application_states" url="jme3/advanced/application_states.html"/>\r<mapID target="jme3.advanced.appstatesdemo" url="jme3/advanced/appstatesdemo.html"/>\r<mapID target="jme3.advanced.asset_manager" url="jme3/advanced/asset_manager.html"/>\r<mapID target="jme3.advanced.audio" url="jme3/advanced/audio.html"/>\r<mapID target="jme3.advanced.audio_environment_presets" url="jme3/advanced/audio_environment_presets.html"/>\r<mapID target="jme3.advanced.bloom_and_glow" url="jme3/advanced/bloom_and_glow.html"/>\r<mapID target="jme3.advanced.bullet_multithreading" url="jme3/advanced/bullet_multithreading.html"/>\r<mapID target="jme3.advanced.camera" url="jme3/advanced/camera.html"/>\r<mapID target="jme3.advanced.capture_audio_video_to_a_file" url="jme3/advanced/capture_audio_video_to_a_file.html"/>\r<mapID target="jme3.advanced.cinematics" url="jme3/advanced/cinematics.html"/>\r<mapID target="jme3.advanced.collision_and_intersection" url="jme3/advanced/collision_and_intersection.html"/>\r<mapID target="jme3.advanced.combo_moves" url="jme3/advanced/combo_moves.html"/>\r<mapID target="jme3.advanced.custom_controls" url="jme3/advanced/custom_controls.html"/>\r<mapID target="jme3.advanced.custom_meshes" url="jme3/advanced/custom_meshes.html"/>\r<mapID target="jme3.advanced.debugging" url="jme3/advanced/debugging.html"/>\r<mapID target="jme3.advanced.effects_overview" url="jme3/advanced/effects_overview.html"/>\r<mapID target="jme3.advanced.endless_terraingrid" url="jme3/advanced/endless_terraingrid.html"/>\r<mapID target="jme3.advanced.fade" url="jme3/advanced/fade.html"/>\r<mapID target="jme3.advanced.headless_server" url="jme3/advanced/headless_server.html"/>\r<mapID target="jme3.advanced.hinges_and_joints" url="jme3/advanced/hinges_and_joints.html"/>\r<mapID target="jme3.advanced.hud" url="jme3/advanced/hud.html"/>\r<mapID target="jme3.advanced.input_handling" url="jme3/advanced/input_handling.html"/>\r<mapID target="jme3.advanced.j3m_material_files" url="jme3/advanced/j3m_material_files.html"/>\r<mapID target="jme3.advanced.jme3_shaders" url="jme3/advanced/jme3_shaders.html"/>\r<mapID target="jme3.advanced.light_and_shadow" url="jme3/advanced/light_and_shadow.html"/>\r<mapID target="jme3.advanced.loading_screen" url="jme3/advanced/loading_screen.html"/>\r<mapID target="jme3.advanced.localization" url="jme3/advanced/localization.html"/>\r<mapID target="jme3.advanced.logging" url="jme3/advanced/logging.html"/>\r<mapID target="jme3.advanced.making_the_camera_follow_a_character" url="jme3/advanced/making_the_camera_follow_a_character.html"/>\r<mapID target="jme3.advanced.material_definitions" url="jme3/advanced/material_definitions.html"/>\r<mapID target="jme3.advanced.materials_overview" url="jme3/advanced/materials_overview.html"/>\r<mapID target="jme3.advanced.mesh" url="jme3/advanced/mesh.html"/>\r<mapID target="jme3.advanced.monkey_zone" url="jme3/advanced/monkey_zone.html"/>\r<mapID target="jme3.advanced.motionpath" url="jme3/advanced/motionpath.html"/>\r<mapID target="jme3.advanced.mouse_picking" url="jme3/advanced/mouse_picking.html"/>\r<mapID target="jme3.advanced.multiple_camera_views" url="jme3/advanced/multiple_camera_views.html"/>\r<mapID target="jme3.advanced.multithreading" url="jme3/advanced/multithreading.html"/>\r<mapID target="jme3.advanced.networking" url="jme3/advanced/networking.html"/>\r<mapID target="jme3.advanced.nifty_gui" url="jme3/advanced/nifty_gui.html"/>\r<mapID target="jme3.advanced.nifty_gui_java_interaction" url="jme3/advanced/nifty_gui_java_interaction.html"/>\r<mapID target="jme3.advanced.nifty_gui_java_layout" url="jme3/advanced/nifty_gui_java_layout.html"/>\r<mapID target="jme3.advanced.nifty_gui_overlay" url="jme3/advanced/nifty_gui_overlay.html"/>\r<mapID target="jme3.advanced.nifty_gui_popup_menu" url="jme3/advanced/nifty_gui_popup_menu.html"/>\r<mapID target="jme3.advanced.nifty_gui_projection" url="jme3/advanced/nifty_gui_projection.html"/>\r<mapID target="jme3.advanced.nifty_gui_scenarios" url="jme3/advanced/nifty_gui_scenarios.html"/>\r<mapID target="jme3.advanced.nifty_gui_xml_layout" url="jme3/advanced/nifty_gui_xml_layout.html"/>\r<mapID target="jme3.advanced.ogrecompatibility" url="jme3/advanced/ogrecompatibility.html"/>\r<mapID target="jme3.advanced.open_game_finder" url="jme3/advanced/open_game_finder.html"/>\r<mapID target="jme3.advanced.particle_emitters" url="jme3/advanced/particle_emitters.html"/>\r<mapID target="jme3.advanced.physics" url="jme3/advanced/physics.html"/>\r<mapID target="jme3.advanced.physics_listeners" url="jme3/advanced/physics_listeners.html"/>\r<mapID target="jme3.advanced.post-processor_water" url="jme3/advanced/post-processor_water.html"/>\r<mapID target="jme3.advanced.ragdoll" url="jme3/advanced/ragdoll.html"/>\r<mapID target="jme3.advanced.read_graphic_card_capabilites" url="jme3/advanced/read_graphic_card_capabilites.html"/>\r<mapID target="jme3.advanced.remote-controlling_the_camera" url="jme3/advanced/remote-controlling_the_camera.html"/>\r<mapID target="jme3.advanced.save_and_load" url="jme3/advanced/save_and_load.html"/>\r<mapID target="jme3.advanced.screenshots" url="jme3/advanced/screenshots.html"/>\r<mapID target="jme3.advanced.shape" url="jme3/advanced/shape.html"/>\r<mapID target="jme3.advanced.sky" url="jme3/advanced/sky.html"/>\r<mapID target="jme3.advanced.spatial" url="jme3/advanced/spatial.html"/>\r<mapID target="jme3.advanced.swing_canvas" url="jme3/advanced/swing_canvas.html"/>\r<mapID target="jme3.advanced.terrain" url="jme3/advanced/terrain.html"/>\r<mapID target="jme3.advanced.terrain_collision" url="jme3/advanced/terrain_collision.html"/>\r<mapID target="jme3.advanced.update_loop" url="jme3/advanced/update_loop.html"/>\r<mapID target="jme3.advanced.vehicles" url="jme3/advanced/vehicles.html"/>\r<mapID target="jme3.advanced.walking_character" url="jme3/advanced/walking_character.html"/>\r<mapID target="jme3.advanced.water" url="jme3/advanced/water.html"/>\r<mapID target="jme3.beginner.hello_simpleapplication" url="jme3/beginner/hello_simpleapplication.html"/>\r<mapID target="jme3.beginner.hello_node" url="jme3/beginner/hello_node.html"/>\r<mapID target="jme3.beginner.hello_asset" url="jme3/beginner/hello_asset.html"/>\r<mapID target="jme3.beginner.hello_main_event_loop" url="jme3/beginner/hello_main_event_loop.html"/>\r<mapID target="jme3.beginner.hello_input_system" url="jme3/beginner/hello_input_system.html"/>\r<mapID target="jme3.beginner.hello_material" url="jme3/beginner/hello_material.html"/>\r<mapID target="jme3.beginner.hello_animation" url="jme3/beginner/hello_animation.html"/>\r<mapID target="jme3.beginner.hello_picking" url="jme3/beginner/hello_picking.html"/>\r<mapID target="jme3.beginner.hello_collision" url="jme3/beginner/hello_collision.html"/>\r<mapID target="jme3.beginner.hello_terrain" url="jme3/beginner/hello_terrain.html"/>\r<mapID target="jme3.beginner.hello_audio" url="jme3/beginner/hello_audio.html"/>\r<mapID target="jme3.beginner.hello_effects" url="jme3/beginner/hello_effects.html"/>\r<mapID target="jme3.beginner.hello_physics" url="jme3/beginner/hello_physics.html"/>\r</map>\r
\ No newline at end of file
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 2.0//EN" "http://java.sun.com/products/javahelp/map_2_0.dtd">\r<map version="2.0">\r<!-- DO NOT EDIT THIS FILE, EDIT wiki-download-index.properties INSTEAD! -->\r<mapID target="sdk.application_deployment" url="sdk/application_deployment.html"/>\r<mapID target="sdk.project_creation" url="sdk/project_creation.html"/>\r<mapID target="sdk.asset_packs" url="sdk/asset_packs.html"/>\r<mapID target="sdk.3ds_to_blender_to_jmp" url="sdk/3ds_to_blender_to_jmp.html"/>\r<mapID target="sdk.application_deployment" url="sdk/application_deployment.html"/>\r<mapID target="sdk.asset_packs" url="sdk/asset_packs.html"/>\r<mapID target="sdk.blender" url="sdk/blender.html"/>\r<mapID target="sdk.code_editor" url="sdk/code_editor.html"/>\r<mapID target="sdk.debugging_profiling_testing" url="sdk/debugging_profiling_testing.html"/>\r<mapID target="sdk.default_build_script" url="sdk/default_build_script.html"/>\r<mapID target="sdk.filters" url="sdk/filters.html"/>\r<mapID target="sdk.log_files" url="sdk/log_files.html"/>\r<mapID target="sdk.material_editing" url="sdk/material_editing.html"/>\r<mapID target="sdk.model_loader_and_viewer" url="sdk/model_loader_and_viewer.html"/>\r<mapID target="sdk.project_creation" url="sdk/project_creation.html"/>\r<mapID target="sdk.scene_composer" url="sdk/scene_composer.html"/>\r<mapID target="sdk.scene_explorer" url="sdk/scene_explorer.html"/>\r<mapID target="sdk.terrain_editor" url="sdk/terrain_editor.html"/>\r<mapID target="sdk.troubleshooting" url="sdk/troubleshooting.html"/>\r<mapID target="sdk.use_own_jme" url="sdk/use_own_jme.html"/>\r<mapID target="sdk.vehicle_creator" url="sdk/vehicle_creator.html"/>\r<mapID target="sdk.version_control" url="sdk/version_control.html"/>\r<mapID target="sdk.development" url="sdk/development.html"/>\r<mapID target="sdk.development.extension_library" url="sdk/development/extension_library.html"/>\r<mapID target="sdk.development.general" url="sdk/development/general.html"/>\r<mapID target="sdk.development.model_loader" url="sdk/development/model_loader.html"/>\r<mapID target="sdk.development.projects_assets" url="sdk/development/projects_assets.html"/>\r<mapID target="sdk.development.scene" url="sdk/development/scene.html"/>\r<mapID target="sdk.development.sceneexplorer" url="sdk/development/sceneexplorer.html"/>\r<mapID target="sdk.development.setup" url="sdk/development/setup.html"/>\r<mapID target="sdk.welcome.3_0rc3" url="sdk/welcome/3_0rc3.html"/>\r<mapID target="jme3.android" url="jme3/android.html"/>\r<mapID target="jme3.ios" url="jme3/ios.html"/>\r<mapID target="jme3.build_jme3_sources_with_netbeans" url="jme3/build_jme3_sources_with_netbeans.html"/>\r<mapID target="jme3.build_from_sources" url="jme3/build_from_sources.html"/>\r<mapID target="jme3.simpleapplication_from_the_commandline" url="jme3/simpleapplication_from_the_commandline.html"/>\r<mapID target="jme3.faq" url="jme3/faq.html"/>\r<mapID target="jme3.math" url="jme3/math.html"/>\r<mapID target="jme3.terminology" url="jme3/terminology.html"/>\r<mapID target="jme3.the_scene_graph" url="jme3/the_scene_graph.html"/>\r<mapID target="jme3.webstart" url="jme3/webstart.html"/>\r<mapID target="jme3.external.blender" url="jme3/external/blender.html"/>\r<mapID target="jme3.external.3dsmax" url="jme3/external/3dsmax.html"/>\r<mapID target="jme3.intermediate.appsettings" url="jme3/intermediate/appsettings.html"/>\r<mapID target="jme3.intermediate.best_practices" url="jme3/intermediate/best_practices.html"/>\r<mapID target="jme3.intermediate.file_types" url="jme3/intermediate/file_types.html"/>\r<mapID target="jme3.intermediate.how_to_use_materials" url="jme3/intermediate/how_to_use_materials.html"/>\r<mapID target="jme3.intermediate.math" url="jme3/intermediate/math.html"/>\r<mapID target="jme3.intermediate.multi-media_asset_pipeline" url="jme3/intermediate/multi-media_asset_pipeline.html"/>\r<mapID target="jme3.intermediate.optimization" url="jme3/intermediate/optimization.html"/>\r<mapID target="jme3.intermediate.simpleapplication" url="jme3/intermediate/simpleapplication.html"/>\r<mapID target="jme3.advanced.3d_models" url="jme3/advanced/3d_models.html"/>\r<mapID target="jme3.advanced.animation" url="jme3/advanced/animation.html"/>\r<mapID target="jme3.advanced.application_states" url="jme3/advanced/application_states.html"/>\r<mapID target="jme3.advanced.appstatesdemo" url="jme3/advanced/appstatesdemo.html"/>\r<mapID target="jme3.advanced.asset_manager" url="jme3/advanced/asset_manager.html"/>\r<mapID target="jme3.advanced.audio" url="jme3/advanced/audio.html"/>\r<mapID target="jme3.advanced.audio_environment_presets" url="jme3/advanced/audio_environment_presets.html"/>\r<mapID target="jme3.advanced.bloom_and_glow" url="jme3/advanced/bloom_and_glow.html"/>\r<mapID target="jme3.advanced.bullet_multithreading" url="jme3/advanced/bullet_multithreading.html"/>\r<mapID target="jme3.advanced.camera" url="jme3/advanced/camera.html"/>\r<mapID target="jme3.advanced.capture_audio_video_to_a_file" url="jme3/advanced/capture_audio_video_to_a_file.html"/>\r<mapID target="jme3.advanced.cinematics" url="jme3/advanced/cinematics.html"/>\r<mapID target="jme3.advanced.collision_and_intersection" url="jme3/advanced/collision_and_intersection.html"/>\r<mapID target="jme3.advanced.combo_moves" url="jme3/advanced/combo_moves.html"/>\r<mapID target="jme3.advanced.custom_controls" url="jme3/advanced/custom_controls.html"/>\r<mapID target="jme3.advanced.custom_meshes" url="jme3/advanced/custom_meshes.html"/>\r<mapID target="jme3.advanced.debugging" url="jme3/advanced/debugging.html"/>\r<mapID target="jme3.advanced.effects_overview" url="jme3/advanced/effects_overview.html"/>\r<mapID target="jme3.advanced.endless_terraingrid" url="jme3/advanced/endless_terraingrid.html"/>\r<mapID target="jme3.advanced.fade" url="jme3/advanced/fade.html"/>\r<mapID target="jme3.advanced.headless_server" url="jme3/advanced/headless_server.html"/>\r<mapID target="jme3.advanced.hinges_and_joints" url="jme3/advanced/hinges_and_joints.html"/>\r<mapID target="jme3.advanced.hud" url="jme3/advanced/hud.html"/>\r<mapID target="jme3.advanced.input_handling" url="jme3/advanced/input_handling.html"/>\r<mapID target="jme3.advanced.j3m_material_files" url="jme3/advanced/j3m_material_files.html"/>\r<mapID target="jme3.advanced.jme3_shaders" url="jme3/advanced/jme3_shaders.html"/>\r<mapID target="jme3.advanced.light_and_shadow" url="jme3/advanced/light_and_shadow.html"/>\r<mapID target="jme3.advanced.loading_screen" url="jme3/advanced/loading_screen.html"/>\r<mapID target="jme3.advanced.localization" url="jme3/advanced/localization.html"/>\r<mapID target="jme3.advanced.logging" url="jme3/advanced/logging.html"/>\r<mapID target="jme3.advanced.making_the_camera_follow_a_character" url="jme3/advanced/making_the_camera_follow_a_character.html"/>\r<mapID target="jme3.advanced.material_definitions" url="jme3/advanced/material_definitions.html"/>\r<mapID target="jme3.advanced.materials_overview" url="jme3/advanced/materials_overview.html"/>\r<mapID target="jme3.advanced.mesh" url="jme3/advanced/mesh.html"/>\r<mapID target="jme3.advanced.monkey_zone" url="jme3/advanced/monkey_zone.html"/>\r<mapID target="jme3.advanced.motionpath" url="jme3/advanced/motionpath.html"/>\r<mapID target="jme3.advanced.mouse_picking" url="jme3/advanced/mouse_picking.html"/>\r<mapID target="jme3.advanced.multiple_camera_views" url="jme3/advanced/multiple_camera_views.html"/>\r<mapID target="jme3.advanced.multithreading" url="jme3/advanced/multithreading.html"/>\r<mapID target="jme3.advanced.networking" url="jme3/advanced/networking.html"/>\r<mapID target="jme3.advanced.nifty_gui" url="jme3/advanced/nifty_gui.html"/>\r<mapID target="jme3.advanced.nifty_gui_java_interaction" url="jme3/advanced/nifty_gui_java_interaction.html"/>\r<mapID target="jme3.advanced.nifty_gui_java_layout" url="jme3/advanced/nifty_gui_java_layout.html"/>\r<mapID target="jme3.advanced.nifty_gui_overlay" url="jme3/advanced/nifty_gui_overlay.html"/>\r<mapID target="jme3.advanced.nifty_gui_popup_menu" url="jme3/advanced/nifty_gui_popup_menu.html"/>\r<mapID target="jme3.advanced.nifty_gui_projection" url="jme3/advanced/nifty_gui_projection.html"/>\r<mapID target="jme3.advanced.nifty_gui_scenarios" url="jme3/advanced/nifty_gui_scenarios.html"/>\r<mapID target="jme3.advanced.nifty_gui_xml_layout" url="jme3/advanced/nifty_gui_xml_layout.html"/>\r<mapID target="jme3.advanced.ogrecompatibility" url="jme3/advanced/ogrecompatibility.html"/>\r<mapID target="jme3.advanced.open_game_finder" url="jme3/advanced/open_game_finder.html"/>\r<mapID target="jme3.advanced.particle_emitters" url="jme3/advanced/particle_emitters.html"/>\r<mapID target="jme3.advanced.physics" url="jme3/advanced/physics.html"/>\r<mapID target="jme3.advanced.physics_listeners" url="jme3/advanced/physics_listeners.html"/>\r<mapID target="jme3.advanced.post-processor_water" url="jme3/advanced/post-processor_water.html"/>\r<mapID target="jme3.advanced.ragdoll" url="jme3/advanced/ragdoll.html"/>\r<mapID target="jme3.advanced.read_graphic_card_capabilites" url="jme3/advanced/read_graphic_card_capabilites.html"/>\r<mapID target="jme3.advanced.remote-controlling_the_camera" url="jme3/advanced/remote-controlling_the_camera.html"/>\r<mapID target="jme3.advanced.save_and_load" url="jme3/advanced/save_and_load.html"/>\r<mapID target="jme3.advanced.screenshots" url="jme3/advanced/screenshots.html"/>\r<mapID target="jme3.advanced.shape" url="jme3/advanced/shape.html"/>\r<mapID target="jme3.advanced.sky" url="jme3/advanced/sky.html"/>\r<mapID target="jme3.advanced.spatial" url="jme3/advanced/spatial.html"/>\r<mapID target="jme3.advanced.swing_canvas" url="jme3/advanced/swing_canvas.html"/>\r<mapID target="jme3.advanced.terrain" url="jme3/advanced/terrain.html"/>\r<mapID target="jme3.advanced.terrain_collision" url="jme3/advanced/terrain_collision.html"/>\r<mapID target="jme3.advanced.update_loop" url="jme3/advanced/update_loop.html"/>\r<mapID target="jme3.advanced.vehicles" url="jme3/advanced/vehicles.html"/>\r<mapID target="jme3.advanced.walking_character" url="jme3/advanced/walking_character.html"/>\r<mapID target="jme3.advanced.water" url="jme3/advanced/water.html"/>\r<mapID target="jme3.beginner.hello_simpleapplication" url="jme3/beginner/hello_simpleapplication.html"/>\r<mapID target="jme3.beginner.hello_node" url="jme3/beginner/hello_node.html"/>\r<mapID target="jme3.beginner.hello_asset" url="jme3/beginner/hello_asset.html"/>\r<mapID target="jme3.beginner.hello_main_event_loop" url="jme3/beginner/hello_main_event_loop.html"/>\r<mapID target="jme3.beginner.hello_input_system" url="jme3/beginner/hello_input_system.html"/>\r<mapID target="jme3.beginner.hello_material" url="jme3/beginner/hello_material.html"/>\r<mapID target="jme3.beginner.hello_animation" url="jme3/beginner/hello_animation.html"/>\r<mapID target="jme3.beginner.hello_picking" url="jme3/beginner/hello_picking.html"/>\r<mapID target="jme3.beginner.hello_collision" url="jme3/beginner/hello_collision.html"/>\r<mapID target="jme3.beginner.hello_terrain" url="jme3/beginner/hello_terrain.html"/>\r<mapID target="jme3.beginner.hello_audio" url="jme3/beginner/hello_audio.html"/>\r<mapID target="jme3.beginner.hello_effects" url="jme3/beginner/hello_effects.html"/>\r<mapID target="jme3.beginner.hello_physics" url="jme3/beginner/hello_physics.html"/>\r</map>\r
\ No newline at end of file