diff options
Diffstat (limited to 'core/math/a_star.h')
-rw-r--r-- | core/math/a_star.h | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/core/math/a_star.h b/core/math/a_star.h index c4c955ed2d..2ac855737c 100644 --- a/core/math/a_star.h +++ b/core/math/a_star.h @@ -35,10 +35,9 @@ @author Juan Linietsky <reduzio@gmail.com> */ -class AStar: public Reference { - - GDCLASS(AStar,Reference) +class AStar : public Reference { + GDCLASS(AStar, Reference) uint64_t pass; @@ -51,16 +50,17 @@ class AStar: public Reference { real_t weight_scale; uint64_t last_pass; - Vector<Point*> neighbours; + Vector<Point *> neighbours; //used for pathfinding Point *prev_point; real_t distance; - Point() : list(this) {} + Point() + : list(this) {} }; - Map<int,Point*> points; + Map<int, Point *> points; struct Segment { union { @@ -74,44 +74,41 @@ class AStar: public Reference { Point *from_point; Point *to_point; - bool operator<(const Segment& p_s) const { return key<p_s.key; } - Segment() { key=0; } - Segment(int p_from,int p_to) { + bool operator<(const Segment &p_s) const { return key < p_s.key; } + Segment() { key = 0; } + Segment(int p_from, int p_to) { if (p_from > p_to) { - SWAP(p_from,p_to); + SWAP(p_from, p_to); } - from=p_from; - to=p_to; + from = p_from; + to = p_to; } }; - Set<Segment> segments; bool _solve(Point *begin_point, Point *end_point); protected: - static void _bind_methods(); -public: +public: int get_available_point_id() const; - void add_point(int p_id,const Vector3& p_pos,real_t p_weight_scale=1); + void add_point(int p_id, const Vector3 &p_pos, real_t p_weight_scale = 1); Vector3 get_point_pos(int p_id) const; real_t get_point_weight_scale(int p_id) const; void remove_point(int p_id); - void connect_points(int p_id,int p_with_id); - void disconnect_points(int p_id,int p_with_id); - bool are_points_connected(int p_id,int p_with_id) const; + void connect_points(int p_id, int p_with_id); + void disconnect_points(int p_id, int p_with_id); + bool are_points_connected(int p_id, int p_with_id) const; void clear(); - - int get_closest_point(const Vector3& p_point) const; - Vector3 get_closest_pos_in_segment(const Vector3& p_point) const; + int get_closest_point(const Vector3 &p_point) const; + Vector3 get_closest_pos_in_segment(const Vector3 &p_point) const; PoolVector<Vector3> get_point_path(int p_from_id, int p_to_id); PoolVector<int> get_id_path(int p_from_id, int p_to_id); |