= Simple molecular graphics attributes for Feb 2015 Chimera 2 These are graphical molecular attributes that should be part of the C++ molecule classes or their base classes. "*" indicates something we may change in Chimera 2. == Atom == {{{ }}} == !BaseSphere (base class for Atom) == {{{ drawMode (Dot, Sphere, EndCap, Ball) }}} == Connectible (base class for !BaseSphere) == {{{ display (true/false) color }}} == Connection (base class for Bond/!PseudoBond) == {{{ display (true/false) drawMode (wire, stick, spring) radius color halfbond (color each half of bond to match near atom) }}} == Residue == {{{ ribbonDisplay (true/False) ribbonDrawMode (2D, edged, round, custom) ribbonColor ribbonXSection (for custom cross-sections) ribbonStyle (width and thickness scale factors, e.g. for worms) }}} == Chain == {{{ }}} == Molecule, also inherits from Model == {{{ ballScale (float, scale ball size in ball and stick) stickScale (float, scale factor for bond radius) ribbonType (bspline, cardinal) ribbonStiffness (float, interpolation parameter) ribbonSmoothing (strand | coil mask, to smooth specific secondary structures) ribbonInsideColor (for inside/outside dual coloring) ribbonHidesMainChain (true/false) residueLabelPositionMode (centroid, backbone, primary-atom) }}} == Model == {{{ display (true/false) color }}} == !PseudoBondGroup (global bond settings like Molecule) == {{{ stickScale (float, scale factor for bond radius) }}} == Changes == 7. Should color objects be immutable? Chimera 1 allows redefining a color and having all graphics objects using that color automatically update. Complex code. 8. How to handle different materials in addition to colors? 9. Keep color hierarchy (model->atom, model->ribbon)? What about surface colors?