NavigationPolygon

Inherits: Resource < Reference < Object

A node that has methods to draw outlines or use indices of vertices to create navigation polygons.

Description

There are two ways to create polygons. Either by using the add_outline method, or using the add_polygon method.

Using add_outline:

var polygon = NavigationPolygon.new()
var outline = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)])
polygon.add_outline(outline)
polygon.make_polygons_from_outlines()
$NavigationPolygonInstance.navpoly = polygon

Using add_polygon and indices of the vertices array.

var polygon = NavigationPolygon.new()
var vertices = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)])
polygon.set_vertices(vertices)
var indices = PoolIntArray(0, 3, 1)
polygon.add_polygon(indices)
$NavigationPolygonInstance.navpoly = polygon

Methods

void add_outline ( PoolVector2Array outline )
void add_outline_at_index ( PoolVector2Array outline, int index )
void add_polygon ( PoolIntArray polygon )
void clear_outlines ( )
void clear_polygons ( )
PoolVector2Array get_outline ( int idx ) const
int get_outline_count ( ) const
PoolIntArray get_polygon ( int idx )
int get_polygon_count ( ) const
PoolVector2Array get_vertices ( ) const
void make_polygons_from_outlines ( )
void remove_outline ( int idx )
void set_outline ( int idx, PoolVector2Array outline )
void set_vertices ( PoolVector2Array vertices )

Method Descriptions

void add_outline ( PoolVector2Array outline )

Appends a PoolVector2Array that contains the vertices of an outline to the internal array that contains all the outlines. You have to call make_polygons_from_outlines in order for this array to be converted to polygons that the engine will use.

void add_outline_at_index ( PoolVector2Array outline, int index )

Adds a PoolVector2Array that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. You have to call make_polygons_from_outlines in order for this array to be converted to polygons that the engine will use.

void add_polygon ( PoolIntArray polygon )

Adds a polygon using the indices of the vertices you get when calling get_vertices.

void clear_outlines ( )

Clears the array of the outlines, but it doesn't clear the vertices and the polygons that were created by them.

void clear_polygons ( )

Clears the array of polygons, but it doesn't clear the array of outlines and vertices.

PoolVector2Array get_outline ( int idx ) const

Returns a PoolVector2Array containing the vertices of an outline that was created in the editor or by script.

int get_outline_count ( ) const

Returns the number of outlines that were created in the editor or by script.

PoolIntArray get_polygon ( int idx )

Returns a PoolIntArray containing the indices of the vertices of a created polygon.

int get_polygon_count ( ) const

Returns the count of all polygons.

PoolVector2Array get_vertices ( ) const

Returns a PoolVector2Array containing all the vertices being used to create the polygons.

void make_polygons_from_outlines ( )

Creates polygons from the outlines added in the editor or by script.

void remove_outline ( int idx )

Removes an outline created in the editor or by script. You have to call make_polygons_from_outlines for the polygons to update.

void set_outline ( int idx, PoolVector2Array outline )

Changes an outline created in the editor or by script. You have to call make_polygons_from_outlines for the polygons to update.

void set_vertices ( PoolVector2Array vertices )

Sets the vertices that can be then indexed to create polygons with the add_polygon method.

© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.2/classes/class_navigationpolygon.html