This page contains full public API reference for iOS and Mixed builds.
For UE4 API reference download our official UE4 documentation
WorldBase (C++)
The supplementary class that is used as a root to all MapSegment classes and also stores references to them. Every new MapSegment should be attached to the WorldBase class.
​
Declaration
struct ARNavigation::WorldBase : AActor
​
Usage: Place it anywhere on the map.
​
Public properties
​
WorldTrueNorthAngel : float
Stores rotation shift of the target area relative to the true north. You can get the rotation shift of your target area using Google Maps and calculating the angle of rotation relative to a latitude(any vertical line). The WorldBase class will rotate to the given angle with a short delay when the application starts. The delay is needed to allow the attached MapSegments and their Rooms to calculate their sizes and positions using the provided model of the target area (Static Mesh). The default value is zero.
​
MapSegments: std::unordered_set<MapSegment*>
Supplementary unordered set that contains references to its segments in case you need it.
​
Cxx2Swift bridges std::unordered_set to Set/NSHashTable/NSSet in O(n).
​
​
ARWorldBase (Objective-C/Swift)
The supplementary class that is used as a root to all ARMapSegment classes and also stores references to them. Every new ARMapSegment should be attached to the ARWorldBase class.
​
Declaration
class ARWorldBase : NSObject
​
Usage: Add it anywhere on the map.
​
Public properties
​
WorldTrueNorthAngel: float
Stores rotation shift of the target area relative to the true north. The ARWorldBase class will rotate to the given angle with a short delay when the application starts. The delay is needed to allow the attached ARMapSegments and their ARRooms to calculate their sizes and positions using the provided model of the target area. The default value is zero.
​
MapSegments: NSHashTable<weak ARMapSegment*>*
Supplementary set that contains weak references to its segments in case you need it.
​
​
MapSegment (C++)
The class that is used to define segments of the target area. All FloatingIcon, Room, and Vertex instances that are located in this segment should be attached to it.
​
Declaration
struct ARNavigation::MapSegment : AActor
​
Usage: Place it anywhere on the map and attach it to the WorldBase class.
​
Public properties
Floor: long
Stores floor number of the segment. The default value is zero.
​
FloorDisplayedText : Text(Localized std::string)
Stores a localizable text that describes the segment's floor. Keep in mind that segments can be used not only to differentiate floors but also to divide a complex map into more small pieces in case the target area is big enough. The default value is empty.
​
Cxx2Swift bridges std::string to Swift's String in O(1) and to NSString in O(1).
​
SegmentMesh: StaticMesh
Fundamental mesh (3D model) that defines the area of the segment. The default value is null.
​
SegmentOffset: simd::float2
Stores the X,Y offset of the segment's mesh relative to the segment's origin. The default value is (0.0, 0.0).
​
Cxx2Swift bridges std::float2 to Swift's SIMD2<Float> in O(1) and to simd_float2 in O(1).
​
SegmentHeight: float
Stores the height of the segment's mesh in meters. For this to work, the segment's mesh should be 1 meter in height. Alternatively, you can create a mesh with any height and set SegmentHeight to 1.0. The SegmentHeight will also be used to determine if the user is inside the segment to show or hide it from the minimap. The default value is 1.0.
​
SegmentScale: float
Stores all axes scale multiplier of the segment’s mesh. The default value is 1.0.
​
SegmentMapMaterial: Material
A supplementary material that is used to show the floor plan. This is only needed to simplify the vertex and room arrangement on the segment. The material is only shown in the editor and is hidden in the app. The default value is null.
​
To preserve compatibility with Swift when compiling for Darwin Material is a void* pointer to the material data and its GPU functions(shaders).
​
SegmentMapScale: float
Stores the X,Y scale of the SegmentMapMaterial. Use this to adjust the floor plan to match its real- world scale. The default value is 200.0.
​
ARMapSegment (Objective-C/Swift)
The class that is used to define segments of the target area. All ARFloatingIcon, ARRoom, and ARVertex instances that are located in this segment should be attached to it.
​
Declaration
class ARMapSegment : NSObject
​
Usage: Set it anywhere on the map.
​
Public properties
Floor: long
Stores floor number of the segment. The default value is zero.
​
FloorDisplayedText : Text(Localized NSString*)
Stores a localizable text that describes the segment's floor. Keep in mind that segments can be used not only to differentiate floors but also to divide a complex map into more small pieces in case the target area is big enough. The default value is empty.
​
SegmentMesh: ARStaticMesh
Fundamental mesh (3D model) that defines the area of the segment. The default value is null.
​
To preserve compatibility with Swift when compiling for Darwin ARStaticMesh is a void* pointer to the mesh data.
​
SegmentOffset: simd_float2
Stores the X,Y offset of the segment's mesh relative to the segment's origin. The default value is (0.0, 0.0).
​
SegmentHeight: float
Stores the height of the segment's mesh in meters. For this to work, the segment's mesh should be 1 meter in height. Alternatively, you can create a mesh with any height and set SegmentHeight to 1.0. The SegmentHeight will also be used to determine if the user is inside the segment to show or hide it from the minimap. The default value is 1.0.
​
SegmentScale: float
Stores all axes scale multiplier of the segment’s mesh. The default value is 1.0.
​
SegmentMapMaterial: Material
A supplementary material that is used to show the floor plan. This is only needed to simplify the vertex and room arrangement on the segment. The material is only shown in the editor and is hidden in the app. The default value is null.
​
SegmentMapScale: float
Stores the X,Y scale of the SegmentMapMaterial. Use this to adjust the floor plan to match its real-world scale. The default value is 200.0.
​
​
Vertex (C++)
The fundamental class that represents a single vertex used for building navigation paths in the target area.
​
Declaration
struct ARNavigation::Vertex : AActor
​
Usage: Place it anywhere on the MapSegment and attach it to this segment.
​
Public properties
BilateralConnections: std::unordered_set<Vertex*>
An array of Vertex instances connected to this vertex bilaterally (Stair, Corridor, etc). The navigation path will be drawn in both directions.
​
LateralConnections: std::unordered_set<Vertex*>
An array of Vertex instances connected to this vertex laterally (Turnstile, Escalator, etc). The navigation path will be drawn only in one direction.
​
ID: std::string
A unique identifier for this Vertex used for search algorithms. The default value is empty.
​
IsUnique: bool
Indicates if the vertex has unique ID on the entire map. The default value is true.
​
​
ARVertex (Objective-C/Swift)
The fundamental class that represents a single vertex used for building navigation paths in the target area.
​
Declaration
class ARVertex : GKGraphNode3D (GameplayKit)
​
Usage: Set it anywhere on the ARMapSegment.
​
Public properties
ID: NSString*
A unique identifier for this ARVertex used for search algorithms. The default value is empty.
​
IsUnique: bool
Indicates if the vertex has unique ID on the entire map. The default value is true.
​
BilateralConnections and LateralConnections properties are replaced by inherited GKGraphNode's connectedNodes property.
​
​
FloatingIcon (C++)
The class represents a floating icon that can be used to highlight points of interest.
​
Declaration
struct ARNavigation::FloatingIcon : AActor
​
Usage: Place it anywhere on the MapSegment and attach it to the segment.
​
Public properties
IconMaterial: Material
A material that contains the image for the floating icon. It can include a static picture (like in the demo) or anything else. The default value is null.
​
Text: Text(Localized std::string)
A localizable text that describes this point of interest. Will be displayed on both sides of the floating icon.
​
​
ARFloatingIcon (Objective-C/Swift)
The class represents a floating icon that can be used to highlight points of interest.
​
Declaration
class ARFloatingIcon : GKGraphNode3D (GameplayKit)
​
Usage: Set it anywhere on the ARMapSegment.
​
Public properties
IconMaterial: Material
A material that contains the image for the floating icon. It can include a static picture (like in the demo) or anything else. The default value is null.
​
Text: Text(Localized NSString*)
A localizable text that describes this point of interest. Will be displayed on both sides of the floating icon.
​
​
Room (C++)
The class that represents a single room in the target area. It can be literally a room or just a small sub-area.
​
Declaration
struct ARNavigation::Room : AActor
​
Usage: Place it anywhere on the map segment and attach it to the segment.
​
Public properties
Size: simd::float2
Stores size of the room. Adjustable in design-time. If set to zero the room will set its size automatically depending on its surroundings. The default value is zero.
​
Height: float
Defines the height of the room. The default value is 3.0.
​
Title: Text(Localized std::string)
Stores a localizable text that describes the room. The default value is "No Title”.
​
Floor: Text(Localized std::string)
Stores a localizable text that describes the floor of the room. The default value is "First Floor”.
​
DebugMaterial: Material
Stores a material that will be applied to the room's mesh. For debugging purposes only, it will be hidden in app. The default value is null.
​
Type: Enum
Stores a type of the room. Can be "Room", "Corridor", "Staircase" or "Other". The default value is “Room".
​
At this moment, enums are imported to Swift as plain C enums instead of NS_ENUM.
​
​
ARRoom (Objective-C/Swift)
The class that represents a single room in the target area. It can be literally a room or just a small sub-area.
​
Declaration
class ARRoom : NSObject
​
Usage: Set it anywhere on the map.
​
Public properties
Size: simd_float2
Stores size of the room. If set to zero the room will set its size automatically depending on its surroundings. The default value is zero.
​
Height: float
Defines the height of the room. The default value is 3.0.
​
Title: Text(Localized NSString*)
Stores a localizable text that describes the room. The default value is "No Title”.
​
Floor: Text(Localized NSString*)
Stores a localizable text that describes the floor of the room. The default value is "First Floor”.
​
DebugMaterial: Material
Stores a material that will be applied to the room's mesh. For debugging purposes only, it will be hidden in app. The default value is null.
​
Type: Enum
Stores a type of the room. Can be "Room", "Corridor", "Staircase" or "Other". The default value is “Room".
​
​
Configuration (C++)
The supplementary class that stores system configuration for this map.
​
Declaration
struct ARNavigation::Configuration : AActor
​
Usage: Place it anywhere on the map. Use only one instance.
​
Public properties
Path Building Type: enum
Contains the type of the pathfinding algorithm that should be used to find the optimal path between a starting vertex and a target vertex. The algorithm types are described in documentation section 1.2. The default value is Regular.
​
InitialPositionPage: struct InitialPositions
Stores a list of user's possible initial positions. Each InitialPosition stores a "Text"(Localizable friendly name that will be displayed in the list) and "TeleportToVertexTag" (Vertex ID which coordinates will be used to virtually teleport the user to that vertex). The default values are missing and are implemented directly in the demo level.
​
MainUIText: struct QuickButtons
Stores a list of user's possible destinations which can be selected by the user from the main UI. Each QuickButton contains Text"(Localizable friendly name that will be displayed in the list), "Floor" (Localizable friendly name of the floor that will be displayed in the main UI under the destination) and "DestinationTag" (destination Vertex ID).
​
​
ARConfiguration (Objective-C/Swift)
The supplementary class that stores system configuration for this map.
​
Declaration
class ARConfiguration : NSObject
​
Usage: Set it anywhere on the map. Use only one instance.
​
Public properties
Path Building Type: enum
Contains the type of the pathfinding algorithm that should be used to find the optimal path between a starting vertex and a target vertex. The algorithm types are described in documentation section 1.2. The default value is Regular.
​
InitialPositionPage: struct InitialPositions
Stores a list of user's possible initial positions. Each InitialPosition stores a "Text"(Localizable name that will be displayed in the list) and "TeleportToVertexTag" (Vertex ID which coordinates will be used to virtually teleport the user to that vertex).
​
MainUIText: struct QuickButtons
Stores a list of user's possible destinations which can be selected by the user from the main UI. Each QuickButton contains Text"(Localizable friendly name that will be displayed in the list), "Floor" (Localizable friendly name of the floor that will be displayed in the main UI under the destination) and "DestinationTag" (destination Vertex ID).
​
​
2DImageProvider (C++)
The class is responsible for rendering the 2D minimap image.
​
Declaration
struct ARNavigation::2DImageProvider : AActor
​
Usage: Place it anywhere on the map. Use only one instance. Do not edit or modify it somehow.
​
Objective-C counterpart for this class is not available.
​
​
NavigationPathSpline (C++)
The class which is responsible for building a navigation path from the user location to the destination point using arrows provided by the Arrow class.
​
Declaration
struct ARNavigation::NavigationPathSpline : AActor
​
Usage: Place it anywhere on the map. Use only one instance. Do not edit or modify it somehow.
​
Public properties
Spacing: float
Distance between arrows on the navigation path.
​
Objective-C counterpart for this class is not available.
​
​
Marker (C++)
The class which represents a single custom marker.
​
Declaration
struct ARNavigation::Marker : AActor
​
Usage: Not intended for direct usage. Will be instantiated automatically by the first responder controller.
Objective-C counterpart for this class is not available.
​
Arrow (C++)
The class which represents a single arrow used in NavigationPathSpline.
​
Declaration
struct ARNavigation::Arrow : AActor
​
Usage: Not intended for direct usage. Will be instantiated automatically by the NavigationPathSpline class.
​
Objective-C counterpart for this class is not available.
​
​
CustomMarker (C++/Objective-C/Swift)
The struct is storing name and location data about one single custom marker placed on the map.
​
Declaration
struct CustomMarker
​
​
InitialPosition (C++/Objective-C/Swift)
The struct is storing displayed text and a vertex ID for one single predefined initial position.
​
Declaration
struct InitialPosition
​
​
InitialPositionPage (C++/Objective-C/Swift)
The struct is storing a buffer of InitialPosition structs.
​
Declaration
struct InitialPositionPage
​
​
QuickDestinationButton (C++/Objective-C/Swift)
The struct is storing displayed name, displayed floor and a vertex ID for one single predefined destination.
Declaration
struct QuickDestinationButton
​
​
MainUIButtons (C++/Objective-C/Swift)
The struct is storing a buffer of QuickDestinationButton structs.
​
Declaration
struct QuickDestinationButton
​
​
InitialPositionQRCode (C++)
Contains ARCandidateImage, such as: texture, friendly name, width, height and orientation.
​
Declaration
struct ARNavigation::InitialPositionQRCode : UObject
​
​
ARInitialPositionQRCode (Objective-C/Swift)
Contains ARReferenceImage, such as: texture, name, size and orientation.
​
Declaration
class InitialPositionQRCode : NSObject
​
​
ARSessionInitial (C++)
Contains AR session configuration used for initial positioning. World alignment is Gravity and Heading, plane detection is disabled, one candidate image (QR code) is set, everything else is at its default values.
​
Declaration
struct ARNavigation::ARSessionInitial
​
​
ARSessionInitial (Objective-C/Swift)
AR session used for initial positioning. World alignment is Gravity and Heading, plane detection is disabled, one reference image (QR code) is set, everything else is at its default values.
​
Declaration
class ARSessionInitial : ARSession (ARKit)
​
​
ARSessionMain (C++)
Contains AR session configuration used for runtime positioning. World alignment is Gravity and Heading, plane detection is enabled for horizontal and vertical planes, no reference images are set, everything else is at its default values.
​
Declaration
struct ARNavigation::ARSessionMain
​
​
ARSessionMain (Objective-C/Swift)
AR session used for runtime positioning. World alignment is Gravity and Heading, plane detection is enabled for horizontal and vertical planes, no AR reference images are set, everything else is at its default values.
​
Declaration
class ARSessionMain : ARSession (ARKit)