/// @mainpage Recast Navigation /// /// @image html recast_intro.png /// ///

Recast

/// /// _Recast_ is a state of the art navigation mesh construction toolset for /// games. /// /// - It is automatic, which means that you can throw any level /// geometry at it and you will get a robust mesh out. /// - It is fast, which means swift turnaround times for level designers. /// - It is open source, so it comes with full source and you can /// customize it to your hearts content. /// /// The latest version can be found on /// GitHub. /// /// The _Recast_ process starts with constructing a voxel mold from level /// geometry and then casting a navigation mesh over it. The process /// consists of three steps: building the voxel mold, partitioning the /// mold into simple regions, and triangulating the regions as simple polygons. /// /// -# The voxel mold is built from the input triangle mesh by /// rasterizing the triangles into a multi-layer heightfield. Some /// simple filters are then applied to the mold to prune out locations /// where the character would not be able to move. /// -# The walkable areas described by the mold are divided into simple /// overlayed 2D regions. The resulting regions have only one /// non-overlapping contour, which simplifies the final step of the /// process tremendously. /// -# The navigation polygons are generated from the regions by first /// tracing the boundaries and then simplifying them. The resulting /// polygons are finally converted to convex polygons which makes them /// perfect for pathfinding and spatial reasoning about the level. /// ///

Detour

/// /// _Recast_ is accompanied by _Detour_, a path-finding and spatial reasoning /// toolkit. You can use any navigation mesh with _Detour_, but of course /// the data generated by _Recast_ fits perfectly. /// /// _Detour_ offers a simple static navigation mesh that is suitable for /// many simple cases, as well as a tiled navigation mesh that allows you /// to add and remove pieces of the mesh. The tiled mesh allows you to /// create systems where you stream new navigation data in and out as /// the player progresses the level, or regenerate tiles as the /// world changes. /// ///

Recast Demo

/// /// You can find a comprehensive demo project in the `RecastDemo` folder. It /// is a kitchen sink demo containing all the major functionality of the library. /// If you are new to _Recast_ & _Detour_, check out /// /// Sample_SoloMesh.cpp to get started with building navmeshes and /// /// NavMeshTesterTool.cpp to see how _Detour_ can be used to find paths. /// ///

Building RecastDemo

/// /// RecastDemo uses [premake5](http://premake.github.io/) to build platform specific projects. /// Download it and make sure it's available on your path, or specify the path to it. /// ///

Linux

/// /// - Install SDl2 and its dependencies according to your distro's guidelines. /// - run `premake5 gmake` from the `RecastDemo` folder. /// - `cd Build/gmake` then `make` /// - Run `RecastDemo\Bin\RecastDemo` /// ///

OSX

/// /// - Grab the latest SDL2 development library dmg from [here](https://www.libsdl.org/download-2.0.php) and place `SDL2.framework` in `/Library/Frameworks/` /// - Navigate to the `RecastDemo` folder and run `premake5 xcode4` /// - Open `Build/xcode4/recastnavigation.xcworkspace` /// - Select the "RecastDemo" project in the left pane, go to the "BuildPhases" tab and expand "Link Binary With Libraries" /// - Remove the existing entry for SDL2 (it should have a white box icon) and re-add it by hitting the plus, selecting "Add Other", and selecting `/Library/Frameworks/SDL2.framework`. It should now have a suitcase icon. /// - Set the RecastDemo project as the target and build. /// ///

Windows

/// /// - Grab the latest SDL2 development library release from [here](https://www.libsdl.org/download-2.0.php) and unzip it `RecastDemo\Contrib`. Rename the SDL folder such that the path `RecastDemo\Contrib\SDL\lib\x86` is valid. /// - Run `"premake5" vs2015` from the `RecastDemo` folder /// - Open the solution, build, and run. /// ///

Integrating With Your Own Project

/// /// It is recommended to add the source directories `DebugUtils`, `Detour`, /// `DetourCrowd`, `DetourTileCache`, and `Recast` into your own project /// depending on which parts of the project you need. For example your /// level building tool could include `DebugUtils`, `Recast`, and `Detour`, /// and your game runtime could just include `Detour`. /// ///

Contributing

/// All development is centralized in github. Check out the Contributing Guidelines for more information. /// ///

Discuss

/// /// - Discuss _Recast_ and _Detour_: /// /// Recast Navigation Group /// - Development Blog: /// Digesting Duck /// ///

License

/// /// _Recast Navigation_ is licensed under the ZLib license. ///