﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
1957	RFE: optimize surface zone calculations	Tristan Croll	Tom Goddard	"(Not urgent, but it would be nice in many ways)

I've been spending quite a bit of time on parallelising Clipper's structure factor calculations for the live-updating crystallographic maps, and have got it down to the point where for the demo model I get about 2 map updates a second on my Xeon workstation. The map calculations themselves and contouring of the portion ""seen"" by ChimeraX all happen in separate C++ threads, so the time overhead at those steps are fairly minimal (a few ms, mostly in the copying of ChimeraX atoms to Clipper before launching the map recalculation thread).

Pretty cool to watch (and practically useful to boot) - but now the rate-limiting step is `VolumeSurface._set_surface()` (or, really, `Drawing.set_geometry()`): if I have the whole demo model covered and simulating with the standard four surfaces shown (standard map, sharpened map, and +/- difference map), then the grand total cost of `_set_surface()` for all four surfaces is about 100ms - 44ms each for the standard and sharpened maps, and ~6ms each for the difference maps (simpler; fewer triangles). It's obviously substantially better when smaller regions are displayed, but still enough to introduce a noticeable ""hitch"" to the display.

I can imagine that there are many cases where it would be nice to improve on this (essentially anything to do with animating volumes, for a start)."	enhancement	closed	moderate		Volume Data		fixed		Tom Goddard				all	ChimeraX
