Opened 6 years ago

Last modified 6 years ago

#2580 assigned enhancement

Volume bounding box should contract with background

Reported by: Tristan Croll Owned by: Tom Goddard
Priority: normal Milestone:
Component: Volume Data Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-3.10.0-957.12.2.el7.x86_64-x86_64-with-centos-7.6.1810-Core
ChimeraX Version: 0.91 (2019-11-13)
Description
If a Volume's bounding box is displayed, it should probably automatically choose a colour that contrasts with the background. Currently it's always white.

Log:
UCSF ChimeraX version: 0.91 (2019-11-13)  
© 2016-2019 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> toolshed show Shell

/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/IPython/core/history.py:226: UserWarning: IPython History requires
SQLite, your history will not be saved  
warn("IPython History requires SQLite, your history will not be saved")  

> open
/run/media/tic20/storage/structure_dump/rohou/cd20/volume_97_1_sharp_8_3p18_m90_0_20_fom_z.mrc

Opened volume_97_1_sharp_8_3p18_m90_0_20_fom_z.mrc, grid size 310,310,310,
pixel 1, shown at level 0.0861, step 2, values float32  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
AttributeError: 'QContextMenuEvent' object has no attribute 'button'  
  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/qtconsole/console_widget.py", line 428, in eventFilter  
event.button() == QtCore.Qt.MidButton and \  
  
See log for complete Python traceback.  
  

> volume #1 showOutlineBox true

> set bgColor black

> set bgColor white

> set bgColor black




OpenGL version: 3.3.0 NVIDIA 415.27
OpenGL renderer: TITAN Xp/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Change History (2)

comment:1 by pett, 6 years ago

Component: UnassignedVolume Data
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionVolume bounding box should contract with background
Type: defectenhancement

comment:2 by Tom Goddard, 6 years ago

The default outline box color is white. Outline box color for specified volumes can be changed with the volume command (volume #1 outineboxrgb black). The setting is part of volume RenderingOptions and only handle explicit colors. Allowing the color to depend on the background would require tracking the background color changes. Alternatively could just use the background color when outline is created and not change if the background is changed. Smart background display would require the volume command be able to handle specifying smart color display as well as explicit colors. This is substantial work for a feature that is only of use to a tiny minority of users who use white background -- I know you like that. Maybe more feasible is there should be a way to save the volume defaults such as outline box color. We don't have that ability yet.

Note: See TracTickets for help on using tickets.