Putting a steering algorithm into SteerSuite




This is a guide I created which I hope to turn into a Wiki some day on how to put your steering algorithm in SteerSuite.

  1. First things first
    1. Your agent needs to extend the SteerLib::AgentInterface class so that is can be used properly with the gspacialDatabase
    2. If your algorithm keeps collections of obstacle types or other agents the types should be changed to SteerLib::AgentInterface or other agents and SteerLib::BoxObstacle
    3. Next you will need to start converting geometries
      1. If you are lucky the algorithm that is being ported to SteerSuite will differentiate between Points and Vecotors otherwise you will need to go through every operation and check if it produces a Point or Vectory because SteerSuite differentiate between them.
    4. The *AIModule should not include the Agent type
      1. This is to avoid circular includes
      2. Not should the agent include the module type only the interfaces provided from SteerSuite
    5. Try not to change any of the math in the algorithm
      1. Best is to alter the initial conditions to fit the algorithm best and then convert the reusult computed by the algorithm back into SteerSuite coordinates.