#2137 closed defect (can't reproduce)
Volume set_parameters(cap_faces=False) no longer effective
Reported by: | Tristan Croll | Owned by: | Tom Goddard |
---|---|---|---|
Priority: | moderate | Milestone: | |
Component: | Surface | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
I think this is meant to be superseded by VolumeSurface.clip_cap = False
?
For an existing surface with clip_cap=True, setting clip_cap to False when the surface is clipped leaves the clipping plane drawn.
Change History (4)
comment:1 by , 6 years ago
Resolution: | → can't reproduce |
---|---|
Status: | assigned → closed |
follow-up: 2 comment:2 by , 6 years ago
Hmm... seems I've been misunderstanding all along what that argument was supposed to be doing. Anyway, the reason I raised the ticket is that recently each wireframe surface representation started drawing a solid opaque slab wherever the front clipping plane cuts through the contour. I think this is non-ideal in most cases - after all, the reason for having the wireframe in the first place is that you want to easily see through the map. Would it be better to set clip_cap to False for wireframe and True for solid/transparent surfaces? On 2019-06-28 19:01, ChimeraX wrote:
comment:3 by , 6 years ago
Currently whether clip caps are shown is not dependent on the style of what is display (mesh vs surface). To the user there there is only a single true/false setting to (command "surface cap true"). At the Python level there is a Drawing.clip_cap boolean value. That is used to disable caps on things that should never be capped, like outline boxes. The user interface gets a bit more complicated if the clip caps can be tri-state: on / off / depends on display style.
I agree that solid caps on mesh are ridiculous. I just looked at mesh caps on mesh -- better, but no caps is best. So I think the best plan is probably to show no caps on density map on mesh, with no option to enable caps for now.
comment:4 by , 6 years ago
Currently clip cap code does not have support to be notified when a model decides to change whether it has clip caps (e.g. when switching between mesh and surface styles). I think clip caps will need tighter integration with the graphics to do this cleanly, so that just setting drawing.clip_caps will cause the cap to update. Currently caps can only be turned on and off globally by the user. I'm not sure if I want to move capping into graphics -- it is pretty complex, and currently has been separated out in the surface module. This needs more evaluation.
I see that the current VolumeSurface model sets clip_cap = True every time it changes surface shape. I've moved that to the VolumeSurface constructor so it is possible to volume surfaces that are not capped "for s in v.surfaces: s.clip_cap = False".
I opened a map (emd 1080) set a low contour level and used v.set_parameters(cap_faces = False) from the Python shell and it worked as expected in the current build.
The Drawing.clip_cap attribute is unrelated to volume cap faces and is related to the behavior of clip planes. The box faces of a volume are not clip planes, they are just the boundary of the data.