Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#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 Tom Goddard, 6 years ago

Resolution: can't reproduce
Status: assignedclosed

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.

in reply to:  2 ; comment:2 by tic20@…, 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 Tom Goddard, 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 Tom Goddard, 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".

Note: See TracTickets for help on using tickets.