It wasn't that your script didn't work, it was my modified script that
didn't work (i.e. using the atom sites that correspond to the initial
min max positions in subsequent calls):
rotate best; # moved here
startZoom = 100;
zoom {visible} @startZoom;
# rotate best; # if done here the initial coords dont seem to be updated
margin=15;
c=0;
function getScreenBoundary(atomSet) {
if (atomSet.type == "bitset") {
var screenMinX = "";
var screenMaxX = "";
var screenMinY = "";
var screenMaxY = "";
var minXsite="";
var maxXsite="";
var minYsite="";
var maxYsite="";
for (var i from [1 atomSet.size]) {
var screenXYZ = point(atomSet[i].xyz, true);
if (screenMinX == "") {
screenMinX = screenXYZ.x;
screenMaxX = screenXYZ.x;
screenMinY = screenXYZ.y;
screenMaxY = screenXYZ.y;
minXsite=atomSet[i];
maxXsite=atomSet[i];
minYsite=atomSet[i];
maxYsite=atomSet[i];
} else {
if (screenXYZ.x<screenMinX) {
screenMinX=screenXYZ.x;
minXsite=atomSet[i];
}
if (screenXYZ.x>screenMaxX) {
screenMaxX=screenXYZ.x;
maxXsite=atomSet[i];
}
if (screenXYZ.y<screenMinY) {
screenMinY=screenXYZ.y;
minYsite=atomSet[i];
}
if (screenXYZ.y>screenMaxY) {
screenMaxY=screenXYZ.y;
maxYsite=atomSet[i];
}
}
}
return [screenMinX, screenMaxX, screenMinY, screenMaxY, minXsite,
maxXsite, minYsite, maxYsite];
}
}
sxInfo = getScreenBoundary({visible});
selectionHalos ON; # just to see whats selected
select @{sxInfo[5]}, @{sxInfo[6]}, @{sxInfo[7]}, @{sxInfo[8]};
while (sxInfo[2] < _width-margin && sxInfo[1] > margin && sxInfo[4] <
_height-margin && sxInfo[3] > margin ) {
zm=startZoom+c;
zoom {visible} @zm;
c=c+1;
if (c>100) {break;}
sxInfo = getScreenBoundary({selected});
}
print "c=" + c;
# extra translation to center the model horizontally (yuk)
rm=_width-sxInfo[2];
lm=sxInfo[1];
t=(rm-lm)/2;tp=t/_width*100;
translate x @tp;
print "c=" + c;
I was testing using the console and e.g.
http://publcif.iucr.org/cifmoldb/gui/cifjmol.php?jsmol=y&cifid=av1222
If I swap the position of 'rotate best' the selected atoms no longer
appear at the min max positions (at least in my browser)...
Cheers
Simon
Quoting Rolf Huehne <[email protected]>:
> Am 05.12.15 um 13:49 schrieb [email protected]:
>> Curiously this showed that the 'rotate best' needed to be done first
>> (before the initial zoom) otherwise the coordinates did not reflect
>> the rotated model.
>> Perhaps the subsequent zoom forces a refresh...
>>
> It seemed to work at least for my example '1DEH' also the other way
> round. Otherwise it must have been cropped because the initial view is
> quadratic and after rotate best one side is about twice as large as the
> other.
> Simon, can you name an example were it didn't work for you?
>
> Regards,
> Rolf
>
> ------------------------------------------------------------------------------
> Go from Idea to Many App Stores Faster with Intel(R) XDK
> Give your users amazing mobile app experiences with Intel(R) XDK.
> Use one codebase in this all-in-one HTML5 development environment.
> Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
> http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
> _______________________________________________
> Jmol-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jmol-users
>
------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
_______________________________________________
Jmol-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users