A* Pathfinding Project  4.1.5
The A* Pathfinding Project for Unity 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Events Macros Groups Pages
FunnelModifier Class Reference

Simplifies paths on navmesh graphs using the funnel algorithm. More...

Detailed Description

Simplifies paths on navmesh graphs using the funnel algorithm.

The funnel algorithm is an algorithm which can, given a path corridor with nodes in the path where the nodes have an area, like triangles, it can find the shortest path inside it. This makes paths on navmeshes look much cleaner and smoother.

The funnel modifier also works on grid graphs however since it only simplifies the paths within the nodes which the original path visited it may not always simplify the path as much as you would like it to. The RaycastModifier can be a better fit for grid graphs.

See Also
http://digestingduck.blogspot.se/2010/03/simple-stupid-funnel-algorithm.html

Public Member Functions

override void Apply (Path p)
 Called for each path that the Seeker calculates after the calculation has finished.
 
- Public Member Functions inherited from MonoModifier
virtual void PreProcess (Path path)
 
- Public Member Functions inherited from IPathModifier
void Apply (Path path)
 
void PreProcess (Path path)
 

Public Attributes

bool splitAtEveryPortal
 Insert a vertex every time the path crosses a portal instead of only at the corners of the path.
 
bool unwrap = true
 Determines if twists and bends should be straightened out before running the funnel algorithm.
 
- Public Attributes inherited from MonoModifier
Seeker seeker
 

Properties

override int Order [get]
 
- Properties inherited from MonoModifier
abstract int Order [get]
 Modifiers will be executed from lower order to higher order.
 
- Properties inherited from IPathModifier
int Order [get]
 

Additional Inherited Members

- Protected Member Functions inherited from MonoModifier
virtual void OnDisable ()
 
virtual void OnEnable ()
 Alerts the Seeker that this modifier exists.
 

Member Function Documentation

override void Apply ( Path  path)
virtual

Called for each path that the Seeker calculates after the calculation has finished.

Implements MonoModifier.

Member Data Documentation

bool splitAtEveryPortal

Insert a vertex every time the path crosses a portal instead of only at the corners of the path.

The resulting path will have exactly one vertex per portal if this is enabled. This may introduce vertices with the same position in the output (esp. in corners where many portals meet).

bool unwrap = true

Determines if twists and bends should be straightened out before running the funnel algorithm.

If the unwrap option is disabled the funnel will simply be projected onto the XZ plane. If the unwrap option is enabled then the funnel may be oriented arbitrarily and may have twists and bends. This makes it possible to support the funnel algorithm in XY space as well as in more complicated cases, such as on curved worlds.

Note
This has a performance overhead, so if you do not need it you can disable it to improve performance.
See Also
Pathfinding.Funnel.Unwrap for more example images.
Note
This is required if you want to use the funnel modifier for 2D games (i.e in the XY plane).

Property Documentation

override int Order
get

The documentation for this class was generated from the following file: