DM: fix change_position and xyz_point
Problem description
Current xyz_point
syntax is very clumsy:
# Example 1
one_xyz: xyz_point with:
keep(it.position.x == 1)
keep(it.position.y == 1)
keep(it.position.z == 1)
# Example 2
two_xyz: xyz_point
keep(two_xyz.position.x == 1)
keep(two_xyz.position.y == 1)
keep(two_xyz.position.z == 1)
# Example 3
my_rt_pt: route_point with:
keep(it.route = road1)
keep(it.s = 1)
keep(it.t = 1)
my_xyz: xyz_point = map.route_point_to_xyz(my_rt_pt)
my_pt_3d: position_3d with
keep(it.x == my_xyz.position.x)
keep(it.y == my_xyz.position.y)
keep(it.z == my_xyz.position.z)
do:
my_car.change_position(my_pt_3d, smooth, True)
...
Better syntax would be:
# Example 1
one_xyz: xyz_point with:
keep(it.x == 1)
keep(it.y == 1)
keep(it.z == 1)
# Example 2
two_xyz: xyz_point
keep(two_xyz.x == 1)
keep(two_xyz.y == 1)
keep(two_xyz.z == 1)
# Example 3
my_rt_pt: route_point with:
keep(it.route = road1)
keep(it.s = 1)
keep(it.t = 1)
my_xyz: xyz_point = map.route_point_to_xyz(my_rt_pt)
do:
my_car.change_position(my_xyz, smooth, True)
...
Tasks
-
action parameter assign_position.position
should be typexyz_point
(not position_3d) so that is is routable, convertible from route_points etc. -
action parameter change_position.target
(_xyz
) should be typexyz_point
(not position_3d) so that is is routable, convertible from route_points etc. -
xyz_point
should have the x,y,z parameters directly under it. Don't use position_3d