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

Tutorials

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–2021 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.3/classes/class_navigationpolygon.html