diff options
| author | Anton Yabchinskiy | 2015-07-29 23:01:36 +0300 |
|---|---|---|
| committer | Anton Yabchinskiy | 2015-07-29 23:01:36 +0300 |
| commit | dc8df8a91a995796f0f330bf6bb6b209f6dfce08 (patch) | |
| tree | 46cfe09124703b07860754d6b44e0289422e0573 /scene/3d/navigation.h | |
| parent | 16746f157f83d666079ba3266acec13d35b84c3f (diff) | |
| parent | 922356b903061cda7591090bf19e8346c3a78cf5 (diff) | |
| download | godot-dc8df8a91a995796f0f330bf6bb6b209f6dfce08.tar.gz godot-dc8df8a91a995796f0f330bf6bb6b209f6dfce08.tar.zst godot-dc8df8a91a995796f0f330bf6bb6b209f6dfce08.zip | |
Merge branch 'master' of github.com:okamstudio/godot
Diffstat (limited to 'scene/3d/navigation.h')
| -rw-r--r-- | scene/3d/navigation.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/scene/3d/navigation.h b/scene/3d/navigation.h index 19977c311..f8434aaf7 100644 --- a/scene/3d/navigation.h +++ b/scene/3d/navigation.h @@ -42,6 +42,13 @@ class Navigation : public Spatial { struct NavMesh; + struct Polygon; + + struct ConnectionPending { + + Polygon *polygon; + int edge; + }; struct Polygon { @@ -50,7 +57,8 @@ class Navigation : public Spatial { Point point; Polygon *C; //connection int C_edge; - Edge() { C=NULL; C_edge=-1; } + List<ConnectionPending>::Element *P; + Edge() { C=NULL; C_edge=-1; P=NULL; } }; Vector<Edge> edges; @@ -59,6 +67,8 @@ class Navigation : public Spatial { float distance; int prev_edge; + bool clockwise; + NavMesh *owner; }; @@ -70,6 +80,9 @@ class Navigation : public Spatial { int A_edge; Polygon *B; int B_edge; + + List<ConnectionPending> pending; + Connection() { A=NULL; B=NULL; A_edge=-1; B_edge=-1;} }; @@ -135,9 +148,10 @@ public: void navmesh_remove(int p_id); Vector<Vector3> get_simple_path(const Vector3& p_start, const Vector3& p_end,bool p_optimize=true); - Vector3 get_closest_point_to_segment(const Vector3& p_from,const Vector3& p_to,const bool& p_use_collision=false); + Vector3 get_closest_point_to_segment(const Vector3& p_from,const Vector3& p_to,const bool& p_use_collision=false); Vector3 get_closest_point(const Vector3& p_point); Vector3 get_closest_point_normal(const Vector3& p_point); + Object* get_closest_point_owner(const Vector3& p_point); Navigation(); }; |
