navigation_polygon.h
1 #ifndef NAVIGATION_POLYGON_H
2 #define NAVIGATION_POLYGON_H
3 
4 #include "scene/2d/node_2d.h"
5 
6 
7 class NavigationPolygon : public Resource {
8 
9  OBJ_TYPE( NavigationPolygon, Resource );
10 
11  DVector<Vector2> vertices;
12  struct Polygon {
13  Vector<int> indices;
14  };
15  Vector<Polygon> polygons;
16  Vector< DVector<Vector2> > outlines;
17 
18 protected:
19 
20  static void _bind_methods();
21 
22  void _set_polygons(const Array& p_array);
23  Array _get_polygons() const;
24 
25  void _set_outlines(const Array& p_array);
26  Array _get_outlines() const;
27 
28 public:
29 
30 
31 
32  void set_vertices(const DVector<Vector2>& p_vertices);
33  DVector<Vector2> get_vertices() const;
34 
35  void add_polygon(const Vector<int>& p_polygon);
36  int get_polygon_count() const;
37 
38  void add_outline(const DVector<Vector2>& p_outline);
39  void add_outline_at_index(const DVector<Vector2>& p_outline,int p_index);
40  void set_outline(int p_idx,const DVector<Vector2>& p_outline);
41  DVector<Vector2> get_outline(int p_idx) const;
42  void remove_outline(int p_idx);
43  int get_outline_count() const;
44 
45  void clear_outlines();
46  void make_polygons_from_outlines();
47 
48  Vector<int> get_polygon(int p_idx);
49  void clear_polygons();
50 
52 };
53 
54 
55 class Navigation2D;
56 
58 
60 
61  bool enabled;
62  int nav_id;
63  Navigation2D *navigation;
64  Ref<NavigationPolygon> navpoly;
65 
66  void _navpoly_changed();
67 
68 protected:
69 
70  void _notification(int p_what);
71  static void _bind_methods();
72 public:
73 
74  void set_enabled(bool p_enabled);
75  bool is_enabled() const;
76 
77  void set_navigation_polygon(const Ref<NavigationPolygon>& p_navpoly);
78  Ref<NavigationPolygon> get_navigation_polygon() const;
79 
81 };
82 
83 
84 #endif // NAVIGATIONPOLYGON_H
Definition: array.h:38
Definition: navigation_polygon.h:57
Definition: navigation2d.h:7
Definition: resource.h:89
Definition: navigation_polygon.h:7
Definition: node_2d.h:34