Skip to content
Snippets Groups Projects
Commit f05e2636 authored by Andi Gerken's avatar Andi Gerken
Browse files

Changed arcs to wedges for better display of zones

parent 10bc54ff
No related branches found
No related tags found
1 merge request!51Merging develop with develop_mathis
Pipeline #66468 failed
...@@ -1099,6 +1099,7 @@ class File(h5py.File): ...@@ -1099,6 +1099,7 @@ class File(h5py.File):
zones = [] zones = []
if render_zones: if render_zones:
fovs = []
for ei, e in enumerate(self.entities): for ei, e in enumerate(self.entities):
zone_sizes_str = get_zone_sizes_from_model_str(self.attrs.get("guppy_model_rollout", "")) zone_sizes_str = get_zone_sizes_from_model_str(self.attrs.get("guppy_model_rollout", ""))
zone_sizes_attrs = get_zone_sizes_from_attrs(e) zone_sizes_attrs = get_zone_sizes_from_attrs(e)
...@@ -1110,10 +1111,14 @@ class File(h5py.File): ...@@ -1110,10 +1111,14 @@ class File(h5py.File):
fov = zone_sizes.get("fov", np.pi*2) fov = zone_sizes.get("fov", np.pi*2)
fov = np.rad2deg(fov) fov = np.rad2deg(fov)
zone_sizes.pop("fov", None) zone_sizes.pop("fov", None)
fovs.append(fov)
entity_zones = [] entity_zones = []
for zone_size in zone_sizes.values(): for zone_size in zone_sizes.values():
entity_zones.append(matplotlib.patches.Arc((0,0), zone_size, zone_size, angle=0, theta1=-fov/2, theta2=fov/2, color=fish_colors[ei], alpha=0.3, fill=False)) if fov >= 360:
entity_zones.append(matplotlib.patches.Circle((0, 0), zone_size, color=fish_colors[ei], alpha=0.3, fill=False))
else:
entity_zones.append(matplotlib.patches.Wedge((0,0), zone_size, theta1=-fov/2, theta2=fov/2, color=fish_colors[ei], alpha=0.3, fill=False))
zones.append(entity_zones) zones.append(entity_zones)
zones_flat = [] zones_flat = []
...@@ -1391,11 +1396,15 @@ class File(h5py.File): ...@@ -1391,11 +1396,15 @@ class File(h5py.File):
poses_trails = entity_poses[:, max(0, file_frame - trail) : file_frame] poses_trails = entity_poses[:, max(0, file_frame - trail) : file_frame]
for i_entity in range(n_entities): for i_entity in range(n_entities):
for zone in zones[i_entity]: for zone in zones[i_entity]:
zone.center = (
zone.set_center((
this_pose[i_entity, 0], this_pose[i_entity, 0],
this_pose[i_entity, 1], this_pose[i_entity, 1],
) ))
zone.angle = this_pose[i_entity, 2] * 180 / np.pi if fovs[i_entity] < 360:
ori_deg = np.rad2deg(this_pose[i_entity, 2])
zone.theta1 = ori_deg - fovs[i_entity] / 2
zone.theta2 = ori_deg + fovs[i_entity] / 2
if render_swarm_center: if render_swarm_center:
swarm_center[0].set_offsets(swarm_center_position[file_frame]) swarm_center[0].set_offsets(swarm_center_position[file_frame])
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment