Bob,
That's sort of what I thought. I think most of the pieces are
already in Jmol. Comments on your comments below.
On Dec 22, 2009, at 7:11 PM, Robert Hanson wrote:
> Jonathan, I think we are in pretty good shape already with measures,
> bounding boxes, and axes all being able to be set up with ticks and
> labels and such. So probably what we want to do for a "plot3D"
> object is simply allow an association of those with an isosurface. I
> don't know that we need anything else done with the isosurface itself.
>
> In general we probably need some setting that allows scaling to be
> done based on a surface. Perhaps:
>
> zoom $isosurfaceId 0
That seems like a good syntax to me. I assume the idea would be to
use the zoom on molecules on the surfaces.
>
> more comments below...
>
> On Sat, Dec 19, 2009 at 10:09 PM, Jonathan Gutow <[email protected]>
> wrote:
> I think these questions are primarily for Bob.
>
> I'm starting to look at the plot3D class and think about what would
> need to be extracted from surfaces provided as meshes/jvxl to plot and
> scale them. I haven't looked at this portion of the code in detail
> before so have a few questions:
>
> 1) As we load isosurfaces do we permanently store max and min values
> for each coordinate anywhere? So far I haven't found them stored in
> anything as long lived as the isosurface. I see a couple of places
> where the isosurface is read to determine these parameters. Do we
> want to do this everytime? Seems to me that for plotting purposes
> where we will be choosing scale based on this we should keep permanent
> records for each dimension.
>
> To date there hasn't been any real use for that, so it hasn't been
> calculated. (What you may be seeing is a report coming out of the
> atomDataReader for molecular surfaces and such.) But it would be
> easy enough to calculate from the vertex list.
>
> But it's easy enough -- just two Point3f values.
The question then is how costly a search of the vertices is this? If
it's cheap maybe we should just recalculate each time. This brings up
another thought. We don't have a way of just displaying a small
sphere/dot at each vertex without placing an atom at each do we?
Adding something like that to the isosurface command would be nice.
>
>
> 2) Other things I am considering to have in the plot3D object are:
> labels for each degree of freedom (for axes labels)
>
> I'm starting to wonder if we need a special object or not. Are you
> sure all this can't be done using a bounding box? Coordinates are
> the property of the applet in general, not a specific model or
> surface. And you can position a bounding box anywhere you want. I
> was hoping the bounding box object would suffice here. (But, yes, it
> could use labels as well, which it does not have right now.)
>
> I'm thinking something like
>
> boundbox $isosurface1
>
> that would instantly pop up an unscaled box that could be
> customized. Or maybe that would be
>
> isosurface1 boundbox .....
I think this might work.
>
>
> x:y:z aspect ratios (default 1:1:1 or so bounding box fills window?)
>
> This is all set for the bounding box now. Or, more generally,
> "measures" -- which can be positioned anywhere one wants. They can
> be scaled in any way you want and start at a given value as well.
Are we talking about the same thing here? The idea is that even if
the bound box is [(0,0,0),(1,1,1)] you could force the display of it
and the isosurface in the Jmol coordinates as [(0,0,0),(1,1,0.5)].
For some reason the SAGE people want to control how much axes are
squished or stretched versus each other rather than using the whole
available window.
>
> So maybe a plot3D object would simply allow for three perpendicular
> measures to be added easily.
>
>
> nticksmaj, nticksmin to specify the number of major and minor ticks
> number format for axes scales
>
> This is all set for bounding box and measures. major, minor, and
> subminor; string or number formats for axes scales are in.
>
>
> units for each axis
>
> Maybe units are just part of the label? Not all plots need units.
>
> 3) This has also got me thinking about a more general plot object.
> How about a generic plot object for objects of any number of
> dimensions? The basic idea is that you could specify which triple of
> dimensions to use for the x,y,z triplet and use a fourth dimension to
> specify a magnitude at a point (plotable as a color intensity, scaled
> spheres or used to produce an isosurface at some level), a fourth and
> fifth dimension to specify a complex value at a point (not sure how to
> plot that...scaled spheres of different colors?), or a fourth, fifth
> and sixth dimension to plot a vector field. The key idea being that
> we could choose the which triple, qradruple, pentuple or hextuple to
> plot out of any n-tuple.
>
> Yes, this is what Andy Hanson and I were working on this past
> summer. We haven't taken it further, but it's basically "Jmol-nD".
> The interesting thing to implement is 4-D rotations. :)
This would be a really cool addition and would make Jmol into a data
set slicer and dicer. I'm not clear why the n-D rotations are
difficult. Can't they always be broken down into a series of 2-D
rotations about properly selected axes?
Jonathan
Dr. Jonathan H. Gutow
Chemistry Department [email protected]
UW-Oshkosh Office:920-424-1326
800 Algoma Boulevard FAX:920-424-2042
Oshkosh, WI 54901
http://www.uwosh.edu/facstaff/gutow
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Jmol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers