top of page

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) 

bottom of page