-
Notifications
You must be signed in to change notification settings - Fork 2
/
MAGEHELP.c
2610 lines (2530 loc) · 96.7 KB
/
MAGEHELP.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*3456789_123456789_123456789_123456789_123456789_123456789_123456789_12345678*/
/* MAGEHELP.C */
#include "MAGE.h"
#include "MAGEMENU.h"
static char* magehelpstdout[] =
{"\r"
,"COMMANDLINE, NO GUI, postscript output of each animation view:\r"
,"mage filename.kin -postscript\r"
,"produces: filename.kin.1.eps , filename.kin.2.eps , ... for n animate views\r"
,"\r"
,"COMMANDLINE, NO GUI, meager help to standard out:\r"
,"mage -help\r"
,"\r"
,"COMMANDLINE, NO GUI, chronological list of changes to standard out:\r"
,"mage -changes\r"
,"\r"
,"for other help, help menu: use write-to-text-window, or write html file,\r"
,"or individual dialog-box help items on the help menu.\r"
,"\r"
,"STUFF NOT YET in other help: mage.6.57.121211...\r"
,"screen fixed NDIM7 parameter balllist radius= 0.0051, ringlist radius= 0.75\r"
,"works well with @scale 60.0 and suitefit42NDIM7.kin with @zoom 1.0\r"
,"note: list inherits screen from group.\r"
,"\r"
,"END\r"
};
static char* magekeywords[] =
{"\r"
,"keywords start with @\r"
,"alternates sometimes shown, but preferred form is listed first\r"
," @keyword {text characters} are those enclosed in {} \r"
,"See 'Properties' listing for object keyword parameters and point attributes\r"
,"--------text section------\r"
," @ of a real keyword must be first character of a new line\r"
," keywords here are set in by a space so this text can be read in Mage\r"
," @text starts text section\r"
," @mage #.## MAGE version (can come before @text), \r"
," only keyword recognized WITHIN text section\r"
," @kinemage # ESSENTIAL keyword to end text and start kinemage input\r"
,"--------------------------\r"
,"--------kinemage input----\r"
," # indicates an integer needed, #.## a floating point number.\r"
," @start control for reading from a sustained active pipe: start a frame\r"
," recognized by pipe handler code\r"
," @frame # frame number of image from a sustained active pipe, override \r"
," @finish control for reading from a sustained active pipe: finish a frame\r"
," @done control for reading from a sustained active pipe, close pipe \r"
,"\r"
," @mage #.##\r"
," @prekin #.##\r"
," @caption --->chars to caption until next recognized keyword---\r"
," @text --->any text appended until next recognized keyword (5_75+)\r"
,"\r"
," ---MAGE object hierarchy: group, subgroup, list, (sets of points) points\r"
," points can be in connected line sets, or specify triangles, spheres, etc.\r"
," @group {name} [parameters... all on one line...]\r"
," @subgroup {name} [parameters... all on one line...] (@set)\r"
," @____list {name} [parameters... all on one line...]\r"
," some type of list is ESSENTIAL for a kinemage\r"
," @vectorlist (@vector)\r"
," @labellist (@label)\r"
," @wordlist (@word)\r"
," @dotlist (@dot)\r"
," @balllist (@ball)\r"
," @spherelist (@sphere)\r"
," @trianglelist (@triangle)\r"
," @ribbonlist (@ribbon)\r"
," @arrowlist (@arrow)\r"
," @marklist (@mark)\r"
," @ringlist (@ring)\r"
," @fanlist (@fan)\r"
,"\r"
,"---MAGE points---follow @____list line on the next line \r"
,"{pointID} [attributes... separated by spaces, commas, new-lines, etc.] x y z\r"
,"--trailing triple: x,y,z defines scope of a point, x,y,z only required thing\r"
,"----table cells only: 'tablecell' or 'noxyz' can stand for triple\r"
,"Generally, list type determines meaning of all its points,\r"
," but point attributes can force different meanings within a list\r"
," for advanced, special purpose, complicated kinemages.\r"
,"\r"
," @kinemage # ends this kinemage input\r"
," @noscale\r"
," @scale #.##\r"
," @compare side-by-side of sequential animate groups, overrides stereo\r"
," stereo is reader's choice: menu and keyboard s key\r"
," @stereoangle #.## + for wall-eye, - for cross-eye, also under menu control\r"
," + vs - toggled by keyboard c key\r"
," @onewidth default is multiwidth, also menu control\r"
," @thinline\r"
," @perspective\r"
," @plotonly\r"
," @flat @xytranslation\r"
," @pickcenter\r"
," @zclipoff\r"
," @whitebackground (@whiteback) (@whitebkg)\r"
," @viewid {string} @1viewid {string}\r"
," @2viewid {string}\r"
," ...\r"
," @##viewid {string}\r"
," @zoom #.## @1zoom #.##\r"
," @2zoom #.##\r"
," ...\r"
," @##zoom #.##\r"
," @span #.## @1span #.##\r"
," @2span #.##\r"
," ...\r"
," @##span #.##\r"
," @center #.## #.## #.## @1center #.## #.## #.##\r"
," @2center #.## #.## #.##\r"
," ...\r"
," @##center #.## #.## #.##\r"
," @matrix #.## #.## #.## #.## #.## #.## #.## #.## #.## @1matrix ... \r"
," @2matrix #.## #.## #.## #.## #.## #.## #.## #.## #.##\r"
," ...\r"
," @##matrix #.## #.## #.## #.## #.## #.## #.## #.## #.##\r"
," @zslab # @1zslab # @zclip # @1zclip #\r"
," @2zslab # @2zclip #\r"
," ... ...\r"
," @##zslab # @##zclip #\r"
," @ztran # @1ztran #\r"
," @2ztran # \r"
," ...\r"
," @##ztran #\r"
," @size # # @1size # # : graphics width, height in pixels\r"
," @2size # #\r"
," ...\r"
," @##size # #\r"
,"\r"
," @localrotation #.## #.## #.## #.## #.## #.## #.## #.## #.## \r"
," a.k.a: @localrotat ... @localmatrix ...\r"
," @endlocalrotation @endlocalrot @endlocalmatrix\r"
," @localprecenter #.## #.## #.## @localcenter ... applied before matrix\r"
," @localpostcenter #.## #.## #.## applied after matrix\r"
," @endlocalcenter @endlocalcen @endlocalprecen @endlocalpostcen\r"
,"\r"
," @gnomon #.## #.## #.## #.## #.## #.## #.## #.## #.## #.## #.## #.##\r"
," place after the @group... line: to belong to that group\r"
," points on 3 axes and center (ok if each on separate line)\r"
," used by Docking routines to track change to a mobile group\r"
," MAGE will add to existing gnomon info or create anew if needed\r"
,"\r"
," @fontsizeinfo # @fontsizeinfo # \r"
," @fontsizelabels # @fontsizelabel # \r"
," @fontsizewords # @fontsizeword # \r"
," @tablefontsize # @fontsizetable # \r"
," @tableblackbkg black background (and blk bkg palette) for table\r"
," @tablewrap # number of columns across before wrap line below\r"
," @tablewrap auto-wrap first implemented in Java Mage\r"
," @tablewrapdecades auto-wrap # columns rounded down to 10's\r"
," @tablecolscale #.## scale calculated column width\r"
," @tablemarkradius #.## square marker radius for table selected graphics points\r"
," @tablefancore #.## inner radius of table value fan on graphics point\r"
," @tablefanradius #.## outer radius of table fan at a graphics point,\r"
," this is multiplied by point radius to represent the cell value\r"
,"\r"
," @beginselect keyword starts selection range, re: bondrot selection\r"
," @endselect keyword ends selection range, re: bondrot selection\r"
,"\r"
,"(@beginemphasis prototype use only: starts selected range of emphasis)\r"
,"(@endemphasis prototype use only: ends selected range of emphasis)\r"
,"\r"
," @listcolordominant @listcolordom usually point color is dominant: key 'l'\r"
," @lens #.## parameter of lens radius for lists marked \"lens\": key 'e'\r"
,"\r"
," @minutes #.## timed test of #.## minutes, results automatically written.\r"
," @drawline enables draw new function only for lines between points\r"
," @drawlabel enables draw new function only for labels (=pointID) at points\r"
," @drawball enables draw new function only for balls at points\r"
," (lines, labels, balls are inclusive! See list params answer & result: )\r"
," (scoring done only on answerlist type: limited to one type as of Sept 02)\r"
," @drawnew enables all draw new functions, useful for practice, etc. \r"
," (answer list without @minutes allows user to see scored result)\r"
," KINEMAGE menu items enabled to allow users to score and proceed in tests\r"
," @nosavealert NOT warn user about new drawings before doing next kinemage\r"
," @bigfonts sets toggle (w key) ON\r"
," @shortline #.## absolute amount to shorten each end of a new draw line\r"
,"\r"
," @comment {xxx yy z} character string just transfered unused to output \r"
," @command {xxx yy z} character string to be used for remote update cmd \r"
," @control creates a control button Lcontrol, which toggles Lcontrolon \r"
," @title {arbitrary kinemage title} \r"
," @copyright {date and author(s) } \r"
," @mapfile {filename.xmap} optional actual name to use for kin3Dcont\r"
," must be before any @group... line to apply to whole kinemage\r"
," @pdbfile {filename.pdb} optional actual name to use for prekin or probe\r"
," must be before any @group... line to apply to whole kinemage\r"
," @grouppdbfile {filename.pdb} specific group pdb to use for prekin or probe\r"
," must follow @group... line to apply to that group\r"
,"\r"
," --- masters ---\r"
," @colorset {name} color unique name and standard color as char strings\r"
," usage: @____list {listname} color= {name} ... anywhere in kinemage\r"
,"\r"
," @master {name} * forces named master buttons in inputed order\r"
," where * is one or more attributes optionally following {name}\r"
," \"indent\" \"space\" \"on\" \"off\" on off particular for pointmaster\r"
," @pointmaster 'C' {name} character 'C' associated with master= {name}\r"
," usage: {ptID} 'C' #.## #.## #.## \r"
,"\r"
," --- aspects ---\r"
," @1aspect {name-of-1st} (necessary to define for point aspect colors)\r"
," @2aspect {name-of-2nd}\r"
," ...\r"
," @26aspect {name-of-26th}\r"
," points can have up to 16 color-codes in parentheses (ABC...)\r"
," positions invoked as the order of the numbers # of @#aspect {name} \r"
," but each position can have any one of the 26 capital letter color codes\r"
," codes in MAGE-HELP/Make kinemage: Internally generated palette kinemage.\r"
", Use \"]\" and \"[\" keys to cycle through aspects.\r"
,"\r"
," @nowfind {string} invokes FIND, input on the fly from an appended file\r"
," e.g.append 3 lines to search for string: @start @nowfind {string} @finish \r"
," as outputed by File/Save Special/pointID to file\r"
,"\r"
," @parameter #.## get up to 10 parameters to play with, e.g. diffractometer\r"
,"\r"
,"@fullrgbpalette\r"
,"{ #} #, #, #, {comment} matches: File/Save Special/palette to file\r"
,"...\r"
," first # is 0-255 index of entry, then R,G,B 0-255, (comment ignored)\r"
," arbitrary number of entries, 251-254 ignored, entry color name NOT changed\r"
,"\r"
,"-----obselete or violating reader's prerogatives----------\r"
," (@float #.##)\r"
," (@integer #)\r"
," (@ignore) allowed kinemage file to also be a, e.g., PS300 CHAOS display file \r"
," (@keepstereo) valid reader's choice but over-ridden by author's compare \r"
," (@keepthinline) artifact as author's choice, reader can use keyboard 't'\r"
," (@keepperspective) (@keepperspec) artifact as author's choice, keyboard 'p'\r"
," (@specialps) obselete: PostScript output now on menu\r"
," (@projection) construct line length * 1/cos(angle): now menu choice\r"
," (@constructdot) construct line puts dot instead of a line: now menu choice\r"
," (@multibin (#)) obselete, no effect\r"
," (@zoomonly) obselete, no effect\r"
," (@sideclip) obselete, no effect\r"
,"\r"
,"END\r"
};
/*3456789_123456789_123456789_123456789_123456789_123456789_123456789_12345678*/
/*MAGESETS.c*/
/*interpretgroupkeyword(),interpretsubgroupkeyword(),interpretlistkeyword()*/
static char* mageobjectparameters[] =
{"\r"
,"--------mage group parameters------\r"
," @group {name} [param...]\r"
,"animate (*prefix)\r"
,"2animate (%prefix)\r"
,"off\r"
,"dominant (no buttons for member subgroups and lists)\r"
,"nobutton (for this group)\r"
,"recessiveon (dominant if off, recessive if on)\r"
,"collapsable collapsible synonyms for recessiveon\r"
,"master= {name} (common master name) (see NOTES)\r"
,"instance= {name} (name of a proceeding group) (see NOTES)\r"
,"clone= {name} (name of a proceeding group) (see NOTES)\r"
,"moview # (number of a Menu VIEW)\r"
,"lens (applied to member points)\r"
,"float (obselete now always do floating point perspective calc:\r"
," --- parameters for table groups ---\r"
,"table (members put into table, invokes Mage to make a table window)\r"
,"header (members are column headers of table: use labellist or wordlist)\r"
," (each table row is a group, uses labellist,wordlist,fanlist)\r"
," (point coords meaningless in a table: use \"tablecell\" for \"x,y,z\")\r"
," table pick picks graphics point with same pointID\r"
,"\r"
," SHOW any 3 of N-D points, select clusters and rearrange them. \r"
,"dimension=N groups show any 3 of N dimensions, up to 17 as of June06\r"
,"all points of lists given or inheriting dimension \r"
," must have same number of coordinates\r"
,"d1={name1} ignored after June06 (axis names for the dimensions) \r"
," use general keyword @dimensions {name1} {name2} ... up to N \r"
,"select (points in this group can be a color-selected set)\r"
,"wrap=360 (negative coords have 360 added to them)\r"
,"\r"
,"--------mage subgroup parameters------\r"
," @subgroup {name} [param...]\r"
,"off\r"
,"dominant (no buttons for member lists)\r"
,"nobutton (for this subgroup)\r"
,"recessiveon (dominant if off, recessive if on)\r"
,"collapsable collapsible synonyms for recessiveon\r"
,"master= {name} (common master name) (see NOTES)\r"
,"instance= {name} (name of a proceeding subgroup) (see NOTES)\r"
,"clone= {name} (name of a proceeding subgroup) (see NOTES)\r"
,"lens (applied to member points)\r"
,"\r"
," SHOW any 3 of N-D points, select clusters and rearrange them. \r"
,"dimension=N subgroups show any 3 of N dimensions, up to 17 as of June06\r"
,"all points of lists given or inheriting dimension \r"
," must have same number of coordinates\r"
,"for names: use general keyword @dimensions {name1} {name2} ... up to N \r"
,"select (points in this subgroup can be a color-selected set)\r"
,"wrap=360 (negative coords have 360 added to them)\r"
,"\r"
,"--------mage list types------\r"
,"vectorlist (Point x,y,z -->Line x,y,z -->Line x,y,z ...)\r"
,"labellist (pointID displayed at x,y,z)\r"
,"wordlist (<comment> ,inc. new lines, displayed at x,y,z)\r"
,"dotlist (line width # pixels at x,y,z\r"
,"balllist( (disk [highlight] [shortened lines], center at x,y,z)\r"
,"spherelist (stacked disks [highlight] [shortened lines] at x,y,z)\r"
,"trianglelist (filled-in triangle)\r"
,"ribbonlist (sets of 2 filled-in triangles have same normal)\r"
,"arrowlist (Tail point x,y,z -->Head x,y,z with 4 tines ...)\r"
,"marklist (screen-oriented squares around x,y,z)\r"
,"ringlist (screen-oriented annulus around x,y,z)\r"
,"fanlist (table member: screen-oriented, weighted feathers)\r"
," (weighted feathers radiate from x,y,z of asociated graphics point)\r"
," (@tablefancore #.## inner radius of table value fan on graphics point\r"
," (@tablefanradius #.## outer radius of table fan at a graphics point,\r"
,"\r"
,"--------mage list parameters------\r"
," @_____list {name} [param...]\r"
,"off\r"
,"nobutton (for this list)\r"
,"\r"
,"answer (list used as answer key with @minutes timed test)\r"
," (answer dominant nobutton off (hide answer key from user))\r"
," (answer must have point types of lines, labels, balls as test asks)\r"
," (answer list can be made with drawnew function in Mage.)\r"
," (see @minutes, @drawline, @drawlabel, @drawball ... )\r"
,"result (list from drawnew of an earlier mage run to be scored vs. answer)\r"
,"\r"
,"color= name colour= name (mage palette named colors)\r"
,"master= {name} (common master name) (see NOTES)\r"
,"instance= {name} (name of a proceeding list) (see NOTES)\r"
,"clone= {name} (name of a proceeding list) (see NOTES)\r"
,"lens (applied to member points)\r"
,"detail\r"
,"radius= # (ball, sphere, mark, ring, arrow-head vane length)\r"
,"angle= # (arrow-head tine angle)\r"
,"width= # (pixel width of lines)\r"
,"static (dynamic rotations not applied to members of this list)\r"
,"nozclip (applied to points in this list)\r"
,"nohi nohighlight\r"
,"face (for characters in wordlist)\r"
,"font (for characters in wordlist)\r"
,"size (for characters in wordlist)\r"
,"\r"
," SHOW any 3 of N-D points, select clusters and rearrange them. \r"
,"dimension=N lists show any 3 of N dimensions, up to 17 as of June06\r"
,"all points of lists given or inheriting dimension \r"
," must have same number of coordinates\r"
,"for names: use general keyword @dimensions {name1} {name2} ... up to N \r"
,"select (points in this list can be a color-selected set)\r"
,"wrap=360 (negative coords have 360 added to them)\r"
,"\r"
,"--------list parameters for bond rotations--------\r"
,"see @beginselect and @endselect for artificial scope\r"
," otherwise scope of bondrot is from first point of list to last point\r"
," before bondrot of equal or lower number, or end of file \r"
," Starting angle is arbitrary as far as MAGE is concerned,\r"
," should be actual dihedral\r"
," Ganged rotations distinguished by listname\r"
,"(phirotation) obselete March 2002 (flags a ganged rotation)\r"
,"bondrot #.# (starting angle, one of ganged rotations)\r"
,"0bondrot #.# (starting angle, trunk) \r"
,"1bondrot #.# (starting angle, first branch)\r"
,"2bondrot #.# (starting angle, later branch)\r"
,"3bondrot #.# (starting angle, ...)\r"
,"4bondrot #.# (starting angle)\r"
,"5bondrot #.# (starting angle)\r"
,"6bondrot #.# (starting angle)\r"
,"7bondrot #.# (starting angle)\r"
,"8bondrot #.# (starting angle)\r"
,"9bondrot #.# (starting angle)\r"
," March 2002: recognize up to 20bondrot levels, accept up to 100 bondrots\r"
," (99bondrot prototype for monotonically continuing branch from last n)\r"
,"parameter (Lbrotoption 1)\r"
,"precession (Lbrotoption 2)\r"
,"selection (Lbrotoption 3)\r"
,"xrotation (Lbrotoption 4)\r"
,"yrotation (Lbrotoption 5)\r"
,"zrotation (Lbrotoption 6)\r"
,"xtranslation (Lbrotoption 7)\r"
,"ytranslation (Lbrotoption 8)\r"
,"ztranslation (Lbrotoption 9)\r"
,"samescope2 (2 bondrots have the same scope as first of 2)\r"
,"samescopt3 (3 bondrots have the same scope as first of 3)\r"
,"samescope4 (4 bondrots have the same scope as first of 4)\r"
,"hplot (bondrot value plotted horizontally)\r"
,"vplot (bondrot value plotted vertically)\r"
,"zplot (bondrot value plotted in&out, perpendicular to screen)\r"
,"pattern c... (MAXBONDPATT==37 characters== 0...A or R,Y,G on UNIX slider)\r"
,"phirotation (Lbrotoption 10 ganged rotation of same-named bondrot lists)\r"
,"\r"
,"--------mage point attributes------\r"
,"point attributes are usually separated by white space\r"
,"as a matter of style and ease of editing, do separate all by white space\r"
,"but sometimes worth maximal compression to use storage, transmission, etc.\r"
,"thus whitespace as separator and as field delineator a bit tricky.\r"
,"----------points---follow @____list line on the next line: \r"
,"{pointID} [attributes...separated by spaces, commas, new-lines, etc.] x y z\r"
,"{ final } does not require white space before next attribute.\r"
,"--trailing triple: x,y,z defines scope of a point, x,y,z only required item\r"
,"x y z fields delineated by non-numeric whitespace blank , ; : cr lf tab \r"
,"----table cells only: 'tablecell' or 'noxyz' can stand for triple\r"
,"<comment> saved and outputted for all point types\r"
," written to screen for wordlists, written in cell in table groups\r"
," if present, written in lower left screen when label is picked\r"
,"--------single character flags, all except P need trailing white space\r"
," P defines new beginning of Point-->Line-->Line-->...polyline in vectorlist\r"
," P synonyms are p M m i.e. in Move-->Draw, exception: P ends itself\r"
," presumed for first point of a vectorlist. L for 'Line' not essential.\r"
," L synonyms are l D d \r"
," U (or u) flags point as unpickable, see menu superpick item\r"
," B (or b) ball at this point in a vectorlist\r"
," S (or s) sphere at this point in a vectorlist\r"
," R (or r) screen oriented ring at this point in a vectorlist\r"
," Q (or q) screen oriented square at this point in a vectorlist\r"
," A (or a) arrow on this point of a vectorlist\r"
," T (or t) point is interpreted as part of a triangle in a vectorlist\r"
," X (or x) point is new start of an independent triangle in a trianglelist\r"
,"\r"
," 'C' single quotes around character(s) identifying pointmaster(s),\r"
," case sensitive, declare before use earlier in kinemage\r"
," to avoid single char master name or master-name conflict:\r"
," @pointmaster 'C' {name} character 'C' associated with master= {name}\r"
,"\r"
,"--------multiple character attributes------- need surrounding white space\r"
," colorname any of mage palette color names;\r"
," colorname! (exclaimation point) forces use of point color.\r"
,"\r"
," width1 (or thin) for forced one pixel wide lines\r"
," width2 (width#, where #= 1...7) forced # pixel wide lines\r"
," Effective pen width = line width specified by point width or list width\r"
," where point width is dominant over list width setting.\r"
," When not specified, multi-width mode uses pen width for depth cueing\r"
," but some display objects (rings and marks) default to a const.\r"
,"\r"
," r= f point radius for points that are balls, spheres, rings, etc,\r"
," also used for arrow vane length (vane angle is list angle).\r"
,"\r"
," dummy (or DUMMY) point is NOT used for setting min,max x,y,z extents\r"
," tablecell (or noxyz or NOXYZ) substitutes for x, y, z triple \r"
," ghost (or GHOST) point is seen but not in special output (like PDB) \r"
,"\r"
,"NOTES:\r"
," master:\r"
,"The same master can refer to groups,subgroups,lists, each of which can\r"
,"have multiple masters, but only 32 unique masters total.\r"
,"Multiple masters are restrictive: all have to be ON for object to be ON\r"
," instance:\r"
,"Object merely redisplayed at original coordinates, color can be different\r"
,"but inherits masters, etc.\r"
," clone:\r"
,"Object actually copied, can have changed coords, etc. new object in output.\r"
,"\r"
,"mage commandline options:\r"
,"COMMANDLINE, NO GUI, postscript output of each animation view:\r"
,"mage filename.kin -postscript\r"
,"produces: filename.kin.1.eps , filename.kin.2.eps , ... for n animate views\r"
,"\r"
,"COMMANDLINE, NO GUI, meager help to standard out:\r"
,"mage -help\r"
,"\r"
,"COMMANDLINE, NO GUI, chronological list of changes to standard out:\r"
,"mage -changes\r"
,"\r"
,"COMMANDLINE options along with GUI:\r"
,"-fontinfo dumps font possibilities to UNIX console\r"
,"-medium forces use of meduim font for menus, dialogs, text: OK 1024x768\r"
,"-large forces use of largest font: TOO BIG FOR <= 1024x768 SCREEN!\r"
,"-macular == -jeremy chooses medium or large font based on screen size\r"
,"-small forces use of small font, the old default (before 031127)\r"
,"\r"
,"\r"
,"Capture the foo (besides game mode)\r"
,"menu:Tools/Kludges/foo in cavity\r"
,"Pick point for initial foo, grow in cavity, surface the foo.\r"
,"Foo will coat a surface, and not puff out into the void.\r"
,"Note: use Show Object Properties: group ignorable (by the foo).\r"
,"For proper VdW size use: prekin -atomradii ...\r"
,"\r"
,"END\r"
};
/*3456789_123456789_123456789_123456789_123456789_123456789_123456789_12345678*/
static char* magehypertext[] =
{"\r"
,"--------mage hypertext help------\r"
," The hypertext capabilities of MAGE text has two interrelated functions.\r"
," One is for a system of questions presented to the reader that are each \r"
,"answered in a dialog box that gives the reader access to information from \r"
,"the most recently picked points.\r"
," The other is facility to instruct MAGE to move around in the kinemage \r"
,"by jumps to specific kinemages and views, find pointID text strings, turn \r"
,"on and off masters, and reset bond rotations. Of course, these moves can \r"
,"be part of a scheme of questions. However, they confer an enormous power \r"
,"to the reader, particularly because the text, including the hypertext, can \r"
,"be edited during the session! \r"
#ifndef OLD68KMAC /*defined in MAGE.h*/
," For Questions, kinemage number and View number are carried forward from \r"
,"the last time they were set during the linear input of the TEXT window \r"
,"material. Thus kinemage and view can be presumed for the go-to-graphics \r"
,"option of a new question. However, if these are to re-defined for the \r"
,"current question, this must be done before any master-button or FIND \r"
,"controls are specified. This dependence on the order of controls is \r"
,"NOT hypertext-like and might frustrate the reader/lecturer if they try to \r"
,"jump around in the text. The author must balance readability and flow \r"
,"of the text with robustness. \r"
,"\r"
,"Format: starts with '*{' includes [options] ends with '}*' \r"
,"Questions start with Q: but Mage keeps track of the question number. \r"
,"*{Q: text of question... }* \r"
,"Thus, if the second question in the kinemage is:\r"
,"*{Q: Which is the active Ser?}* \r"
,"Mage shows this in the text, with room for the answer in the underlined space\r"
,"*{Q: 2 Which is the active Ser?}*___________________________ \r"
,"\r"
,"Change instructions to Mage include:\r"
,"*{kinemage #, view #, alloff, master={name} on, find {string} }* \r"
,"abreviations: kinemage kin k, view v, master m, find f\r"
,"'alloff' turns all masters off, masters are individually set 'on' or 'off' \r"
,"\r"
,"Bond rotations can be set (and edited and reset!):\r"
,"*{rot={name 1} #.#, rot={name 2} #.# ...}* abr: 'rot=','rot ','r ' \r"
,"where 'name 1' == the bondrot identifier string seen on the slider bar\r"
,"and #.# is the new value for that rotation angle\r"
,"If Update by PROBE active, hypertext 'rot' triggers an update.\r"
,"PREKIN after version 5.74 makes hypertext commands\r"
," for rot/mutated residues\r"
,"\r"
#else
,"--old 68K Mac has limited text here--\r"
#endif
,"END\r"
};
/*3456789_123456789_123456789_123456789_123456789_123456789_123456789_12345678*/
static char* magedocking[] =
{"\r"
,"---mage docking help------Visual based docking and superposition----\r"
,"Tools menu item: 'Docking Scope' sets what ever groups currently 'ON'\r"
,"to be mobile (they must be contiguous in the kinemage data structure) while \r"
,"all other groups become the stabile, reference set.\r"
,"(One can still set up by hand appropriate bond rotation/translation commands\r"
," in the kinemage file itself as once was the only way to do docking.)\r"
,"A set of sliders appears in the far right panel which move the \r"
,"mobile set relative to the reference set.\r"
,"Less precise but more facile: holding down the shift key will restrict \r"
,"drag motions to move only the mobile group.\r"
,"Holding down the ctrl (PC:alt) key does xy scrolling instead of rotations\r"
,"thus, holding down both shift and ctrl keys scrolls the mobile group(s)\r"
,"relative to the reference set.\r"
,"The saved kinemage has the modified coordinates of the mobile set.\r"
,"The slider values are not updated by the mouse docking operations and\r"
,"resetting the sliders does NOT reset the docking changes. However, MAGE\r"
,"saves the relative changes with each mobile group and outputs\r"
,"a keyword entry that can be used to externally reproduce the docking.\r"
," @gnomon #.## #.## #.## #.## #.## #.## #.## #.## #.## #.## #.## #.##\r"
," place after the @group... line: to belong to that group\r"
," points on 3 axes and center (ok if each on separate line)\r"
," used by Docking routines to track change to a mobile group\r"
," MAGE will add to existing gnomon info or create anew if needed\r"
,"(Since a kinemage can be made from either a subset or superset of the \r"
,"information in a PDB coordinate file, there is no general translation from\r"
,"a modified kinemage to a modified PDB file.)\r"
,"\r"
#ifndef OLD68KMAC /*defined in MAGE.h*/
," Three point docking onto 3 selected points in the reference group(s)\r"
,"of another 3 points selected in the mobile group(s), is accessed through\r"
,"[Edit/Draw New] which puts up a dock3on3 button in the side panel.\r"
,"Activating dock3on3 empowers the next 3 picked points to be references\r"
,"for the final 3 (6 total) to be moved. The scheme is the 1st mobile point\r"
,"of a set of 3 is moved onto the first point in the reference set, the 2nd\r"
,"is put onto the line defined by reference points 1 and 2, and the \r"
,"3rd point is swung around to point toward reference point 3.\r"
,"The entire set of points in the mobile groups are moved by these rules.\r"
," Mage is oblivious to how these points are actually picked, so they can\r"
,"be picked on anything in the display, and the docking will be done as if \r"
,"they were real points in the reference and mobile groups.\r"
,"\r"
,"Small PROBE contact analysis update requires inventing the appropriate\r"
," command line, also requires the pointIDs of the mobile groups to contain \r"
," PDB information needed by PROBE. Mage takes the first 15 characters\r"
," of each point's pointID and invents a PDB ATOM record with x,y,z,occ,B\r"
," The essential parts of that 15 character segment are:\r"
," 4 character atom name in positions 0,1,2,3\r"
," 3 char residue name positions 5,6,7\r"
," up to 4 char right-justified integer residue number in 10,11,12,13\r"
," position 14 is a blank. Any further characters of pointID are ignored.\r"
,"\r"
," Generic command for internal contacts of a docking scope group is )\r"
,"probe -quiet -self all -\r"
," Command for interactions between atoms of that scope and other things\r"
," is not generated automatically, see probe -h or a commandline generated\r"
," for a bond rotation situation.\r"
,"\r"
#else
,"--old 68K Mac has limited text here--\r"
#endif
,"END\r"
};
/*3456789_123456789_123456789_123456789_123456789_123456789_123456789_12345678*/
static char* mageremote[] =
{"\r"
,"UNIX: two instances of mage can communicate through sockets, either across \r"
,"the web by URL addresses or between two Mages running on the same computer.\r"
#ifndef OLD68KMAC /*defined in MAGE.h*/
,"There are two modes: \r"
,"Colaboratory Mode where identical kinemages are running on remote computers\r"
,"and viewing operations, picks, zooms, views, etc. are sent between so that\r"
,"the two identical kinemages are displayed identically. Each mage transmits\r"
,"to the other, and a ghost of the others cursor is also displayed.\r"
,"\r"
,"Correlation Mode: where different kinemages showing the same data are shown\r"
,"on two instances of Mage, most likely on the same computer. Kinemages\r"
,"showing different mappings of the data are correlated by identical pointIDs\r"
,"on corresponding data points. The view points are in general different\r"
,"and the only information transmitted between the mage instances is the\r"
,"pointID that triggers a search for that exact set of characters in the\r"
,"receiving mage. \r"
," This mode was developed to correlate RNA and DNA backbone\r"
,"angle data plotted according to different combinations of the 6 backbone\r"
,"dihedral angles in sets of 3. An additional feature sends the Up-Arrow\r"
,"trigger and that mage's current 3 angles to the remote mage to trigger its\r"
,"own simulated Up-Arrow translation of the current mutually picked point's\r"
,"angles to be set in a real-space 3D model with rotatable dihedrals.\r"
,"(Note that the receiving mage gets all 6 angles, 3 from its own data point \r"
,"and 3 from the sending mage's data point. The sending mage only can set\r"
,"its own 3 angles in its model. So to get both models into identical\r"
,"conformations, one needs to hit the Up-Arrow in the second mage and send\r"
,"back information to the first mage.)\r"
,"This only works if the real coordinate 3D models are identical kinemages\r"
,"in so far as the order of bond rotations, they will differ in which angles\r"
,"are designated as hplot, vplot, zplot.\r"
,"\r"
," Two markers, the usual Mage default, confuse which point in one\r"
,"Mage matches the point in the other (despite that the 1st and 2nd markers\r"
,"are slightly differently shaped objects). There is a Single_Marker mode\r"
,"selectable under the Tools Menu that shows only the first marker.\r"
,"\r"
,"Setup for two communicating instances of Mage: load the kinemages, then\r"
,"Invoke two times in each Mage: Tools/Remote Update... Dialog Box:\r"
,"First: choose: \"initiate a socket server to receive from any remote mage\"\r"
,"if running both on the same computer: one gets to be 1st, the other, 2nd\r"
,"also can choose \"pointID search\" for correlated kinemages.\r"
,"OK that box, and set up the second mage the same way.\r"
,"Then again: Tools/Remote Update... Dialog Box: \r"
,"choose: \"initiate a socket client to send to a named remote mage\"\r"
,"This brings up a Dialog Box in which to\r"
,"\"Name a computer to which to send mage update stuff\"\r"
,"This is the URL of the computer remote to this instance of mage.\r"
,"When running both mages on the same computer, the URL will work if the \r"
,"computer is hooked to the internet, otherwise name it as \"localhost\"\r"
,"Also, when running on the same computer it works better to set the\r"
,"designated 2nd mage at each step before setting the designated 1st mage.\r"
,"(Mage reports socket port settings in the terminal where mage was invoked.)\r"
,"\r"
#else
,"--old 68K Mac has limited text here--\r"
#endif
,"END\r"
};
/*3456789_123456789_123456789_123456789_123456789_123456789_123456789_12345678*/
static char* magehelp[] =
{"\r"
,"--------mage general help------\r"
,"helpless\r"
,"END\r"
};
/*
showing the present colors. The set of 13 colors that span the hues around a spectral color-wheel are laid out at left. Gray is the most neutral to use along with a color scale (as, for instance, in the palette). Colors must be called by name in the kinemage files. Rotate to see the five levels of color depth-cuing.\r"
,"Choose the 'white backgrd' differently defined there: depth cuing is then by saturation rather than intensity; both 'white' and the default become black; and pinktint, bluetint, etc. become dark rather than pale colors.\r"
*/
/*040612 need more space between colorcode and color name for PC big font*/
/* del x of ~.5 compromise, in Group {labels}*/
static char* magepalette[] =
{"@caption\r"
,"Palette test, \r"
,"@onewidth\r"
,"@viewid {magepalette}\r"
,"@zoom 1.00\r"
,"@zslab 180\r"
,"@ztran 0\r"
,"@center 3.000 -3.000 0.000\r"
,"@matrix 1.00000 -0.00000 0.00000 0.00000 0.99920 -0.03999 0.00000 0.03999 0.99920\r"
,"@zclip 180\r"
,"@group {colors}\r"
,"@vectorlist {deadblack} color=black\r"
,"{blk1}P -8 -16 10 {blk2} 2 -16 10\r"
,"{blk1}P -8 -16 5 {blk2} 2 -16 5\r"
,"{blk1}P -8 -16 0 {blk2} 2 -16 0\r"
,"{blk1}P -8 -16 -5 {blk2} 2 -16 -5\r"
,"{blk1}P -8 -16 -10 {blk2} 2 -16 -10\r"
,"@vectorlist {red} color=red \r"
,"{r1}P -8 -14 10 {r2} 2 -14 10 \r"
,"{r1}P -8 -14 5 {r2} 2 -14 5 \r"
,"{r1}P -8 -14 0 {r2} 2 -14 0 \r"
,"{r1}P -8 -14 -5 {r2} 2 -14 -5 \r"
,"{r1}P -8 -14 -10 {r2} 2 -14 -10 \r"
,"@vectorlist {orange} color=orange\r"
,"{or1}P -8 -12 10 {or2} 2 -12 10\r"
,"{or1}P -8 -12 5 {or2} 2 -12 5\r"
,"{or1}P -8 -12 0 {or2} 2 -12 0\r"
,"{or1}P -8 -12 -5 {or2} 2 -12 -5\r"
,"{or1}P -8 -12 -10 {or2} 2 -12 -10\r"
,"@vectorlist {gold} color=gold\r"
,"{gold1}P -8 -10 10 {gold2} 2 -10 10\r"
,"{gold1}P -8 -10 5 {gold2} 2 -10 5\r"
,"{gold1}P -8 -10 0 {gold2} 2 -10 0\r"
,"{gold1}P -8 -10 -5 {gold2} 2 -10 -5\r"
,"{gold1}P -8 -10 -10 {gold2} 2 -10 -10\r"
,"@vectorlist {yellow} color=yellow\r"
,"{y1}P -8 -8 10 {y2} 2 -8 10 \r"
,"{y1}P -8 -8 5 {y2} 2 -8 5 \r"
,"{y1}P -8 -8 0 {y2} 2 -8 0 \r"
,"{y1}P -8 -8 -5 {y2} 2 -8 -5 \r"
,"{y1}P -8 -8 -10 {y2} 2 -8 -10 \r"
,"@vectorlist {lime} color=lime\r"
,"{l1}P -8 -6 10 {l2} 2 -6 10\r"
,"{l1}P -8 -6 5 {l2} 2 -6 5\r"
,"{l1}P -8 -6 0 {l2} 2 -6 0\r"
,"{l1}P -8 -6 -5 {l2} 2 -6 -5\r"
,"{l1}P -8 -6 -10 {l2} 2 -6 -10\r"
,"@vectorlist {green} color=green\r"
,"{g1}P -8 -4 10 {g2} 2 -4 10\r"
,"{g1}P -8 -4 5 {g2} 2 -4 5\r"
,"{g1}P -8 -4 0 {g2} 2 -4 0\r"
,"{g1}P -8 -4 -5 {g2} 2 -4 -5\r"
,"{g1}P -8 -4 -10 {g2} 2 -4 -10\r"
,"@vectorlist {sea} color=sea\r"
,"{sea1}P -8 -2 10 {sea2} 2 -2 10 \r"
,"{sea1}P -8 -2 5 {sea2} 2 -2 5 \r"
,"{sea1}P -8 -2 0 {sea2} 2 -2 0 \r"
,"{sea1}P -8 -2 -5 {sea2} 2 -2 -5 \r"
,"{sea1}P -8 -2 -10 {sea2} 2 -2 -10 \r"
,"@vectorlist {cyan} color=cyan\r"
,"{c1}P -8 0 10 {c2} 2 0 10 \r"
,"{c1}P -8 0 5 {c2} 2 0 5 \r"
,"{c1}P -8 0 0 {c2} 2 0 0 \r"
,"{c1}P -8 0 -5 {c2} 2 0 -5 \r"
,"{c1}P -8 0 -10 {c2} 2 0 -10 \r"
," @vectorlist {sky} color=sky\r"
,"{sky1}P -8 2 10 {sky2} 2 2 10 \r"
,"{sky1}P -8 2 5 {sky2} 2 2 5 \r"
,"{sky1}P -8 2 0 {sky2} 2 2 0 \r"
,"{sky1}P -8 2 -5 {sky2} 2 2 -5 \r"
,"{sky1}P -8 2 -10 {sky2} 2 2 -10\r"
,"@vectorlist {blue} color=blue\r"
,"{b1}P -8 4 10 {b2} 2 4 10 \r"
,"{b1}P -8 4 5 {b2} 2 4 5 \r"
,"{b1}P -8 4 0 {b2} 2 4 0 \r"
,"{b1}P -8 4 -5 {b2} 2 4 -5 \r"
,"{b1}P -8 4 -10 {b2} 2 4 -10 \r"
,"@vectorlist {purple} color=purple\r"
,"{pur1}P -8 6 10 {pur2} 2 6 10\r"
,"{pur1}P -8 6 5 {pur2} 2 6 5\r"
,"{pur1}P -8 6 0 {pur2} 2 6 0\r"
,"{pur1}P -8 6 -5 {pur2} 2 6 -5\r"
,"{pur1}P -8 6 -10 {pur2} 2 6 -10\r"
,"@vectorlist {magenta} color= magenta\r"
,"{m1}P -8 8 10 {m2} 2 8 10\r"
,"{m1}P -8 8 5 {m2} 2 8 5\r"
,"{m1}P -8 8 0 {m2} 2 8 0\r"
,"{m1}P -8 8 -5 {m2} 2 8 -5\r"
,"{m1}P -8 8 -10 {m2} 2 8 -10\r"
,"@vectorlist {hotpink} color=hotpink\r"
,"{hotp1}P -8 10 10 {hotp2} 2 10 10\r"
,"{hotp1}P -8 10 5 {hotp2} 2 10 5\r"
,"{hotp1}P -8 10 0 {hotp2} 2 10 0\r"
,"{hotp1}P -8 10 -5 {hotp2} 2 10 -5\r"
,"{hotp1}P -8 10 -10 {hotp2} 2 10 -10\r"
,"@vectorlist {pink} color=pink\r"
,"{pk1}P 6 10 10 {pk2}16 10 10\r"
,"{pk1}P 6 10 5 {pk2}16 10 5\r"
,"{pk1}P 6 10 0 {pk2}16 10 0\r"
,"{pk1}P 6 10 -5 {pk2}16 10 -5\r"
,"{pk1}P 6 10 -10 {pk2}16 10 -10\r"
,"@vectorlist {lilac} color=lilac\r"
,"{lilac1}P 6 8 10 {lilac2} 16 8 10\r"
,"{lilac1}P 6 8 5 {lilac2} 16 8 5\r"
,"{lilac1}P 6 8 0 {lilac2} 16 8 0\r"
,"{lilac1}P 6 8 -5 {lilac2} 16 8 -5\r"
,"{lilac1}P 6 8 -10 {lilac2} 16 8 -10\r"
,"@vectorlist {peach} color=peach\r"
,"{peach1}P 6 6 10 {peach2} 16 6 10\r"
,"{peach1}P 6 6 5 {peach2} 16 6 5\r"
,"{peach1}P 6 6 0 {peach2} 16 6 0\r"
,"{peach1}P 6 6 -5 {peach2} 16 6 -5\r"
,"{peach1}P 6 6 -10 {peach2} 16 6 -10\r"
,"@vectorlist {peachtint} color=peachtint\r"
,"{pcht1}P 6 4 10 {pcht2}16 4 10\r"
,"{pcht1}P 6 4 5 {pcht2}16 4 5\r"
,"{pcht1}P 6 4 0 {pcht2}16 4 0\r"
,"{pcht1}P 6 4 -5 {pcht2}16 4 -5\r"
,"{pcht1}P 6 4 -10 {pcht2}16 4 -10\r"
,"@vectorlist {yellowtint} color=yellowtint\r"
,"{yt3}P 6 2 10 {yt4} 16 2 10\r"
,"{yt3}P 6 2 5 {yt4} 16 2 5\r"
,"{yt3}P 6 2 0 {yt4} 16 2 0\r"
,"{yt3}P 6 2 -5 {yt4} 16 2 -5\r"
,"{yt3}P 6 2 -10 {yt4} 16 2 -10\r"
,"@vectorlist {greentint} color=greentint\r"
,"{gt1}P 6 0 10 {gt2} 16 0 10\r"
,"{gt1}P 6 0 5 {gt2} 16 0 5\r"
,"{gt1}P 6 0 0 {gt2} 16 0 0\r"
,"{gt1}P 6 0 -5 {gt2} 16 0 -5\r"
,"{gt1}P 6 0 -10 {gt2} 16 0 -10\r"
,"@vectorlist {bluetint} color=bluetint\r"
,"{bt1}P 6 -2 10 {bt2} 16 -2 10\r"
,"{bt1}P 6 -2 5 {bt2} 16 -2 5\r"
,"{bt1}P 6 -2 0 {bt2} 16 -2 0\r"
,"{bt1}P 6 -2 -5 {bt2} 16 -2 -5\r"
,"{bt1}P 6 -2 -10 {bt2} 16 -2 -10\r"
,"@vectorlist {lilactint} color=lilactint\r"
,"{lact1}P 6 -4 10 {lact2} 16 -4 10\r"
,"{lact1}P 6 -4 5 {lact2} 16 -4 5\r"
,"{lact1}P 6 -4 0 {lact2} 16 -4 0\r"
,"{lact1}P 6 -4 -5 {lact2} 16 -4 -5\r"
,"{lact1}P 6 -4 -10 {lact2} 16 -4 -10\r"
,"@vectorlist {pinktint} color=pinktint\r"
,"{pkt1}P 6 -6 10 {pkt2} 16 -6 10\r"
,"{pkt1}P 6 -6 5 {pkt2} 16 -6 5\r"
,"{pkt1}P 6 -6 0 {pkt2} 16 -6 0\r"
,"{pkt1}P 6 -6 -5 {pkt2} 16 -6 -5\r"
,"{pkt1}P 6 -6 -10 {pkt2} 16 -6 -10\r"
,"@vectorlist {white} color=white\r"
,"{wht1}P 6 -8 10 {wht2} 16 -8 10\r"
,"{wht1}P 6 -8 5 {wht2} 16 -8 5\r"
,"{wht1}P 6 -8 0 {wht2} 16 -8 0\r"
,"{wht1}P 6 -8 -5 {wht2} 16 -8 -5\r"
,"{wht1}P 6 -8 -10 {wht2} 16 -8 -10\r"
,"@vectorlist {gray} color=gray\r"
,"{gra1}P 6 -10 10 {gra2} 16 -10 10\r"
,"{gra1}P 6 -10 5 {gra2} 16 -10 5\r"
,"{gra1}P 6 -10 0 {gra2} 16 -10 0\r"
,"{gra1}P 6 -10 -5 {gra2} 16 -10 -5\r"
,"{gra1}P 6 -10 -10 {gra2} 16 -10 -10\r"
,"@vectorlist {brown} color=brown\r"
,"{brn1}P 6 -12 10 {brn2} 16 -12 10\r"
,"{brn1}P 6 -12 5 {brn2} 16 -12 5\r"
,"{brn1}P 6 -12 0 {brn2} 16 -12 0\r"
,"{brn1}P 6 -12 -5 {brn2} 16 -12 -5\r"
,"{brn1}P 6 -12 -10 {brn2} 16 -12 -10\r"
,"@vectorlist {invisible} color=invisible\r"
,"{i1}P 6 -14 10 {i2} 16 -14 10\r"
,"{i1}P 6 -14 5 {i2} 16 -14 5\r"
,"{i1}P 6 -14 0 {i2} 16 -14 0\r"
,"{i1}P 6 -14 -5 {i2} 16 -14 -5\r"
,"{i1}P 6 -14 -10 {i2} 16 -14 -10\r"
,"@vectorlist {deadwhite} color=deadwhite \r"
,"{dw1}P 6 -16 10 {dw2} 16 -16 10 \r"
,"{dw1}P 6 -16 5 {dw2} 16 -16 5 \r"
,"{dw1}P 6 -16 0 {dw2} 16 -16 0 \r"
,"{dw1}P 6 -16 -5 {dw2} 16 -16 -5 \r"
,"{dw1}P 6 -16 -10 {dw2} 16 -16 -10 \r"
,"@group dominant {labels}\r"
,"@labellist {colorlabl} color=gray\r"
,"{deadblack} -8.5 -16 10 { } -10 -16 10\r"
,"{red} -8.5 -14 10 {A} -10 -14 10\r"
,"{orange} -8.5 -12 10 {B} -10 -12 10\r"
,"{gold} -8.5 -10 10 {C} -10 -10 10\r"
,"{yellow} -8.5 -8 10 {D} -10 -8 10\r"
,"{lime} -8.5 -6 10 {E} -10 -6 10\r"
,"{green} -8.5 -4 10 {F} -10 -4 10\r"
,"{sea} -8.5 -2 10 {G} -10 -2 10\r"
,"{cyan} -8.5 0 10 {H} -10 0 10\r"
,"{sky} -8.5 2 10 {I} -10 2 10\r"
,"{blue} -8.5 4 10 {J} -10 4 10\r"
,"{purple} -8.5 6 10 {K} -10 6 10\r"
,"{magenta} -8.5 8 10 {L} -10 8 10\r"
,"{hotpink} -8.5 10 10 {M} -10 10 10\r"
,"{pink} 5.5 10 10 {N} 4 10 10\r"
,"{lilac} 5.5 8 10 {O} 4 8 10\r"
,"{peach} 5.5 6 10 {P} 4 6 10\r"
,"{peachtint} 5.5 4 10 {Q} 4 4 10\r"
,"{yellowtint} 5.5 2 10 {R} 4 2 10\r"
,"{greentint} 5.5 0 10 {S} 4 0 10\r"
,"{bluetint} 5.5 -2 10 {T} 4 -2 10\r"
,"{lilactint} 5.5 -4 10 {U} 4 -4 10\r"
,"{pinktint} 5.5 -6 10 {V} 4 -6 10\r"
,"{white} 5.5 -8 10 {W} 4 -8 10\r"
,"{gray} 5.5 -10 10 {X} 4 -10 10\r"
,"{brown} 5.5 -12 10 {Y} 4 -12 10\r"
,"{invisible} 5.5 -14 10 {Z} 4 -14 10\r"
,"{deadwhite} 5.5 -16 10 { } 4 -16 10\r"
,"\r"
,"@group {zero} dominant off \r"
,"@balllist {zero} color= gray\r"
,"{zero} 0 0 0\r"
,"\r"
,"@finish\r"
};
static char* magedemo[] =
{" \r"
#ifndef OLD68KMAC /*defined in MAGE.h*/
,"@text\r"
,"Question example:\r"
,"*{Q: How far does the Sulfur move?}*\r"
,"(Write out and read in again so Input Text parser can recognize question.)\r"
,"\r"
,"@caption\r"
,"Alternate conformations found for Met 52 of file 5PTI (Wlodawer et al., 1984).\r"
,"Conf. A in gold and conf. B in orange. \r"
,"The two can be compared either by switching between them with 'ANIMATE', \r"
,"or by turning both on at the same time. \r"
,"The change is primarily in the Chi2 angle. \r"
,"N, O atoms are color-coded balls, S atoms are spheres.\r"
,"@viewid {side}\r"
,"@zoom 1.14\r"
,"@zslab 240\r"
,"@center 23.36 17.5 -6.12\r"
,"@matrix \r"
,"-.427847 -.896668 -.113723 .589963 -.181724 -.786715 .684757 -.403687 .60675\r"
,"@2viewid {down cb-cg}\r"
,"@2zoom 1.14\r"
,"@2zslab 360\r"
,"@2center 23.541 17.007 -5.538\r"
,"@2matrix\r"
,"-.358812 -.788558 -.499429 .415252 .344339 -.842019 .835955 -.509516 .203896\r"
,"@pointmaster 'A' {arrow}\r"
,"@1aspect {color1}\r"
,"@2aspect {color2}\r"
,"@3aspect {color3}\r"
,"@4aspect {color4}\r"
,"@group {51-53 mc} \r"
,"@labellist off {label}\r"
,"{ Met 52} 23.975, 16.86, -5.592\r"
,"@wordlist off {title}\r"
,"{title} <Alternate \r"
,"conformations \r"
,"of Met 52> 22.63, 17.94, -4.74\r"
,"@subgroup dominant {main ch}\r"
,"@balllist {n} color= sky radius= .1 <marked with balls>\r"
,"{n met 52} 24.405, 16.565, -4.212\r"
,"{n arg 53} 25.206, 18.931, -5.556\r"
,"@balllist {o} color= red radius= .1\r"
,"{o met 52} 25.254, 17.714, -7.432\r"
,"{o cys 51} 26.397, 15.689, -4.871\r"
,"@vectorlist {main ch} color= gray \r"
,"{ca cys 51} P 25.822, 15.753, -2.493 {c cys 51} L 25.591, 15.998, -3.994 \r"
,"{o cys 51} L 26.397, 15.689, -4.871\r"
,"{c cys 51} P 25.591, 15.998, -3.994 {n met 52} L 24.405, 16.565, -4.212 \r"
,"{ca met 52} L 23.975, 16.86, -5.592\r"
,"{c met 52} L 24.865, 17.909, -6.259\r"
,"{o met 52} L 25.254, 17.714, -7.432\r"
,"{c met 52} P 24.865, 17.909, -6.259 {n arg 53} L 25.206, 18.931, -5.556 \r"
,"{ca arg 53} L 26.111, 19.97, -6.044 \r"
,"@group dominant {conf A} animate\r"
,"@spherelist {S} color= yellow master= {S atoms} radius= .2\r"
,"{sd a met 52} <aspects> (DAFJ) 21.684, 14.673, -6.752\r"
,"@vectorlist {sc a} color= gold master= {side ch}\r"
,"{ca met 52} P 23.975, 16.860, -5.592 {cb met 52} L 22.481, 17.237, -5.692 \r"
,"{cg a met 52} L 21.619, 16.002, -5.527\r"
,"{sd a met 52} L 21.684, 14.673, -6.752\r"
,"{ce a met 52} L 20.896, 15.481, -8.152\r"
,"@arrowlist {A} color= magenta radius= 0.3 angle= 30\r"
,"{sd a met 52} L 'A' 21.684, 14.673, -6.752\r"
,"{sd b met 52} L 'A' 19.845 ,16.563, -5.694\r"
,"@group dominant {conf B} animate\r"
,"@spherelist {S} color= yellow master= {S atoms} radius= .2\r"
,"{sd b met 52} <aspects> (DAFJ) 19.845 ,16.563, -5.694\r"
,"@vectorlist {sc b} color= orange master= {side ch}\r"
,"{ca met 52} P 23.975, 16.860, -5.592 {cb met 52} L 22.481, 17.237, -5.692\r"
,"{cg b met 52} L 21.536, 16.149, -5.278\r"
,"{sd b met 52} L 19.845 ,16.563, -5.694\r"
,"{ce b met 52} L 19.639, 18.241, -5.038\r"
,"@arrowlist {A} color= magenta radius= 0.3 angle= 30\r"
,"{sd b met 52} L 'A' 19.845 ,16.563, -5.694\r"
,"{sd a met 52} L 'A' 21.684, 14.673, -6.752\r"
,"@group {frame} dominant \r"
,"@vectorlist {frame} color=blue screen \r"
,"-180 -180 0 \r"
," 180 -180 0 \r"
," 180 180 0 \r"
,"-180 180 0 \r"
,"-180 -180 0 \r"
,"P -10 0 0 \r"
," 10 0 0 \r"
,"P 0 10 0 \r"
," 0 -10 0 \r"
,"{center}P 0 0 0 \r"
,"{center} 0 0 0 \r"
,"\r"
#endif /*NOT OLD68KMAC defined in MAGE.h*/
,"@finish \r"
};
static char* egamickdockrefwidget[] =
{" \r"
,"@text\r"
,"egamick docking reference widget\r"