<div dir="ltr">Hello,<div><br></div><div>I found myself constantly needing to re-center on different regions of EM density maps, and I was originally just dropping spheres on the surface, centering on those, then deleting them.  Finally I got sick of that and wrote this. It will center the window on the surface of whatever surface the mouse is currently overlaying.</div><div><br></div><div>I found this to be a very helpful addition when looking at large EM maps, and was thinking other people might too, after using it for a while I feel as though it could be part of trunk since I use it so much.</div><div><br></div><div><br></div><div>basically it would require the addition of this to standard_accelerators.py</div><div><br></div><div>... other accelerators..</div><div><br></div><div><div>    ('zx', 'Center view on surface where mouse is located', center_on_surface_at_mouse),</div></div><div><br></div><div>... zx because it's close to where you rest your hands on the keyboard...</div><div><br></div><div><div>def center_on_surface_at_mouse():</div><div>  from chimera import selection, tkgui</div><div>  hits = []</div><div>  w = tkgui.app.graphics</div><div>  x = w.winfo_pointerx() - w.winfo_rootx()</div><div>  y = w.winfo_pointery() - w.winfo_rooty()</div><div>  from Surface import surface_models</div><div>  import VolumePath.tracer as tracer</div><div>  hits.extend(tracer.surface_intercepts(x, y, surface_models()))</div><div>  xyz, model = tracer.closest_hit(hits)</div><div>  print(xyz)</div><div>  if xyz:</div><div>    print('cofr %f,%f,%f' % (xyz[0],xyz[1],xyz[2]))</div><div>    chimera.runCommand('cofr %f,%f,%f' % (xyz[0],xyz[1],xyz[2]))</div><div>    chimera.viewer.camera.center = xyz </div></div><div><br></div><div>cheers!</div><div>~Dan</div><div><br></div><div><br></div><div><br></div><div><br></div></div>