|
@@ -47,7 +47,7 @@
|
|
Adds a new point at the given position with the given identifier. The algorithm prefers points with lower [code]weight_scale[/code] to form a path. The [code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must be 1 or larger.
|
|
Adds a new point at the given position with the given identifier. The algorithm prefers points with lower [code]weight_scale[/code] to form a path. The [code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must be 1 or larger.
|
|
[codeblock]
|
|
[codeblock]
|
|
var as = AStar.new()
|
|
var as = AStar.new()
|
|
-
|
|
|
|
|
|
+
|
|
as.add_point(1, Vector3(1,0,0), 4) # Adds the point (1,0,0) with weight_scale=4 and id=1
|
|
as.add_point(1, Vector3(1,0,0), 4) # Adds the point (1,0,0) with weight_scale=4 and id=1
|
|
[/codeblock]
|
|
[/codeblock]
|
|
If there already exists a point for the given id, its position and weight scale are updated to the given values.
|
|
If there already exists a point for the given id, its position and weight scale are updated to the given values.
|
|
@@ -84,10 +84,10 @@
|
|
Creates a segment between the given points.
|
|
Creates a segment between the given points.
|
|
[codeblock]
|
|
[codeblock]
|
|
var as = AStar.new()
|
|
var as = AStar.new()
|
|
-
|
|
|
|
|
|
+
|
|
as.add_point(1, Vector3(1,1,0))
|
|
as.add_point(1, Vector3(1,1,0))
|
|
as.add_point(2, Vector3(0,5,0))
|
|
as.add_point(2, Vector3(0,5,0))
|
|
-
|
|
|
|
|
|
+
|
|
as.connect_points(1, 2, false) # If bidirectional=false it's only possible to go from point 1 to point 2
|
|
as.connect_points(1, 2, false) # If bidirectional=false it's only possible to go from point 1 to point 2
|
|
# and not from point 2 to point 1.
|
|
# and not from point 2 to point 1.
|
|
[/codeblock]
|
|
[/codeblock]
|
|
@@ -129,12 +129,12 @@
|
|
Returns the closest position to [code]to_position[/code] that resides inside a segment between two connected points.
|
|
Returns the closest position to [code]to_position[/code] that resides inside a segment between two connected points.
|
|
[codeblock]
|
|
[codeblock]
|
|
var as = AStar.new()
|
|
var as = AStar.new()
|
|
-
|
|
|
|
|
|
+
|
|
as.add_point(1, Vector3(0,0,0))
|
|
as.add_point(1, Vector3(0,0,0))
|
|
as.add_point(2, Vector3(0,5,0))
|
|
as.add_point(2, Vector3(0,5,0))
|
|
-
|
|
|
|
|
|
+
|
|
as.connect_points(1, 2)
|
|
as.connect_points(1, 2)
|
|
-
|
|
|
|
|
|
+
|
|
var res = as.get_closest_position_in_segment(Vector3(3,3,0)) # returns (0, 3, 0)
|
|
var res = as.get_closest_position_in_segment(Vector3(3,3,0)) # returns (0, 3, 0)
|
|
[/codeblock]
|
|
[/codeblock]
|
|
The result is in the segment that goes from [code]y=0[/code] to [code]y=5[/code]. It's the closest position in the segment to the given point.
|
|
The result is in the segment that goes from [code]y=0[/code] to [code]y=5[/code]. It's the closest position in the segment to the given point.
|
|
@@ -151,18 +151,18 @@
|
|
Returns an array with the ids of the points that form the path found by AStar between the given points. The array is ordered from the starting point to the ending point of the path.
|
|
Returns an array with the ids of the points that form the path found by AStar between the given points. The array is ordered from the starting point to the ending point of the path.
|
|
[codeblock]
|
|
[codeblock]
|
|
var as = AStar.new()
|
|
var as = AStar.new()
|
|
-
|
|
|
|
|
|
+
|
|
as.add_point(1, Vector3(0,0,0))
|
|
as.add_point(1, Vector3(0,0,0))
|
|
as.add_point(2, Vector3(0,1,0), 1) # default weight is 1
|
|
as.add_point(2, Vector3(0,1,0), 1) # default weight is 1
|
|
as.add_point(3, Vector3(1,1,0))
|
|
as.add_point(3, Vector3(1,1,0))
|
|
as.add_point(4, Vector3(2,0,0))
|
|
as.add_point(4, Vector3(2,0,0))
|
|
-
|
|
|
|
|
|
+
|
|
as.connect_points(1, 2, false)
|
|
as.connect_points(1, 2, false)
|
|
as.connect_points(2, 3, false)
|
|
as.connect_points(2, 3, false)
|
|
as.connect_points(4, 3, false)
|
|
as.connect_points(4, 3, false)
|
|
as.connect_points(1, 4, false)
|
|
as.connect_points(1, 4, false)
|
|
as.connect_points(5, 4, false)
|
|
as.connect_points(5, 4, false)
|
|
-
|
|
|
|
|
|
+
|
|
var res = as.get_id_path(1, 3) # returns [1, 2, 3]
|
|
var res = as.get_id_path(1, 3) # returns [1, 2, 3]
|
|
[/codeblock]
|
|
[/codeblock]
|
|
If you change the 2nd point's weight to 3, then the result will be [code][1, 4, 3][/code] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2.
|
|
If you change the 2nd point's weight to 3, then the result will be [code][1, 4, 3][/code] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2.
|
|
@@ -223,6 +223,7 @@
|
|
<return type="Array">
|
|
<return type="Array">
|
|
</return>
|
|
</return>
|
|
<description>
|
|
<description>
|
|
|
|
+ Returns an array of all points.
|
|
</description>
|
|
</description>
|
|
</method>
|
|
</method>
|
|
<method name="has_point" qualifiers="const">
|
|
<method name="has_point" qualifiers="const">
|