Kaim Namespace Reference

Namespace description

The Autodesk Navigation namespace.

Kaim stands for Kynapse Artificial Intelligence Middleware. Kynapse was the predecessor of Autodesk Navigation.

This is the primary namespace used by most Autodesk Navigation components. Most programming you do with Autodesk Navigation, such as writing custom derivations of component classes, will be done using this namespace.

Namespaces

 GenFlags
 
 Result
 

Classes

class  AbstractGraphDataGenerator
 Usage: AbstractGraphDataGenerator gen; gen.InitFromXxxx() gen.Generate() gen.SaveAbstractGraphData() More...
 
class  ActiveCell
 This object gathers all the active NavFloors at a CellPos. More...
 
class  ActiveData
 This class gathers all the navigation data that are currently active in a Database. More...
 
class  AdvancedPathProgressConfig
 Class that aggregates path validation minimum distances (advanced parameters) More...
 
class  AStarQuery
 Runs an A-star algorithm to find a Path through the navigation data (NavMesh & NavGraph) from a starting point to a destination, refines the path found, and fills an object of type Path. More...
 
class  AsyncQueryDispatcher
 Default implementation of IAsyncQueryDispatcher. More...
 
class  AttributeGroupBlob
 Contains attributes names, types and headers, and DOES NOT contain attributes values (see VisualDebugAttributeGroupValuesBlob) More...
 
class  AttributeGroupValuesBlob
 Contains attributes values and DOES NOT contain attributes names, types and headers (see VisualDebugAttributeGroupBlob) More...
 
class  AvoidanceCollider
 A Collider is a 2D circular particle with a linear velocity. More...
 
class  AvoidanceComputer
 This class compute collision-free trajectories. More...
 
class  AvoidanceComputerCollectorFilter
 Class used to filter potential colliders in AvoidanceComputer at SpatializedPoint collection step. More...
 
class  AvoidanceConfig
 Set of parameters used to configure AvoidanceComputer. More...
 
class  AvoidanceSolver
 AvoidanceSolver computes a velocity compatible with all the colliders in AvoidanceWorkspace and the NavData accordingly to TraverseLogic. More...
 
class  AvoidanceWorkspace
 AvoidanceWorkspace aggregates at once: More...
 
class  BaseAStarQuery
 Base class for AstarQuery. More...
 
class  BaseBestGraphVertexPathFinderQuery
 Base class for BestGraphVertexPathFinderQuery. More...
 
class  BaseBlobBuilder
 BaseBlobBuilder is an abstract base class that builds a blob within a contiguous block of memory. More...
 
class  BaseDiskCanGoQuery
 Base class for DiskCanGoQuery. More...
 
class  BaseDiskCastQuery
 Base class for DiskCastQuery. More...
 
class  BaseDiskCollisionQuery
 Base class for DiskCollisionQuery. More...
 
class  BaseDiskExpansionQuery
 Base class for DiskExpansionQuery. More...
 
class  BaseFindFirstVisiblePositionOnPathQuery
 Base class for FindFirstVisiblePositionOnPathQuery. More...
 
class  BaseInsidePosFromOutsidePosQuery
 Base class for InsidePosFromOutsidePosQuery. More...
 
class  BaseLog
 In Navigation, BaseLog MUST be used instead of Kaim::Log. More...
 
class  BaseMultiDestinationPathFinderQuery
 Base class for MultiDestinationPathFinderQuery. More...
 
class  BaseNavigationProfile
 BaseNavigationProfile and its derivation NavigationProfile<TraverseLogic> is a class that simplifies the customization of the navigation. More...
 
class  BaseNearestBorderHalfEdgeFromPosQuery
 Base class for NearestBorderHalfEdgeFromPosQuery. More...
 
class  BasePathFromPolylineQuery
 Base class for AstarQuery. More...
 
class  BasePathProgressComputer
 The abstract base class for PathProgressComputer classes. More...
 
class  BaseRayCanGoOnSegmentQuery
 Base class for RayCanGoOnSegmentQuery. More...
 
class  BaseRayCanGoQuery
 Base class for RayCanGoQuery. More...
 
class  BaseRayCastOnSegmentQuery
 Base class for RayCastOnSegmentQuery. More...
 
class  BaseRayCastQuery
 Base class for RayCastQuery. More...
 
class  BaseSegmentCanGoQuery
 Base class for SegmentCanGoQuery. More...
 
class  BaseSegmentCastQuery
 Base class for SegmentCastQuery. More...
 
class  BaseShortcutTrajectory
 This class computes minimal trajectory made of just one velocity. More...
 
class  BaseSpatializedPointCollectorInAABBQuery
 Base class for SpatializedPointCollectorInAABBQuery. More...
 
class  BaseSystem
 The BaseSystem provides Autodesk Navigation components with a set of objects used for memory allocation, logging, performance profiling, etc. More...
 
class  BaseSystemConfig
 The BaseSystemConfig class contains a set of objects and configuration parameters that are required in order to initialize the BaseSystem. More...
 
class  BestGraphVertexPathFinderQuery
 This query propagates outward through the NavMesh from the starting position. More...
 
class  BlobArray
 A BlobArray an array that is compatible with the blob serialization framework. More...
 
class  BlobCategory
 The BlobCategory class represents a collection of blob types. More...
 
class  BlobFile
 The BlobFile class reads/writes the data maintained in a blob from/to a file. More...
 
class  BlobHandler
 The BlobHandler class is a top-level mechanism for serializing blobs between objects in memory and files on disk. More...
 
class  BlobRef
 A BlobRef is a type of reference that is compatible with the blob serialization framework. More...
 
class  Bot
 This class is the world element that represent an active character in Autodesk Navigation. More...
 
class  BotColors
 Defines the colors used to render the Bot accordingly to its internal statuses. More...
 
class  BotConfig
 Class that aggregates all parameters that allow to configure the PathFinding and the PathFollowing of a Bot. Each Bot has its own instance of BotConfig. More...
 
class  BotInitConfig
 Class used to provide Bot initialization parameters. More...
 
class  BotMoveOnNavMesh
 This class is used to get move bots on the NavMesh without physics engine. More...
 
class  BotNavigation
 Per Bot data that correspond to the usage of a NavigationProfile in a Bot. More...
 
class  BotNavigationCollection
 BotNavigationCollection contains 1 BotNavigation per (Base)NavigationProfile and a pointer on m_navigationProfiles array. More...
 
class  BotOutput
 BotOutput gathers the most important outputs of a bot for easy access. More...
 
class  Box2f
 2d axis aligned box of 32bits floating points More...
 
class  Box2i
 2d axis aligned box of 32bits integers. Very Important: CountX() returns m_max.x - m_min.x + 1. More...
 
class  Box2iIteratorInBiggerRowMajorBox
 Browse a box that is included in a bigger box. More...
 
class  Box2iRowMajorIterator
 Box2iRowMajorIterator. More...
 
class  Box2LL
 2d axis aligned box of 64bits integers. Does not maintain m_countXY = m_max - m_min as a member. More...
 
class  Box3f
 3d axis aligned box of 32bits floating points More...
 
class  BoxObstacle
 Each instance of the BoxObstacle class represents a dynamic, physical object in your game engine that will prevent your Bots from moving freely through its bounding box. More...
 
class  BoxObstacleInitConfig
 Class used to provide BoxObstacle initialization parameters. More...
 
class  BoxObstaclesCollectionBlobBuilder
 A type of blob builder that creates a BoxObstaclesCollectionBlob from a list of box BoxObstacles (Kaim::BoxObstacle). More...
 
class  BreadthFirstSearchTraversal
 The template parameter Visitor must have following methods: void Visit(const NavTrianglePtr& trianglePtr, const TriangleStatusInGrid& triangleStatus) bool IsSearchFinished(); bool ShouldVisitTriangle(const NavTrianglePtr& trianglePtr); bool ShouldVisitNeighborTriangle(const NavTrianglePtr& trianglePtr, KyUInt32 indexOfNeighborTriangle); NavTrianglePtr GetNeighborTriangle(const NavTrianglePtr& trianglePtr, KyUInt32 indexOfNeighborTriangle);. More...
 
class  Bubble
 This class represents a circle with potential rotation limitation. More...
 
class  BubbleArray
 This class encapsulate an array of Bubbles. More...
 
class  BubbleToCornerFunnel
 Adaptive radius funnel to be used typically to string pull within a Bubble array. More...
 
class  Channel
 Channel enrich Path with clearance information on each side of the Path. More...
 
class  ChannelArray
 This class aggregates Channels along a Path. More...
 
class  ChannelComputerConfig
 Class that aggregates parameters that allow to configure the channel computation of a Bot. More...
 
class  ChannelDisplayConfig
 Class that configures the Channel visual debug display. More...
 
class  CheckHeaderLibDesync
 This class helps to finding errors in the use of header files and libraries. More...
 
class  CircleArcSpline
 The class representing a spline compounded of oriented circle arcs and straight line segments. More...
 
class  CircleArcSplineComputationQuery
 Base class for CircleArcSplineComputationQuery. More...
 
class  CircleArcSplineComputer
 Class used to compute a CircleArcSpline in a Channel. More...
 
class  CircleArcSplineComputerVisualDebugConfig
 Class used to configure all VisualDebug components for CircleArcSpline computation. More...
 
class  CircleArcSplineSection
 Class representing either an oriented circle arc or a straight line segment, to be aggregated into a CircleArcSpline. More...
 
class  ClientInput
 The ClientInput is a representation of the input that was supplied to the generator for a particular Kaim::GeneratorSector It contains all the input triangles and tagVolumes as provided by the the Kaim::GeneratorInputProducer to the Kaim::ClientInputConsumer and can be saved or loaded to a .ClientInput file. More...
 
class  ClientInputConsumer
 The ClientInputConsumer class is one of the primary components of the NavData generation system. More...
 
class  ClientInputSectorDescriptor
 Easy to write/read version of ClientInputSectorDescriptorBlob. More...
 
class  ClientInputSectorDescriptorBlob
 Set of Key-Values embedded within a ClientInput BlobAggregate (serialized form). More...
 
class  ClientInputTagVolume
 Represents a volume using a two-dimensional polyline extruded vertically along the "up" axis associated to a terrain and/or a BlindData. More...
 
class  ColDataSectorDescriptor
 Easy to write/read version of SectorDescriptorBlob. More...
 
class  ColDataSectorDescriptorBlob
 Set of Key-Values embedded within in ColData BlobAggregate (serialized form). More...
 
class  Collection
 Collection is a class which is a "Collection" of elements (not sorted, not unique) More...
 
class  ColliderCollectorConfig
 Class that configures how the Bot collects colliders (other bots, obstacles) around. More...
 
class  CollisionData
 The CollisionData class represents Collision Data that will be added to a CollisionWorld. More...
 
class  CollisionRayCastQuery
 Query that performs a 3D raycast against the physical geometry in a CollisionWorld. More...
 
class  CollisionWorld
 This class is a runtime container for all CollisionData that represents the world. More...
 
class  Color
 RGBA color. More...
 
class  ContourLineExtractor
 This class takes a NavFloor and an altitude range as input and will return an array of edges that form the contour lines of the slice between altMin and altMax. More...
 
class  CoordSystem
 This class maintains the mapping between the system of coordinate axes used by the client game engine, and the system used within the Autodesk Navigation (right handed, Z up, distances in meters). More...
 
class  CoordSystemConfig
 A structure that sets up the mapping between the coordinate system used in the Autodesk Navigation Engine and the game engine. More...
 
class  CostMultiplierSubSegment
 This class represents a CostMultiplier sub-segment of a ray (within a RayCastQuery or a RayCanGoQuery, carried out against the NavMesh). More...
 
class  CylinderObstacle
 CylinderObstacles represent dynamic objects of your game engine that prevent your Bots from moving freely in a vertical cylinder volume. More...
 
class  CylinderObstacleInitConfig
 Class used to provide CylinderObstacle initialization parameters. More...
 
class  Database
 This class is a runtime container for all NavData that represents the world from the point of view of a specific type of Bots. More...
 
class  DatabaseBinding
 DatabaseBinding is a collection of the databases to be used for world elements spatialization. More...
 
class  DatabaseDescriptor
 Easy to write/read version of DatabaseDescriptorBlob. More...
 
class  DatabaseDescriptorBlob
 Set of Key-Values embedded within genIO BlobAggregate (serialized form). More...
 
class  DatabaseGenMetrics
 This class gathers a set of generation parameters of one Database and manages the conversion between the floating-point and integer coordinate systems used internally by NavData. More...
 
class  DatabaseNavFloorIterator
 Usage: for (Kaim::DatabaseNavFloorIterator iterator(database); iterator.IsValid(); ++iterator) { const Kaim::NavFloorRawPtr& navFloorRawPtr = iterator.GetNavFloorRawPtr();. More...
 
class  DatabaseNavHalfEdgeIterator
 Usage: for (Kaim::DatabaseNavHalfEdgeIterator iterator(database); iterator.IsValid(); ++iterator) { Kaim::NavTriangleRawPtr navTrianglePtr = iterator.GetNavTrianglePtr();. More...
 
class  DatabaseNavTriangleIterator
 Usage: for (Kaim::DatabaseNavTriangleIterator iterator(database); iterator.IsValid(); ++iterator) { const Kaim::NavTriangleRawPtr& navTriangleRawPtr = iterator.GetNavTriangleRawPtr();. More...
 
class  DefaultFileOpener
 Simple default implementation of an object that opens a file on disk that is called when the primaryFileOpener is NULL. More...
 
class  DefaultLog
 Default implementation of the BaseLog interface. More...
 
class  DefaultNavigationProfile
 DefaultNavigationProfile. More...
 
class  DefaultPathEventListObserver
 This default IPathEventListObserver does not set any PathEvent as CheckPoint. More...
 
class  DefaultTraverseLogic
 SimpleTraverseLogic with TCanEnterNavTagMode = LogicDoNotUseCanEnterNavTag. More...
 
class  DenseGrid
 Container that spatialize elements in a 2d grid. More...
 
class  DiagonalStripFunnel
 Basic corner-to-corner funnel to be used in standard line-of-view based browsing of diagonal strips. More...
 
class  DiskCanGoQuery
 The DiskCanGoQuery tests whether a disk with a specified radius can go from start to dest. More...
 
class  DiskCastQuery
 The DiskCastQuery class tests whether a disk with a specified radius (m_radius) can be cast in a specified orientation (m_normalizedDir2d) from a starting point without: More...
 
class  DiskCollisionQuery
 The DiskCollisionQuery class attempts to place the center of a disk with a specified radius (m_radius) at a specified position (m_centerPos3f), and tests whether the entire disk fits within the borders of the NavMesh without intersecting any forbidden NavTag (NavMesh borders). More...
 
class  DiskExpansionQuery
 The DiskExpansionQuery class attempts to place the center of a disk at a specified position (m_centerPos3f), and expands the radius of the disk until the disk: More...
 
class  DisplayList
 DisplayList is used to push text, lines or shapes for rendering in the NavigationLab e.g. More...
 
class  DisplayListManager
 Game side: Manages all DisplayListData, send them to the NavigationLab. More...
 
class  DisplayListRemovalBlob
 Send this blob to destroy the current displayList with id "displayListId" and eventually being associated with the worldElement with id "worldElementId". More...
 
class  DisplayListRemovalFromNameBlob
 Send this blob to destroy the current displayList with name "displayListName" and eventually being associated with the worldElement with id "worldElementId". More...
 
class  DynamicInputCell
 Used in SpatializedSectorInput to gather all triangles, from sector m_sectorGuid, that impacts the m_cellPos. More...
 
class  DynamicNavMeshQuery
 The DynamicNavMeshQuery is used to recompute a NavCell impacted by newly projected TagVolumes or removed tagVolumes This query is time-sliced. More...
 
class  Endianness
 Collects endianness types and utilities used in the blob serialization framework. More...
 
class  FileOpenerBase
 Base interface for a class that opens a file on disk. More...
 
class  FindFirstVisiblePositionOnPathQuery
 The FindFirstVisiblePositionOnPathQuery class searches for a PositionOnPath that can be reached from a provided point (m_visibilityStartPos3f). More...
 
class  FloatingPointExceptionSetter
 Activate floating point exceptions. Implemented on WINDOWS and XBOXONE only. More...
 
class  FloatStat
 FloatStat maintains current, average, min, max statistics in a sliding window of frames. More...
 
class  FloorAltitudeRange
 Represents the range of altitudes covered by a single NavFloorBlob. More...
 
class  FollowedCircleArcSpline
 CircleArcSpline with computation information and current position of follow. More...
 
struct  FullDebug
 Gathers all runtime flags used to debug internal algorithms (mostly PathFinder). More...
 
class  Funnel
 Basic straight line funnel acting directly on 2D positions. More...
 
class  GameKitCrowdDispersionNavTagHashMap
 Associate information to push variety into paths found to an id based on GameKitNavTag. More...
 
class  GameKitCrowdDispersionNavTagId
 Used to uniquely identify GameKitNavTag, c.f. GameKitNavTag for more information. More...
 
class  GameKitNavigationProfile
 GameKitNavigationProfile must be added to Kaim::World and set to Bot in order to use the GameKitPathEventListObserver so PathEvents entering a NavTag associated to a GameKitSmartObject will be declared as user checkpoints. More...
 
class  GameKitNavTag
 Define an interpretation of NavTag specific to GameKit. More...
 
class  GameKitSmartObjectInterval
 Defines an interval in the path of a bot where there is a smartobject. More...
 
class  GameKitTraverseLogic
 Custom traverse logic to manage NavTag Layers and SmartObjects. More...
 
class  Gate
 This class represents Channel section limit segment. See Channel class description. More...
 
class  GeneratedDataIndex
 File that register files that were generated the Generator m_navDataIndexHandler for NavMeshes, m_abstractDataIndexHandler for AbstractNavGraph, m_colDataIndexHandler for CollisionData, m_databaseDescriptor to get the databaseIndex. More...
 
class  Generator
 The Generator is the principal class in the NavData generation system. More...
 
class  GeneratorAdvancedParameters
 The GeneratorAdvancedParameters class is used by the GeneratorParameters class to maintain a set of configuration parameters that control detailed technical aspects of the NavData generation process. More...
 
class  GeneratorBaseSystem
 The GeneratorBaseSystem class is a helper tool that enable the user to correctly initialize the BaseSystem for generating the NavData. More...
 
class  GeneratorGuidCompound
 This class is a wrapper around an array of KyGuid objects. More...
 
class  GeneratorInputOutput
 The GeneratorInputOutput class is a central element of the generation. More...
 
class  GeneratorInputProducer
 The GeneratorInputProducer is an abstract base class for an object invoked by the NavData generation system to retrieve the geometry for which it should generate NavData. More...
 
class  GeneratorParameters
 The GeneratorParameters class contains configuration parameters that control the characteristics of the NavData created by the Generator. More...
 
class  GeneratorReport
 The GeneratorReport class encapsulates a detailed report of all activities carried out during a call to the Generator::Generate(GeneratorInputOutput&) method. More...
 
class  GeneratorRunOptions
 The GeneratorRunOptions class contains configuration parameters that control the way in which the Generator carries out the process of generating NavData for its sectors. More...
 
class  GeneratorSector
 The GeneratorSector class provides a definition for a single sector to be treated by the Generator. More...
 
class  GeneratorSectorBlob
 Used to serialize GeneratorInputOutput. Corresponds to GeneratorSector. More...
 
class  GeneratorSectorBlobBuilder
 Used to serialize GeneratorInputOutput. More...
 
class  GeneratorSectorBuilder
 Maintains generation data for each sector. More...
 
class  GeneratorSectorListBlob
 used to serialize GeneratorInputOutput More...
 
class  GeneratorSectorListBlobBuilder
 Used to serialize GeneratorInputOutput m_exclusiveGuids and m_sectors. More...
 
class  GeneratorSectorRefCountedUserData
 Base class for the optional m_refCountedUserData that allows to refCount your user data. More...
 
class  GeneratorSectorReport
 The SectorStatistics class encapsulates a detailed set of statistics about a single sector treated by the NavData generation framework. More...
 
class  GeneratorSystem
 GeneratorSystem gathers everything that is global across a generation: configuration, options... More...
 
class  HalfEdgeIntersection
 This class represents an intersection between an NavHalfEdge and a ray (within a RayCastQuery or a RayCanGoQuery, carried out against the NavMesh). More...
 
class  HeightField
 Heightfield with a uniform grid of sampled altitudes. More...
 
class  IAsyncQueryDispatcher
 World::PushAsyncQuery(IQuery* query) pushes the Query in the QueryQueue. More...
 
class  IAtomicQuery
 Base class for all the queries that do not need to be time-sliced. More...
 
class  IAvoidanceComputer
 This interface class defines the way avoidance is computed. More...
 
class  IAvoidanceFilter
 Interface class for potential collider filtering classes. More...
 
class  IAvoidanceSolver
 Interface class for Avoidance solvers. More...
 
class  ICollisionInterface
 An abstract interface for an object that can perform collision queries. More...
 
class  IGeneratorGlue
 Provides an abstract base interface for a class that the Generator can invoke in order to retrieve objects that implement specific interfaces. More...
 
class  IMessageReceiver
 IMessageReceiver defines an interface for objects that are called to process blobs of data sent through VisualDebug. More...
 
class  IMovePositionOnLivePathPredicate
 Interface used to verify a PositionOnPath can be moved forward along the Path. More...
 
class  IndexedMesh
 Wraps a IndexedMeshBlob either as IndexedMeshBlob* or as Ptr<BlobHandler<IndexedMeshBlob>> Also adds the WriteToObjFile() facility. More...
 
class  InputTileImprint
 Relevant if m_doEnableLimitedMemoryMode is true, maintains the per InputTile information that will allows to load the InputCellBlob from file only when it's necessary. More...
 
class  InsidePosFromOutsidePosQuery
 The InsidePosFromOutsidePosQuery class finds a valid position inside the boundaries of the NavMesh, at a specified distance from the NavMesh boundary (by boundary we mean hole in the NavMesh. More...
 
class  IntermediateFilesConfig
 The IntermediateFilesConfig class is used by GeneratorRunOptions to store configuration parameters that control whether or not the Generator writes different types of intermediate data to files on disk, where, and how. More...
 
class  IOnDone
 Small interface class that you have to derive from and set to an IQuery to get the IOnDone::OnDone() function called during the World::Update() (in FlushQueries() step) if the query has been completed. More...
 
class  IParallelElementFunctor
 Provides an abstract base interface for an object that treats an element of data that can be passed to an object that derives from IParallelForInterface. More...
 
class  IParallelForInterface
 Provides an abstract base interface for an object that can treat computational jobs in parallel. More...
 
class  IPathEventListObserver
 IPathEventListObservers are called when related PathEventList has just been created or is about to be destroyed. More...
 
class  IPathFinderQuery
 Base class for all pathfinder queries. More...
 
class  IPerfMarkerInterface
 An abstract interface for performance tracking markers. More...
 
class  IPositionOnPathValidator
 Interface class for PositionOnPath validation classes. More...
 
class  IQuery
 Abstract class for all queries. More...
 
class  ITimeSlicedQuery
 Base class for all the queries that need to be time-sliced. More...
 
class  Itinerary
 An itineray is split PathEventIntervalpath where each edge on NavMesh or graph contains a navtag, while path edges can cross multiple navtags. More...
 
class  IVisualGeometry
 IVisualGeometry is an abstract base class that displays Triangles, Lines, and Texts. More...
 
class  IVisualGeometryFactory
 IVisualGeometryFactory is an abstract base class for an object that accepts that can instantiate objects of your own implementation of IVisualGeometry. More...
 
class  KyArray
 General purpose array for movable objects that require explicit construction/destruction. More...
 
class  KyArrayDH
 General purpose array for movable objects that require explicit construction/destruction. More...
 
class  KyArrayDH_POD
 General purpose array for movable objects that DOES NOT require construction/destruction. More...
 
class  KyArrayLH
 General purpose array for movable objects that require explicit construction/destruction. More...
 
class  KyArrayLH_POD
 General purpose array for movable objects that DOES NOT require construction/destruction. More...
 
class  KyArrayPOD
 General purpose array for movable objects that DOES NOT require construction/destruction. More...
 
class  KyGuid
 The KyGuid class represents a globally unique ID. More...
 
class  LivePath
 This class aggregates a Path and all runtime related stuff namely the PathValidityInterval. More...
 
class  LocalCostAwareTraverseLogic
 LocalCostAwareTraverseLogic is a wrapper around the traverse logic set by the user. More...
 
class  LodMaxBlob
 Send this blob to display a shape saying that the visual element with id m_visualDebugId is at LOD max Send visualDebugIdRemovalBlob with this same visualDebugId and blobType LodMaxBlob::GetBlobType() to stop displaying this shape when the lod is back to default. More...
 
class  LogicDoNotUseCanEnterNavTag
 Tag type used for function overloading in templates. It will be set as a nested typedef in CustomTraverseLogic::CanEnterNavTagMode. More...
 
class  LogicDoUseCanEnterNavTag
 Tag type used for function overloading in templates. It will be set as a nested typedef in CustomTraverseLogic::CanEnterNavTagMode. More...
 
class  LogicWithCostPerNavTag
 Tag type used for function overloading in templates. More...
 
class  LogicWithCostPerTriangle
 Tag type used for function overloading in templates. More...
 
class  LogicWithNoCustomCost
 Tag type used for function overloading in templates. More...
 
class  Matrix3x3f
 Matrix3x3f is defined as 3 Transformed Unit Vectors: More...
 
class  MemAlloc
 Multi-platform abstraction of malloc/free/realloc used to allocate "root objects" memory such as sizeof(OneMemoryHeap) used in GeneratorMemoryHeap_System Alloc()/Realloc()/Free() used as fall backs in GeneratorMemoryHeap_Tls and TbbTlsAlloc. More...
 
class  MonodirectionalRayCanGoQuery
 The MonodirectionalRayCanGoQuery is an internal version of the RayCanGoQuery that tests navTag switch along the ray It is used internally in the AstarQuery (refining) to deal with one-way navTagTransition. More...
 
class  MoveOnNavMeshQuery
 This class is used to get move bots on the NavMesh without physics engine. More...
 
class  MoveToNavTagEntryPositionOnPathPredicate
 This predicates allows Move forward to next entry or backward to previous entry of the given NavTag. More...
 
class  MoveToNavTagExitPositionOnPathPredicate
 This predicates allows Move forward to next entry or backward to previous entry of the given NavTag. More...
 
class  MoveToTarget
 Static functions to compute new position, rotation that are closer to a target while respecting a maxMove. More...
 
class  MultipleFloorTrianglesFromPosQuery
 The MultipleFloorTrianglesFromPosQuery class takes a position m_inputPos3f, and finds the triangles in the NavMesh that lie at the same 2d coordinates. More...
 
class  NavCell
 This class is a runtime wrapper of a NavCellBlob. More...
 
class  NavCellBlob
 The NavCellBlob contains the NavMesh static data of a NavMeshElement at a CellPos. More...
 
class  NavCellGrid
 This class is an internal class used to manage all the NavCell in a grid. More...
 
class  NavCellPosInfo
 This object gather all the data located at a CellPos in the CellPos-bases grid of the NavCellGrid object. More...
 
class  NavData
 The NavData class is the object containing navigation data that will be added to one Database. More...
 
class  NavFloor
 This class is a runtime wrapper of a NavFloorBlob, it gathers all the runtime information associated to a NavFloor such links to other NavFloors, SpatializedPoint spatialized in this NavFloor... More...
 
class  NavFloorAABB
 Represents the integer axis-aligned bounding box of a NavFloor. More...
 
class  NavFloorBlob
 The NavFloorBlob contains a connected and not overlapping part of triangle mesh static data within a NavCellBlob. More...
 
class  NavFloorBoxBlob
 Blob to visual debug NavFloor information. More...
 
class  NavFloorPtr
 Each instance of this class uniquely identifies a single NavFloor. More...
 
class  NavFloorRawPtr
 Each instance of this class uniquely identifies a single NavFloor. More...
 
class  NavFloorVisualGeometryBuilder
 Displays a NavFloor. More...
 
class  NavGenProj
 The NavGenProj class is a representation of the input data required for the standalone NavData generation tools supplied with Autodesk Navigation to generate NavData for a terrain. More...
 
class  NavGraph
 This class is a runtime wrapper of a NavGraphBlob, it gathers all the runtime information associated to a NavFloor such links to other NavFloors, SpatializedPoint spatialized in this NavFloor... More...
 
class  NavGraphBlob
 The NavGraphBlob contains the static data of a NavGraph. More...
 
class  NavGraphBlobBuilder
 This class allows you to build a NavGraph, which you can then add to the NavData for a sector. More...
 
class  NavGraphEdgePtr
 Each instance of this class uniquely identifies a single and mono-directionnal NavGraphEdge in a NavGraph. More...
 
class  NavGraphEdgeRawPtr
 Each instance of this class uniquely identifies a single NavGraphEdge in a NavGraph. More...
 
class  NavGraphPtr
 This class uniquely identifies a single NavGraph. More...
 
class  NavGraphRawPtr
 This class uniquely identifies a NavGraph that has been loaded. More...
 
class  NavGraphVertexPtr
 Each instance of this class uniquely identifies a single NavGraphVertex in a NavGraph. More...
 
class  NavGraphVertexRawPtr
 Each instance of this class uniquely identifies a single NavGraphVertex in a NavGraph. More...
 
class  NavHalfEdge
 Each instance of NavHalfEdge represents a single edge of a single triangle within the NavMesh. More...
 
class  NavHalfEdgePtr
 Each instance of this class uniquely identifies a single NavHalfEdge in a NavFloor. More...
 
class  NavHalfEdgeRawPtr
 Each instance of this class uniquely identifies a single NavHalfEdge in a NavFloor. More...
 
class  NavigationProfile
 BaseNavigationProfile and its derivation NavigationProfile<TraverseLogic> is a class that simplifies the customization of the navigation. More...
 
class  NavMeshElement
 This class is a runtime wrapper of a NavMeshElementBlob. More...
 
class  NavMeshElementBlob
 The NavMeshElementBlob contains the NavMesh static data (a set of NavCellBlob) for an element (a GuidCompound) within a sector. More...
 
class  NavMeshElementManager
 This class is a runtime container for the all NavMeshElement that are created from the NavMeshElementBlob added in this Database. More...
 
class  NavMeshGenParameters
 This object indicates the settings used to generate the NavMeshElementBlob, and thereby the physical characteristics and movement model of the characters expected to use the NavMesh at runtime. More...
 
class  NavTagMovePositionOnPathPredicate
 Default implementation of IMovePositionOnPathPredicate interface based on NavTag. More...
 
class  NavTagPtr
 Each instance of this class uniquely identifies a single NavFloor. More...
 
class  NavTagSubSegment
 This class represents a NavTag sub-segment of a ray (within a RayCastQuery or a RayCanGoQuery, carried out against the NavMesh). More...
 
class  NavTrianglePtr
 Each instance of this class uniquely identifies a single NavTriangle in a NavFloor. More...
 
class  NavTriangleRawPtr
 Identifies a single NavTriangle in a NavFloor. More...
 
class  NearestBorderHalfEdgeFromPosQuery
 The NearestBorderHalfEdgeFromPosQuery class finds the NavMesh border nearest a specified 3D position (m_inputPos3f). More...
 
class  ObjFileInputProducer
 ObjFileInputProducer is a concrete implementation of GeneratorInputProducer that can read the triangles contained in a .obj file, and pass them to the ClientInputConsumer. More...
 
class  ObjFileTriangleSoup
 A basic parser of .obj files in text format able to read triangles. More...
 
class  OrientedBox2d
 OrientedBox2d is a 3d box with rotation constrained to be along Z. More...
 
class  PageAlloc
 Multi-platform abstraction of aligned malloc/free/realloc windows (_aligned_malloc, _aligned_free, _aligned_realloc), posix (memalign, reallocalign, free), or handmade alignment used by derivations of SysAlloc Note that this is called with for 4096 byte "page" allocations to group smaller allocations <= 512 bytes but also directly for allocations > 512 bytes So the name PageAlloc is not totally relevant, but the interface has enough information to take advantage of platform specific page allocations. More...
 
class  Path
 The class representing a path. More...
 
class  PathEvent
 A PathEvent is a particular PositionOnPath which feature is specified by a PathEventType. More...
 
class  PathEventInterval
 This class represents an interval between two PathEvents within a PathEventList. More...
 
class  PathEventList
 PathEventList aggregates all PathEvents and PathEventIntervals in a PathValidityInterval. More...
 
class  PathFinderConfig
 Class that aggregates most important parameters that allow to configure the PathFinding of a Bot. More...
 
class  PathFinderQueryUtils
 This class is an helper used internally by the PathFinder Queries to factorize Code. More...
 
class  PathProgressComputer
 PathProgressComputer maintains the progress of a Bot along a Path. More...
 
class  PathProgressConfig
 Class that aggregates parameters that allow to configure the progress of a Bot on its path. More...
 
class  PathValidityInterval
 Maintains runtime validity information on a given Path. More...
 
class  PointOfInterest
 PointOfInterest is a tagged position spatialized into the NavMesh. More...
 
class  PointOfInterestInitConfig
 Class used to provide PointOfInterest initialization parameters. More...
 
class  PositionOnCircleArcSpline
 Maintains a position moving along a given CricleArcSpline. More...
 
class  PositionOnCircleArcSplineSection
 Maintains a position moving along a given CricleArc. More...
 
class  PositionOnLivePath
 This class aggregates all necessary information to describe a position on a LivePath, namely: More...
 
class  PositionOnPath
 This class aggregates all necessary information about a position on a Path. More...
 
class  PositionOnPathCheckPointValidator
 Default implementation of IPositionOnPathValidator interface that use Bot::HasReachedPosition() function and BotConfig::m_checkPointRadius. More...
 
class  PositionSpatializationRange
 Vertical range (above, below) that represents the altitude tolerance for a position to be inside the navmesh. More...
 
class  Profiler
 Small utility class atop Kaim::Timer to profile easily. More...
 
class  ProjConfig
 This class is used by the NavGenProj to store configuration parameters required by the NavData generation process. More...
 
class  ProjMirrorOptions
 This class is used to store parameters if a sector must be mirrored cf. LabEngine::MirroredOBJProducer. More...
 
class  ProjSector
 An instance of this class is used to represent each input geometry file in a NavGenProj. More...
 
class  QueryDynamicOutput
 This class gather the data encountered along some query process. More...
 
class  QueryQueue
 QueryQueue processes queries in an asynchronous, time-sliced way, within a QueryQueueArray. More...
 
class  QueryQueueArray
 QueryQueueArray processes queries in an asynchronous, time-sliced way. More...
 
class  QueryQueueCommand
 class use internal by the QueryQueue to postpone Push/Cancel of Queries until next FlushCommands() step of the World::Update(). More...
 
class  QueryQueueConfig
 Class used to provide QueryQueue initialization parameters. More...
 
class  QueryQueueStats
 This class is used by the Visual Debug system to profileQueryQueue. More...
 
class  QueryUtils
 This class is an helper used internally by the Queries to factorize Code that is used in many Queries. More...
 
class  RadiusProfile
 RadiusProfile is an array of preferred radii. More...
 
class  RadiusProfileArray
 CircleArcSpline computer can compute several CircleArcSplines each corresponding to a specific RadiusProfile. More...
 
class  RadiusProfileCircleArcSplineComputerOutput
 Class aggregating a CircleArcSpline and the corresponding computation result. More...
 
class  RawHalfEdgeIntersection
 and then finally stored as NavTagSubSegment in the QueryDynamicOutput. see HalfEdgeIntersection for detai More...
 
class  RawNavTagSubSegment
 This class is a "volatile" version of the NavTagSubSegment class. More...
 
class  RayCanGoOnSegmentQuery
 The RayCanGoOnSegmentQuery class tests whether or not a ray (with a width of 0) can pass along a straight line segment from a along an edge going from m_segmentStartPos3f to m_segmentEndPos3f, without : More...
 
class  RayCanGoQuery
 The RayCanGoQuery tests if a ray can go from start to dest on the navmesh. More...
 
class  RayCastFull3dQuery
 RayCast in full 3d useful for implementing picking on NavMesh. More...
 
class  RayCastOnSegmentQuery
 The RayCastOnSegmentQuery class tests whether a ray (with a width of 0) can be cast from a starting point (m_startPos3f) along an edge going from m_segmentStartPos3f to m_segmentEndPos3f, without : More...
 
class  RayCastQuery
 The RayCastQuery class tests whether a ray (with a width of 0) can be cast from a starting point (m_startPos3f) in a specified direction (maxMove2D) without: More...
 
class  RayQueryUtils
 This class is an helper used internaly to factorize code of Ray queries (RayCanGoQuery, RayCastGoQuery, ...) More...
 
struct  Result
 Navigation return code class. More...
 
class  ScopedPerfMarker
 calls IPerfMarkerInterface::BeginMarker(name) in constructor, IPerfMarkerInterface::EndMarker() in destructor More...
 
class  ScopedSetPathNavigationProfile
 utility class used to set to the SetNavigationProfileId of the path easily created on the stack at the beginning of the PathFinder::Advance() implementations More...
 
class  SectorDescriptor
 Easy to write/read version of SectorDescriptorBlob. More...
 
class  SectorDescriptorBlob
 Set of Key-Values embedded within in NavData BlobAggregate (serialized form). More...
 
class  SectorInputData
 Maintains the InputCellBlobs spatialized per CellPos for 1 SectorInput. More...
 
class  SegmentCanGoQuery
 The SegmentCanGoQuery class tests whether a line segment-with a specified half-width (m_radius)-can move along a straight line segment from a starting point to an ending point without: More...
 
class  SegmentCastQuery
 The SegmentCastQuery class casts a line segment in a given direction, and records any collisions it detects along the way. More...
 
class  ShapeColor
 Fill and line colors used in visual debug to display shapes. More...
 
class  SharedPoolList
 SharedPoolList represents an ordered list of elements of a single type, drawn as needed from a pre-allocated pool that you provide. More...
 
class  ShortcutTrajectory
 This class computes minimal trajectory made of just one velocity. More...
 
class  ShortcutTrajectoryConfig
 Set of parameters used by the ShortcutTrajectory and TargetOnPathComputer classes to update Bot target on path position. More...
 
class  SimpleTraverseLogic
 SimpleTraverseLogic defines the functions called when the customization is simply: navTag is allowed or forbidden. More...
 
class  SpatializedCylinder
 Internal representation of world elements, using a vertical cylinder shape. More...
 
class  SpatializedCylinderInitConfig
 Class used to initialize a SpatializedCylinder. More...
 
class  SpatializedPoint
 SpatializedPoint is used to the NavTriangle of "object": Bot, CylinderObstacle, BoxObstacle and PointOfInterest NavFloors maintain a collection of SpatializedPoints. More...
 
class  SpatializedPointCollectorInAABBQuery
 The SpatializedPointCollectorInAABBQuery class retrieves all SpatializedPoints within an Axis-Aligned Bounding Box (AABB) that can be reached navigating from a specified starting point, and stores them in a QueryDynamicOutput object. More...
 
class  SpatializedPointInitConfig
 Class used to initialize a SpatializedPoint. More...
 
class  SPL_ConstIterator
 Const iterator on SharedPoolList nodes (SPL stands for SharedPoolList). More...
 
class  SPL_Iterator
 Iterator on SharedPoolList nodes (SPL stands for SharedPoolList). More...
 
class  SplineComputationConfigBlob
 Class that configures Spline geometric parameters. More...
 
class  SplineTrajectory
 SplineTrajectory computes a CircleArcSpline that allows to anticipate and adapt the velocity in the turns. More...
 
class  SplineTrajectoryConfig
 Class that configures how the trajectory is computed from the Channel. More...
 
class  SplineTrajectoryConfigBlob
 Class that configures how the trajectory is computed from the Channel. More...
 
class  SPListNode
 This is the list node used in SharedPoolList implementation (SP stands for SharedPool). More...
 
struct  StringFmt
 usage: MyLogFuncThatTakesCharPtr(StringFmt<32>("my_integer = %d", my_integer).str) More...
 
class  StringPuller
 Computes a StringPulledBubbleList from the provided array of bubbles. More...
 
struct  StringSpan
 Non owning range of char. More...
 
struct  StringSplitSpan
 result of StringSplitFirst, StringSplit More...
 
class  SysAlloc
 The SysAlloc class specifies an interface for allocating and freeing memory. More...
 
class  SysAllocBase
 A base class for an object that manages memory allocations and de-allocations. More...
 
class  SysAllocBase_SingletonSupport
 Adds to the SysAlloc class support for restricting instantiation to a single object. More...
 
class  SysAllocMalloc
 This implementation of SysAlloc is used by default by the BaseSystem to allocate and free memory, if you do not set up the BaseSystem with your own custom implementation of SysAlloc. More...
 
class  TagVolume
 This class represents runtime-defined volumes with customized NavTag. More...
 
class  TagVolumeDatabaseData
 Each TagVolume instance aggregates one instance of this class to maintain its spatialization information in all Database it is bound to. More...
 
class  TagVolumeInitConfig
 TagVolumeInitConfig provides TagVolume initialization parameters. More...
 
class  TagVolumeTrigger
 TagVolumeTrigger is dedicated to TagVolume creation / removal management. More...
 
class  TargetOnPathComputer
 This class updates Bot's target on path so that: More...
 
class  ThinCapsuleWithExtentOffset
 Particuliar class used to represent the ThinCapsule for QueryUtils::IsHalfEdgeCompatibleWithThinCapsule(). More...
 
class  TrackedCollection
 TrackedCollection is a class which is a "Collection" of T=C* or T = Ptr< C > (not sorted, not unique). More...
 
class  Trajectory
 This class computes the trajectory either with ShortcutTrajectory or with SplineTrajectory. More...
 
class  Transform
 Matrix3x3f rotation and Vec3f translation. More...
 
class  TraversalParameters
 An internal class that stores parameters used to control the propagation of traversals. More...
 
class  TraverseLogicWithCostPerNavTag
 TraverseLogicWithCostPerNavTag defines the functions called when cost customization is per NavTag. More...
 
class  TraverseLogicWithCostPerTriangle
 TraverseLogicWithCostPerTriangle defines the functions called when cost customization is per primitive i.e. More...
 
class  Triangle3f
 3d triangle of 32bits floating points More...
 
class  Triangle3i
 3d triangle of 32bits integer points More...
 
class  TriangleFromPosAndTriangleSeedQuery
 Finds a triangle that contains the m_inputPos3f 2d coords by testing m_seedTrianglePtr and m_seedTrianglePtr neighbors. More...
 
class  TriangleFromPosQuery
 The TriangleFromPosQuery class takes a position in the 3D space (m_inputPos3f), and finds the nearest triangle in the NavMesh that covers the same (X,Y) coordinates. More...
 
class  Vec2f
 2d vector using KyFloat32. More...
 
class  Vec2i
 2d vector using KyInt32 More...
 
class  Vec2LL
 2d vector using KyInt64 More...
 
class  Vec3f
 3d vector using 32bits floating points. More...
 
class  Vec3i
 3d vector using 32bits integer More...
 
class  Version
 This class provides information about Autodesk Navigation version. More...
 
class  VisualDebugAttributeGroup
 A group of Key / valuetype / arrayof values, where the keys and types are created once, and values updated whenever. More...
 
class  VisualDebugDataRemovalBlob
 Send this blob to destroy the current visual debug data of type "blobType" in the visual debug element with id "visualDebugId". More...
 
class  VisualDebugServerConfig
 Configure the VisualDebugServer. More...
 
class  VisualGeometryPrimitiveCounts
 VisualGeometryPrimitiveCounts is passed to IVisualGeometry::DoBegin(primitiveCounts) so that the IVisualGeometry derivation has a chance to reserve vertex buffers before DoPushTriangle() DoPushLine() DoPushText() are called. More...
 
class  VisualLine
 Used in IVisualGeometry::DoPushLine(). Coordinates are Navigation (z-up, meters). More...
 
class  VisualText
 Used in IVisualGeometry::DoPushText(). Coordinates are Navigation (z-up, meters). More...
 
class  VisualTriangle
 Used in IVisualGeometry::DoPushTriangle(). Coordinates are Navigation (z-up, meters). More...
 
class  World
 This class is a runtime container for Autodesk Navigation WorldElements such as NavData, Bots, BoxObstacles, TagVolumes... More...
 
class  WorldElement
 Base internal class used to represent elements that can be added to a World, such as instances of Database, Bot, BoxObstacle, CylinderObstacle, TagVolume... More...
 
class  WorldIntegerPos
 Utilities for dealing with NavData coordinates, which are expressed in a world space based on integers. More...
 

Typedefs

typedef Vec2i HeightfieldTilePos
 A type that represents the position of a Tile within a 2D grid. More...
 
typedef Box2i HeightfieldTileBox
 A type that represents a bounding box around the Tiles of the Heigtfield. More...
 
typedef Vec2i HeightfieldVertexPos
 A type that represents one of the vertices of a Tile within a 2D grid. More...
 
typedef Box2i HeightfieldVertexBox
 A type that represents a bounding box around the Vertices of the Heighfield. More...
 
typedef char Char
 char More...
 
typedef std::int8_t SByte
 uint8_t More...
 
typedef std::int8_t SInt8
 int8_t More...
 
typedef std::int16_t SInt16
 int16_t More...
 
typedef std::int32_t SInt32
 int32_t More...
 
typedef std::int64_t SInt64
 int64_t More...
 
typedef std::uint8_t UByte
 uint8_t More...
 
typedef std::uint8_t UInt8
 uint8_t More...
 
typedef std::uint16_t UInt16
 uint16_t More...
 
typedef std::uint32_t UInt32
 uint32_t More...
 
typedef std::uint64_t UInt64
 uint64_t More...
 
typedef KyUInt32 CardinalDir
 Defines a type that refers to one of the cardinal points on the compass: More...
 
typedef KyUInt16 NavGraphVertexLinkType
 Defines a type for a tag that determines whether or not a vertex in a NavGraph should be connected to the NavMesh. More...
 
typedef KyUInt32 NavGraphVertexIdx
 An index that uniquely identifies a single vertex within the set of vertices owned by a NavGraph. More...
 
typedef Vec2LL CoordPos64
 A type that represents the position of a point within the 2D integer grid. More...
 
typedef Box2LL CoordBox64
 A type that represents a bounding box in the integer 2D grid. More...
 
typedef Vec2i CoordPos
 A type that represents the position of a point within the 2D integer grid. More...
 
typedef Box2i CoordBox
 A type that represents a bounding box in the integer 2D grid. More...
 
typedef KyInt32 CellCoord
 A type that represents the placement of a cell on one axis of a 2D grid. More...
 
typedef Vec2i CellPos
 A type that represents the position of a cell within a 2D grid. More...
 
typedef Box2i CellBox
 A type that represents a bounding box around cells in a 2D grid. More...
 

Enumerations

enum  GameKitCrowdDispersionLogicAction { GameKitCrowdDispersionLogic_NoAction = 0, GameKitCrowdDispersionLogic_RecomputePath = 1, GameKitCrowdDispersionLogic_CancelOutRecomputedPath = 2 }
 GameKitCrowdDispersionLogicAction. More...
 
enum  NavRasterDistanceMapMetric { DISTANCE_MAP_MANHATTAN_METRIC = 0, DISTANCE_MAP_CHESSBOARD_METRIC = 1 }
 Enumerates the different possible settings for GeneratorAdvancedParameters::m_navRasterDistanceMapMetric. More...
 
enum  FileOpenerMode { OpenMode_Read = 0, OpenMode_Write }
 Enumerates the possible modes for opening a file with a class that derives from FileOpenerBase. More...
 
enum  CoordSystemClientAxis {
  CLIENT_X = 0, CLIENT_MINUS_X = 1, CLIENT_Y = 2, CLIENT_MINUS_Y = 3,
  CLIENT_Z = 4, CLIENT_MINUS_Z = 5
}
 Enumerates the possible axis orientations that can be assigned to m_clientAxisForNavigationX, m_clientAxisForNavigationX and m_clientAxisForNavigationX axes used within Autodesk Navigation. More...
 
enum  BubbleType
 Defines the type of a bubble accordingly to the place it has in a BubbleArray, a BubbleList, etc. More...
 
enum  GateType {
  UndefinedGateType = 0, StartGate = 1, EndGate = 2, SmallLeftTurn = 3,
  LeftTurnStart = 4, LeftTurnIntermediary = 5, LeftTurnEnd = 6, SmallRightTurn = 7,
  RightTurnStart = 8, RightTurnIntermediary = 9, RightTurnEnd = 10, WidthAdjustment = 11,
  ClampingAdjustment = 12
}
 Enumerates the different kind of Gates. More...
 
enum  RelativePositionToChannelSectionFlag {
  RelativePositionToChannelSection_Inside = 0, RelativePositionToChannelSection_Before = 1, RelativePositionToChannelSection_After = 2, RelativePositionToChannelSection_OnLeft = 4,
  RelativePositionToChannelSection_OnRight = 8
}
 Enumerates the Channel::IsPositionInSection relative position flags. More...
 
enum  ChannelArrayComputerResult { ChannelArrayResult_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, ChannelArrayResult_NOT_PROCESSED = QUERY_NOT_PROCESSED }
 ChannelArrayComputerResult. More...
 
enum  DiagonalStripComputerResult { DiagonalStripResult_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, DiagonalStripResult_NOT_PROCESSED = QUERY_NOT_PROCESSED }
 
enum  DiskCanGoInChannelResult { ,
  DiskCanGoInChannel_Success, DiskCanGoInChannel_InvalidChannel, DiskCanGoInChannel_InvalidStartSectionIdx, DiskCanGoInChannel_PassedChannelEndGate,
  DiskCanGoInChannel_PassedChannelStartGate, DiskCanGoInChannel_StartIsOutside, DiskCanGoInChannel_CollisionDetected
}
 
enum  GateArrayComputerResult { GateArrayComputerResult_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, GateArrayComputerResult_NOT_PROCESSED = QUERY_NOT_PROCESSED }
 
enum  RayCastInChannelResult { ,
  RayCastInChannel_Success, RayCastInChannel_PassedChannelFirstSection, RayCastInChannel_PassedChannelLastSection, RayCastInChannel_CollisionDetected_OnLeft,
  RayCastInChannel_CollisionDetected_OnRight, RayCastInChannel_StartIsOutside, RayCastInChannel_InvalidStartSectionIdx, RayCastInChannel_InvalidChannel
}
 
enum  CollisionRayCastResult { RayHit = 0, RayDidNotHit }
 CollisionRayCastResult. More...
 
enum  RayCanGoMarginMode {
  NoMargin = 0, DiagonalStripMargin, ChannelMargin, PathMargin,
  IdealTrajectoryMargin, MinimalTrajectoryMargin, MoveOnNavMeshMargin
}
 Defines the different mode for the NavMesh border margin to be used in RayCanGo queries. More...
 
enum  QueryStatReportType { , QueryStatReport_All }
 
enum  RotationDirection
 Defines the 4 possible cases of possibly constrained rotation in the horizontal plane for a given element. More...
 
enum  IsInTurnRangeResult
 Defines the relative position of a direction, given a rotation direction and bounding directions. More...
 
enum  NavHalfEdgeObstacleType { EDGEOBSTACLETYPE_WALL = 0, EDGEOBSTACLETYPE_HOLE = 1 }
 Enumerates the possible types of obstacles that can be represented by a NavHalfEdge whose type is EDGETYPE_OBSTACLE. More...
 
enum  NavHalfEdgeType {
  EDGETYPE_CELLBOUNDARY_EAST = CardinalDir_EAST, EDGETYPE_CELLBOUNDARY_NORTH = CardinalDir_NORTH, EDGETYPE_CELLBOUNDARY_WEST = CardinalDir_WEST, EDGETYPE_CELLBOUNDARY_SOUTH = CardinalDir_SOUTH,
  EDGETYPE_FLOORBOUNDARY = 4, EDGETYPE_OBSTACLE = 5, EDGETYPE_CONNEXBOUNDARY = 6, EDGETYPE_PAIRED = 7
}
 Enumerates the possible types of boundary that can be represented by a NavHalfEdge. More...
 
enum  PathSource { PathSource_NoPath, PathSource_BotComputed, PathSource_UserInjected }
 Enumerates the possible source for a new Path. More...
 
enum  PathEdgeType
 Defines the different kind of PathEdge within a Path. More...
 
enum  PathEventType {
  PathEventType_Undefined, PathEventType_NavGraphVertex, PathEventType_NavTagSwitch, PathEventType_OutsideToNavMeshSwitch,
  PathEventType_NavMeshToOutsideSwitch, PathEventType_OutsideNavDataPathNode, PathEventType_OnNavMeshPathNode, PathEventType_OnNavMeshAfterCollision
}
 Defines the different kinds of PathEvent. More...
 
enum  PathEventStatusInList {
  PathEventStatus_Undefined, PathEventStatus_WithinBounds, PathEventStatus_LowerBound, PathEventStatus_UpperBound,
  PathEventStatus_TemporaryUpperBound
}
 Defines the PathEvent status relative to its place in the PathEventList. More...
 
enum  CheckPointStatus { CheckPointStatus_EventIsNotACheckPoint, CheckPointStatus_EventIsACheckPoint }
 Defines whether the PathEvent is a check point or not. More...
 
enum  PathValidityStatus {
  PathValidityStatus_NoPath = 0, PathIsValid, ValidityIntervalMustBeRecomputed, ValidityIsBeingChecked,
  Dirty_ProgressInvalid, Dirty_InvalidBeforeProgress_ProcessingAfter, Dirty_InvalidBeforeProgress_ValidAfter, Dirty_ValidBeforeProgress_InvalidAfter,
  Dirty_InvalidBeforeAndAfterProgress
}
 Enumerate the different validity status of a LivePath. More...
 
enum  OnEventListStatus { OnEventListStatus_Undefined = 0, OnEventListStatus_OnEvent, OnEventListStatus_OnInterval }
 Enumerates the admissible values for PositionOnLivePath status accordingly to its position relatively to PathEvents. More...
 
enum  PositionOnPathStatus { PositionOnPathStatus_Undefined = 0, PositionOnPathStatus_OnPathNode, PositionOnPathStatus_OnPathEdge }
 < Enumerates the different status an objectPositionOnPath can have on its Path. More...
 
enum  AvoidanceWorkspaceAddColliderResult
 AvoidanceWorkspaceAddColliderResult. More...
 
enum  CircleArcSplineComputationResult {
  CircleArcSplineComputation_NotComputed = 0, CircleArcSplineComputation_Success = 1, CircleArcSplineComputation_Warning = 2, CircleArcSplineComputation_Failed_InvalidInputs = 1 << 2,
  CircleArcSplineComputation_Failed_BubbleArrayBuildError = 1 << 3, CircleArcSplineComputation_Failed_StringPullerError = 1 << 4, CircleArcSplineComputation_Failed_InvalidStringPulledBubbleList = 1 << 5, CircleArcSplineComputation_Failed_TurnListConstructionError = 1 << 6,
  CircleArcSplineComputation_Failed_TurnListRadiusAdjustmentError = 1 << 7, CircleArcSplineComputation_Failed_CircleArcSplineBuildError = 1 << 8, CircleArcSplineComputation_Failed_InvalidSpline = 1 << 9
}
 Enumerates the CircleArcSpline computation results. More...
 
enum  CircleArcSplineComputationWarningFlags { CircleArcSplineComputation_Warning_ReleasedStartConstraint = 1 << 0, CircleArcSplineComputation_Warning_ReleasedEndConstraint = 1 << 1, CircleArcSplineComputation_Warning_RestrictedRadius = 1 << 2, CircleArcSplineComputation_Warning_SmallTurn = 1 << 3 }
 Enumerates the spline computation warning flags. More...
 
enum  AvoidanceResult {
  Avoidance_NoAvoidance = 0, Avoidance_SlowDown, Avoidance_Accelerate, Avoidance_Turn,
  Avoidance_Stop, Avoidance_SolutionNotFound, Avoidance_ForcePassage, Avoidance_WaitForcePassage
}
 Enumerates the possible results of a call to IAvoidanceComputer::Compute(). More...
 
enum  AvoidanceFilterResult { AvoidanceFilter_Ignore = 0, AvoidanceFilter_Avoid }
 Enumerated the possible results of a call toIAvoidanceFilter::Filter. More...
 
enum  ManualControlStatus {
  ManualControlStatus_NotInitialized = 0, ManualControlStatus_PositionInvalid = 1, ManualControlStatus_EventInvalid = 2, ManualControlStatus_Pending = 3,
  ManualControlStatus_Valid = 4
}
 
enum  ResetTrajectoryStatus {
  ResetTrajectoryStatus_InInvalidNavData = 0, ResetTrajectoryStatus_OutsideNavMesh = 1, ResetTrajectoryStatus_OutsideChannel = 2, ResetTrajectoryStatus_CannotShortcutToPath = 3,
  ResetTrajectoryStatus_Pending = 4, ResetTrajectoryStatus_Success = 5, ResetTrajectoryStatus_Success_OutsideNavMesh = 6, ResetTrajectoryStatus_Success_OutsideChannel = 7
}
 
enum  StartConstraintDirectionMode { StartConstraintDirectionMode_Velocity = 0, StartConstraintDirectionMode_FrontDirection, StartConstraintDirectionMode_Velocity_Or_FrontDirection, StartConstraintDirectionMode_None }
 Enumerates the SplineTrajectory start constraint direction modes. More...
 
enum  TargetOnPathStatus {
  TargetOnPathNotInitialized = 0, TargetOnPathUnknownReachability, TargetOnPathInInvalidNavData, TargetOnPathNotReachable,
  TargetOnPathReachable
}
 Enumerates the possible status values of Bot Position on path. More...
 
enum  CircleArcSplineComputationQueryResult {
  CIRCLEARCSPLINECOMPUTATION_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, CIRCLEARCSPLINECOMPUTATION_NOT_PROCESSED = QUERY_NOT_PROCESSED, CIRCLEARCSPLINECOMPUTATION_DONE_INVALIDINPUTS, CIRCLEARCSPLINECOMPUTATION_DONE_COMPUTERINTERNALERROR,
  CIRCLEARCSPLINECOMPUTATION_DONE_COMPUTATION_CANCELED, CIRCLEARCSPLINECOMPUTATION_DONE_SUCCESS
}
 Enumerates the possible results of a CircleArcSplineComputationQuery. More...
 
enum  DynamicNavMeshQueryResult {
  DYNNAVMESH_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, DYNNAVMESH_NOT_PROCESSED = QUERY_NOT_PROCESSED , DYNNAVMESH_NAVFLOOR_INVALID, DYNNAVMESH_LACK_OF_WORKING_MEMORY,
  DYNNAVMESH_INTERSECTION_COMPUTATION_ERROR, DYNNAVMESH_SWEEPLINE_COMPUTATION_ERROR, DYNNAVMESH_POLYGON_COMPUTATION_ERROR, DYNNAVMESH_TRIANGULATION_COMPUTATION_ERROR,
  DYNNAVMESH_ALTITUDE_COMPUTATION_ERROR, DYNNAVMESH_NAVFLOOR_INDICES_OUT_OF_BOUNDS, DYNNAVMESH_UNKNOWN_ERROR, DYNNAVMESH_DONE_SUCCESS
}
 Enumerates the possible results of a DynamicNavMeshQuery. More...
 
enum  PathFinderQueryComputeChannelMode
 This enum tells if the PathFinderQuery should compute Channels around path sections laying on the NavMesh. More...
 
enum  MakeNavFloorStitchQueryResult {
  RUNTIMESTITCH_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, RUNTIMESTITCH_NOT_PROCESSED = QUERY_NOT_PROCESSED , RUNTIMESTITCH_LACK_OF_WORKING_MEMORY, RUNTIMESTITCH_UNKNOWN_ERROR,
  RUNTIMESTITCH_DONE_SUCCESS
}
 Enumerates the possible results of a MakeNavFloorStitchQuery. More...
 
enum  MultipleFloorTrianglesFromPosQueryResult {
  MULTIPLEFLOORTRIANGLESFROMPOS_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, MULTIPLEFLOORTRIANGLESFROMPOS_NOT_PROCESSED = QUERY_NOT_PROCESSED, MULTIPLEFLOORTRIANGLESFROMPOS_DONE_NO_TRIANGLE_FOUND, MULTIPLEFLOORTRIANGLESFROMPOS_DONE_MAX_MEMORY_REACHED,
  MULTIPLEFLOORTRIANGLESFROMPOS_DONE_TRIANGLES_FOUND
}
 Enumerates the possible results of a MultipleFloorTrianglesFromPosQuery. More...
 
enum  MultipleFloorTrianglesFromPosQueryType { MULTIPLEFLOORTRIANGLESFROMPOS_FIND_ALL, MULTIPLEFLOORTRIANGLESFROMPOS_FIND_ALL_BELOW, MULTIPLEFLOORTRIANGLESFROMPOS_FIND_ALL_ABOVE, MULTIPLEFLOORTRIANGLESFROMPOS_FIND_NEAREST_ABOVE_AND_BELOW }
 Enumerates the possible ways that a MultipleFloorTrianglesFromPosQuery chooses which triangles to retrieve. More...
 
enum  DynamicOutputMode {
  QUERY_SAVE_NOTHING = 0, QUERY_SAVE_FLOORS = 1 << 1, QUERY_SAVE_TRIANGLES = 1 << 2, QUERY_SAVE_NAVTAGSUBSEGMENTS = 1 << 3,
  QUERY_SAVE_HALFEDGEINTERSECTIONS = 1 << 4, QUERY_SAVE_COSTMULTIPLIERSUBSEGMENTS = 1 << 5, QUERY_SAVE_SPATIALIZEDPOINTS = 1 << 6, QUERY_SAVE_TAGVOLUMES = 1 << 7,
  QUERY_SAVE_TRIANGLES_AND_SUBSEGMENTS = QUERY_SAVE_TRIANGLES | QUERY_SAVE_NAVTAGSUBSEGMENTS
}
 Enumerates possible ways of storing collected data by a query in a QueryDynamicOutput object. More...
 
enum  RayCast3dQueryResult { RAYCAST3D_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, RAYCAST3D_NOT_PROCESSED = QUERY_NOT_PROCESSED, RAYCAST3D_DONE_NO_HIT, RAYCAST3D_DONE_HIT }
 Enumerates the possible results of a RayCast3dQuery. More...
 
enum  TagVolumesFromPosQueryResult {
  TAGVOLUMESROMPOS_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, TAGVOLUMESROMPOS_NOT_PROCESSED = QUERY_NOT_PROCESSED, TAGVOLUMESROMPOS_DONE_NO_TAGVOLUMES_FOUND, TAGVOLUMESROMPOS_DONE_LACK_OF_WORKING_MEMORY,
  TAGVOLUMESROMPOS_DONE_TAGVOLUMES_FOUND
}
 Enumerates the possible results of a TagVolumesFromPosQuery. More...
 
enum  TriangleFromPosAndTriangleSeedResult {
  NEARESTTRIANGLEFROMSEED_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, NEARESTTRIANGLEFROMSEED_NOT_PROCESSED = QUERY_NOT_PROCESSED, NEARESTTRIANGLEFROMSEED_DONE_SEED_INVALID, NEARESTTRIANGLEFROMSEED_DONE_NO_TRIANGLE_FOUND,
  NEARESTTRIANGLEFROMSEED_DONE_LACK_OF_WORKING_MEMORY, NEARESTTRIANGLEFROMSEED_DONE_TRIANGLE_FOUND
}
 Enumerates the possible results of a TriangleFromPosAndTriangleSeedQuery. More...
 
enum  TriangleFromPosQueryResult {
  TRIANGLEFROMPOS_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, TRIANGLEFROMPOS_NOT_PROCESSED = QUERY_NOT_PROCESSED, TRIANGLEFROMPOS_DONE_NO_TRIANGLE_FOUND, TRIANGLEFROMPOS_DONE_LACK_OF_WORKING_MEMORY,
  TRIANGLEFROMPOS_DONE_TRIANGLE_FOUND
}
 Enumerates the possible results of a TriangleFromPosQuery. More...
 
enum  TriangleFromPosQueryType { NEARESTTRIANGLE_FIND_NEAREST, NEARESTTRIANGLE_FIND_NEAREST_BELOW, NEARESTTRIANGLE_FIND_NEAREST_ABOVE }
 Enumerates the possible ways a TriangleFromPosQuery can choose the triangle it retrieves. More...
 
enum  AStarQueryResult {
  ASTAR_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, ASTAR_NOT_PROCESSED = QUERY_NOT_PROCESSED, ASTAR_PROCESSING_TRAVERSAL, ASTAR_PROCESSING_TRAVERSAL_DONE,
  ASTAR_PROCESSING_ABSTRACT_PATH, ASTAR_PROCESSING_REFINING_INIT, ASTAR_PROCESSING_REFINING_RESETCOST, ASTAR_PROCESSING_REFINING,
  ASTAR_PROCESSING_PATHCLAMPING_INIT, ASTAR_PROCESSING_PATHCLAMPING, ASTAR_PROCESSING_PATHBUILDING, ASTAR_PROCESSING_CHANNEL_INIT,
  ASTAR_PROCESSING_CHANNEL_COMPUTE, ASTAR_DONE_START_OUTSIDE, ASTAR_DONE_START_NAVTAG_FORBIDDEN, ASTAR_DONE_END_OUTSIDE,
  ASTAR_DONE_END_NAVTAG_FORBIDDEN, ASTAR_DONE_PATH_NOT_FOUND, ASTAR_DONE_NAVDATA_CHANGED, ASTAR_DONE_ERROR_LACK_OF_WORKING_MEMORY,
  ASTAR_DONE_COMPUTATION_ERROR, ASTAR_DONE_CHANNELCONFIG_ERROR, ASTAR_DONE_CHANNELCOMPUTATION_ERROR, ASTAR_DONE_COMPUTATION_CANCELED,
  ASTAR_DONE_DEST_IS_START_NO_PATH, ASTAR_DONE_PATH_FOUND
}
 Enumerates the possible results of an AStarQuery. More...
 
enum  BestGraphVertexPathFinderQueryResult {
  BESTGRAPHVERTEX_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, BESTGRAPHVERTEX_NOT_PROCESSED = QUERY_NOT_PROCESSED, BESTGRAPHVERTEX_PROCESSING_TRAVERSAL, BESTGRAPHVERTEX_PROCESSING_TRAVERSAL_DONE,
  BESTGRAPHVERTEX_PROCESSING_REFINING_INIT, BESTGRAPHVERTEX_PROCESSING_REFINING, BESTGRAPHVERTEX_PROCESSING_PATHCLAMPING_INIT, BESTGRAPHVERTEX_PROCESSING_PATHCLAMPING,
  BESTGRAPHVERTEX_PROCESSING_PATHBUILDING, BESTGRAPHVERTEX_PROCESSING_CHANNEL_INIT, BESTGRAPHVERTEX_PROCESSING_CHANNEL_COMPUTE, BESTGRAPHVERTEX_DONE_START_OUTSIDE,
  BESTGRAPHVERTEX_DONE_START_NAVTAG_FORBIDDEN, BESTGRAPHVERTEX_DONE_PATH_NOT_FOUND, BESTGRAPHVERTEX_DONE_NAVDATA_CHANGED, BESTGRAPHVERTEX_DONE_ERROR_LACK_OF_WORKING_MEMORY,
  BESTGRAPHVERTEX_DONE_COMPUTATION_ERROR, BESTGRAPHVERTEX_DONE_CHANNELCONFIG_ERROR, BESTGRAPHVERTEX_DONE_CHANNELCOMPUTATION_ERROR, BESTGRAPHVERTEX_DONE_COMPUTATION_CANCELED,
  BESTGRAPHVERTEX_DONE_PATH_FOUND
}
 Enumerates the possible results of an BestGraphVertexPathFinderQuery. More...
 
enum  DiskCanGoQueryResult {
  DISKCANGO_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, DISKCANGO_NOT_PROCESSED = QUERY_NOT_PROCESSED, DISKCANGO_DONE_START_OUTSIDE, DISKCANGO_DONE_START_NAVTAG_FORBIDDEN,
  DISKCANGO_DONE_COLLISION_DETECTED, DISKCANGO_DONE_ARRIVAL_WRONG_FLOOR, DISKCANGO_DONE_LACK_OF_WORKING_MEMORY, DISKCANGO_DONE_UNKNOWN_ERROR,
  DISKCANGO_DONE_SUCCESS
}
 Enumerates the possible results of a DiskCanGoQuery. More...
 
enum  DiskCanGoQueryType { DISKCANGO_DONT_ADAPT_TO_STARTPOS, DISKCANGO_ADAPT_TO_STARTPOS }
 Enumerates the possible behaviors of a BaseDiskCanGoQuery when the the starting point lies inside the NavMesh but the radius collides with the border of the NavMesh. More...
 
enum  DiskCastQueryResult {
  DISKCAST_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, DISKCAST_NOT_PROCESSED = QUERY_NOT_PROCESSED, DISKCAST_DONE_START_OUTSIDE, DISKCAST_DONE_START_NAVTAG_FORBIDDEN,
  DISKCAST_DONE_CANNOT_MOVE, DISKCAST_DONE_COLLISION_FOUND_ARRIVAL_ERROR, DISKCAST_DONE_LACK_OF_WORKING_MEMORY, DISKCAST_DONE_UNKNOWN_ERROR,
  DISKCAST_DONE_ARRIVALPOS_FOUND_MAXDIST_REACHED, DISKCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION, DISKCAST_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION = DISKCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION
}
 Enumerates the possible results of a DiskCastQuery. More...
 
enum  DiskCastQueryType { DISKCAST_DONT_ADAPT_TO_STARTPOS, DISKCAST_ADAPT_TO_STARTPOS }
 Enumerates the possible behavior of a BaseDiskCastQuery when the the starting point lies inside the NavMesh but the radius collides with the border of the NavMesh. More...
 
enum  DiskCollisionQueryResult {
  DISKCOLLISION_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, DISKCOLLISION_NOT_PROCESSED = QUERY_NOT_PROCESSED, DISKCOLLISION_DONE_CENTER_OUTSIDE, DISKCOLLISION_DONE_CENTER_NAVTAG_FORBIDDEN,
  DISKCOLLISION_DONE_DISK_DOES_NOT_FIT, DISKCOLLISION_DONE_LACK_OF_WORKING_MEMORY, DISKCOLLISION_DONE_UNKNOWN_ERROR, DISKCOLLISION_DONE_DISK_FIT
}
 Enumerates the possible results of a DiskCollisionQuery. More...
 
enum  DiskExpansionQueryResult {
  DISKEXPANSION_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, DISKEXPANSION_NOT_PROCESSED = QUERY_NOT_PROCESSED, DISKEXPANSION_DONE_CENTER_OUTSIDE, DISKEXPANSION_DONE_CENTER_NAVTAG_FORBIDDEN,
  DISKEXPANSION_DONE_CANNOT_EXPAND, DISKEXPANSION_DONE_LACK_OF_WORKING_MEMORY, DISKEXPANSION_DONE_UNKNOWN_ERROR, DISKEXPANSION_DONE_DISK_FIT,
  DISKEXPANSION_DONE_COLLISION_FOUND
}
 Enumerates the possible results of a DiskExpansionQuery. More...
 
enum  FindFirstVisiblePositionOnPathQueryResult {
  FINDFIRSTVISIBLEPOSITIONONPATH_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, FINDFIRSTVISIBLEPOSITIONONPATH_NOT_PROCESSED = QUERY_NOT_PROCESSED, FINDFIRSTVISIBLEPOSITIONONPATH_DONE_VISIBILITYSTARTPOINT_OUTSIDE, FINDFIRSTVISIBLEPOSITIONONPATH_DONE_VISIBILITYSTARTPOINT_NAVTAG_FORBIDDEN,
  FINDFIRSTVISIBLEPOSITIONONPATH_DONE_NO_VISIBLE_POSITION_FOUND, FINDFIRSTVISIBLEPOSITIONONPATH_DONE_LACK_OF_WORKING_MEMORY, FINDFIRSTVISIBLEPOSITIONONPATH_DONE_UNKNOWN_ERROR, FINDFIRSTVISIBLEPOSITIONONPATH_DONE_SUCCESS
}
 Enumerates the possible results of a FindFirstVisiblePositionOnPathQuery. More...
 
enum  InsidePosFromOutsidePosQueryResult {
  INSIDEPOSFROMOUTSIDE_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, INSIDEPOSFROMOUTSIDE_NOT_PROCESSED = QUERY_NOT_PROCESSED, INSIDEPOSFROMOUTSIDE_DONE_LACK_OF_WORKING_MEMORY, INSIDEPOSFROMOUTSIDE_DONE_POS_NOT_FOUND,
  INSIDEPOSFROMOUTSIDE_DONE_POS_FOUND
}
 Enumerates the possible results of an InsidePosFromOutsidePosQuery. More...
 
enum  MoveOnNavMeshQueryResult {
  MOVEONNAVMESH_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, MOVEONNAVMESH_NOT_PROCESSED = QUERY_NOT_PROCESSED, MOVEONNAVMESH_DONE_START_OUTSIDE, MOVEONNAVMESH_DONE_START_NAVTAG_FORBIDDEN,
  MOVEONNAVMESH_DONE_START_LINKONEDGE_ERROR, MOVEONNAVMESH_DONE_LACK_OF_WORKING_MEMORY, MOVEONNAVMESH_DONE_UNKNOWN_ERROR, MOVEONNAVMESH_DONE_ARRIVALPOS_FOUND_NO_COLLISION,
  MOVEONNAVMESH_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION, MOVEONNAVMESH_DONE_INTERMEDIARYPOS_FOUND
}
 Enumerates the possible results of a MoveOnNavMeshQuery. More...
 
enum  MultiDestinationPathFinderQueryResult {
  MULTIDESTINATIONPATHFINDER_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, MULTIDESTINATIONPATHFINDER_NOT_PROCESSED = QUERY_NOT_PROCESSED, MULTIDESTINATIONPATHFINDER_PROCESSING_TRAVERSAL, MULTIDESTINATIONPATHFINDER_PROCESSING_TRAVERSAL_DONE,
  MULTIDESTINATIONPATHFINDER_PROCESSING_CANGOQUERY, MULTIDESTINATIONPATHFINDER_PROCESSING_NEXT_DESTINATION, MULTIDESTINATIONPATHFINDER_PROCESSING_ABSTRACT_PATH, MULTIDESTINATIONPATHFINDER_PROCESSING_REFINING_INIT,
  MULTIDESTINATIONPATHFINDER_PROCESSING_REFINING_RESETCOST, MULTIDESTINATIONPATHFINDER_PROCESSING_REFINING, MULTIDESTINATIONPATHFINDER_PROCESSING_PATHCLAMPING_INIT, MULTIDESTINATIONPATHFINDER_PROCESSING_PATHCLAMPING,
  MULTIDESTINATIONPATHFINDER_PROCESSING_PATHBUILDING, MULTIDESTINATIONPATHFINDER_PROCESSING_CHANNEL_INIT, MULTIDESTINATIONPATHFINDER_PROCESSING_CHANNEL_COMPUTE, MULTIDESTINATIONPATHFINDER_DONE_START_OUTSIDE,
  MULTIDESTINATIONPATHFINDER_DONE_START_NAVTAG_FORBIDDEN, MULTIDESTINATIONPATHFINDER_DONE_ENDS_ARE_UNREACHABLE, MULTIDESTINATIONPATHFINDER_DONE_DESTS_ARE_START_NO_PATH, MULTIDESTINATIONPATHFINDER_DONE_NO_PATH_FOUND,
  MULTIDESTINATIONPATHFINDER_DONE_NAVDATA_CHANGED, MULTIDESTINATIONPATHFINDER_DONE_ERROR_LACK_OF_WORKING_MEMORY, MULTIDESTINATIONPATHFINDER_DONE_COMPUTATION_ERROR, MULTIDESTINATIONPATHFINDER_DONE_CHANNELCONFIG_ERROR,
  MULTIDESTINATIONPATHFINDER_DONE_CHANNELCOMPUTATION_ERROR, MULTIDESTINATIONPATHFINDER_DONE_COMPUTATION_CANCELED, MULTIDESTINATIONPATHFINDER_DONE_SOME_PATHS_FOUND, MULTIDESTINATIONPATHFINDER_TOPROCESS_FROM_CANGOQUERY,
  MULTIDESTINATIONPATHFINDER_PROCESSING, MULTIDESTINATIONPATHFINDER_DONE_END_OUTSIDE, MULTIDESTINATIONPATHFINDER_DONE_END_NAVTAG_FORBIDDEN, MULTIDESTINATIONPATHFINDER_DONE_PATH_NOT_FOUND,
  MULTIDESTINATIONPATHFINDER_DONE_DEST_IS_START_NO_PATH, MULTIDESTINATIONPATHFINDER_DONE_PATH_FOUND
}
 Enumerates the possible results of an AStarQuery. More...
 
enum  MultiDestinationPathFinderFinalOutput { MULTIDESTINATIONPATHFINDER_BUILD_LOWEST_COST_PATH_ONLY = 0, MULTIDESTINATIONPATHFINDER_COMPUTE_RAW_COSTS = 1 << 0, MULTIDESTINATIONPATHFINDER_BUILD_RAW_PATHS = 1 << 1, MULTIDESTINATIONPATHFINDER_BUILD_PATHS = 1 << 2 }
 Usually only one of MultiDestinationPathFinderFinalOutput values is useful, but for debug purpose, it is possible to pass several of them. More...
 
enum  NearestBorderHalfEdgeFromPosQueryResult {
  NEARESTHALFEDGE_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, NEARESTHALFEDGE_NOT_PROCESSED = QUERY_NOT_PROCESSED, NEARESTHALFEDGE_HALFEDGE_NOT_FOUND, NEARESTHALFEDGE_DONE_LACK_OF_WORKING_MEMORY,
  NEARESTHALFEDGE_HALFEDGE_FOUND
}
 Enumerates the possible results of a NearestBorderHalfEdgeFromPosQuery. More...
 
enum  PathFromPolylineQueryResult {
  PATHFROMPOLYLINE_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, PATHFROMPOLYLINE_NOT_PROCESSED = QUERY_NOT_PROCESSED, PATHFROMPOLYLINE_PROCESSING_PATHCLAMPING_INIT, PATHFROMPOLYLINE_PROCESSING_PATHCLAMPING,
  PATHFROMPOLYLINE_PROCESSING_PATHBUILDING, PATHFROMPOLYLINE_PROCESSING_CHANNEL_INIT, PATHFROMPOLYLINE_PROCESSING_CHANNEL_COMPUTE, PATHFROMPOLYLINE_DONE_DATABASE_EMPTY,
  PATHFROMPOLYLINE_DONE_END_OUTSIDE, PATHFROMPOLYLINE_DONE_POLYLINE_INVALID, PATHFROMPOLYLINE_DONE_PATH_NOT_FOUND, PATHFROMPOLYLINE_DONE_NAVDATA_CHANGED,
  PATHFROMPOLYLINE_DONE_ERROR_LACK_OF_WORKING_MEMORY, PATHFROMPOLYLINE_DONE_COMPUTATION_ERROR, PATHFROMPOLYLINE_DONE_CHANNELCONFIG_ERROR, PATHFROMPOLYLINE_DONE_CHANNELCOMPUTATION_ERROR,
  PATHFROMPOLYLINE_DONE_COMPUTATION_CANCELED, PATHFROMPOLYLINE_DONE_ERROR_POLYLINE_EMPTY, PATHFROMPOLYLINE_DONE_DEST_IS_START_NO_PATH, PATHFROMPOLYLINE_DONE_PATH_FOUND
}
 Enumerates the possible results of an PathFromPolylineQuery. More...
 
enum  RayCanGoOnSegmentQueryResult {
  RAYCANGOONSEGMENT_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, RAYCANGOONSEGMENT_NOT_PROCESSED = QUERY_NOT_PROCESSED, RAYCANGOONSEGMENT_DONE_START_OUTSIDE, RAYCANGOONSEGMENT_DONE_START_NAVTAG_FORBIDDEN,
  RAYCANGOONSEGMENT_DONE_COLLISION_DETECTED, RAYCANGOONSEGMENT_DONE_ARRIVAL_IN_WRONG_FLOOR, RAYCANGOONSEGMENT_DONE_LACK_OF_WORKING_MEMORY, RAYCANGOONSEGMENT_DONE_QUERY_TOO_LONG,
  RAYCANGOONSEGMENT_DONE_SUCCESS
}
 Enumerates the possible results of a RayCanGoOnSegmentQuery. More...
 
enum  RayCanGoQueryResult {
  RAYCANGO_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, RAYCANGO_NOT_PROCESSED = QUERY_NOT_PROCESSED, RAYCANGO_DONE_START_OUTSIDE, RAYCANGO_DONE_START_NAVTAG_FORBIDDEN,
  RAYCANGO_DONE_COLLISION_DETECTED, RAYCANGO_DONE_BORDER_DETECTED_WITHIN_MARGIN, RAYCANGO_DONE_ARRIVAL_IN_WRONG_FLOOR, RAYCANGO_DONE_LACK_OF_WORKING_MEMORY,
  RAYCANGO_DONE_UNKNOWN_ERROR, RAYCANGO_DONE_SUCCESS
}
 Enumerates the possible results of a RayCanGoQuery. More...
 
enum  RayCastOnSegmentQueryResult {
  RAYCASTONSEGMENT_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, RAYCASTONSEGMENT_NOT_PROCESSED = QUERY_NOT_PROCESSED, RAYCASTONSEGMENT_DONE_START_OUTSIDE, RAYCASTONSEGMENT_DONE_START_NAVTAG_FORBIDDEN,
  RAYCASTONSEGMENT_DONE_CANNOT_MOVE, RAYCASTONSEGMENT_DONE_ARRIVAL_ERROR, RAYCASTONSEGMENT_DONE_LACK_OF_WORKING_MEMORY, RAYCASTONSEGMENT_DONE_QUERY_TOO_LONG,
  RAYCASTONSEGMENT_DONE_UNKNOWN_ERROR, RAYCASTONSEGMENT_DONE_ARRIVALPOS_FOUND_MAXDIST_REACHED, RAYCASTONSEGMENT_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION
}
 Enumerates the possible results of a RayCastOnSegmentQuery. More...
 
enum  RayCastQueryResult {
  RAYCAST_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, RAYCAST_NOT_PROCESSED = QUERY_NOT_PROCESSED, RAYCAST_DONE_START_OUTSIDE, RAYCAST_DONE_START_NAVTAG_FORBIDDEN,
  RAYCAST_DONE_CANNOT_MOVE, RAYCAST_DONE_COLLISION_FOUND_ARRIVAL_ERROR, RAYCAST_DONE_LACK_OF_WORKING_MEMORY, RAYCAST_DONE_QUERY_TOO_LONG,
  RAYCAST_DONE_UNKNOWN_ERROR, RAYCAST_DONE_ARRIVALPOS_FOUND_MAXDIST_REACHED, RAYCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION, RAYCAST_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION = RAYCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION
}
 Enumerates the possible results of a RayCastQuery. More...
 
enum  SegmentCanGoQueryResult {
  SEGMENTCANGO_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, SEGMENTCANGO_NOT_PROCESSED = QUERY_NOT_PROCESSED, SEGMENTCANGO_DONE_START_OUTSIDE, SEGMENTCANGO_DONE_START_NAVTAG_FORBIDDEN,
  SEGMENTCANGO_DONE_COLLISION_DETECTED, SEGMENTCANGO_DONE_ARRIVAL_WRONG_FLOOR, SEGMENTCANGO_DONE_LACK_OF_WORKING_MEMORY, SEGMENTCANGO_DONE_UNKNOWN_ERROR,
  SEGMENTCANGO_DONE_SUCCESS
}
 Enumerates the possible results of a SegmentCanGoQuery. More...
 
enum  SegmentCastQueryResult {
  SEGMENTCAST_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, SEGMENTCAST_NOT_PROCESSED = QUERY_NOT_PROCESSED, SEGMENTCAST_DONE_START_OUTSIDE, SEGMENTCAST_DONE_START_NAVTAG_FORBIDDEN,
  SEGMENTCAST_DONE_CANNOT_MOVE, SEGMENTCAST_DONE_COLLISION_FOUND_ARRIVAL_ERROR, SEGMENTCAST_DONE_LACK_OF_WORKING_MEMORY, SEGMENTCAST_DONE_UNKNOWN_ERROR,
  SEGMENTCAST_DONE_ARRIVALPOS_FOUND_MAXDIST_REACHED, SEGMENTCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION, SEGMENTCAST_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION = SEGMENTCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION
}
 Enumerates the possible results of a SegmentCastQuery. More...
 
enum  SpatializedPointCollectorInAABBQueryResult {
  SPATIALIZEDPOINTCOLLECTOR_NOT_INITIALIZED = QUERY_NOT_INITIALIZED, SPATIALIZEDPOINTCOLLECTOR_NOT_PROCESSED = QUERY_NOT_PROCESSED, SPATIALIZEDPOINTCOLLECTOR_DONE_START_OUTSIDE, SPATIALIZEDPOINTCOLLECTOR_DONE_LACK_OF_WORKING_MEMORY,
  SPATIALIZEDPOINTCOLLECTOR_DONE
}
 Enumerates the possible results of a SpatializedPointCollectorInAABBQuery. More...
 
enum  PathClamperFlag { , PathClamperFlag_ClampNavGraphVertices = 1, PathClamperFlag_ClampInputPositions = 2, PathClamperFlag_ClampAll = 0xFFFFFFFF }
 These flags determine if some specific positions must have their altitude clamped on NavMesh. More...
 
enum  PathFinderQueryTryCanGoMode { PATHFINDER_TRY_RAYCANGO_IF_NO_COST = 0, PATHFINDER_NEVER_TRY_RAYCANGO = 1, PATHFINDER_ALWAYS_TRY_RAYCANGO = 2 }
 This enums tells if a RayCanGoQuery should be performed from start position to destination position before launching a traversal. More...
 
enum  ComputeCostMode { QUERY_DO_NOT_COMPUTE_COST, QUERY_COMPUTE_COST_ALONG_3DAXIS }
 Enumerates the possible ways a RayCanGoQuery can compute the cost of following the ray. More...
 
enum  QueryType
 Enumerates all the type of query. More...
 
enum  PerformQueryStat { , QueryStat_Other }
 
enum  QueryProcessStatus
 Enumerates all the processing status a query can have. More...
 
enum  QueryStatusInQueue
 Enumerates the different states a query may have in a QueryQueue. More...
 
enum  CommonQueryResult { QUERY_NOT_INITIALIZED = 0, QUERY_NOT_PROCESSED = 1 }
 Enumerates the result codes that are common to all queries. More...
 
enum  SpatializedPointObjectType
 Enumerates the possible object types the SpatializedPoint refers to. More...
 
enum  DisplayListActivation { DisplayList_Disable, DisplayList_Enable }
 Indicates if the display list is active or not. More...
 
enum  DisplayListLifeSpan { , DisplayListLifeSpan_MultiFrame }
 Indicates if the displayList will be only visible when received, or will be remanent until replaced or removed. More...
 
enum  AsyncQueryDispatchId
 Typically there is one QueryQueue for each AsyncQueryDispatchId. More...
 
enum  TrajectoryMode
 Enum that defines the 2 possible Trajectory modes. More...
 
enum  TrajectoryFailureMode
 Enum that defines the 2 possible behaviors in case the Trajectory cannot follow the path e.g. More...
 
enum  BoxObstacleRotationMode { BoxObstacleRotation_Yaw = 0, BoxObstacleRotation_Free }
 Enumerates the possible controls for how a BoxObstacle should be internally represented. More...
 
enum  BoxObstacleUpAxis
 Enumerates the possible up-axis definition for a BoxObstacle. More...
 
enum  ProgressOnPathStatus { ProgressOnPathNotInitialized = 0, ProgressOnPathPending, ProgressOnPathInInvalidNavData }
 Enumerates the possible status values of Bot Position on path. More...
 
enum  TagVolumeExtendOptions { ExtendTagVolume_WithAltitudeTolerance_Above = 1, ExtendTagVolume_WithAltitudeTolerance_Below = 1 << 1, ExtendTagVolume_WithEntityHeight_Below = 1 << 2 }
 TagVolumeExtendOptions. More...
 
enum  VisualDebugLOD
 Enumerates the visual debug levels of details. More...
 
enum  WorldElementType
 Enumerates the WorldElement types. More...
 

Functions

bool IsValidGuidString (const char guidStr[])
 
StringSplitSpan StringSplitFirst (const char *ptr, const char *delimiters)
 returns {ptr, size, true} where ptr[size] == first delimiter found returns {ptr, size, false} where ptr[size] == null if no delimiter can be found More...
 
template<typename F >
size_t StringSplit (const char *ptr, const char *delimiters, const F &callable, StringSplitIgnoreEmpty ignoreEmpty=StringSplitIgnoreEmpty::Yes)
 Calls callable(const StringSpan& span) for each substring separated by one of the delimiters. More...
 
size_t StringPrintV (char *buffer, size_t buffer_size, const char *format, va_list vlist)
 Writes at most buffer_size chars, always put a null char, returns the number of chars written (not incl the null char) More...
 
template<typename T , KyUInt32 N>
KyUInt32 ArraySize (T(&)[N])
 Returns the size of a fixed-size array. More...
 
bool ShowInfoAboutLib ()
 Outputs the build mode, target platform, library name, version, and build date of this library. More...
 
const char * GetNavigationVersion ()
 Retrieves a string that contains the version number of this library. More...
 
KyUInt32 DistanceULP (KyFloat32 a, KyFloat32 b)
 Does not check nan. More...
 
bool AlmostEqual (KyFloat32 a, KyFloat32 b)
 Does not check nan. More...
 
bool AlmostEqual (KyFloat32 a, KyFloat32 b, KyUInt32 maxUlps)
 Does not check nan. More...
 
bool AlmostEqual_nan (KyFloat32 a, KyFloat32 b)
 Does check nan. More...
 
KyFloat32 Fsel (KyFloat32 a, KyFloat32 x, KyFloat32 y)
 x if a>=0.0f, y if a<0.0f More...
 
KyInt32 Isel (KyInt32 a, KyInt32 x, KyInt32 y)
 If a is greater than 0, returns x. More...
 
KyInt64 Lsel (KyInt64 a, KyInt64 x, KyInt64 y)
 If a is greater than 0, returns x. More...
 
KyInt64 Lsign (KyInt64 x)
 return -1 if x<0, 0 if x==0, 1 if x>0 More...
 
KyFloat32 RadFromDeg (KyFloat32 degrees)
 Converts degrees into radians. More...
 
KyFloat32 DegFromRad (KyFloat32 radians)
 Converts radians into degrees. More...
 
KyInt32 Side (const Vec2i &P, const Vec2i &A, const Vec2i &B)
 P relative to AB: left=1, on=0, right=-1. More...
 
bool ResetTrajectoryStatus_Failed (ResetTrajectoryStatus status)
 Note that ResetTrajectoryStatus_Pending is not considered as a failure here, since it succeeded so far, and could be a complete success. More...
 
bool ResetTrajectoryStatus_Succeeded (ResetTrajectoryStatus status)
 Note that ResetTrajectoryStatus_Pending is not considered as a success here, since it could failed in next frames. More...
 
bool ShouldTryCanGo (const PathFinderQueryTryCanGoMode &mode, bool traverse_logic_try_can_go)
 ShouldTryCanGo function should be called from functions templated with TraverseLogic the following way: ShouldTryCanGo(mode, typename TraverseLogic::CostMultiplierUsage()) More...
 

Variables

static const CardinalDir CardinalDir_EAST = 0
 X positive axis. More...
 
static const CardinalDir CardinalDir_NORTH = 1
 Y positive axis. More...
 
static const CardinalDir CardinalDir_WEST = 2
 X negative axis. More...
 
static const CardinalDir CardinalDir_SOUTH = 3
 Y negative axis. More...
 
static const CardinalDir CardinalDir_INVALID = 0xFFFFFFFF
 Invalid cardinal direction. More...
 
static const KyFloat32 KY_PI = 3.14159265f
 Stores the value of pi. More...
 
static const KyFloat32 KY_2_PI = 2.0f * KY_PI
 Stores the value of 2*pi. More...
 
static const KyFloat32 KY_PI_DIVIDED_BY_180 = KY_PI / 180.0f
 Stores the value of KY_PI divided by 180. More...
 
static const KyFloat32 KY_180_DIVIDED_BY_PI = 180.0f / KY_PI
 Stores the value of 180 divided by KY_PI. More...
 
static const NavGraphVertexLinkType NavGraphVertexLinkType_NoLink = 0
 Indicates that this vertex should not be connected to the NavMesh. More...
 
static const NavGraphVertexLinkType NavGraphVertexLinkType_LinkToNavMesh = 1
 Indicates that this vertex should be connected to the NavMesh. If the vertex is outside, we try to link it inside. More...
 
static const NavGraphVertexIdx NavGraphVertexIdx_Invalid = (NavGraphVertexIdx)CompactNavGraphVertexIdx_MAXVAL
 Represents an invalid NavGraphVertexIdx. More...
 
static const KyInt32 InvalidCoord = 0x7FFFFFFF
 Represents an invalidCoord object. More...
 
static const KyInt32 InvalidPixelCoord = 0x7FFFFFFF
 Represents an invalidPixelCoord object. More...
 
static const KyInt32 InvalidCellCoord = 0x7FFFFFFF
 Represents an invalidCellCoord object. More...
 
static const KyUInt32 PointOfInterestType_Undefined = 0
 The default value of PointOfInterest type. More...
 
static const KyUInt32 PointOfInterestType_FirstClient = 16
 The first customizable PointOfInterest type value. More...
 

inline implementation

template<class T >
void SwapEndianness (Endianness::Target e, BlobArray< T > &self)
 
template<class ArrayT , class BlobArrayT >
void InitArrayFromBlobArray_Assign (ArrayT &kyArray, const BlobArrayT &blobArray)
 
template<class ArrayT , class BlobArrayT >
void InitArrayFromBlobArray_InitFromBlob (ArrayT &kyArray, const BlobArrayT &blobArray)
 
template<class ArrayT , class BlobArrayT >
void InitArrayFromBlobArray_String (ArrayT &kyArray, const BlobArrayT &blobArray)
 
template<class T >
void SwapEndianness (Endianness::Target e, BlobRef< T > &self)
 

Channel array blob

void SwapEndianness (Endianness::Target e, ChannelArrayBlob &self)
 

KyArrayDefaultPolicy

typedef ArrayConstPolicy< 0, 4, true > KyArrayDefaultPolicy
 Default resize behavior for Autodesk Navigation array. More...
 

Global Functions

Vec2f operator* (KyFloat32 s, const Vec2f &v)
 scalar * vec operator More...
 
KyFloat32 DotProduct (const Vec2f &v1, const Vec2f &v2)
 
KyFloat32 CrossProduct (const Vec2f &v1, const Vec2f &v2)
 
KyFloat32 CrossProduct_z (const Vec2f &v1, const Vec2f &v2)
 alias for CrossProduct, useful in some template functions More...
 
Vec2f Seg (const Vec2f &A, const Vec2f &B)
 
Vec3f operator* (KyFloat32 s, const Vec3f &v)
 
KyFloat32 DotProduct (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 DotProduct2d (const Vec3f &v1, const Vec3f &v2)
 Returns DotProduct(v1.Get2d(), v1.Get2d()) More...
 
KyFloat32 CrossProduct_x (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 CrossProduct_y (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 CrossProduct_z (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 CrossProduct2d (const Vec3f &v1, const Vec3f &v2)
 
Vec3f CrossProduct (const Vec3f &v1, const Vec3f &v2)
 
Vec3f Seg (const Vec3f &A, const Vec3f &B)
 
Vec3f RightDir (const Vec3f &v)
 Returns the normalized horizontal vector on the right of v. If v is vertical, this return Vec3f::Zero() More...
 
KyFloat32 SquareDistance (const Vec3f &A, const Vec3f &B)
 
KyFloat32 SquareDistance2d (const Vec3f &A, const Vec3f &B)
 
KyFloat32 Distance (const Vec3f &A, const Vec3f &B)
 
KyFloat32 Distance2d (const Vec3f &A, const Vec3f &B)
 
Vec3f Dir (const Vec3f &A, const Vec3f &B)
 Returns the normalized direction AB. More...
 
Vec2f Dir2d (const Vec3f &A, const Vec3f &B)
 Returns the normalized direction AB in 2d. More...
 
bool IsEpsilonEqual (const Vec3f &A, const Vec3f &B)
 
bool IsEpsilonEqual2d (const Vec3f &A, const Vec3f &B)
 
bool IsEpsilonDifferent (const Vec3f &A, const Vec3f &B)
 
bool IsEpsilonDifferent2d (const Vec3f &A, const Vec3f &B)
 

Distance and Direction

KyFloat32 SquareDistance (const Vec2f &A, const Vec2f &B)
 Returns the square of the distance between A and B. More...
 
KyFloat32 Distance (const Vec2f &A, const Vec2f &B)
 Returns the distance between A and B. More...
 
Vec2f GetNormalized (const Vec2f &v)
 Returns normalized v, returns {0.0f, 0.0f} if v is zero. More...
 
Vec2f Dir (const Vec2f &A, const Vec2f &B)
 Returns the normalized direction AB, returns zero if A == B. More...
 
bool IsEpsilonZero (const Vec2f &v)
 
bool IsEpsilonEqual (const Vec2f &v1, const Vec2f &v2)
 
bool IsEpsilonDifferent (const Vec2f &A, const Vec2f &B)
 

Angles and Rotation

KyFloat32 GetPositiveAngleCCW (const Vec2f &v1, const Vec2f &v2)
 Returns the positive angle in [0,2PI[ of the CounterClockwise rotation from v1 to v2. More...
 
KyFloat32 GetPositiveAngleCW (const Vec2f &v1, const Vec2f &v2)
 Returns the positive angle in [0,2PI[ of the Clockwise rotation from v1 to v2. More...
 
KyFloat32 GetPositiveAngle (const Vec2f &v1, const Vec2f &v2, Winding::Enum winding)
 Returns the positive angle in [0,2PI[ of the CounterClockwise or Clockwise rotation from v1 to v2. In radians. More...
 
KyFloat32 GetSignedAngle (const Vec2f &v1, const Vec2f &v2, Winding::Enum winding)
 Returns the signed (>0 for CCW <0 for CW) angle in ]-2PI,2PI[ of the CounterClockwise or Clockwise rotation from v1 to v2. In radians. More...
 
void Rotate (Vec2f &v, KyFloat32 cosAngle, KyFloat32 sinAngle)
 Rotate v by the provided cosAngle, sinAngle. Positive angles rotate CCW. More...
 
Vec2f BisectorCCW (const Vec2f &dir1, const Vec2f &dir2)
 
Vec2f BisectorCCW (const Vec2f &A, const Vec2f &B, const Vec2f &C)
 
bool Dir2dLessCCW (const Vec2f &dir_ref, const Vec2f &dir_a, const Vec2f &dir_b)
 Returns true when the CCW angle (dir_ref, dir_a) is strictly less than CCW angle (dir_ref, dir_b). More...
 
bool Dir2dLessCW (const Vec2f &dir_ref, const Vec2f &dir_a, const Vec2f &dir_b)
 Returns true when the CW angle (dir_ref, dir_a) is strictly less than CCW angle (dir_ref, dir_b). More...
 

Global Functions Shorter Names

KyFloat32 Dot (const Vec2f &v1, const Vec2f &v2)
 
KyFloat32 Cross_z (const Vec2f &v1, const Vec2f &v2)
 
KyFloat32 Cross (const Vec2f &v1, const Vec2f &v2)
 
KyFloat32 SqDist (const Vec2f &A, const Vec2f &B)
 
KyFloat32 Dist (const Vec2f &A, const Vec2f &B)
 
KyFloat32 Dot (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 Dot2d (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 Cross_x (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 Cross_y (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 Cross_z (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 Cross2d (const Vec3f &v1, const Vec3f &v2)
 
Vec3f Cross (const Vec3f &v1, const Vec3f &v2)
 
KyFloat32 SqDist (const Vec3f &A, const Vec3f &B)
 
KyFloat32 SqDist2d (const Vec3f &A, const Vec3f &B)
 
KyFloat32 Dist (const Vec3f &A, const Vec3f &B)
 
KyFloat32 Dist2d (const Vec3f &A, const Vec3f &B)
 

DynamicNavHalfEdge

enum  DynamicNavHalfEdgeType
 

vertex Index in the Floor

typedef KyUInt16 CompactNavVertexIdx
 
typedef KyUInt32 NavVertexIdx
 An index that uniquely identifies a single vertex of a triangle within the set of vertices owned by a NavFloor. More...
 
static const CompactNavVertexIdx CompactNavVertexIdx_MAXVAL = 0x0FFF
 
static const NavVertexIdx NavVertexIdx_Invalid = (NavVertexIdx)CompactNavVertexIdx_MAXVAL
 Represents an invalid NavVertexIdx. More...
 
bool IsNavVertexIdxValid (const NavVertexIdx idx)
 

HalfEdge Index in the Floor

typedef KyUInt16 CompactNavHalfEdgeIdx
 
typedef KyUInt32 NavHalfEdgeIdx
 An index that uniquely identifies a single edge of a triangle within the set of edges owned by a NavFloor. More...
 
static const CompactNavHalfEdgeIdx CompactNavHalfEdgeIdx_MAXVAL = 0x3FFF
 
static const NavHalfEdgeIdx NavHalfEdgeIdx_Invalid = (NavHalfEdgeIdx)CompactNavHalfEdgeIdx_MAXVAL
 Represents an invalid NavHalfEdgeIdx. More...
 
bool IsNavHalfEdgeIdxValid (const NavHalfEdgeIdx idx)
 Indicates whether or not the specified NavHalfEdgeIdx is valid. More...
 

Triangle Index in the Floor

typedef KyUInt16 CompactNavTriangleIdx
 
typedef KyUInt32 NavTriangleIdx
 An index that uniquely identifies a single triangle within the set of triangles owned by a NavFloor. More...
 
typedef KyUInt16 CompactNavConnexIdx
 
typedef KyUInt32 NavConnexIdx
 An index that uniquely identifies a single triangle within the set of triangles owned by a NavFloor. More...
 
static const CompactNavTriangleIdx CompactNavTriangleIdx_MAXVAL = 0xFFFF
 
static const NavTriangleIdx NavTriangleIdx_Invalid = (NavTriangleIdx)CompactNavVertexIdx_MAXVAL
 Represents an invalid NavTriangleIdx. More...
 
static const CompactNavConnexIdx CompactNavConnexIdx_MAXVAL = 0xFFFF
 
static const NavConnexIdx NavConnexIdx_Invalid = (NavConnexIdx)CompactNavVertexIdx_MAXVAL
 Represents an invalid NavConnexIdx. More...
 
bool IsNavTriangleIdxValid (const NavTriangleIdx idx)
 Indicates whether or not the specified NavTriangleIdx is valid. More...
 

Floor Index in the Cell

typedef KyUInt32 NavFloorIdx
 An index that uniquely identifies a single NavFloor within the set of NavFloors owned by a NavCell. More...
 
static const NavFloorIdx NavFloorIdx_Invalid = 0xFFFFFFFF
 Represents an invalid NavFloorIdx. More...
 
bool IsNavFloorIdxValid (const NavFloorIdx idx)
 Indicates whether or not the specified NavFloorIdx is valid. More...
 

NavCellBlob Index in a NavMeshElement

typedef KyUInt32 NavCellIdx
 An index that uniquely identifies a single NavCell within the set of NavCells owned by a NavMesh. More...
 
static const NavCellIdx NavCellIdx_Invalid = 0xFFFFFFFF
 Represents an invalid NavCellIdx. More...
 
bool IsNavCellIdxValid (const NavCellIdx idx)
 Indicates whether or not the specified NavCellIdx is valid. More...
 

index of a Cell in the buffer of ActiveData

typedef KyUInt32 CellIdxInActiveData
 
static const CellIdxInActiveData CellIdxInActiveData_Invalid = 0x0FFFFFFF
 

Id of connected component

typedef KyUInt32 ConnectedComponentId
 
static const ConnectedComponentId ConnectedComponent_UNDEFINED = 0xFFFFFFFF
 
static const ConnectedComponentId ConnectedComponent_TRAVERSALOPEN = 0xFFFFFFFF - 1
 
template<int BitIdx>
void SetBitInMask (KyUInt8 &mask)
 
template<int BitIdx>
void UnSetBitInMask (KyUInt8 &mask)
 
template<int BitIdx>
bool IsBitSetInMask (KyUInt8 mask)
 
template<int BitIdx>
void SetBitInMask (KyUInt16 &mask)
 
template<int BitIdx>
void UnSetBitInMask (KyUInt16 &mask)
 
template<int BitIdx>
bool IsBitSetInMask (KyUInt16 mask)
 
template<int BitIdx>
void SetBitInMask (KyUInt32 &mask)
 
template<int BitIdx>
void UnSetBitInMask (KyUInt32 &mask)
 
template<int BitIdx>
bool IsBitSetInMask (KyUInt32 mask)
 

Typedef Documentation

Defines a type that refers to one of the cardinal points on the compass:

A type that represents a bounding box around cells in a 2D grid.

A type that represents the placement of a cell on one axis of a 2D grid.

A type that represents the position of a cell within a 2D grid.

typedef char Kaim::Char

char

A type that represents a bounding box in the integer 2D grid.

A type that represents a bounding box in the integer 2D grid.

A type that represents the position of a point within the 2D integer grid.

A type that represents the position of a point within the 2D integer grid.

A type that represents a bounding box around the Tiles of the Heigtfield.

A type that represents the position of a Tile within a 2D grid.

A type that represents a bounding box around the Vertices of the Heighfield.

A type that represents one of the vertices of a Tile within a 2D grid.

typedef ArrayConstPolicy<0, 4, true> Kaim::KyArrayDefaultPolicy

Default resize behavior for Autodesk Navigation array.

No minimal capacity, Granularity=4, Never Shrinking.

An index that uniquely identifies a single NavCell within the set of NavCells owned by a NavMesh.

An index that uniquely identifies a single triangle within the set of triangles owned by a NavFloor.

An index that uniquely identifies a single NavFloor within the set of NavFloors owned by a NavCell.

An index that uniquely identifies a single vertex within the set of vertices owned by a NavGraph.

Defines a type for a tag that determines whether or not a vertex in a NavGraph should be connected to the NavMesh.

An index that uniquely identifies a single edge of a triangle within the set of edges owned by a NavFloor.

An index that uniquely identifies a single triangle within the set of triangles owned by a NavFloor.

An index that uniquely identifies a single vertex of a triangle within the set of vertices owned by a NavFloor.

typedef std::int8_t Kaim::SByte

uint8_t

typedef std::int16_t Kaim::SInt16

int16_t

typedef std::int32_t Kaim::SInt32

int32_t

typedef std::int64_t Kaim::SInt64

int64_t

typedef std::int8_t Kaim::SInt8

int8_t

typedef std::uint8_t Kaim::UByte

uint8_t

typedef std::uint16_t Kaim::UInt16

uint16_t

typedef std::uint32_t Kaim::UInt32

uint32_t

typedef std::uint64_t Kaim::UInt64

uint64_t

typedef std::uint8_t Kaim::UInt8

uint8_t

Enumeration Type Documentation

Enumerates the possible results of an AStarQuery.

Enumerator
ASTAR_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

ASTAR_NOT_PROCESSED 

Indicates the query has not yet been launched.

ASTAR_PROCESSING_TRAVERSAL 

Indicates that the Astar traversal algorithm has been launched, but has not yet completed.

ASTAR_PROCESSING_TRAVERSAL_DONE 

Indicates that the Astar traversal algorithm is finished, and that a path is found and is prepared to be refined.

ASTAR_PROCESSING_ABSTRACT_PATH 

Indicates that the Astar traversal algorithm traversed AbstractGraph, and the Abstract path is being built.

ASTAR_PROCESSING_REFINING_INIT 

Indicates that the refining process is being initialized.

ASTAR_PROCESSING_REFINING_RESETCOST 

Indicates that the cost from nodes that are on navMesh are beeing recomputed since they may have been replaced on middle of edges.

ASTAR_PROCESSING_REFINING 

Indicates that the path found is being refined.

ASTAR_PROCESSING_PATHCLAMPING_INIT 

Indicates that the refiner is done, but the path has not yet been clamped to the navMesh.

ASTAR_PROCESSING_PATHCLAMPING 

Indicates that the refined path is being clamped to navMesh according to the altitude tolerance.

ASTAR_PROCESSING_PATHBUILDING 

Indicates that the clamping algorithm has completed, but the path has not yet been built.

ASTAR_PROCESSING_CHANNEL_INIT 

Unused. Kept here for backward compatibility.

ASTAR_PROCESSING_CHANNEL_COMPUTE 

Indicates that the channel is initialized, the channel is being computed.

ASTAR_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

ASTAR_DONE_START_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the starting point is forbidden.

ASTAR_DONE_END_OUTSIDE 

Indicates that the destination point of the query is outside the NavMesh.

ASTAR_DONE_END_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the destination point is forbidden.

ASTAR_DONE_PATH_NOT_FOUND 

Indicates that a path could not be found between the start and destination points.

ASTAR_DONE_NAVDATA_CHANGED 

Indicates that the query has stopped and must be relaunched because of a change in the NavData.

ASTAR_DONE_ERROR_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

ASTAR_DONE_COMPUTATION_ERROR 

Indicates that a computation error caused the query to stop.

ASTAR_DONE_CHANNELCONFIG_ERROR 

Indicates that the input channelComputerConfig is invalid.

ASTAR_DONE_CHANNELCOMPUTATION_ERROR 

Indicates that a computation error caused the query to stop.

ASTAR_DONE_COMPUTATION_CANCELED 

Indicates that the computation has been canceled.

ASTAR_DONE_DEST_IS_START_NO_PATH 

Indicates that query starting location and ending location are equals. computing a Path would have lead to a degenerated Path with only 1 node.

ASTAR_DONE_PATH_FOUND 

Indicates that a path has been found between the start and destination.

Typically there is one QueryQueue for each AsyncQueryDispatchId.

Enumerated the possible results of a call toIAvoidanceFilter::Filter.

Enumerator
AvoidanceFilter_Ignore 

Ignore the collider for Avoidance.

AvoidanceFilter_Avoid 

Take the collider into account for Avoidance.

Enumerates the possible results of a call to IAvoidanceComputer::Compute().

Enumerator
Avoidance_NoAvoidance 

The trajectory goes in target direction at the desired speed.

Avoidance_SlowDown 

The trajectory goes in target direction but at lower speed than the desired one.

Avoidance_Accelerate 

The trajectory goes in target direction but at higher speed than the desired one.

Avoidance_Turn 

The trajectory deviates from target direction.

Avoidance_Stop 

The avoidance computer decided that stopping the Bot is the best solution.

Avoidance_SolutionNotFound 

The avoidance computer was not able to find a collision-free solution.

Avoidance_ForcePassage 

Currently forcing the passage.

Avoidance_WaitForcePassage 

Waiting for force passage.

AvoidanceWorkspaceAddColliderResult.

Enumerates the possible results of an BestGraphVertexPathFinderQuery.

Enumerator
BESTGRAPHVERTEX_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

BESTGRAPHVERTEX_NOT_PROCESSED 

Indicates the query has not yet been launched.

BESTGRAPHVERTEX_PROCESSING_TRAVERSAL 

Indicates that the astar traversal algorithm has been launched, but has not yet completed.

BESTGRAPHVERTEX_PROCESSING_TRAVERSAL_DONE 

Indicates that the astar traversal algorithm is finished, and that the path found is ready to be refined.

BESTGRAPHVERTEX_PROCESSING_REFINING_INIT 

Indicates that the refining process is being initialized.

BESTGRAPHVERTEX_PROCESSING_REFINING 

Indicates that the path found is being refined.

BESTGRAPHVERTEX_PROCESSING_PATHCLAMPING_INIT 

Indicates that the refiner is done, but the path has not yet been clamped to the navMesh.

BESTGRAPHVERTEX_PROCESSING_PATHCLAMPING 

Indicates that the refined path is being clamped to navMesh according to the altitude tolerance.

BESTGRAPHVERTEX_PROCESSING_PATHBUILDING 

Indicates that the clamping algorithm has completed, but the path has not yet been built.

BESTGRAPHVERTEX_PROCESSING_CHANNEL_INIT 

Indicates that the refiner is done, the channel is going to be initialized.

BESTGRAPHVERTEX_PROCESSING_CHANNEL_COMPUTE 

Indicates that the channel is initialized, the channel is being computed.

BESTGRAPHVERTEX_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

BESTGRAPHVERTEX_DONE_START_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the starting point is forbidden.

BESTGRAPHVERTEX_DONE_PATH_NOT_FOUND 

Indicates that a path could not be found between the start and destination points.

BESTGRAPHVERTEX_DONE_NAVDATA_CHANGED 

Indicates that the query has stopped and must be relaunched because of a change in the NavData.

BESTGRAPHVERTEX_DONE_ERROR_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

BESTGRAPHVERTEX_DONE_COMPUTATION_ERROR 

Indicates that a computation error caused the query to stop.

BESTGRAPHVERTEX_DONE_CHANNELCONFIG_ERROR 

Indicates that the input channelComputerConfig is invalid.

BESTGRAPHVERTEX_DONE_CHANNELCOMPUTATION_ERROR 

Indicates that a computation error caused the query to stop.

BESTGRAPHVERTEX_DONE_COMPUTATION_CANCELED 

Indicates that the computation has been canceled.

BESTGRAPHVERTEX_DONE_PATH_FOUND 

Indicates that a path has been found between the start and destination.

Enumerates the possible controls for how a BoxObstacle should be internally represented.

Enumerator
BoxObstacleRotation_Yaw 

Used for obstacles that are moving mainly horizontally (such as cars, doors, etc.).

Autodesk Navigation adopts a more precise representation for such obstacles.

BoxObstacleRotation_Free 

Used for all obstacles which are freely rotating (for example, concrete blocs just after the explosion of a building).

Autodesk Navigation uses a raw global bounding cylinder to represent such obstacles.

Enumerates the possible up-axis definition for a BoxObstacle.

This determines the sampling of yaw-rotating BoxObstacles.

Defines the type of a bubble accordingly to the place it has in a BubbleArray, a BubbleList, etc.

ChannelArrayComputerResult.

Enumerator
ChannelArrayResult_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

ChannelArrayResult_NOT_PROCESSED 

Indicates the query has not yet been launched.

Defines whether the PathEvent is a check point or not.

A check point have to be validated to allow path followers to go behind.

Enumerator
CheckPointStatus_EventIsNotACheckPoint 

event is not a user checkpoint

CheckPointStatus_EventIsACheckPoint 

event is a user checkpoint with no direction specified

Enumerates the possible results of a CircleArcSplineComputationQuery.

Enumerator
CIRCLEARCSPLINECOMPUTATION_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

CIRCLEARCSPLINECOMPUTATION_NOT_PROCESSED 

Indicates that the query has not yet been launched.

CIRCLEARCSPLINECOMPUTATION_DONE_INVALIDINPUTS 

Inputs are invalid: startSection or endSection are invalid or not in the same Channel.

CIRCLEARCSPLINECOMPUTATION_DONE_COMPUTERINTERNALERROR 

The CircleArcSplineComputer failed due to an internal error (bubble array not created, string puller failed, turn list construction or optimization failed...).

CIRCLEARCSPLINECOMPUTATION_DONE_COMPUTATION_CANCELED 

Indicates that the computation has been canceled.

CIRCLEARCSPLINECOMPUTATION_DONE_SUCCESS 

Indicates that a spline has been successfully computed.

Enumerates the CircleArcSpline computation results.

Enumerator
CircleArcSplineComputation_NotComputed 

The spline has not yet been computed.

CircleArcSplineComputation_Success 

The spline has been successfully computed, without any warning.

CircleArcSplineComputation_Warning 

A spline has been found, but it does not respect all constraints (RadiusProfile, start constraint direction...). See WarningFlags for more precision.

CircleArcSplineComputation_Failed_InvalidInputs 

Inputs are invalid: startSection or endSection are invalid or not in the same Channel.

CircleArcSplineComputation_Failed_BubbleArrayBuildError 

BubbleArray could not be build from Channel and start constraints.

CircleArcSplineComputation_Failed_StringPullerError 

The string puller failed.

CircleArcSplineComputation_Failed_InvalidStringPulledBubbleList 

The string puller result is invalid (it returned an empty list).

CircleArcSplineComputation_Failed_TurnListConstructionError 

The string puller result could not be converted into turn list (an edge or circle arc quits the Channel).

CircleArcSplineComputation_Failed_TurnListRadiusAdjustmentError 

An error occurred while computing optimized turns.

CircleArcSplineComputation_Failed_CircleArcSplineBuildError 

Turn list could not be converted into CircleArcSpline (a turn is not correctly defined).

CircleArcSplineComputation_Failed_InvalidSpline 

The final spline does not respect the validity conditions.

Enumerates the spline computation warning flags.

Enumerator
CircleArcSplineComputation_Warning_ReleasedStartConstraint 

The start constraint has been released.

CircleArcSplineComputation_Warning_ReleasedEndConstraint 

The end constraint has been released.

CircleArcSplineComputation_Warning_RestrictedRadius 

The spline contains at least one turn with a radius that is not in the corresponding RadiusProfile.

CircleArcSplineComputation_Warning_SmallTurn 

At least one turn of the spline is smaller than the minimal arc length and has been replaced by segments.

CollisionRayCastResult.

Enumerator
RayHit 

RayHit.

RayDidNotHit 

RayDidNotHit.

Enumerates the result codes that are common to all queries.

Enumerator
QUERY_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

QUERY_NOT_PROCESSED 

Indicates that the query has not yet been launched.

Enumerates the possible ways a RayCanGoQuery can compute the cost of following the ray.

Enumerator
QUERY_DO_NOT_COMPUTE_COST 

The cost is not computed.

QUERY_COMPUTE_COST_ALONG_3DAXIS 

The cost is computed according to the CanTraverseAndGetCostMultiplier function of the traverseLogic.

These multipliers will be applied on distance between the consecutive NavTagSwitch intersections projected on the 3D axis going from startPos to DestPos.

Enumerates the possible axis orientations that can be assigned to m_clientAxisForNavigationX, m_clientAxisForNavigationX and m_clientAxisForNavigationX axes used within Autodesk Navigation.

Used in calls to CoordSystem::Init().

Enumerator
CLIENT_X 

Represents the positive direction of the client game engine X axis.

CLIENT_MINUS_X 

Represents the negative direction of the client game engine X axis.

CLIENT_Y 

Represents the positive direction of the client game engine Y axis.

CLIENT_MINUS_Y 

Represents the negative direction of the client game engine Y axis.

CLIENT_Z 

Represents the positive direction of the client game engine Z axis.

CLIENT_MINUS_Z 

Represents the negative direction of the client game engine Z axis.

Enumerator
DiagonalStripResult_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

DiagonalStripResult_NOT_PROCESSED 

Indicates the query has not yet been launched.

Enumerator
DiskCanGoInChannel_Success 

The start and end positions are both inside the Channel and all Gates in-between are correctly crossed.

DiskCanGoInChannel_InvalidChannel 

The Channel is not valid (it has less than 2 Gates and thus no section).

DiskCanGoInChannel_InvalidStartSectionIdx 

The start section index is not valid (it is greater than the channel section count).

DiskCanGoInChannel_PassedChannelEndGate 

The start position is inside the Channel and all Gates up to the Channel end one are correctly crossed.

DiskCanGoInChannel_PassedChannelStartGate 

The start position is inside the Channel and all Gates up to the Channel start one are correctly crossed.

DiskCanGoInChannel_StartIsOutside 

The start position is outside the start section.

DiskCanGoInChannel_CollisionDetected 

A collision is detected with Channel borders.

Enumerates the possible results of a DiskCanGoQuery.

Enumerator
DISKCANGO_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

DISKCANGO_NOT_PROCESSED 

Indicates the query has not yet been launched.

DISKCANGO_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

DISKCANGO_DONE_START_NAVTAG_FORBIDDEN 

Indicates that a NavMesh triangle has been found for the starting point, but its NavTag is not considered navigable.

DISKCANGO_DONE_COLLISION_DETECTED 

Indicates that a collision was detected along the straight line between the starting and ending points.

DISKCANGO_DONE_ARRIVAL_WRONG_FLOOR 

Indicates the query generated no results, which may indicate that the start and end points are on different floors.

DISKCANGO_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

DISKCANGO_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

DISKCANGO_DONE_SUCCESS 

Indicates that the disk can pass in a straight line-from start to end point-without a collision.

Enumerates the possible behaviors of a BaseDiskCanGoQuery when the the starting point lies inside the NavMesh but the radius collides with the border of the NavMesh.

Enumerator
DISKCANGO_DONT_ADAPT_TO_STARTPOS 

Indicates that the query will detect a collision when the the starting point lies inside the NavMesh but the radius collides with the NavMesh border.

DISKCANGO_ADAPT_TO_STARTPOS 

If the center of the disk lies near a boundary of the NavMesh, the query will try to avoid a collision by reducing the disk's radius (resulting in a non-symetric crossed-capsule intersection test instead of a capsule intersection test).

In this case, the actual extents of the disk used in the test are first computed by doing two raycast queries against the NavMesh at the starting position-in both directions orthogonally-in the direction of BaseDiskCanGoQuery::m_startPos3f to BaseDiskCanGoQuery::m_destPos3f. Each raycast has a length equal to BaseDiskCanGoQuery::m_radius. Positions of the raycast collisions are moved back very slightly from the NavMesh boundary, and the resulting positions are used as the extent of the disk. This results in a disk that is smaller than the one set in BaseDiskCanGoQuery::m_radius, but whose extents are guaranteed to be fully inside the NavMesh at its starting point. Because the actual disk used in the query may be smaller than you expect, the test may miss borders that only intrude partially into the path of the expected disk.

Enumerates the possible results of a DiskCastQuery.

Enumerator
DISKCAST_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

DISKCAST_NOT_PROCESSED 

Indicates that the query has not yet been launched.

DISKCAST_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

DISKCAST_DONE_START_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the starting point was forbidden.

DISKCAST_DONE_CANNOT_MOVE 

Indicates that either the disk does not fit in the NavMesh at its start position, or the arrival position is behind the starting point (because of m_safetyDist).

DISKCAST_DONE_COLLISION_FOUND_ARRIVAL_ERROR 

Indicates that moving back the collision point resulted in an arrival position that is outside of the NavMesh.

DISKCAST_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

DISKCAST_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

DISKCAST_DONE_ARRIVALPOS_FOUND_MAXDIST_REACHED 

Indicates that the disk was able to travel its maximum distance without collision.

DISKCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION 

Indicates that the disk collided before maximum distance and that a final arrival position was calculated successfully.

DISKCAST_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION 

weird name kept for backward compatibility

Enumerates the possible behavior of a BaseDiskCastQuery when the the starting point lies inside the NavMesh but the radius collides with the border of the NavMesh.

Enumerator
DISKCAST_DONT_ADAPT_TO_STARTPOS 

Indicates that the query will detect a collision when the the starting point lies inside the NavMesh but the radius collides with the NavMesh border.

DISKCAST_ADAPT_TO_STARTPOS 

If the center of the disk lies near a boundary of the NavMesh, the query will try to avoid a collision by reducing the disk's radius (resulting in a non-symmetric crossed-capsule intersection test instead of a capsule intersection test).

In this case, the actual extents of the disk used in the test are first computed by doing two ray cast queries against the NavMesh at the starting position-in both directions orthogonally-to BaseDiskCastQuery::m_normalizedDir2d. Each raycast has a length equal to BaseDiskCastQuery::m_radius. Positions of the raycast collisions are moved back very slightly from the NavMesh boundary, and the resulting positions are used as the extent of the disk. This results in a disk that is smaller than the one set in BaseDiskCastQuery::m_radius, but whose extents are guaranteed to be fully inside the NavMesh at its starting point. Because the actual disk used in the query may be smaller than you expect, the test may miss borders that only intrude partially into the path of the expected disk.

Enumerates the possible results of a DiskCollisionQuery.

Enumerator
DISKCOLLISION_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

DISKCOLLISION_NOT_PROCESSED 

Indicates that the query has not yet been launched.

DISKCOLLISION_DONE_CENTER_OUTSIDE 

Indicates that the center point lies outside the navigable area of the NavMesh.

DISKCOLLISION_DONE_CENTER_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the center point was forbidden.

DISKCOLLISION_DONE_DISK_DOES_NOT_FIT 

Indicates that the center point lies inside the NavMesh, but that the radius collides with a border or crosses a forbidden terrain.

DISKCOLLISION_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

DISKCOLLISION_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

DISKCOLLISION_DONE_DISK_FIT 

Indicates that the disk fits inside the navigable area of the NavMesh.

Enumerates the possible results of a DiskExpansionQuery.

Enumerator
DISKEXPANSION_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

DISKEXPANSION_NOT_PROCESSED 

Indicates the query has not yet been launched.

DISKEXPANSION_DONE_CENTER_OUTSIDE 

Indicates that the center point lies outside the navigable area of the NavMesh.

DISKEXPANSION_DONE_CENTER_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the center point is forbidden.

DISKEXPANSION_DONE_CANNOT_EXPAND 

Indicates that the center point lies within the NavMesh, but the disk cannot be expanded.

DISKEXPANSION_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

DISKEXPANSION_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

DISKEXPANSION_DONE_DISK_FIT 

Indicates that the disk fits inside the navigable areas of the NavMesh even at maximum size.

DISKEXPANSION_DONE_COLLISION_FOUND 

Indicates a collision was detected when expanding the disk before the maximum size of the disk was reached.

Indicates if the display list is active or not.

If DisplayList_Disable is used the DisplayList won't be sent to the NavigationLab, this is useful when you want to dynamically switch on/off the use of the DisplayList.

Enumerator
DisplayList_Disable 

Calls on the DisplayList will do nothing.

DisplayList_Enable 

The display list is activated.

Indicates if the displayList will be only visible when received, or will be remanent until replaced or removed.

Enumerator
DisplayListLifeSpan_MultiFrame 

displayed one frame

displayed until replaced, removed, or associated world element is destroyed

Enumerates the possible results of a DynamicNavMeshQuery.

Enumerator
DYNNAVMESH_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

DYNNAVMESH_NOT_PROCESSED 

Indicates the query has not yet been launched.

DYNNAVMESH_NAVFLOOR_INVALID 

Indicates that the navfloor currently being processed is no longer valid.

DYNNAVMESH_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

DYNNAVMESH_INTERSECTION_COMPUTATION_ERROR 

Indicates an error occurred while computing the intersections.

DYNNAVMESH_SWEEPLINE_COMPUTATION_ERROR 

Indicates an error occurred while culling edges.

DYNNAVMESH_POLYGON_COMPUTATION_ERROR 

Indicates an error occurred while building polygons from culled edges.

DYNNAVMESH_TRIANGULATION_COMPUTATION_ERROR 

Indicates an error occurred while triangulating the newly obtained polygons.

DYNNAVMESH_ALTITUDE_COMPUTATION_ERROR 

Indicates an error occurred while computing the altitude of the dynamic navmesh.

DYNNAVMESH_NAVFLOOR_INDICES_OUT_OF_BOUNDS 

Indicates that.

DYNNAVMESH_UNKNOWN_ERROR 

Indicates an unknown error occurred during the query processing.

DYNNAVMESH_DONE_SUCCESS 

Indicates the query was successfully processed.

Enumerates possible ways of storing collected data by a query in a QueryDynamicOutput object.

Enumerator
QUERY_SAVE_NOTHING 

do not store anything

QUERY_SAVE_FLOORS 

store NavFloorPtr array

QUERY_SAVE_TRIANGLES 

store NavFloorTrianglePtr array

QUERY_SAVE_NAVTAGSUBSEGMENTS 

store NavTagSubSegment array

QUERY_SAVE_HALFEDGEINTERSECTIONS 

store triangle edges intersections as Vec3f array

QUERY_SAVE_COSTMULTIPLIERSUBSEGMENTS 

store CostMultiplierSubSegment array

QUERY_SAVE_SPATIALIZEDPOINTS 

store SpatializedPoint array

QUERY_SAVE_TAGVOLUMES 

store TagVolume array

QUERY_SAVE_TRIANGLES_AND_SUBSEGMENTS 

store NavFloorTrianglePtr and NavTagSubSegment arrays

Enumerates the possible modes for opening a file with a class that derives from FileOpenerBase.

Enumerator
OpenMode_Read 

Opens the file for reading only.

OpenMode_Write 

Opens the file for writing.

Enumerates the possible results of a FindFirstVisiblePositionOnPathQuery.

Enumerator
FINDFIRSTVISIBLEPOSITIONONPATH_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

FINDFIRSTVISIBLEPOSITIONONPATH_NOT_PROCESSED 

Indicates the query has not yet been launched.

FINDFIRSTVISIBLEPOSITIONONPATH_DONE_VISIBILITYSTARTPOINT_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the visibilityStartPoint.

FINDFIRSTVISIBLEPOSITIONONPATH_DONE_VISIBILITYSTARTPOINT_NAVTAG_FORBIDDEN 

Indicates that a NavMesh triangle has been found for visibilityStartPoint, but its NavTag is not considered navigable.

FINDFIRSTVISIBLEPOSITIONONPATH_DONE_NO_VISIBLE_POSITION_FOUND 

Indicates that none of the PositionOnPath locations sampled between startPositionOnPath and endPositionOnPath are visible from the visibilityStartPoint.

FINDFIRSTVISIBLEPOSITIONONPATH_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient memory was available to store crossed triangles or sub-sections, and the query failed as a result.

FINDFIRSTVISIBLEPOSITIONONPATH_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

FINDFIRSTVISIBLEPOSITIONONPATH_DONE_SUCCESS 

Indicates that the query can pass in a straight line from start to end point without a collision.

GameKitCrowdDispersionLogicAction.

Enumerator
GameKitCrowdDispersionLogic_NoAction 

No action has to be taken.

GameKitCrowdDispersionLogic_RecomputePath 

A path must be recomputed in order to find an alternative.

GameKitCrowdDispersionLogic_CancelOutRecomputedPath 

If a path is being computed due to GameKitCrowdDispersionLogic_RecomputePath, it should be cancelled out. no action otherwise.

Enumerator
GateArrayComputerResult_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

GateArrayComputerResult_NOT_PROCESSED 

Indicates the query has not yet been launched.

Enumerates the different kind of Gates.

Enumerator
UndefinedGateType 

Indicates the Gate is not defined.

StartGate 

Indicates the Gate is a Channel start Gate.

EndGate 

Indicates the Gate is a Channel end Gate.

SmallLeftTurn 

Indicates the Gate is a small turn to the left (CCW).

LeftTurnStart 

Indicates the Gate is the start of a sampled turn to the left (CCW). The next Gate must have either LeftTurnIntermediary or LeftTurnEnd type value.

LeftTurnIntermediary 

Indicates the Gate is a sampled left turn intermediary Gate.

LeftTurnEnd 

Indicates the Gate is a left turn end.

SmallRightTurn 

Indicates the Gate is a small turn to the right (clockwise).

RightTurnStart 

Indicates the Gate is the start of a sampled turn to the right (CW). The next Gate must have either RightTurnIntermediary or RightTurnEnd type value.

RightTurnIntermediary 

Indicates the Gate is a sampled right turn intermediary Gate.

RightTurnEnd 

Indicates the Gate is a right turn end.

WidthAdjustment 

Indicates the Gate is a Channel width adjustment Gate. There is no direction modification there.

ClampingAdjustment 

Indicates the Gate is a Channel altitude clamping adjustment Gate. There is no direction modification there.

Enumerates the possible results of an InsidePosFromOutsidePosQuery.

Enumerator
INSIDEPOSFROMOUTSIDE_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

INSIDEPOSFROMOUTSIDE_NOT_PROCESSED 

Indicates the query has not yet been launched.

INSIDEPOSFROMOUTSIDE_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

INSIDEPOSFROMOUTSIDE_DONE_POS_NOT_FOUND 

Indicates that a valid position was not found within the query's bounding box.

INSIDEPOSFROMOUTSIDE_DONE_POS_FOUND 

Indicates that the query was completed successfully, and a valid position on the NavMesh was found within the query's bounding box.

Defines the relative position of a direction, given a rotation direction and bounding directions.

Enumerates the possible results of a MakeNavFloorStitchQuery.

Enumerator
RUNTIMESTITCH_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

RUNTIMESTITCH_NOT_PROCESSED 

Indicates the query has not yet been launched.

RUNTIMESTITCH_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

RUNTIMESTITCH_UNKNOWN_ERROR 

Indicates an unknown error occurred during the query processing.

RUNTIMESTITCH_DONE_SUCCESS 

Indicates the query was successfully processed.

Enumerator
ManualControlStatus_NotInitialized 

not initialized

ManualControlStatus_PositionInvalid 

binded to a bot, but PositionPath is invalid

ManualControlStatus_EventInvalid 

PositionOnPath is valid, but event information in PositionOnLivePath are not valid.

ManualControlStatus_Pending 

PositionOnLivePath needs validation, PositionOnPath and event information can change!

ManualControlStatus_Valid 

PositionOnLivePath is valid.

Enumerates the possible results of a MoveOnNavMeshQuery.

Enumerator
MOVEONNAVMESH_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

MOVEONNAVMESH_NOT_PROCESSED 

Indicates that the query has not yet been launched.

MOVEONNAVMESH_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

MOVEONNAVMESH_DONE_START_NAVTAG_FORBIDDEN 

Indicates that a NavMesh triangle has been found for the starting point, but its NavTag is not considered navigable.

MOVEONNAVMESH_DONE_START_LINKONEDGE_ERROR 

Indicates that the start position is near an edge but should not be linked to it.

This is usualy due to too high values for DistanceToBoundary.

MOVEONNAVMESH_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient memory was available to store crossed triangles or sub-sections, and the query failed as a result.

MOVEONNAVMESH_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

MOVEONNAVMESH_DONE_ARRIVALPOS_FOUND_NO_COLLISION 

Indicates an arrival point was successfully calculated without a collision with the NavMesh border.

MOVEONNAVMESH_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION 

Indicates a collision point was found, and a final arrival position was successfully calculated.

MOVEONNAVMESH_DONE_INTERMEDIARYPOS_FOUND 

Indicates a collision point was found, an intermediary position has be found but progression has been blocked at this point.

Usually only one of MultiDestinationPathFinderFinalOutput values is useful, but for debug purpose, it is possible to pass several of them.

Enumerator
MULTIDESTINATIONPATHFINDER_BUILD_LOWEST_COST_PATH_ONLY 

Build m_path or m_abstractPath to the destination with the lowest cost.

MULTIDESTINATIONPATHFINDER_COMPUTE_RAW_COSTS 

Fulfill m_rawCosts.

MULTIDESTINATIONPATHFINDER_BUILD_RAW_PATHS 

For Debug Only, fulfill m_rawPaths, no refining, no clamping, no channel making paths unsuitable for PathFollowing, but it gives an idea of what m_rawCosts correspond to.

MULTIDESTINATIONPATHFINDER_BUILD_PATHS 

Fulfill m_paths with refined, clamped paths with channels and m_abstractPaths for paths going through AbstractGraphs. Slowest version of the query.

Enumerates the possible results of an AStarQuery.

Enumerator
MULTIDESTINATIONPATHFINDER_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

MULTIDESTINATIONPATHFINDER_NOT_PROCESSED 

Indicates the query has not yet been launched.

MULTIDESTINATIONPATHFINDER_PROCESSING_TRAVERSAL 

Indicates that the astar traversal algorithm has been launched, but has not yet completed.

MULTIDESTINATIONPATHFINDER_PROCESSING_TRAVERSAL_DONE 

Indicates that the astar traversal algorithm is finished, and that the path found is ready to be refined.

MULTIDESTINATIONPATHFINDER_PROCESSING_CANGOQUERY 

Indicates that initial CanGoQuery reached a dest from start, and the path from this dest is being computed from the CanGoQuery.

MULTIDESTINATIONPATHFINDER_PROCESSING_NEXT_DESTINATION 

Indicates that initial CanGoQuery did not reach a dest from start, so a path must be built from the traversal.

MULTIDESTINATIONPATHFINDER_PROCESSING_ABSTRACT_PATH 

Indicates that the astar traversal algorithm traversed AbstractGraph, and an Abstract path is being built for one destination.

MULTIDESTINATIONPATHFINDER_PROCESSING_REFINING_INIT 

Indicates that the refining process is being initialized for one destination.

MULTIDESTINATIONPATHFINDER_PROCESSING_REFINING_RESETCOST 

Indicates that the cost from nodes that are on navMesh are beeing recomputed since they may have been replaced on middle of edges.

MULTIDESTINATIONPATHFINDER_PROCESSING_REFINING 

Indicates that the path found is being refined for one destination.

MULTIDESTINATIONPATHFINDER_PROCESSING_PATHCLAMPING_INIT 

Indicates that the refiner is done, but the path has not yet been clamped to the navMesh.

MULTIDESTINATIONPATHFINDER_PROCESSING_PATHCLAMPING 

Indicates that the refined path of one destination is being clamped to navMesh according to the altitude tolerance.

MULTIDESTINATIONPATHFINDER_PROCESSING_PATHBUILDING 

Indicates that the clamping algorithm has completed, but the path has not yet been built.

MULTIDESTINATIONPATHFINDER_PROCESSING_CHANNEL_INIT 

Indicates that the refiner is done, the channel is going to be initialized for one destination.

MULTIDESTINATIONPATHFINDER_PROCESSING_CHANNEL_COMPUTE 

Indicates that the channel is initialized, the channel is being computed for one destination.

MULTIDESTINATIONPATHFINDER_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

MULTIDESTINATIONPATHFINDER_DONE_START_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the starting point is forbidden.

MULTIDESTINATIONPATHFINDER_DONE_ENDS_ARE_UNREACHABLE 

Indicates that all destination points are either outside or in forbidden navtag.

MULTIDESTINATIONPATHFINDER_DONE_DESTS_ARE_START_NO_PATH 

Indicates that all destinations are equals to starting location, computing a Path would have lead to a degenerated Path with only 1 node.

MULTIDESTINATIONPATHFINDER_DONE_NO_PATH_FOUND 

Indicates that no path was found for any destinations.

MULTIDESTINATIONPATHFINDER_DONE_NAVDATA_CHANGED 

Indicates that the query has stopped and must be relaunched because of a change in the NavData.

MULTIDESTINATIONPATHFINDER_DONE_ERROR_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

MULTIDESTINATIONPATHFINDER_DONE_COMPUTATION_ERROR 

Indicates that a computation error caused the query to stop.

MULTIDESTINATIONPATHFINDER_DONE_CHANNELCONFIG_ERROR 

Indicates that the input channelComputerConfig is invalid.

MULTIDESTINATIONPATHFINDER_DONE_CHANNELCOMPUTATION_ERROR 

Indicates that a computation error caused the query to stop.

MULTIDESTINATIONPATHFINDER_DONE_COMPUTATION_CANCELED 

Indicates that the computation has been canceled.

MULTIDESTINATIONPATHFINDER_DONE_SOME_PATHS_FOUND 

Indicates some or all destinations have a path or an abstract path.

MULTIDESTINATIONPATHFINDER_TOPROCESS_FROM_CANGOQUERY 

CAnGoQuery validated the reachability, Path will be built from the query.

MULTIDESTINATIONPATHFINDER_PROCESSING 

Indicates that the destination point is currently processed (from MULTIDESTINATIONPATHFINDER_PROCESSING_ABSTRACT_PATH to MULTIDESTINATIONPATHFINDER_PROCESSING_CHANNEL_COMPUTE).

MULTIDESTINATIONPATHFINDER_DONE_END_OUTSIDE 

Indicates that the destination point is outside the NavMesh.

MULTIDESTINATIONPATHFINDER_DONE_END_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the destination point is forbidden.

MULTIDESTINATIONPATHFINDER_DONE_PATH_NOT_FOUND 

Indicates that a path could not be found between the start and destination point.

MULTIDESTINATIONPATHFINDER_DONE_DEST_IS_START_NO_PATH 

Indicates that query starting location and ending location are equals, computing a Path would have lead to a degenerated Path with only 1 node.

MULTIDESTINATIONPATHFINDER_DONE_PATH_FOUND 

Indicates that a path has been found between the start and destination.

Enumerates the possible results of a MultipleFloorTrianglesFromPosQuery.

Enumerator
MULTIPLEFLOORTRIANGLESFROMPOS_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

MULTIPLEFLOORTRIANGLESFROMPOS_NOT_PROCESSED 

Indicates the query has not yet been launched.

MULTIPLEFLOORTRIANGLESFROMPOS_DONE_NO_TRIANGLE_FOUND 

Indicates that the point provided is outside the navigable boundaries of the NavMesh.

MULTIPLEFLOORTRIANGLESFROMPOS_DONE_MAX_MEMORY_REACHED 

Indicates the query was completed successfully, but not all the triangles found have been stored because insufficient memory is available.

MULTIPLEFLOORTRIANGLESFROMPOS_DONE_TRIANGLES_FOUND 

Indicates the query was completed successfully, as at least one triangle was found.

Enumerates the possible ways that a MultipleFloorTrianglesFromPosQuery chooses which triangles to retrieve.

Enumerator
MULTIPLEFLOORTRIANGLESFROMPOS_FIND_ALL 

Retrieves all triangles at the same (x,y) coordinates as the point provided, regardless of whether they lie above or below the point.

MULTIPLEFLOORTRIANGLESFROMPOS_FIND_ALL_BELOW 

Retrieves all triangles that lie below the point provided.

MULTIPLEFLOORTRIANGLESFROMPOS_FIND_ALL_ABOVE 

Retrieves all triangles that lie above the point provided.

MULTIPLEFLOORTRIANGLESFROMPOS_FIND_NEAREST_ABOVE_AND_BELOW 

Retrieves the first triangle that lies above the point provided, and the first triangle that lies below the point provided.

Enumerates the possible types of obstacles that can be represented by a NavHalfEdge whose type is EDGETYPE_OBSTACLE.

Enumerator
EDGEOBSTACLETYPE_WALL 

Indicates that the obstacle represents a wall.

EDGEOBSTACLETYPE_HOLE 

Indicates that the obstacle represents a hole or a cliff.

Enumerates the possible types of boundary that can be represented by a NavHalfEdge.

Enumerator
EDGETYPE_CELLBOUNDARY_EAST 

Indicates that this NavHalfEdge lies on the border of its NavFloor and its NavCell.

EDGETYPE_CELLBOUNDARY_NORTH 

Indicates that this NavHalfEdge lies on the border of its NavFloor and its NavCell.

EDGETYPE_CELLBOUNDARY_WEST 

Indicates that this NavHalfEdge lies on the border of its NavFloor and its NavCell.

EDGETYPE_CELLBOUNDARY_SOUTH 

Indicates that this NavHalfEdge lies on the border of its NavFloor and its NavCell.

EDGETYPE_FLOORBOUNDARY 

Indicates that this NavHalfEdge lies on the border of its NavFloor.

EDGETYPE_OBSTACLE 

Indicates that this NavHalfEdge lies on an external border of the NavMesh.

EDGETYPE_CONNEXBOUNDARY 

Indicates that another NavHalfEdge in the same NavFloor but in different Connex lies adjacent to the NavHalfEdge.

EDGETYPE_PAIRED 

Indicates that another NavHalfEdge in the same Connex lies adjacent to the NavHalfEdge.

Enumerates the different possible settings for GeneratorAdvancedParameters::m_navRasterDistanceMapMetric.

Enumerator
DISTANCE_MAP_MANHATTAN_METRIC 

Indicates the Manhattan metric, which is faster and more accurate.

This metric tends to create bevels in the NavMesh border near corners,which produces more triangles.

DISTANCE_MAP_CHESSBOARD_METRIC 

Indicates the Chessboard metric, which is slightly slower and can place the NavMesh border a little farther from the geometry.

This metric tends to creates a cleaner NavMesh with fewer triangles.

Enumerates the possible results of a NearestBorderHalfEdgeFromPosQuery.

Enumerator
NEARESTHALFEDGE_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

NEARESTHALFEDGE_NOT_PROCESSED 

Indicates the query has not yet been launched.

NEARESTHALFEDGE_HALFEDGE_NOT_FOUND 

Indicates that a NavMesh border was not found within the query's bounding box.

NEARESTHALFEDGE_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

NEARESTHALFEDGE_HALFEDGE_FOUND 

Indicates that the query was completed successfully, and a NavMesh border was found.

Enumerates the admissible values for PositionOnLivePath status accordingly to its position relatively to PathEvents.

Enumerator
OnEventListStatus_Undefined 

The PositionOnLivePath relative position in PathEventList is not yet defined.

OnEventListStatus_OnEvent 

The PositionOnLivePath is on a PathEvent.

OnEventListStatus_OnInterval 

The PositionOnLivePath is strictly on a PathEventInterval.

These flags determine if some specific positions must have their altitude clamped on NavMesh.

Enumerator
PathClamperFlag_ClampNavGraphVertices 

Clamp nothing.

PathClamperFlag_ClampInputPositions 

Clamp all NavGraphVertices linked to NavMesh will be clamped.

PathClamperFlag_ClampAll 

Clamp start and destination positions of PathFinderQueries.

enum PathEdgeType
related

Defines the different kind of PathEdge within a Path.

Defines the PathEvent status relative to its place in the PathEventList.

Enumerator
PathEventStatus_Undefined 

PathEvent is not yet defined.

PathEventStatus_WithinBounds 

PathEvent neither lower bound nor upper bound.

PathEventStatus_LowerBound 

PathEvent is the PathValidityInterval lower bound.

PathEventStatus_UpperBound 

PathEvent is the PathValidityInterval upper bound.

PathEventStatus_TemporaryUpperBound 

PathEvent is the PathValidityInterval temporary upper bound.

Defines the different kinds of PathEvent.

Enumerator
PathEventType_Undefined 

The PathEvent is not yet defined.

PathEventType_NavGraphVertex 

The PathEvent is on a NavGraph vertex.

PathEventType_NavTagSwitch 

The PathEvent is at a transition between different NavTags.

PathEventType_OutsideToNavMeshSwitch 

The PathEvent is at a transition between the NavMesh and a PathEdge going from outside to the NavMesh.

PathEventType_NavMeshToOutsideSwitch 

The PathEvent is at a transition between the NavMesh and a PathEdge going from the NavMesh to outside .

PathEventType_OutsideNavDataPathNode 

The PathEvent is outside the NavMesh.

PathEventType_OnNavMeshPathNode 

PathValidityInterval bound specific: bound reached start or end of the path or the max distance of validation, the bound is on the NavMesh.

PathEventType_OnNavMeshAfterCollision 

PathValidityInterval bound specific: bound hit a border or a non-traversable navTag boundary during validation (it also include one-way navTag transition).

This enum tells if the PathFinderQuery should compute Channels around path sections laying on the NavMesh.

By default it is disabled (PATHFINDER_DO_NOT_COMPUTE_CHANNELS)

This enums tells if a RayCanGoQuery should be performed from start position to destination position before launching a traversal.

This can be used to speed up pathfinding when supported by the query, at the price of correctness since a cheaper less direct path could exist if all NavTag costs are not equal: if enabled and the RayCanGoQuery success, no traversal are performed at all, ignoring all the NavGraphs even if using one of them would have resulted in a shorter Path. The RayCanGoQuery is not tried if a NavGraphEdgePtr or NavGrapVertexRawPtr is passed as start/dest NavData location By default, PATHFINDER_TRY_RAYCANGO_IF_NO_COST is used, so RayCanGoQuery is done only if the TraverseLogic does NOT support cost multipliers (i.e. inherits from SimpleTraverseLogic)

Enumerator
PATHFINDER_TRY_RAYCANGO_IF_NO_COST 

Try RayCanGoQuery if TraverseLogic does not supports cost multipliers (cf. SimpleTraverseLogic). Default behavior.

PATHFINDER_NEVER_TRY_RAYCANGO 

Never try RayCanGoQuery particularly adapted if user knows there are high altitude differences which would influence costs independently from TraverseLogic.

PATHFINDER_ALWAYS_TRY_RAYCANGO 

Always try RayCanGoQuery, speeds up the PathFinder when a CanGo from Start to Dest succeeds.

Enumerates the possible results of an PathFromPolylineQuery.

Enumerator
PATHFROMPOLYLINE_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

PATHFROMPOLYLINE_NOT_PROCESSED 

Indicates the query has not yet been launched.

PATHFROMPOLYLINE_PROCESSING_PATHCLAMPING_INIT 

Indicates that the clamper is beeing initialized.

PATHFROMPOLYLINE_PROCESSING_PATHCLAMPING 

Indicates that the path is being clamped to navMesh according to the altitude tolerance.

PATHFROMPOLYLINE_PROCESSING_PATHBUILDING 

Indicates that the clamping algorithm has completed, but the path has not yet been built.

PATHFROMPOLYLINE_PROCESSING_CHANNEL_INIT 

Unused. Kept here for backward compatibility.

PATHFROMPOLYLINE_PROCESSING_CHANNEL_COMPUTE 

Indicates that the channel is initialized, the channel is being computed.

PATHFROMPOLYLINE_DONE_DATABASE_EMPTY 

Indicates that the provided database is empty (no NavData !)

PATHFROMPOLYLINE_DONE_END_OUTSIDE 

Indicates that the last point of the polyline is outside the NavMesh.

PATHFROMPOLYLINE_DONE_POLYLINE_INVALID 

Indicates that one of the rayCast along polyline edge failed.

PATHFROMPOLYLINE_DONE_PATH_NOT_FOUND 

Indicates that a path could not be found between the start and destination points.

PATHFROMPOLYLINE_DONE_NAVDATA_CHANGED 

Indicates that the query has stopped and must be relaunched because of a change in the NavData.

PATHFROMPOLYLINE_DONE_ERROR_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

PATHFROMPOLYLINE_DONE_COMPUTATION_ERROR 

Indicates that a computation error caused the query to stop.

PATHFROMPOLYLINE_DONE_CHANNELCONFIG_ERROR 

Indicates that the input channelComputerConfig is invalid.

PATHFROMPOLYLINE_DONE_CHANNELCOMPUTATION_ERROR 

Indicates that a computation error caused the query to stop.

PATHFROMPOLYLINE_DONE_COMPUTATION_CANCELED 

Indicates that the computation has been canceled.

PATHFROMPOLYLINE_DONE_ERROR_POLYLINE_EMPTY 

Indicates that the input polyline in empty.

PATHFROMPOLYLINE_DONE_DEST_IS_START_NO_PATH 

Indicates that query starting location and ending location are equals. computing a Path would have lead to a degenerated Path with only 1 node.

PATHFROMPOLYLINE_DONE_PATH_FOUND 

Indicates that a path has been found between the start and destination.

Enumerates the possible source for a new Path.

Enumerator
PathSource_NoPath 

The Path has not been set yet or has been Cleared.

PathSource_BotComputed 

The Path has been computed by a IPathFinderQuery.

PathSource_UserInjected 

The Path has been injected by the user.

Enumerate the different validity status of a LivePath.

Enumerator
PathValidityStatus_NoPath 

No Path has been set yet.

PathIsValid 

The Path has been completely checked and is valid.

ValidityIntervalMustBeRecomputed 

NavData have changed around the Path, its validation is about to start.

ValidityIsBeingChecked 

The Path is currently under validation.

The check is not finished but no dirtiness has been found so far.

Dirty_ProgressInvalid 

The validation can not be processed at all.

The progress of the bot on path is in an invalid area; it is either:

  • outside navMesh,
  • on navMesh but on a non-traversable NavTag,
  • was on a NavGraph that has been unloaded.
Dirty_InvalidBeforeProgress_ProcessingAfter 

The Path validity around the progress of the bot on path is limited:

  • browsing the path backward on path failed
  • forward browsing has not yet reach the Path end.
Dirty_InvalidBeforeProgress_ValidAfter 

The Path validity around the progress of the bot on path is limited:

  • browsing the path backward on path failed
  • forward browsing completed successfully up to Path end.
Dirty_ValidBeforeProgress_InvalidAfter 

The Path validity around the progress of the bot on path is limited:

  • backward browsing completed successfully up to Path start
  • browsing the path forward failed.
Dirty_InvalidBeforeAndAfterProgress 

The Path validity around the progress of the bot on path is limited: both backward and forward validation browsing failed.

Enumerator
QueryStat_Other 

can be used sporadically to differentiate from PerformQueryStat_Unspecified

< Enumerates the different status an objectPositionOnPath can have on its Path.

Enumerator
PositionOnPathStatus_Undefined 

The PositionOnPath is not yet defined.

PositionOnPathStatus_OnPathNode 

The PositionOnPath is on a Path node.

PositionOnPathStatus_OnPathEdge 

The PositionOnPath is on a Path edge.

Enumerates the possible status values of Bot Position on path.

Enumerator
ProgressOnPathNotInitialized 

Progress on path has not been yet initialized at all.

Main reason is that no path has been set yet.

ProgressOnPathPending 

Progress on path is initialized but has not been computed yet.

This namely occurs when a new path has been set, the Progress on path is at Path start.

ProgressOnPathInInvalidNavData 

Progress on path was on a valid NavData that has been streamed out (due to explicit streaming or DynamicNavMesh) and no valid NavData has been found there.

Enumerates all the processing status a query can have.

Enumerator
QueryStatReport_All 

The report will prune PerformQueryStat with no count.

Enumerates the different states a query may have in a QueryQueue.

Enumerates all the type of query.

If you write your own query, you have to add a corresponding QueryType here.

Defines the different mode for the NavMesh border margin to be used in RayCanGo queries.

Enumerator
NoMargin 

Margin to be used to get ray can go exactly on the NavMesh borders.

DiagonalStripMargin 

Margin to be used when computing the DiagonalStrip used for Channel computation.

ChannelMargin 

Margin to be used for Channel computation.

PathMargin 

Margin to be used in any path computation ray can go queries to ensure the computed Path is not too close from NavMesh borders.

IdealTrajectoryMargin 

Margin to be used in any path following ray can go queries to ensure the computed trajectory is not too close from NavMesh borders.

MinimalTrajectoryMargin 

Margin to be used only to reevaluate a trajectory previously validated with can go using IdealTrajectoryMargin, to avoid hysteresis on it.

MoveOnNavMeshMargin 

Margin to be used in MoveOnNavMesh or any other actual movement computation.

Enumerates the possible results of a RayCanGoOnSegmentQuery.

Enumerator
RAYCANGOONSEGMENT_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

RAYCANGOONSEGMENT_NOT_PROCESSED 

Indicates the query has not yet been launched.

RAYCANGOONSEGMENT_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

RAYCANGOONSEGMENT_DONE_START_NAVTAG_FORBIDDEN 

Indicates that a NavMesh triangle has been found for the starting point, but its NavTag is not considered navigable.

RAYCANGOONSEGMENT_DONE_COLLISION_DETECTED 

Indicates that the ray was able to travel its maximum distance without collision.

RAYCANGOONSEGMENT_DONE_ARRIVAL_IN_WRONG_FLOOR 

Indicates that none of the above results occurred, which may indicate that the start and end points lie on different floors.

RAYCANGOONSEGMENT_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient memory was available to store crossed triangles or sub-sections, and the query failed as a result.

RAYCANGOONSEGMENT_DONE_QUERY_TOO_LONG 

Indicates that the query was not performed, because the value of BaseRayCanGoOnSegmentQuery::m_maxDist is large enough to cause a potential integer overflow during the computation. Retry your query with a smaller maximum distance.

RAYCANGOONSEGMENT_DONE_SUCCESS 

Indicates that the ray was able to travel its maximum distance without collision.

Enumerates the possible results of a RayCanGoQuery.

Enumerator
RAYCANGO_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

RAYCANGO_NOT_PROCESSED 

Indicates that the query has not yet been launched.

RAYCANGO_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

RAYCANGO_DONE_START_NAVTAG_FORBIDDEN 

Indicates that a NavMesh triangle has been found for the starting point, but its NavTag is not considered navigable.

RAYCANGO_DONE_COLLISION_DETECTED 

Indicates that a collision was detected along the straight line between the starting and ending points (either a border of the navmesh has been hit, or a call to CanTraverseNavTriangle returned false.

RAYCANGO_DONE_BORDER_DETECTED_WITHIN_MARGIN 

Indicates that a border was detected close (less than margin) to the straight line between the starting and ending points.

RAYCANGO_DONE_ARRIVAL_IN_WRONG_FLOOR 

Indicates that none of the above results occurred, which may indicate that the start and end points lie on different floors.

RAYCANGO_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient memory was available to store crossed triangles or sub-sections, and the query failed as a result.

RAYCANGO_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

RAYCANGO_DONE_SUCCESS 

Indicates that the ray can pass in a straight line from the starting point to the ending point without a collision.

Enumerates the possible results of a RayCast3dQuery.

Enumerator
RAYCAST3D_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

RAYCAST3D_NOT_PROCESSED 

Indicates the query has not yet been launched.

RAYCAST3D_DONE_NO_HIT 

Indicates that the point provided is outside the navigable boundaries of the NavMesh.

RAYCAST3D_DONE_HIT 

Indicates that the query was completed successfully; a triangle was found.

Enumerator
RayCastInChannel_Success 

The start and end positions are both inside the Channel and all Gates in-between are correctly crossed.

RayCastInChannel_PassedChannelFirstSection 

The start position is inside the Channel and all Gates up to the Channel start one are correctly crossed.

RayCastInChannel_PassedChannelLastSection 

The start position is inside the Channel and all Gates up to the Channel end one are correctly crossed.

RayCastInChannel_CollisionDetected_OnLeft 

A collision is detected with Channel borders.

RayCastInChannel_CollisionDetected_OnRight 

A collision is detected with Channel borders.

RayCastInChannel_StartIsOutside 

The start position is outside the start section.

RayCastInChannel_InvalidStartSectionIdx 

The start section index is not valid (it is greater than channel section count).

RayCastInChannel_InvalidChannel 

The Channel is not valid (it has less than 2 Gates and thus no section).

Enumerates the possible results of a RayCastOnSegmentQuery.

Enumerator
RAYCASTONSEGMENT_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

RAYCASTONSEGMENT_NOT_PROCESSED 

Indicates that the query has not yet been launched.

RAYCASTONSEGMENT_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

RAYCASTONSEGMENT_DONE_START_NAVTAG_FORBIDDEN 

Indicates that a NavMesh triangle has been found for the starting point, but its NavTag is not considered navigable.

RAYCASTONSEGMENT_DONE_CANNOT_MOVE 

Indicates that the starting point is very close to a NavMesh border, such that moving back the collision point resulted in an arrival position that is behind the starting point.

RAYCASTONSEGMENT_DONE_ARRIVAL_ERROR 

Indicates that a collision point was found, but moving back from that point resulted in an arrival position that could not be snapped to the NavMesh grid.

RAYCASTONSEGMENT_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient memory was available to store crossed triangles or sub-sections, and the query failed as a result.

RAYCASTONSEGMENT_DONE_QUERY_TOO_LONG 

Indicates that the query was not performed, because the value of RayCastOnSegmentQuery::m_maxDist is large enough to cause a potential integer overflow during the computation. Retry your query with a smaller maximum distance.

RAYCASTONSEGMENT_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

RAYCASTONSEGMENT_DONE_ARRIVALPOS_FOUND_MAXDIST_REACHED 

Indicates that the ray was able to travel its maximum distance without collision.

RAYCASTONSEGMENT_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION 

Indicates that the ray was able to travel its maximum distance without collision.

Enumerates the possible results of a RayCastQuery.

Enumerator
RAYCAST_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

RAYCAST_NOT_PROCESSED 

Indicates that the query has not yet been launched.

RAYCAST_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

RAYCAST_DONE_START_NAVTAG_FORBIDDEN 

Indicates that a NavMesh triangle has been found for the starting point, but its NavTag is not considered navigable.

RAYCAST_DONE_CANNOT_MOVE 

Indicates that the starting point is very close to a NavMesh border, such that moving back the collision point resulted in an arrival position that is behind the starting point.

RAYCAST_DONE_COLLISION_FOUND_ARRIVAL_ERROR 

Indicates that a collision point was found, but moving back from that point resulted in an arrival position that could not be snapped to the NavMesh grid.

RAYCAST_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient memory was available to store crossed triangles or sub-sections, and the query failed as a result.

RAYCAST_DONE_QUERY_TOO_LONG 

Indicates that the query was not performed, because the value of BaseRayCastQuery::m_maxDist is large enough to cause a potential integer overflow during the computation. Retry your query with a smaller maximum distance.

RAYCAST_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

RAYCAST_DONE_ARRIVALPOS_FOUND_MAXDIST_REACHED 

Indicates that the ray was able to travel its maximum distance without collision.

RAYCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION 

Indicates that a collision point was found and that a final arrival position was calculated successfully.

RAYCAST_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION 

weird name kept for backward compatibility

Enumerates the Channel::IsPositionInSection relative position flags.

Enumerator
RelativePositionToChannelSection_Inside 

Position is inside the section.

RelativePositionToChannelSection_Before 

Position is outside the section: it lays before the section start Gate.

RelativePositionToChannelSection_After 

Position is outside the section: it lays after the section end Gate.

RelativePositionToChannelSection_OnLeft 

Position is outside the section: it lays on the left of the left Border.

RelativePositionToChannelSection_OnRight 

Position is outside the section: it lays on the right of the right Border.

Enumerator
ResetTrajectoryStatus_InInvalidNavData 

PositionOnPath is in Invalid NavData or no Path is associated.

ResetTrajectoryStatus_OutsideNavMesh 

Bot is outside NavMesh whereas PositionOnPath is on NavMesh.

ResetTrajectoryStatus_OutsideChannel 

Bot is NavMesh whereas PositionOnPath is on a portion of the Path that is associated to a channel, and channel cannot be reached.

ResetTrajectoryStatus_CannotShortcutToPath 

Bot is in NavMesh but it cannot reach the Path in straight line.

ResetTrajectoryStatus_Pending 

Typically, occurs when trying to ExitManualControl whereas the exit status is still pending.

ResetTrajectoryStatus_Success 

PathEdgeType to move on forward from the given PositionOnPath is inside NavMesh and Bot is in side NavMesh (and channel if any) as well.

ResetTrajectoryStatus_Success_OutsideNavMesh 

PathEdgeType to move on forward from the given PositionOnPath is outside NavMesh and Bot is outside NavMesh as well.

ResetTrajectoryStatus_Success_OutsideChannel 

Bot in NavMesh but not in channel whereas PositionOnPath is on a portion of the Path that is associated to a channel but it is possible to join the channel in straight line (the ShortcutTrajectory will be used until the channel is reached)

Defines the 4 possible cases of possibly constrained rotation in the horizontal plane for a given element.

Enumerates the possible results of a SegmentCanGoQuery.

Enumerator
SEGMENTCANGO_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

SEGMENTCANGO_NOT_PROCESSED 

Indicates that the query has not yet been launched.

SEGMENTCANGO_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

SEGMENTCANGO_DONE_START_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the starting point was forbidden.

SEGMENTCANGO_DONE_COLLISION_DETECTED 

Indicates that a collision was detected between the starting and ending points.

SEGMENTCANGO_DONE_ARRIVAL_WRONG_FLOOR 

Indicates that none of the above results occurred, which may indicate that the start and end points lie on different floors.

SEGMENTCANGO_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

SEGMENTCANGO_DONE_UNKNOWN_ERROR 

Indicates that an unknown error occurred during the query processing.

SEGMENTCANGO_DONE_SUCCESS 

Indicates that the segment can pass in a straight line from its starting point to the ending point without a collision.

Enumerates the possible results of a SegmentCastQuery.

Enumerator
SEGMENTCAST_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

SEGMENTCAST_NOT_PROCESSED 

Indicates that the query has not yet been launched.

SEGMENTCAST_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

SEGMENTCAST_DONE_START_NAVTAG_FORBIDDEN 

Indicates that the NavTag at the starting point was forbidden.

SEGMENTCAST_DONE_CANNOT_MOVE 

Indicates that the starting point is very close to a NavMesh border. Either the segment does not fit in the NavMesh at its start position, or moving back the collision point resulted in an arrival position that is behind the starting point.

SEGMENTCAST_DONE_COLLISION_FOUND_ARRIVAL_ERROR 

Indicates that moving back the collision point resulted in an arrival position that is outside of the NavMesh.

SEGMENTCAST_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

SEGMENTCAST_DONE_UNKNOWN_ERROR 

Indicates that an error occured during the query computation.

SEGMENTCAST_DONE_ARRIVALPOS_FOUND_MAXDIST_REACHED 

Indicates that the segment was able to travel its maximum distance without collision.

SEGMENTCAST_DONE_ARRIVALPOS_FOUND_WITH_COLLISION 

Indicates that a final arrival position was calculated successfully.

SEGMENTCAST_DONE_ARRIVALPOS_FOUND_AFTER_COLLISION 

weird name kept for backward compatibility

Enumerates the possible results of a SpatializedPointCollectorInAABBQuery.

Enumerator
SPATIALIZEDPOINTCOLLECTOR_NOT_INITIALIZED 

Indicates that the query has not yet been initialized.

SPATIALIZEDPOINTCOLLECTOR_NOT_PROCESSED 

Indicates that the query has not yet been launched.

SPATIALIZEDPOINTCOLLECTOR_DONE_START_OUTSIDE 

Indicates that a NavMesh triangle could not be found for the starting point.

SPATIALIZEDPOINTCOLLECTOR_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

SPATIALIZEDPOINTCOLLECTOR_DONE 

Indicates that the query was completed successfully.

Enumerates the possible object types the SpatializedPoint refers to.

Enumerates the SplineTrajectory start constraint direction modes.

Enumerator
StartConstraintDirectionMode_Velocity 

Aligns the start constraint along current bot velocity when greater than the threshold (cf m_startConstraintDirectionVelocityThreshold).

StartConstraintDirectionMode_FrontDirection 

Always aligns the start constraint along current bot front direction.

StartConstraintDirectionMode_Velocity_Or_FrontDirection 

Same as StartConstraintDirectionMode_Velocity, but if velocity under threshold use current bot front direction.

StartConstraintDirectionMode_None 

Deactivate start constraint.

TagVolumeExtendOptions.

Enumerator
ExtendTagVolume_WithAltitudeTolerance_Above 

Indicates the altitude tolerance of the database will be added to Zmax.

ExtendTagVolume_WithAltitudeTolerance_Below 

Indicates the altitude tolerance of the database will be removed from Zmin.

ExtendTagVolume_WithEntityHeight_Below 

Indicates the altitude tolerance of the database will be removed from Zmin.

Enumerates the possible results of a TagVolumesFromPosQuery.

Enumerator
TAGVOLUMESROMPOS_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

TAGVOLUMESROMPOS_NOT_PROCESSED 

Indicates the query has not yet been launched.

TAGVOLUMESROMPOS_DONE_NO_TAGVOLUMES_FOUND 

Indicates that the point provided is outside the navigable boundaries of the NavMesh.

TAGVOLUMESROMPOS_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

TAGVOLUMESROMPOS_DONE_TAGVOLUMES_FOUND 

Indicates that the query was completed successfully; a triangle was found.

Enumerates the possible status values of Bot Position on path.

Enumerator
TargetOnPathNotInitialized 

Position on path has not been yet initialized at all.

Main reason is that no path has been set yet.

TargetOnPathUnknownReachability 

Target on path is initialized but not validated.

This namely occurs when a new path has been set, the Target on path is at Bot ProgressOnPath but its validation is pending.

TargetOnPathInInvalidNavData 

Target on path was on a valid NavData that has been streamed out (due to explicit streaming or DynamicNavMesh) and no valid NavData has been found there.

TargetOnPathNotReachable 

Target on path is no more reachable in straight line.

This is namely due to NavData changes, Position on path is on valid NavData but there is something in the way.

TargetOnPathReachable 

Target on path is reachable in straight line.

Enum that defines the 2 possible behaviors in case the Trajectory cannot follow the path e.g.

Bot is unexpectedly out of NavMesh or current Trajectory is driving Bot after the UpperBound

  • TrajectoryFailureMode_Safe: Prefer to drive the entity up to the UpperBound but stop at UpperBound, risking the Bot to stop and restart in one frame if the Path is recomputed in one frame
  • TrajectoryFailureMode_Unsafe: Prefer to maintain a continuous velocity by using the current trajectory as if it was valid while the path is being computed preventing the stop/restart behavior at the risk of going out of NavMesh.

Enum that defines the 2 possible Trajectory modes.

TrajectoryMode_Shortcut computes a straight line from the bot to a point ahead on the path. TrajectoryMode_Spline uses a Channel around the path to compute a circle arc spline trajectory.

Enumerates the possible results of a TriangleFromPosAndTriangleSeedQuery.

Enumerator
NEARESTTRIANGLEFROMSEED_NOT_INITIALIZED 

The query has not yet been initialized.

NEARESTTRIANGLEFROMSEED_NOT_PROCESSED 

The query has not yet been launched.

NEARESTTRIANGLEFROMSEED_DONE_SEED_INVALID 

An invalid NavTrianglePtr was provided as the seed point; the query cannot be processed.

NEARESTTRIANGLEFROMSEED_DONE_NO_TRIANGLE_FOUND 

The query completed, no triangle was found.

NEARESTTRIANGLEFROMSEED_DONE_LACK_OF_WORKING_MEMORY 

Insufficient working memory caused the query to stop.

NEARESTTRIANGLEFROMSEED_DONE_TRIANGLE_FOUND 

The query completed, a triangle was found.

Enumerates the possible results of a TriangleFromPosQuery.

Enumerator
TRIANGLEFROMPOS_NOT_INITIALIZED 

Indicates the query has not yet been initialized.

TRIANGLEFROMPOS_NOT_PROCESSED 

Indicates the query has not yet been launched.

TRIANGLEFROMPOS_DONE_NO_TRIANGLE_FOUND 

Indicates that the point provided is outside the navigable boundaries of the NavMesh.

TRIANGLEFROMPOS_DONE_LACK_OF_WORKING_MEMORY 

Indicates that insufficient working memory caused the query to stop.

TRIANGLEFROMPOS_DONE_TRIANGLE_FOUND 

Indicates that the query was completed successfully; a triangle was found.

Enumerates the possible ways a TriangleFromPosQuery can choose the triangle it retrieves.

Enumerator
NEARESTTRIANGLE_FIND_NEAREST 

Instructs the query to retrieve the nearest triangle to the point provided, regardless of whether it lies above or below the point.

NEARESTTRIANGLE_FIND_NEAREST_BELOW 

Instructs the query to retrieve the first triangle below the point provided.

NEARESTTRIANGLE_FIND_NEAREST_ABOVE 

Instructs the query to retrieve the first triangle above the point provided.

Enumerates the visual debug levels of details.

Enumerates the WorldElement types.

Function Documentation

bool Kaim::AlmostEqual ( KyFloat32  a,
KyFloat32  b 
)
inline

Does not check nan.

bool Kaim::AlmostEqual ( KyFloat32  a,
KyFloat32  b,
KyUInt32  maxUlps 
)
inline

Does not check nan.

bool Kaim::AlmostEqual_nan ( KyFloat32  a,
KyFloat32  b 
)
inline

Does check nan.

template<typename T , KyUInt32 N>
KyUInt32 Kaim::ArraySize ( T(&)  [N])
inline

Returns the size of a fixed-size array.

+ Examples:
Vec2f Kaim::BisectorCCW ( const Vec2f dir1,
const Vec2f dir2 
)
inline
dir2 \ / bisector // \ bisector //
\ / // \ //
+---- dir1 // +---- dir1 //
// / //
// / dir2 //
Vec2f Kaim::BisectorCCW ( const Vec2f A,
const Vec2f B,
const Vec2f C 
)
inline
C-----------B //
/ \ //
bisector \ //
A //
KyFloat32 Kaim::CrossProduct_z ( const Vec2f v1,
const Vec2f v2 
)
inline

alias for CrossProduct, useful in some template functions

KyFloat32 Kaim::DegFromRad ( KyFloat32  radians)
inline

Converts radians into degrees.

Vec2f Kaim::Dir ( const Vec2f A,
const Vec2f B 
)
inline

Returns the normalized direction AB, returns zero if A == B.

Vec3f Kaim::Dir ( const Vec3f A,
const Vec3f B 
)
inline

Returns the normalized direction AB.

Vec2f Kaim::Dir2d ( const Vec3f A,
const Vec3f B 
)
inline

Returns the normalized direction AB in 2d.

bool Kaim::Dir2dLessCCW ( const Vec2f dir_ref,
const Vec2f dir_a,
const Vec2f dir_b 
)
inline

Returns true when the CCW angle (dir_ref, dir_a) is strictly less than CCW angle (dir_ref, dir_b).

bool Kaim::Dir2dLessCW ( const Vec2f dir_ref,
const Vec2f dir_a,
const Vec2f dir_b 
)
inline

Returns true when the CW angle (dir_ref, dir_a) is strictly less than CCW angle (dir_ref, dir_b).

KyFloat32 Kaim::Distance ( const Vec2f A,
const Vec2f B 
)
inline

Returns the distance between A and B.

KyUInt32 Kaim::DistanceULP ( KyFloat32  a,
KyFloat32  b 
)
inline

Does not check nan.

KyFloat32 Kaim::DotProduct2d ( const Vec3f v1,
const Vec3f v2 
)
inline

Returns DotProduct(v1.Get2d(), v1.Get2d())

KyFloat32 Kaim::Fsel ( KyFloat32  a,
KyFloat32  x,
KyFloat32  y 
)
inline

x if a>=0.0f, y if a<0.0f

const char* Kaim::GetNavigationVersion ( )

Retrieves a string that contains the version number of this library.

Vec2f Kaim::GetNormalized ( const Vec2f v)
inline

Returns normalized v, returns {0.0f, 0.0f} if v is zero.

KyFloat32 Kaim::GetPositiveAngle ( const Vec2f v1,
const Vec2f v2,
Winding::Enum  winding 
)
inline

Returns the positive angle in [0,2PI[ of the CounterClockwise or Clockwise rotation from v1 to v2. In radians.

KyFloat32 Kaim::GetPositiveAngleCCW ( const Vec2f v1,
const Vec2f v2 
)
inline

Returns the positive angle in [0,2PI[ of the CounterClockwise rotation from v1 to v2.

In radians.

v2 <--PI/2 v1
| | |
| | | |
+------v1 | +------v2
3PI/2--->
KyFloat32 Kaim::GetPositiveAngleCW ( const Vec2f v1,
const Vec2f v2 
)
inline

Returns the positive angle in [0,2PI[ of the Clockwise rotation from v1 to v2.

In radians.

v2 v1 ---PI/2
| | |
^ | | v
| +------v1 +------v2
3PI/2----
KyFloat32 Kaim::GetSignedAngle ( const Vec2f v1,
const Vec2f v2,
Winding::Enum  winding 
)
inline

Returns the signed (>0 for CCW <0 for CW) angle in ]-2PI,2PI[ of the CounterClockwise or Clockwise rotation from v1 to v2. In radians.

KyInt32 Kaim::Isel ( KyInt32  a,
KyInt32  x,
KyInt32  y 
)
inline

If a is greater than 0, returns x.

Otherwise, returns y. WARNING: can overflow because (y - x) is computed internally.

bool Kaim::IsNavCellIdxValid ( const NavCellIdx  idx)
inline

Indicates whether or not the specified NavCellIdx is valid.

bool Kaim::IsNavFloorIdxValid ( const NavFloorIdx  idx)
inline

Indicates whether or not the specified NavFloorIdx is valid.

bool Kaim::IsNavHalfEdgeIdxValid ( const NavHalfEdgeIdx  idx)
inline

Indicates whether or not the specified NavHalfEdgeIdx is valid.

bool Kaim::IsNavTriangleIdxValid ( const NavTriangleIdx  idx)
inline

Indicates whether or not the specified NavTriangleIdx is valid.

bool Kaim::IsValidGuidString ( const char  guidStr[])
Returns
true if guidStr is compounded of 36 char and is null-terminated.
KyInt64 Kaim::Lsel ( KyInt64  a,
KyInt64  x,
KyInt64  y 
)
inline

If a is greater than 0, returns x.

Otherwise, returns y. WARNING: can overflow because (y - x) is computed internally.

KyInt64 Kaim::Lsign ( KyInt64  x)
inline

return -1 if x<0, 0 if x==0, 1 if x>0

Vec2f Kaim::operator* ( KyFloat32  s,
const Vec2f v 
)
inline

scalar * vec operator

KyFloat32 Kaim::RadFromDeg ( KyFloat32  degrees)
inline

Converts degrees into radians.

bool Kaim::ResetTrajectoryStatus_Failed ( ResetTrajectoryStatus  status)
inline

Note that ResetTrajectoryStatus_Pending is not considered as a failure here, since it succeeded so far, and could be a complete success.

bool Kaim::ResetTrajectoryStatus_Succeeded ( ResetTrajectoryStatus  status)
inline

Note that ResetTrajectoryStatus_Pending is not considered as a success here, since it could failed in next frames.

Vec3f Kaim::RightDir ( const Vec3f v)
inline

Returns the normalized horizontal vector on the right of v. If v is vertical, this return Vec3f::Zero()

void Kaim::Rotate ( Vec2f v,
KyFloat32  cosAngle,
KyFloat32  sinAngle 
)
inline

Rotate v by the provided cosAngle, sinAngle. Positive angles rotate CCW.

+ Examples:
bool Kaim::ShouldTryCanGo ( const PathFinderQueryTryCanGoMode mode,
bool  traverse_logic_try_can_go 
)
inline

ShouldTryCanGo function should be called from functions templated with TraverseLogic the following way: ShouldTryCanGo(mode, typename TraverseLogic::CostMultiplierUsage())

bool Kaim::ShowInfoAboutLib ( )

Outputs the build mode, target platform, library name, version, and build date of this library.

The text is logged using debug messages.

Returns
true if the text was successfully logged, or false if the BaseSystem has not yet been initialized.
KyInt32 Kaim::Side ( const Vec2i P,
const Vec2i A,
const Vec2i B 
)
inline

P relative to AB: left=1, on=0, right=-1.

KyFloat32 Kaim::SquareDistance ( const Vec2f A,
const Vec2f B 
)
inline

Returns the square of the distance between A and B.

size_t Kaim::StringPrintV ( char *  buffer,
size_t  buffer_size,
const char *  format,
va_list  vlist 
)
inline

Writes at most buffer_size chars, always put a null char, returns the number of chars written (not incl the null char)

template<typename F >
size_t Kaim::StringSplit ( const char *  ptr,
const char *  delimiters,
const F &  callable,
StringSplitIgnoreEmpty  ignoreEmpty = StringSplitIgnoreEmpty::Yes 
)
inline

Calls callable(const StringSpan& span) for each substring separated by one of the delimiters.

If no delimiters is found, callable() is called with the entire string. Returns the number of calls to callable()

// usage with KyArray<String>
KyArray<String> v;
auto push_span = [&v](const StringSpan& span){ v.PushDefault().AssignString(span.ptr, span.size); };
StringSplit(str, " \t\n", push_span);
// usage with std::vector<std::string>
std::vector<std::string> v;
auto push_span = [&v](const StringSpan& span){ v.emplace_back(span.ptr, span.size); };
StringSplit(str, " \t\n", push_span);
StringSplitSpan Kaim::StringSplitFirst ( const char *  ptr,
const char *  delimiters 
)
inline

returns {ptr, size, true} where ptr[size] == first delimiter found returns {ptr, size, false} where ptr[size] == null if no delimiter can be found

Variable Documentation

const CardinalDir Kaim::CardinalDir_EAST = 0
static

X positive axis.

const CardinalDir Kaim::CardinalDir_INVALID = 0xFFFFFFFF
static

Invalid cardinal direction.

const CardinalDir Kaim::CardinalDir_NORTH = 1
static

Y positive axis.

const CardinalDir Kaim::CardinalDir_SOUTH = 3
static

Y negative axis.

const CardinalDir Kaim::CardinalDir_WEST = 2
static

X negative axis.

const KyInt32 Kaim::InvalidCellCoord = 0x7FFFFFFF
static

Represents an invalidCellCoord object.

const KyInt32 Kaim::InvalidCoord = 0x7FFFFFFF
static

Represents an invalidCoord object.

const KyInt32 Kaim::InvalidPixelCoord = 0x7FFFFFFF
static

Represents an invalidPixelCoord object.

const KyFloat32 Kaim::KY_180_DIVIDED_BY_PI = 180.0f / KY_PI
static

Stores the value of 180 divided by KY_PI.

const KyFloat32 Kaim::KY_2_PI = 2.0f * KY_PI
static

Stores the value of 2*pi.

+ Examples:
const KyFloat32 Kaim::KY_PI = 3.14159265f
static

Stores the value of pi.

+ Examples:
const KyFloat32 Kaim::KY_PI_DIVIDED_BY_180 = KY_PI / 180.0f
static

Stores the value of KY_PI divided by 180.

const NavCellIdx Kaim::NavCellIdx_Invalid = 0xFFFFFFFF
static

Represents an invalid NavCellIdx.

const NavConnexIdx Kaim::NavConnexIdx_Invalid = (NavConnexIdx)CompactNavVertexIdx_MAXVAL
static

Represents an invalid NavConnexIdx.

const NavFloorIdx Kaim::NavFloorIdx_Invalid = 0xFFFFFFFF
static

Represents an invalid NavFloorIdx.

const NavGraphVertexIdx Kaim::NavGraphVertexIdx_Invalid = (NavGraphVertexIdx)CompactNavGraphVertexIdx_MAXVAL
static

Represents an invalid NavGraphVertexIdx.

const NavGraphVertexLinkType Kaim::NavGraphVertexLinkType_LinkToNavMesh = 1
static

Indicates that this vertex should be connected to the NavMesh. If the vertex is outside, we try to link it inside.

+ Examples:
const NavGraphVertexLinkType Kaim::NavGraphVertexLinkType_NoLink = 0
static

Indicates that this vertex should not be connected to the NavMesh.

+ Examples:
const NavHalfEdgeIdx Kaim::NavHalfEdgeIdx_Invalid = (NavHalfEdgeIdx)CompactNavHalfEdgeIdx_MAXVAL
static

Represents an invalid NavHalfEdgeIdx.

const NavTriangleIdx Kaim::NavTriangleIdx_Invalid = (NavTriangleIdx)CompactNavVertexIdx_MAXVAL
static

Represents an invalid NavTriangleIdx.

const NavVertexIdx Kaim::NavVertexIdx_Invalid = (NavVertexIdx)CompactNavVertexIdx_MAXVAL
static

Represents an invalid NavVertexIdx.

Indicates whether or not the specified NavVertexIdx is valid.

const KyUInt32 Kaim::PointOfInterestType_FirstClient = 16
static

The first customizable PointOfInterest type value.

+ Examples:
const KyUInt32 Kaim::PointOfInterestType_Undefined = 0
static

The default value of PointOfInterest type.