 ai::_DefaultAllocator | |
 ai::_MemObject< AllocatorClass > | |
  ai::ICondition | A condition can be placed on a TreeNode to decide which node is going to get executed. In general they are stateless. If they are not, it should explicitly get noted |
   ai::And | This condition will logically and all contained conditions |
   ai::False | This condition just always evaluates to false |
   ai::Filter | The filter condition executes some selection filters (IFilter ) and evaluates to true if the resulting set of all filter executions is non-empty. Use AI::getFilteredEntities to access the result set and work with it in a TreeNode that is executed when this condition evaluated to true |
   ai::HasEnemies | This condition checks whether there are enemies |
   ai::IsCloseToGroup | Checks whether the controlled AI is close to a particular group |
   ai::IsGroupLeader | Evaluates to true if you are the first member in a particular group |
   ai::IsInGroup | Checks whether the AI is in any or in a particular group |
   ai::LUACondition | |
   ai::Not | This condition will just swap the result of the contained condition |
   ai::Or | This condition will logically or all contained conditions |
   ai::True | This condition just always evaluates to true |
  ai::movement::ISteering | Steering interface |
   ai::movement::GroupFlee | Flees from a particular group |
   ai::movement::GroupSeek | Seeks a particular group |
   ai::movement::LUASteering | |
   ai::movement::SelectionSteering | IFilter steering interface |
    ai::movement::SelectionFlee | Flees the current IFilter selection from the given ICharacter |
    ai::movement::SelectionSeek | Seeks the current IFilter selection from the given ICharacter |
   ai::movement::TargetFlee | Flees from a particular target |
   ai::movement::TargetSeek | Seeks a particular target |
   ai::movement::Wander | Moves forward in the direction the character is currently facing into |
  ai::TreeNode | The base class for all behaviour tree actions |
   ai::Fail | A decorator node with only one child attached. The result of the attached child is only taken into account if it returned TreeNodeStatus::RUNNING - in every other case this decorator will return TreeNodeStatus::FAILED |
   ai::Invert | A node with only one child attached. The result of the attached child is inverted |
   ai::ITask | A node for your real actions in the behaviour tree |
    ai::Steer | |
   ai::ITimedNode | A timed node is a TreeNode that is executed until a given time (millis) is elapsed |
    ai::Idle | ITimedNode that is just idling until the given time is elapsed |
   ai::Limit | A decorator node which limits the execution of the attached child to a specified amount of runs |
   ai::LUATreeNode | |
   ai::Selector | Base class for all type of TreeNode selectors |
    ai::Parallel | Executes all the connected children in the order they were added (no matter what the TreeNodeStatus of the previous child was) |
    ai::PrioritySelector | This node tries to execute all the attached children until one succeeds. This composite only fails if all children failed, too |
    ai::ProbabilitySelector | This node executes one of the attached children randomly based on the given weights. The node is executed until it is no longer in the running state |
    ai::RandomSelector | This node executes all the attached children in random order. This composite only fails if all children failed, too. It doesn't continue a node in the state TreeNodeStatus::RUNNING . It will always pick a new random node in each tick |
    ai::Sequence | The sequence continues to execute their children until one of the children returned a state that is not equal to finished. On the next iteration the execution is continued at the last running children or from the start again if no such children exists |
   ai::Succeed | A decorator node with only one child attached. The result of the attached child is only taken into account if it returned TreeNodeStatus::RUNNING - in every other case this decorator will return TreeNodeStatus::FINISHED |
 ai::AggroMgr | Manages the aggro values for one AI instance. There are several ways to degrade the aggro values |
 ai::AIStateAggro | The list of aggro entry for a character |
 ai::AIStateAggroEntry | The aggro entry for the AIStateAggro |
 ai::AIStateNode | This is a representation of a behaviour tree node for the serialization |
 ai::AIStateNodeStatic | |
 ai::AIStateWorld | This is a representation of a character state for the serialization |
 ai::AggroMgr::CharacterIdPredicate | |
 ai::Client | |
 ai::ConditionFactoryContext | |
 enable_shared_from_this | |
  ai::AI | This is the type the library works with. It interacts with it's real world entity by the ICharacter interface |
  ai::ICharacter | Class that should be extended by the AI controlled entity class |
 ai::Entry | One entry for the AggroMgr |
 ai::Server::Event | |
 ai::FilterFactoryContext | |
 ai::GroupMgr | Maintains the groups a AI can be in |
 ai::IAIFactory | |
  ai::AIRegistry | The place to register your TreeNode and ICondition factories at |
   ai::LUAAIRegistry | Allows you to register lua TreeNodes, Conditions, Filters and ISteerings |
 ai::IFactory< TYPE, CTX > | |
 ai::IFactory< ICondition, ConditionFactoryContext > | |
  ai::IConditionFactory | |
   ai::LUACondition::LUAConditionFactory | |
 ai::IFactory< IFilter, FilterFactoryContext > | |
  ai::IFilterFactory | |
   ai::LUAFilter::LUAFilterFactory | |
 ai::IFactory< movement::ISteering, SteeringFactoryContext > | |
  ai::ISteeringFactory | |
   ai::movement::LUASteering::LUASteeringFactory | |
 ai::IFactory< TreeNode, SteerNodeFactoryContext > | |
  ai::ISteerNodeFactory | |
   ai::Steer::Factory | |
 ai::IFactory< TreeNode, TreeNodeFactoryContext > | |
  ai::ITreeNodeFactory | This factory will create tree nodes. It uses the TreeNodeFactoryContext to collect all the needed data for this action |
   ai::LUATreeNode::LUATreeNodeFactory | |
 IFilter | |
  ai::Complement | This filter performs a complement operation on already filtered entities with the results given by the child filters |
  ai::Difference | This filter performs a difference operation between several filter results. The result consists of elements that are in A and not in B, C, D, .. |
  ai::First | This filter will just preserve the first entry of other filters |
  ai::Intersection | This filter performs an intersection between several filter results |
  ai::Last | This filter will just preserve the last entry of other filters |
  ai::LUAFilter | |
  ai::Random | This filter will preserve only a few random entries |
  ai::SelectAll | This filter is a nop - it will just use the already filtered entities |
  ai::SelectEmpty | This filter just clears the selection |
  ai::SelectGroupLeader | This filter will pick the group leader of the specified group |
  ai::SelectGroupMembers | This filter will pick the entities from the groups the given AI instance is in |
  ai::SelectHighestAggro | This filter will pick the entity with the highest aggro value |
  ai::SelectZone | This filter will pick the entities from the zone of the given entity |
  ai::Union | This filter merges several other filter results |
 ai::INetworkListener | |
  ai::Server | The server can serialize the state of the AI and broadcast it to all connected clients |
 ai::IParser | |
  ai::ConditionParser | Transforms the string representation of a condition with all its sub conditions and parameters into a ICondition instance |
  ai::TreeNodeParser | Transforms the string representation of a TreeNode with all its parameters into a TreeNode instance |
 ai::IProtocolHandler | Interface for the execution of assigned IProtocolMessage |
  ai::AddNodeHandler | |
  ai::ChangeHandler | |
  ai::DeleteNodeHandler | |
  ai::NopHandler | |
  ai::PauseHandler | |
  ai::ProtocolHandler< T > | |
  ai::ResetHandler | |
  ai::SelectHandler | |
  ai::StepHandler | |
  ai::UpdateNodeHandler | |
 ai::IProtocolMessage | A protocol message is used for the serialization of the ai states for remote debugging |
  ai::AIAddNodeMessage | Message for the remote debugging interface |
  ai::AIChangeMessage | Message for the remote debugging interface |
  ai::AICharacterDetailsMessage | Message for the remote debugging interface |
  ai::AICharacterStaticMessage | |
  ai::AIDeleteNodeMessage | Message for the remote debugging interface |
  ai::AINamesMessage | Message for the remote debugging interface |
  ai::AIPauseMessage | Message for the remote debugging interface |
  ai::AISelectMessage | Message for the remote debugging interface |
  ai::AIStateMessage | Message for the remote debugging interface |
  ai::AIStepMessage | Perform one step if the ai controlled entities are in paused mode |
  ai::AIUpdateNodeMessage | Message for the remote debugging interface |
 ai::ITreeLoader | This class must be extended to load behaviour trees. The contract here is that the parsing only happens once (of course) and then ITreeLoader::getTrees and ITreeLoader::load will just access the cached data |
  ai::LUATreeLoader | Implementation of ITreeLoader that gets its data from a lua script |
  ai::XMLTreeLoader | Implementation of ITreeLoader that gets its data from a xml file |
 ai::luaAI_AI | |
 ai::luaAI_ICharacter | |
 ai::lua::LUAType | |
 ai::MoveVector | |
 ai::Network | |
 ai::NonCopyable | |
  ai::AI | This is the type the library works with. It interacts with it's real world entity by the ICharacter interface |
  ai::ICharacter | Class that should be extended by the AI controlled entity class |
  ai::IFactoryRegistry< KEY, TYPE, CTX > | |
  ai::lua::LUA | |
  ai::ProtocolMessageFactory | |
  ai::IFactoryRegistry< std::string, ICondition, ConditionFactoryContext > | |
   ai::AIRegistry::ConditionFactory | |
  ai::IFactoryRegistry< std::string, IFilter, FilterFactoryContext > | |
   ai::AIRegistry::FilterFactory | |
  ai::IFactoryRegistry< std::string, movement::ISteering, SteeringFactoryContext > | |
   ai::AIRegistry::SteeringFactory | |
  ai::IFactoryRegistry< std::string, TreeNode, SteerNodeFactoryContext > | |
   ai::AIRegistry::SteerNodeFactory | |
  ai::IFactoryRegistry< std::string, TreeNode, TreeNodeFactoryContext > | |
   ai::AIRegistry::TreeNodeFactory | |
 ai::ProtocolHandlerNopDeleter | Use this deleter for any handler that should not get freed by delete |
 ai::ProtocolHandlerRegistry | |
 ai::ReadWriteLock | |
 ai::ScopedReadLock | |
 ai::ScopedWriteLock | |
 ai::SteeringFactoryContext | |
 ai::SteerNodeFactoryContext | |
 ai::ThreadPool | |
 ai::TreeNodeFactoryContext | Context for ITreeNodeFactory |
 ai::movement::WeightedData | Steering and weight as input for WeightedSteering |
 ai::movement::WeightedSteering | This class allows you to weight several steering methods and get a blended MoveVector out of it |