That was on the user list -- I'm switching to developers until this is
rock solid.
First a comprehensive review of where this VISIBLE_FLAG is involved:
1. boolean Atom.isVisible()
- returns (formalChargeAndFlags & VISIBLE_FLAG) != 0
- called by
BitSet Frame.getVisibleSet()
- called by
BitSet ModelManager.getVisibleSet()
- called by
BitSet Viewer.getVisibleSet()
- called by
BitSet Eval.expression(...)
- called by
boolean ModelManager.getAtomVisibility(int i)
- called by
Hashtable ModelManager.getAtomInfo(int i)
- called by
Vector ModelManager.getAllAtomInfo(String atomExpression)
- called by
Vector Viewer.getAllAtomInfo(String atomExpression)
- called by
Object PropertyManager.getPropertyAsObject(...)
so this is all Bob's doing, specifically for delivering information to
the expression evaluator for scripting and to the browser via
getProperty("atomInfo"). (Prior to this, Atom.isVisible() was present,
just never accessed.)
2. boolean Atom.isCursorOnTopOfVisibleAtom()
- called by
void Balls.findNearestAtomIndex(int, int, Closest)
- called by
int Frame.FindNearestAtomIndex(int, int)
- called by
int ModelManager.FindNearestAtomIndex(int, int)
- called by
int Viewer.FindNearestAtomIndex(int, int)
- called by
MouseManager.HoverWatcher.run()
- called by
MouseManager.mouseClicked(...)
- called by
MouseManager.mouseMoved(...)
So this is Miguel's doing, specifically for delivering information to
the status line, displaying the hover business, doing atom picking,
measuring, etc.
3. VISIBLE_FLAG: 15 occurances in project
-class Atom: defined as 0x01
-accessed by boolean Atom.isVisible()
- called as above
-accessed by boolean Atom.isCursorOnTopOfVisibleAtom()
- called as above
-set by void BackboneRenderer.render1Chain(...)
based on display there
-set by void BallsRenderer.render()
based on current frame
-set by void BallsRenderer.render(Atom)
based on current mad/halo
-set by void NucleicMonomer.getBaseRing6Points(...)
- called by
void CartoonRenderer.renderNucleicBaseStep(...)
-set by void NucleicMonomer.maybeGetBaseRing5Points(...)
- called by
void CartoonRenderer.renderNucleicBaseStep(...)
-set by void StarRender.render1(Atom,short,short)
-set by void SticksRenderer.render(Bond)
3. observations:
zoom, translation, etc. have no effect on "select visible"
pretty much it does as advertised, with ONE exception:
The CartoonRenderer for nucleic acids is setting the VISIBLE flag so
that atoms of the base pairs still are clickable and respond to
mouse-overs for the hover. I makes reasonable sense to me. Like
backbone, these positions really are atom positions. So they really
are the only "visible" set. What this actually does is pass on the
responsibility of identifying atoms as visible to Balls.
I'm satisfied that we are OK here. Of all the protein shapes, only
two, backbone and cartoon (for nucleic acids only), display actual
atoms, and those atoms are coming in as visible.
Here's a recrafted documentation statement:
An atom is "visible" if the atom is in a displayed frame and one of
the following is true:
a. it has spacefill > 0
b. it has wireframe > 0
c. it has a halo highlight
d. it has a star highlight
e. it is part of a displayed backbone
f. it is part of a displayed nucleic acid base cartoon
Bob Hanson wrote:
I will investigate this fully and get back to all.
Bob
--
Robert M. Hanson, [EMAIL PROTECTED], 507-646-3107
Professor of Chemistry, St. Olaf College
1520 St. Olaf Ave., Northfield, MN 55057
mailto:[EMAIL PROTECTED]
http://www.stolaf.edu/people/hansonr
"Imagination is more important than knowledge." - Albert Einstein
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Jmol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers