summaryrefslogtreecommitdiffstats
path: root/scene/3d/navigation_mesh.h
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2015-09-20 13:03:46 -0300
committerJuan Linietsky <reduzio@gmail.com>2015-09-20 13:03:46 -0300
commit83d9a692be648668b5b363f2424c619e15639843 (patch)
tree387b30810994b282c795fdd011f53f0b7eb93ace /scene/3d/navigation_mesh.h
parent3f9e5afe68df1e3b4bcf34a21468ed55a57a7973 (diff)
parent889d21e0049a0e84d6d44db9b80193f93fd62f17 (diff)
downloadredot-engine-83d9a692be648668b5b363f2424c619e15639843.tar.gz
Ability to visually debug geometry visually:
-Visible 2D and 3D Shapes, Polygons, Tile collisions, etc. -Visible Navmesh and Navpoly -Visible collision contacts for 2D and 3D as a red point -Customizable colors in project settings
Diffstat (limited to 'scene/3d/navigation_mesh.h')
-rw-r--r--scene/3d/navigation_mesh.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/scene/3d/navigation_mesh.h b/scene/3d/navigation_mesh.h
index fccf405f9d..1e53b2127a 100644
--- a/scene/3d/navigation_mesh.h
+++ b/scene/3d/navigation_mesh.h
@@ -4,6 +4,7 @@
#include "scene/3d/spatial.h"
#include "scene/resources/mesh.h"
+class Mesh;
class NavigationMesh : public Resource {
@@ -14,6 +15,16 @@ class NavigationMesh : public Resource {
Vector<int> indices;
};
Vector<Polygon> polygons;
+ Ref<Mesh> debug_mesh;
+
+ struct _EdgeKey {
+
+ Vector3 from;
+ Vector3 to;
+
+ bool operator<(const _EdgeKey& p_with) const { return from==p_with.from ? to < p_with.to : from < p_with.from; }
+ };
+
protected:
@@ -21,6 +32,7 @@ protected:
void _set_polygons(const Array& p_array);
Array _get_polygons() const;
+
public:
void create_from_mesh(const Ref<Mesh>& p_mesh);
@@ -33,6 +45,8 @@ public:
Vector<int> get_polygon(int p_idx);
void clear_polygons();
+ Ref<Mesh> get_debug_mesh();
+
NavigationMesh();
};
@@ -47,6 +61,9 @@ class NavigationMeshInstance : public Spatial {
int nav_id;
Navigation *navigation;
Ref<NavigationMesh> navmesh;
+
+ Node *debug_view;
+
protected:
void _notification(int p_what);