Ah, good.
>What wasn't clear from Bob's explanation is how to map properties
>onto these isosurfaces, ala the MEP which Jmol computers from partial
>charge information. I have separate grid of data (identical grid
>points, of course) which I want to map onto my isosuface as a color
>gradient. Is this currently possible? Bob?
>
>
>
"identical grid points, of course" -- this is totally unnecessary. Jmol
does not use the same grid points, because that is the rare, special
case. Instead, it determines the surface, then reads the second set of
grid points and interpolates a data value from the second set.
The typical Jmol command would be
isosurface molecular map MEP
this would
1) create a monochromic molecular surface -- pretty much at the VDW radii.
2) create a grid based on partial charges contained in the file
3) map that grid as MEP onto the first surface.
Now, you say you have the two cube data sets. OK, if these were in
external files, we would just say:
isosurface "file1" map "file2"
but they are not in two files. So, what you need to do is use that
interface I described earlier. Sounds like you have been able to use
auxiliary data with the "jmolSurfaceInfo" ? Then what you need to do is
also add a "JmolMappedDataInfo" set just like it, I think. (Haven't
tried it -- figured I would leave that to you ;) Here's the code from
Eval.java. It is reading the
isosurface "" map ""
command -- so both file names are empty, indicating this is in
auxiliaryInfo already.
case Token.string:
propertyName = surfaceObjectSeen || planeSeen ? "mapColor" :
"getSurface";
surfaceObjectSeen = true;
/*
* a file name, optionally followed by an integer file index.
* OR empty. In that case, if the model auxiliary info has the
* data stored in it, we use that. There are two possible
structures:
*
* jmolSurfaceInfo
* jmolMappedDataInfo
*
* Both can be present, but if jmolMappedDataInfo is missing,
* then jmolSurfaceInfo is used by default.
*
*/
String filename = (String) token.value;
if (filename.length() == 0) {
if (surfaceObjectSeen || planeSeen)
propertyValue = viewer.getModelAuxiliaryInfo(modelIndex,
"jmolMappedDataInfo");
if (propertyValue == null)
propertyValue = viewer.getModelAuxiliaryInfo(modelIndex,
"jmolSurfaceInfo");
if (propertyValue != null)
break;
Thus, I think if you have set up auxiliaryInfo with both of these
structures, then the simple command
viewer.script("isosurface \"\" \"\" ")
should display a mapped dataset. You can add parameters to adjust the
cutoffs and coloration to your liking.
Bob
>Thanks again,
>JR Schmidt
>
>
>-------------------------------------------------------------------------
>Take Surveys. Earn Cash. Influence the Future of IT
>Join SourceForge.net's Techsay panel and you'll get the chance to share your
>opinions on IT & business topics through brief surveys -- and earn cash
>http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>_______________________________________________
>Jmol-developers mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/jmol-developers
>
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Jmol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers