On 12/08/2015 03:28 AM, Robert Hanson wrote:
> The problem is that these commands actually go in and change settings, not
> just the current selection. I suppose the following would do it:
>
> function displayModel(atoms, mode) {
> var a = {selected}
> select @atoms
> switch (mode) {
> case "add":
> display add selected
> break
> case "remove":
> display remove selected
> break
> default:
> if (selectAllModels) {
> display selected
> } else {
> set selectAllModels true
> display displayed and modelIndex!=_modelIndex or selected
> set selectAllModels false
> }
> break
> }
> select @a
> }
>
> function hideModel(atoms, mode) {
> var a = {selected}
> select @atoms
> switch (mode) {
> case "add":
> display remove selected
> break
> case "remove":
> display add selected
> break
> default:
> if (selectAllModels) {
> hide selected
> } else {
> set selectAllModels true
> hide hidden and modelIndex!=_modelIndex or selected
> set selectAllModels false
> }
> break
> }
> select @a
> }
>
> Just a few coding comments:
>
Thank you for the functions and the comments, Bob.
>>
>> ----- 'display' command substitution ----------------
>> function getFileNumberList(atomBitset) {
>> if (atomBitset.type != "bitset") {
>> atomBitset = {visible};
>> }
>
>
> You can use _arguments.count here:
>
> if (!_arguments) atomBitset = {visible}
>
> var fileNumberInfo = atomBitset.file.all.count();
>> var fileNumberList = [];
>>
>> if (fileNumberInfo.type == "array") {
>> for (var i from [1, fileNumberInfo.size]) {
>> var fileNumber = fileNumberInfo[i].[1];
>> fileNumberList.push(fileNumber);
>> }
>> }
>> return fileNumberList;
>> }
>>
>
> not sure I see the need for the above
>
Q: Is there a simpler way to get all first array elements out of an
array of arrays?
Q: Or did you just mean that using '_modelIndex/modelIndex' would be
easier? ( As I said earlier, 'file' reflects more properly what I want
to achieve than 'modelIndex'.)
>
>
>
>> var atomExpressionUpperCase = ("" + atomExpression) % 9999; #
>> convert to upper case
>>
>
> This isn't really necessary; for historical reasons, Jmol "==" testing is
> not case-sensitive. If you want it to be, you need to use LIKE instead of
> "=="
>
Q: And the same is true for 'case' in 'switch' statements, as the
'displayModel' function above suggests?
>
>> if (atomExpressionUpperCase == "ADD" || atomExpressionUpperCase ==
>> "REMOVE") {
>> print "ERROR: no atom expression provided in call of 'display'
>> command or keyword '" + atomExpressionUpperCase + "' provided as second
>> parameter instead of first";
>> } else if (atomExpressionUpperCase == "BONDS") {
>> display BONDS;
>> } else {
>> if (oneParameter == false) {
>>
>
> here I would use
>
> if (keyword) {
>
> var keywordUpperCase = ("" + keyword) % 9999; # convert to upper
>> case
>> if (keywordUpperCase == "ADD" || kewordUpperCase == "REMOVE") {
>> atomExpression = keywordUpperCase + " " + atomExpression;
>> display @atomExpression;
>>
>
> I don't see how that would work;
>
>
Q: Does that mean that multiple parameters cannot be supplied to a
function in a single variable and it must have been 'display @keyword
@atomExpression' or 'dummy=script("display " + atomExpression)'? Or did
you mean something else?
Regards,
Rolf
--
Rolf Huehne
Postdoc
Leibniz Institute on Aging - Fritz Lipmann Institute (FLI)
Beutenbergstrasse 11
07745 Jena, Germany
Phone: +49 3641 65 6205
Fax: +49 3641 65 6210
E-Mail: [email protected]
Website: http://www.leibniz-fli.de
Scientific Director: Prof. Dr. K. Lenhard Rudolph
Head of Administration: Dr. Daniele Barthel
Chairman of Board of Trustees: Burkhard Zinner
VAT No: DE 153 925 464
Register of Associations: No. 230296, Amtsgericht Jena
Tax Number: 162/141/08228
------------------------------------------------------------------------------
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