New issue 1287: New camera position cannot be aligned with north_vector that was used in previous invocation of set_position https://bitbucket.org/yt_analysis/yt/issues/1287/new-camera-position-cannot-...
Load any data set. The following script will produce an error:
sc = yt.create_scene(ds) cam = sc.camera cam.focus = [0, 0, 0] cam_pos = [1, 0, 0] north_vector = [0, 1, 0] cam.set_position(cam_pos, north_vector) cam_pos = [0, 1, 0] north_vector = [0, 0, 1] cam.set_position(cam_pos, north_vector)
Clearly, the user is specifying cam_pos and north_vector that are not
aligned. However, in the current code set-up, position's fget() passes north_vector=None
north_vector is None in
switch_orientation, the old value of north_vector is passed to
_setup_normalized_vectors which then errors out because the new camera
position-focus vector is aligned with the old north_vector.
This issue will only arise in rare cases; however, it took me a very perplexed hour (and learning about python properties :-)) to figure out what was going on.