How is that different than what exists? Perhaps in that it is applied post-rotation? That would make it a bit simpler, assuming the offset can be large enough to place the label anywhere.

I think I could, with a little ugliness, make the current labels work if the offset could be > 127. Or,†I could use absolute scaling, try to figure out where the screen boundary approximately is in angstroms, and use that to draw an arrow from an echo to an atom. Anything that would reduce the ugliness would be good lol.


On Saturday, June 29, 2013, Robert Hanson wrote:
That's right. There isn't a way to draw from a fixed point on the screen to an atom. You might try a recent addition in relation to PyMOL. This is a much more general offset method that is used in PyMOL and I needed to implement in Jmol, so we have it as well now.

Do give this a try and let me know if it solves your problem:

new feature: PyMOL-like label offset options:
†† set labelOffset [sx, sy, sz]
†† set labelOffset [mode, sx, sy, sz, ax, ay, az]
†† sx,sy,sz are screen coord offsets
†† ††† ††† ††† ††† -- in Angstroms
††††††††††††††† -- applied after view rotation
††††††††††††††† -- sy > 0 LOWERS label
†† ax,ay,az are xyz position (in Angstroms; applied before view rotation)
†† mode == 1 indicates xyz position is an offset to the atom position
†† mode != 1 indicates xyz position is absolute
†† defaults: mode == 1; ax = ay = az = 0
Note that those sx sy sz are not in pixels, they are in angstroms. Also, I note that there is a bug that disallows label pointers with this sort of offset. Hmm....

On Sat, Jun 29, 2013 at 1:50 PM, James <> wrote:
Thanks Angel. I see that echo has almost everything. But, the reason I was trying to use labels is because they can have a line to an atom. After reviewing "draw ARROW" in the hopes that it could substitute for that line, I don't see that it is possible to draw from a 2D point (e.g., top left) to a 3D point (an atom). I tried assigning echo an ID and drawing from that to an atom, but (as I suspected - just hoping I could trick it) since echo isn't a draw object it doesn't work. I can't find a way to bridge that 2D/3D coordinate issue, which label does automatically.


On Saturday, June 29, 2013, Angel HerrŠez wrote:
Hello, James

By definition, labels are attached to atoms. That is why the distance cannot
be long.
>From your description, I don't think that labels are what you need. You have
"echo" for positioning text either in 2D screen space or in 3D molecular
coordinates, at arbitrary positions and with chosen alignment, even multi-line.


set echo myEcho1 0 50%; echo Hello;
† // windowLeft+windowMiddle, left flushed
set echo myEcho2 0 100%; echo Good Bye;
† // windowLeft+windowTop, left flushed
set echo myEcho3 15% 85%; set echo center; echo Another;
† // close to windowLeft+windowTop, center-justified
// note that text will never go out of screen, it will flush to the edge if needed

set echo myEcho4 0 100%; echo First Line;
set echo myEcho5 0 100%; echo "|Second Line"; †//no overlap due to the
initial newline (|)

This email is sponsored by Windows:

Build for Windows Store.
Jmol-users mailing list

James Ryley, PhD, Patent Agent
SumoBrain: Intellectual Property Solutions & Data
AcclaimIP | | |

This communication is confidential and may be subject to legal privilege.
Nothing contained herein should be construed as legal or patenting advice.

This email is sponsored by Windows:

Build for Windows Store.
Jmol-users mailing list

Robert M. Hanson
Larson-Anderson Professor of Chemistry
St. Olaf College
Northfield, MN

If nature does not answer first what we want,
it is better to take what answer we get.

-- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900