Crowd Manager doesn't use custom NavFilter

Hey Jerome,

I have spent some time looking at this. While custom filters have support, the decision to not support virtual filters was very deliberate. It has been done to keep the CrowdManager as performant as possible. Following pointers already adds some overhead, but there are chances for large performance hits due to virtual cost methods which could be run for many agents.

To use the virtual costs, you could either change the Detour code to allow for using pointers to the agent filters. You could alternatively create your own pathfollowing component derived from CrowdFollowingComponent, and override ApplyCrowdAgentVelocity. You can check if there is an obstacle around that truly needs avoided on your path and call the Super implementation to get Detour’s velocity changes, or if there is no obstacle, continue towards the next corner point in the path. You can also use this to have custom ways to deal with an obstacle. For example in FN, we can deal with destructible obstacles or other special cases rather than moving away from the obstacle.

-James