interface IGameboard (Niantic.ARDK.Extensions.Gameboard.IGameboard)
Overview
Holds information about unoccupied areas in the environment. Requires meshing to be enabled. Provides pathfinding and functions for environmental queries. More…
interface IGameboard { // properties float Area; ModelSettings Settings; // events event GameboardDestroyed(); event GameboardUpdated(); // methods bool CalculatePath( Vector3 fromPosition, Vector3 toPosition, AgentConfiguration agent, out Path path ); bool CheckFit(Vector3 center, float size); void Clear(); void Destroy(); bool FindNearestFreePosition( Vector3 sourcePosition, float range, out Vector3 nearestPosition ); bool FindNearestFreePosition( Vector3 sourcePosition, out Vector3 nearestPosition ); bool FindRandomPosition(out Vector3 randomPosition); bool FindRandomPosition( Vector3 sourcePosition, float range, out Vector3 randomPosition ); bool IsOnGameboard(Vector3 position, float delta); void Prune(Vector3 keepNodesOrigin, float range); bool RayCast(Ray ray, out Vector3 hitPoint); void Scan(Vector3 origin, float range); void SetVisualisationActive(bool active); }; // direct descendants class Gameboard;
Detailed Documentation
Holds information about unoccupied areas in the environment. Requires meshing to be enabled. Provides pathfinding and functions for environmental queries.
Properties
float Area
The discovered free area in square meters.
ModelSettings Settings
The configuration this Gameboard was created with.
Events
event GameboardDestroyed()
Alerts subscribers that the Gameboard has been destroyed.
event GameboardUpdated()
Alerts subscribers that the Gameboard has been updated.
Methods
bool CalculatePath( Vector3 fromPosition, Vector3 toPosition, AgentConfiguration agent, out Path path )
Calculates a walkable path between the two specified positions.
Parameters:
fromPosition |
Start position. |
toPosition |
Destination position |
agent |
The configuration of the agent is path is calculated for. |
path |
The calculated path |
Returns:
True if either a complete or partial path is found. False otherwise.
bool CheckFit(Vector3 center, float size)
Checks whether an area is free to occupy by a box with footprint size*size. Does not take the height into account.
Parameters:
center |
Origin of the area in world position. |
size |
Width/Length of the object’s estimated footprint in meter. |
void Clear()
Removes all surfaces from the board.
void Destroy()
Destroys the Gameboard and triggers the GameboardDestroyed event.
bool FindNearestFreePosition( Vector3 sourcePosition, float range, out Vector3 nearestPosition )
Finds the nearest world position on the Gameboard to the specified source position within a specified range.
Parameters:
sourcePosition |
The origin of the search. |
range |
Defines the search window (size = 2 * range). |
nearestPosition |
The resulting nearest position, if any. |
Returns:
True, if a nearest point could be found.
bool FindNearestFreePosition( Vector3 sourcePosition, out Vector3 nearestPosition )
Finds the nearest world position on the Gameboard to the specified source position.
Parameters:
sourcePosition |
The origin of the search. |
nearestPosition |
The resulting nearest position, if any. |
Returns:
True, if a nearest point could be found.
bool FindRandomPosition(out Vector3 randomPosition)
Finds a random world position on the Gameboard.
Parameters:
randomPosition |
The resulting random position, if any. |
Returns:
True, if a point could be found.
bool FindRandomPosition( Vector3 sourcePosition, float range, out Vector3 randomPosition )
Finds a random world position on the Gameboard within a specified range.
Parameters:
sourcePosition |
The origin of the search. |
range |
Defines the search window (size = 2 * range). |
randomPosition |
The resulting random position, if any. |
Returns:
True, if a point could be found.
bool IsOnGameboard(Vector3 position, float delta)
Checks whether the specified (projected) world position is on the Gameboard surface.
Parameters:
position |
World coordinate for the query. |
delta |
Tolerance in y position still considered on the Gameboard surface |
Returns:
True, if the specified position is on the Gameboard.
void Prune(Vector3 keepNodesOrigin, float range)
Removes nodes outside the specified squared area of size range*range. Use this to prune Gameboard for performance.
Parameters:
keepNodesOrigin |
Defines an origin in world position from which nodes will be kept. |
range |
Range of the box area where nodes will be kept. |
bool RayCast(Ray ray, out Vector3 hitPoint)
Raycasts against the Gameboard.
Parameters:
ray |
Ray to perform this function with. |
hitPoint |
Hit point in world coordinates, if any. |
Returns:
True if the ray hit a point on any plane within the Gameboard.
void Scan(Vector3 origin, float range)
Searches for occupied and unoccupied areas in the environment and updates the Gameboard accordingly by adding and removing nodes. For this, rays are cast against the mesh from the scan origin downwards. Raycasts will not find free areas under obstacles like tables, etc.
Parameters:
origin |
Origin of the scan in world position. |
range |
Area covered by the scan is size range*range. |
void SetVisualisationActive(bool active)
Activates/Deactivates visualisation of Gameboard areas and agent paths.
Parameters:
active |
Activates visualisation if true, deactivates if false |