chemruby 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README +120 -0
- data/Rakefile +195 -0
- data/ext/extconf.rb +4 -0
- data/ext/subcomp.c +416 -0
- data/lib/chem.rb +130 -0
- data/lib/chem/appl.rb +1 -0
- data/lib/chem/appl/chem3dole.rb +36 -0
- data/lib/chem/appl/tinker/nucleic.rb +40 -0
- data/lib/chem/appl/tinker/tinker_reader.rb +43 -0
- data/lib/chem/data.rb +4 -0
- data/lib/chem/data/atomic_weight.rb +124 -0
- data/lib/chem/data/character.rb +2 -0
- data/lib/chem/data/electronegativity.rb +14 -0
- data/lib/chem/data/periodic_table.rb +6 -0
- data/lib/chem/data/prime_numbers.rb +1 -0
- data/lib/chem/data/vdw_radii.rb +1 -0
- data/lib/chem/db.rb +64 -0
- data/lib/chem/db/cansmi.rb +234 -0
- data/lib/chem/db/cdx.rb +1525 -0
- data/lib/chem/db/eps.rb +164 -0
- data/lib/chem/db/g98.rb +909 -0
- data/lib/chem/db/gspan.rb +130 -0
- data/lib/chem/db/iupac.rb +5 -0
- data/lib/chem/db/iupac/a_1.rb +46 -0
- data/lib/chem/db/iupac/iuparser.rb +226 -0
- data/lib/chem/db/iupac/iuparser.ry +97 -0
- data/lib/chem/db/iupac/postfix.rb +2 -0
- data/lib/chem/db/kcf.rb +390 -0
- data/lib/chem/db/kcf_glycan.rb +19 -0
- data/lib/chem/db/kegg.rb +516 -0
- data/lib/chem/db/linucs/linparser.rb +144 -0
- data/lib/chem/db/linucs/linucs.ry +53 -0
- data/lib/chem/db/mdl.rb +379 -0
- data/lib/chem/db/molconnz.rb +12 -0
- data/lib/chem/db/mopac.rb +88 -0
- data/lib/chem/db/msi.rb +107 -0
- data/lib/chem/db/pdb_dic.rb +115 -0
- data/lib/chem/db/pdf.rb +131 -0
- data/lib/chem/db/pubchem.rb +113 -0
- data/lib/chem/db/rmagick.rb +70 -0
- data/lib/chem/db/sdf.rb +37 -0
- data/lib/chem/db/smbl.rb +88 -0
- data/lib/chem/db/smiles.rb +2 -0
- data/lib/chem/db/smiles/smiles.ry +203 -0
- data/lib/chem/db/smiles/smiparser.rb +375 -0
- data/lib/chem/db/swf.rb +74 -0
- data/lib/chem/db/sybyl.rb +150 -0
- data/lib/chem/db/tinker.rb +77 -0
- data/lib/chem/db/types/type_cansmi.rb +9 -0
- data/lib/chem/db/types/type_cdx.rb +24 -0
- data/lib/chem/db/types/type_gspan.rb +31 -0
- data/lib/chem/db/types/type_kcf.rb +28 -0
- data/lib/chem/db/types/type_kcf_glycan.rb +26 -0
- data/lib/chem/db/types/type_kegg.rb +92 -0
- data/lib/chem/db/types/type_mdl.rb +31 -0
- data/lib/chem/db/types/type_pdf.rb +33 -0
- data/lib/chem/db/types/type_png.rb +31 -0
- data/lib/chem/db/types/type_rxn.rb +25 -0
- data/lib/chem/db/types/type_sdf.rb +25 -0
- data/lib/chem/db/types/type_sybyl.rb +30 -0
- data/lib/chem/db/types/type_xyz.rb +26 -0
- data/lib/chem/db/vector.rb +128 -0
- data/lib/chem/db/xyz.rb +39 -0
- data/lib/chem/model.rb +119 -0
- data/lib/chem/model/skeleton.rb +37 -0
- data/lib/chem/utils.rb +11 -0
- data/lib/chem/utils/geometry.rb +27 -0
- data/lib/chem/utils/graph_db.rb +146 -0
- data/lib/chem/utils/math.rb +17 -0
- data/lib/chem/utils/prop.rb +123 -0
- data/lib/chem/utils/sssr.rb +101 -0
- data/lib/chem/utils/sub.rb +78 -0
- data/lib/chem/utils/transform.rb +110 -0
- data/lib/chem/utils/traverse.rb +37 -0
- data/lib/chem/utils/ullmann.rb +134 -0
- data/lib/graph.rb +41 -0
- data/lib/graph/cluster.rb +20 -0
- data/lib/graph/morgan.rb +38 -0
- data/sample/frequent_subgraph.rb +46 -0
- data/sample/images/ex1.rb +11 -0
- data/sample/images/ex2.rb +4 -0
- data/sample/images/ex3.rb +5 -0
- data/sample/images/ex4.rb +17 -0
- data/sample/images/ex5.rb +10 -0
- data/sample/images/mol/adenine.mol +26 -0
- data/sample/images/mol/atp.mol +69 -0
- data/sample/images/temp/ex5.mol +344 -0
- data/sample/kegg_db.rb +116 -0
- data/setup.rb +1551 -0
- data/test/all.rb +6 -0
- data/test/coord_test.rb +17 -0
- data/test/ctab_test.rb +31 -0
- data/test/data/A_21.tar.gz +0 -0
- data/test/data/A_21/aceanthrylene.cdx +0 -0
- data/test/data/A_21/aceanthrylene.mol +40 -0
- data/test/data/A_21/acenaphthylene.cdx +0 -0
- data/test/data/A_21/acenaphthylene.mol +31 -0
- data/test/data/A_21/acephenanthrylene.cdx +0 -0
- data/test/data/A_21/acephenanthrylene.mol +40 -0
- data/test/data/A_21/anthracene.cdx +0 -0
- data/test/data/A_21/anthracene.mol +35 -0
- data/test/data/A_21/as-indacene.cdx +0 -0
- data/test/data/A_21/as-indacene.mol +31 -0
- data/test/data/A_21/azulene.cdx +0 -0
- data/test/data/A_21/azulene.mol +26 -0
- data/test/data/A_21/biphenylene.cdx +0 -0
- data/test/data/A_21/biphenylene.mol +31 -0
- data/test/data/A_21/chrysene.cdx +0 -0
- data/test/data/A_21/chrysene.mol +44 -0
- data/test/data/A_21/coronen.cdx +0 -0
- data/test/data/A_21/coronen.mol +59 -0
- data/test/data/A_21/fluoranthene.cdx +0 -0
- data/test/data/A_21/fluoranthene.mol +40 -0
- data/test/data/A_21/fluorene.cdx +0 -0
- data/test/data/A_21/fluorene.mol +33 -0
- data/test/data/A_21/heptacene.cdx +0 -0
- data/test/data/A_21/heptacene.mol +71 -0
- data/test/data/A_21/heptalene.cdx +0 -0
- data/test/data/A_21/heptalene.mol +30 -0
- data/test/data/A_21/heptaphene.cdx +0 -0
- data/test/data/A_21/heptaphene.mol +71 -0
- data/test/data/A_21/hexacene.cdx +0 -0
- data/test/data/A_21/hexacene.mol +62 -0
- data/test/data/A_21/hexaphene.cdx +0 -0
- data/test/data/A_21/hexaphene.mol +62 -0
- data/test/data/A_21/indene.cdx +0 -0
- data/test/data/A_21/indene.mol +24 -0
- data/test/data/A_21/iupac.txt +41 -0
- data/test/data/A_21/naphthacene.cdx +0 -0
- data/test/data/A_21/naphthacene.mol +44 -0
- data/test/data/A_21/naphthalene.cdx +0 -0
- data/test/data/A_21/naphthalene.mol +26 -0
- data/test/data/A_21/ovalene.cdx +0 -0
- data/test/data/A_21/ovalene.mol +78 -0
- data/test/data/A_21/pentacene.cdx +0 -0
- data/test/data/A_21/pentacene.mol +53 -0
- data/test/data/A_21/pentalene.cdx +0 -0
- data/test/data/A_21/pentalene.mol +22 -0
- data/test/data/A_21/pentaphene.cdx +0 -0
- data/test/data/A_21/pentaphene.mol +53 -0
- data/test/data/A_21/perylene.cdx +0 -0
- data/test/data/A_21/perylene.mol +49 -0
- data/test/data/A_21/phenalene.cdx +0 -0
- data/test/data/A_21/phenalene.mol +33 -0
- data/test/data/A_21/phenanthrene.cdx +0 -0
- data/test/data/A_21/phenanthrene.mol +35 -0
- data/test/data/A_21/picene.cdx +0 -0
- data/test/data/A_21/picene.mol +53 -0
- data/test/data/A_21/pleiadene.cdx +0 -0
- data/test/data/A_21/pleiadene.mol +44 -0
- data/test/data/A_21/pyranthrene.cdx +0 -0
- data/test/data/A_21/pyranthrene.mol +72 -0
- data/test/data/A_21/pyrene.cdx +0 -0
- data/test/data/A_21/pyrene.mol +40 -0
- data/test/data/A_21/rubicene.cdx +0 -0
- data/test/data/A_21/rubicene.mol +63 -0
- data/test/data/A_21/s-indacene.cdx +0 -0
- data/test/data/A_21/s-indacene.mol +31 -0
- data/test/data/A_21/tetraphenylene.cdx +0 -0
- data/test/data/A_21/tetraphenylene.mol +57 -0
- data/test/data/A_21/trinaphthylene.cdx +0 -0
- data/test/data/A_21/trinaphthylene.mol +71 -0
- data/test/data/A_21/triphenylene.cdx +0 -0
- data/test/data/A_21/triphenylene.mol +44 -0
- data/test/data/C00147.kcf +25 -0
- data/test/data/G00147.kcf +13 -0
- data/test/data/atp.mol +69 -0
- data/test/data/cyclohexane.mol +17 -0
- data/test/data/cyclohexane.ps +485 -0
- data/test/data/fullerene.mol +155 -0
- data/test/data/glycan +33 -0
- data/test/data/hypericin.cdx +0 -0
- data/test/data/hypericin.cdxml +596 -0
- data/test/data/hypericin.chm +0 -0
- data/test/data/hypericin.ct +85 -0
- data/test/data/hypericin.f1d +0 -0
- data/test/data/hypericin.f1q +0 -0
- data/test/data/hypericin.gif +0 -0
- data/test/data/hypericin.mol +88 -0
- data/test/data/hypericin.mol2 +159 -0
- data/test/data/hypericin.msm +123 -0
- data/test/data/hypericin.pdf +359 -0
- data/test/data/hypericin.png +0 -0
- data/test/data/hypericin.ps +0 -0
- data/test/data/hypericin.skc +0 -0
- data/test/data/hypericin2.gif +0 -0
- data/test/data/hypericin2.ps +0 -0
- data/test/data/kegg/genomes/hsa/hsa_enzyme.list +4 -0
- data/test/data/kegg/genomes/hsa/hsa_pfam.list +4 -0
- data/test/data/kegg/ligand/mol/C00147.mol +26 -0
- data/test/data/kegg/ligand/reaction +14 -0
- data/test/data/kegg/ligand/reaction.lst +1 -0
- data/test/data/kegg/ligand/reaction_mapformula.lst +3 -0
- data/test/data/reaction +14 -0
- data/test/data/reaction.lst +1 -0
- data/test/data/reaction_mapformula.lst +3 -0
- data/test/data/rxn/C00001.mol +6 -0
- data/test/data/rxn/C00011.mol +10 -0
- data/test/data/rxn/C00014.mol +6 -0
- data/test/data/rxn/C01010.mol +18 -0
- data/test/data/rxn/sample.rxn +50 -0
- data/test/data/rxn/substitution.rxn +45 -0
- data/test/data/test.eps +0 -0
- data/test/data/test.mol +28 -0
- data/test/data/test.sdf +143 -0
- data/test/data/test.skc +0 -0
- data/test/data/test.xyz +4 -0
- data/test/data/test_lf.sdf +143 -0
- data/test/heavy_test_pubchem.rb +16 -0
- data/test/multiple_test.rb +22 -0
- data/test/test_adj.rb +54 -0
- data/test/test_canonical_smiles.rb +46 -0
- data/test/test_cdx.rb +32 -0
- data/test/test_chem.rb +18 -0
- data/test/test_cluster.rb +19 -0
- data/test/test_db.rb +11 -0
- data/test/test_eps.rb +24 -0
- data/test/test_geometry.rb +11 -0
- data/test/test_gspan.rb +28 -0
- data/test/test_iupac.rb +36 -0
- data/test/test_kcf.rb +24 -0
- data/test/test_kcf_glycan.rb +10 -0
- data/test/test_kegg.rb +118 -0
- data/test/test_linucs.rb +21 -0
- data/test/test_mdl.rb +45 -0
- data/test/test_mol2.rb +62 -0
- data/test/test_morgan.rb +21 -0
- data/test/test_pdf.rb +12 -0
- data/test/test_prop.rb +86 -0
- data/test/test_rmagick.rb +15 -0
- data/test/test_sbdb.rb +23 -0
- data/test/test_sdf.rb +30 -0
- data/test/test_smiles.rb +84 -0
- data/test/test_sssr.rb +18 -0
- data/test/test_sub.rb +47 -0
- data/test/test_subcomp.rb +37 -0
- data/test/test_traverse.rb +29 -0
- data/test/test_writer.rb +13 -0
- data/test/test_xyz.rb +15 -0
- data/test/type_test.rb +25 -0
- metadata +290 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
cyclohexane.mol
|
2
|
+
ChemDraw06210509332D
|
3
|
+
|
4
|
+
6 6 0 0 0 0 0 0 0 0999 V2000
|
5
|
+
-0.7145 0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
6
|
+
-0.7145 -0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
7
|
+
0.0000 -0.8250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
8
|
+
0.7145 -0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
9
|
+
0.7145 0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
10
|
+
0.0000 0.8250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
11
|
+
1 2 1 0
|
12
|
+
2 3 1 0
|
13
|
+
3 4 1 0
|
14
|
+
4 5 1 0
|
15
|
+
5 6 1 0
|
16
|
+
6 1 1 0
|
17
|
+
M END
|
@@ -0,0 +1,485 @@
|
|
1
|
+
%!PS-Adobe-3.0 EPSF-3.0
|
2
|
+
%%Creator: GNU libplot drawing library 4.1
|
3
|
+
%%Title: PostScript plot
|
4
|
+
%%CreationDate: Wed Jul 13 14:31:46 2005
|
5
|
+
%%DocumentData: Clean7Bit
|
6
|
+
%%LanguageLevel: 1
|
7
|
+
%%Pages: 1
|
8
|
+
%%PageOrder: Ascend
|
9
|
+
%%Orientation: Portrait
|
10
|
+
%%BoundingBox: -3 84 39 132
|
11
|
+
%%DocumentNeededResources:
|
12
|
+
%%DocumentSuppliedResources: procset GNU_libplot 1.0 0
|
13
|
+
%%EndComments
|
14
|
+
|
15
|
+
%%BeginDefaults
|
16
|
+
%%PageResources:
|
17
|
+
%%EndDefaults
|
18
|
+
|
19
|
+
%%BeginProlog
|
20
|
+
%%EndProlog
|
21
|
+
|
22
|
+
%%BeginSetup
|
23
|
+
/DrawDict 50 dict def
|
24
|
+
DrawDict begin
|
25
|
+
%%BeginResource procset GNU_libplot 1.0 0
|
26
|
+
/none null def
|
27
|
+
/numGraphicParameters 17 def
|
28
|
+
/stringLimit 65535 def
|
29
|
+
/arrowHeight 8 def
|
30
|
+
/eoFillRule true def
|
31
|
+
|
32
|
+
/Begin { save numGraphicParameters dict begin } def
|
33
|
+
/End { end restore } def
|
34
|
+
|
35
|
+
/SetB {
|
36
|
+
dup type /nulltype eq {
|
37
|
+
pop
|
38
|
+
false /brushRightArrow idef
|
39
|
+
false /brushLeftArrow idef
|
40
|
+
true /brushNone idef
|
41
|
+
} {
|
42
|
+
/brushDashOffset idef
|
43
|
+
/brushDashArray idef
|
44
|
+
0 ne /brushRightArrow idef
|
45
|
+
0 ne /brushLeftArrow idef
|
46
|
+
/brushWidth idef
|
47
|
+
false /brushNone idef
|
48
|
+
} ifelse
|
49
|
+
} def
|
50
|
+
|
51
|
+
/SetCFg {
|
52
|
+
/fgblue idef
|
53
|
+
/fggreen idef
|
54
|
+
/fgred idef
|
55
|
+
} def
|
56
|
+
|
57
|
+
/SetCBg {
|
58
|
+
/bgblue idef
|
59
|
+
/bggreen idef
|
60
|
+
/bgred idef
|
61
|
+
} def
|
62
|
+
|
63
|
+
/SetF {
|
64
|
+
/printSize idef
|
65
|
+
/printFont idef
|
66
|
+
} def
|
67
|
+
|
68
|
+
/SetP {
|
69
|
+
dup type /nulltype eq {
|
70
|
+
pop true /patternNone idef
|
71
|
+
} {
|
72
|
+
/patternGrayLevel idef
|
73
|
+
patternGrayLevel -1 eq {
|
74
|
+
/patternString idef
|
75
|
+
} if
|
76
|
+
false /patternNone idef
|
77
|
+
} ifelse
|
78
|
+
} def
|
79
|
+
|
80
|
+
/BSpl {
|
81
|
+
0 begin
|
82
|
+
storexyn
|
83
|
+
newpath
|
84
|
+
n 1 gt {
|
85
|
+
0 0 0 0 0 0 1 1 true subspline
|
86
|
+
n 2 gt {
|
87
|
+
0 0 0 0 1 1 2 2 false subspline
|
88
|
+
1 1 n 3 sub {
|
89
|
+
/i exch def
|
90
|
+
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
|
91
|
+
} for
|
92
|
+
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
|
93
|
+
} if
|
94
|
+
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
|
95
|
+
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
|
96
|
+
brushNone not { istroke } if
|
97
|
+
0 0 1 1 leftarrow
|
98
|
+
n 2 sub dup 1 sub dup rightarrow
|
99
|
+
} if
|
100
|
+
end
|
101
|
+
} dup 0 4 dict put def
|
102
|
+
|
103
|
+
/Circ {
|
104
|
+
newpath
|
105
|
+
0 360 arc
|
106
|
+
closepath
|
107
|
+
patternNone not { ifill } if
|
108
|
+
brushNone not { istroke } if
|
109
|
+
} def
|
110
|
+
|
111
|
+
/CBSpl {
|
112
|
+
0 begin
|
113
|
+
dup 2 gt {
|
114
|
+
storexyn
|
115
|
+
newpath
|
116
|
+
n 1 sub dup 0 0 1 1 2 2 true subspline
|
117
|
+
1 1 n 3 sub {
|
118
|
+
/i exch def
|
119
|
+
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
|
120
|
+
} for
|
121
|
+
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
|
122
|
+
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
|
123
|
+
patternNone not { ifill } if
|
124
|
+
brushNone not { istroke } if
|
125
|
+
} {
|
126
|
+
Poly
|
127
|
+
} ifelse
|
128
|
+
end
|
129
|
+
} dup 0 4 dict put def
|
130
|
+
|
131
|
+
/Elli {
|
132
|
+
0 begin
|
133
|
+
newpath
|
134
|
+
4 2 roll
|
135
|
+
translate
|
136
|
+
scale
|
137
|
+
0 0 1 0 360 arc
|
138
|
+
closepath
|
139
|
+
patternNone not { ifill } if
|
140
|
+
brushNone not { istroke } if
|
141
|
+
end
|
142
|
+
} dup 0 1 dict put def
|
143
|
+
|
144
|
+
/Line {
|
145
|
+
0 begin
|
146
|
+
2 storexyn
|
147
|
+
newpath
|
148
|
+
x 0 get y 0 get moveto
|
149
|
+
x 1 get y 1 get lineto
|
150
|
+
brushNone not { istroke } if
|
151
|
+
0 0 1 1 leftarrow
|
152
|
+
0 0 1 1 rightarrow
|
153
|
+
end
|
154
|
+
} dup 0 4 dict put def
|
155
|
+
|
156
|
+
/MLine {
|
157
|
+
0 begin
|
158
|
+
storexyn
|
159
|
+
newpath
|
160
|
+
n 1 gt {
|
161
|
+
x 0 get y 0 get moveto
|
162
|
+
1 1 n 1 sub {
|
163
|
+
/i exch def
|
164
|
+
x i get y i get lineto
|
165
|
+
} for
|
166
|
+
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
|
167
|
+
brushNone not { istroke } if
|
168
|
+
0 0 1 1 leftarrow
|
169
|
+
n 2 sub dup n 1 sub dup rightarrow
|
170
|
+
} if
|
171
|
+
end
|
172
|
+
} dup 0 4 dict put def
|
173
|
+
|
174
|
+
/Poly {
|
175
|
+
3 1 roll
|
176
|
+
newpath
|
177
|
+
moveto
|
178
|
+
-1 add
|
179
|
+
{ lineto } repeat
|
180
|
+
closepath
|
181
|
+
patternNone not { ifill } if
|
182
|
+
brushNone not { istroke } if
|
183
|
+
} def
|
184
|
+
|
185
|
+
/Rect {
|
186
|
+
0 begin
|
187
|
+
/t exch def
|
188
|
+
/r exch def
|
189
|
+
/b exch def
|
190
|
+
/l exch def
|
191
|
+
newpath
|
192
|
+
l b moveto
|
193
|
+
l t lineto
|
194
|
+
r t lineto
|
195
|
+
r b lineto
|
196
|
+
closepath
|
197
|
+
patternNone not { ifill } if
|
198
|
+
brushNone not { istroke } if
|
199
|
+
end
|
200
|
+
} dup 0 4 dict put def
|
201
|
+
|
202
|
+
/Text {
|
203
|
+
ishow
|
204
|
+
} def
|
205
|
+
|
206
|
+
/idef {
|
207
|
+
dup where { pop pop pop } { exch def } ifelse
|
208
|
+
} def
|
209
|
+
|
210
|
+
/ifill {
|
211
|
+
0 begin
|
212
|
+
gsave
|
213
|
+
patternGrayLevel -1 ne {
|
214
|
+
fgred bgred fgred sub patternGrayLevel mul add
|
215
|
+
fggreen bggreen fggreen sub patternGrayLevel mul add
|
216
|
+
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
|
217
|
+
eoFillRule { eofill } { fill } ifelse
|
218
|
+
} {
|
219
|
+
eoFillRule { eoclip } { clip } ifelse
|
220
|
+
originalCTM setmatrix
|
221
|
+
pathbbox /t exch def /r exch def /b exch def /l exch def
|
222
|
+
/w r l sub ceiling cvi def
|
223
|
+
/h t b sub ceiling cvi def
|
224
|
+
/imageByteWidth w 8 div ceiling cvi def
|
225
|
+
/imageHeight h def
|
226
|
+
bgred bggreen bgblue setrgbcolor
|
227
|
+
eoFillRule { eofill } { fill } ifelse
|
228
|
+
fgred fggreen fgblue setrgbcolor
|
229
|
+
w 0 gt h 0 gt and {
|
230
|
+
l b translate w h scale
|
231
|
+
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
|
232
|
+
} if
|
233
|
+
} ifelse
|
234
|
+
grestore
|
235
|
+
end
|
236
|
+
} dup 0 8 dict put def
|
237
|
+
|
238
|
+
/istroke {
|
239
|
+
gsave
|
240
|
+
brushDashOffset -1 eq {
|
241
|
+
[] 0 setdash
|
242
|
+
1 setgray
|
243
|
+
} {
|
244
|
+
brushDashArray brushDashOffset setdash
|
245
|
+
fgred fggreen fgblue setrgbcolor
|
246
|
+
} ifelse
|
247
|
+
brushWidth setlinewidth
|
248
|
+
originalCTM setmatrix
|
249
|
+
stroke
|
250
|
+
grestore
|
251
|
+
} def
|
252
|
+
|
253
|
+
/ishow {
|
254
|
+
0 begin
|
255
|
+
gsave
|
256
|
+
fgred fggreen fgblue setrgbcolor
|
257
|
+
/fontDict printFont findfont printSize scalefont dup setfont def
|
258
|
+
/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end
|
259
|
+
transform exch pop def
|
260
|
+
/vertoffset 1 printSize sub descender sub def {
|
261
|
+
0 vertoffset moveto show
|
262
|
+
/vertoffset vertoffset printSize sub def
|
263
|
+
} forall
|
264
|
+
grestore
|
265
|
+
end
|
266
|
+
} dup 0 3 dict put def
|
267
|
+
|
268
|
+
/patternproc {
|
269
|
+
0 begin
|
270
|
+
/patternByteLength patternString length def
|
271
|
+
/patternHeight patternByteLength 8 mul sqrt cvi def
|
272
|
+
/patternWidth patternHeight def
|
273
|
+
/patternByteWidth patternWidth 8 idiv def
|
274
|
+
/imageByteMaxLength imageByteWidth imageHeight mul
|
275
|
+
stringLimit patternByteWidth sub min def
|
276
|
+
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
|
277
|
+
patternHeight mul patternHeight max def
|
278
|
+
/imageHeight imageHeight imageMaxHeight sub store
|
279
|
+
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
|
280
|
+
0 1 imageMaxHeight 1 sub {
|
281
|
+
/y exch def
|
282
|
+
/patternRow y patternByteWidth mul patternByteLength mod def
|
283
|
+
/patternRowString patternString patternRow patternByteWidth getinterval def
|
284
|
+
/imageRow y imageByteWidth mul def
|
285
|
+
0 patternByteWidth imageByteWidth 1 sub {
|
286
|
+
/x exch def
|
287
|
+
imageString imageRow x add patternRowString putinterval
|
288
|
+
} for
|
289
|
+
} for
|
290
|
+
imageString
|
291
|
+
end
|
292
|
+
} dup 0 12 dict put def
|
293
|
+
|
294
|
+
/min {
|
295
|
+
dup 3 2 roll dup 4 3 roll lt { exch } if pop
|
296
|
+
} def
|
297
|
+
|
298
|
+
/max {
|
299
|
+
dup 3 2 roll dup 4 3 roll gt { exch } if pop
|
300
|
+
} def
|
301
|
+
|
302
|
+
/midpoint {
|
303
|
+
0 begin
|
304
|
+
/y1 exch def
|
305
|
+
/x1 exch def
|
306
|
+
/y0 exch def
|
307
|
+
/x0 exch def
|
308
|
+
x0 x1 add 2 div
|
309
|
+
y0 y1 add 2 div
|
310
|
+
end
|
311
|
+
} dup 0 4 dict put def
|
312
|
+
|
313
|
+
/thirdpoint {
|
314
|
+
0 begin
|
315
|
+
/y1 exch def
|
316
|
+
/x1 exch def
|
317
|
+
/y0 exch def
|
318
|
+
/x0 exch def
|
319
|
+
x0 2 mul x1 add 3 div
|
320
|
+
y0 2 mul y1 add 3 div
|
321
|
+
end
|
322
|
+
} dup 0 4 dict put def
|
323
|
+
|
324
|
+
/subspline {
|
325
|
+
0 begin
|
326
|
+
/movetoNeeded exch def
|
327
|
+
y exch get /y3 exch def
|
328
|
+
x exch get /x3 exch def
|
329
|
+
y exch get /y2 exch def
|
330
|
+
x exch get /x2 exch def
|
331
|
+
y exch get /y1 exch def
|
332
|
+
x exch get /x1 exch def
|
333
|
+
y exch get /y0 exch def
|
334
|
+
x exch get /x0 exch def
|
335
|
+
x1 y1 x2 y2 thirdpoint
|
336
|
+
/p1y exch def
|
337
|
+
/p1x exch def
|
338
|
+
x2 y2 x1 y1 thirdpoint
|
339
|
+
/p2y exch def
|
340
|
+
/p2x exch def
|
341
|
+
x1 y1 x0 y0 thirdpoint
|
342
|
+
p1x p1y midpoint
|
343
|
+
/p0y exch def
|
344
|
+
/p0x exch def
|
345
|
+
x2 y2 x3 y3 thirdpoint
|
346
|
+
p2x p2y midpoint
|
347
|
+
/p3y exch def
|
348
|
+
/p3x exch def
|
349
|
+
movetoNeeded { p0x p0y moveto } if
|
350
|
+
p1x p1y p2x p2y p3x p3y curveto
|
351
|
+
end
|
352
|
+
} dup 0 17 dict put def
|
353
|
+
|
354
|
+
/storexyn {
|
355
|
+
/n exch def
|
356
|
+
/y n array def
|
357
|
+
/x n array def
|
358
|
+
n 1 sub -1 0 {
|
359
|
+
/i exch def
|
360
|
+
y i 3 2 roll put
|
361
|
+
x i 3 2 roll put
|
362
|
+
} for
|
363
|
+
} def
|
364
|
+
|
365
|
+
/arrowhead {
|
366
|
+
0 begin
|
367
|
+
transform originalCTM itransform
|
368
|
+
/taily exch def
|
369
|
+
/tailx exch def
|
370
|
+
transform originalCTM itransform
|
371
|
+
/tipy exch def
|
372
|
+
/tipx exch def
|
373
|
+
/dy tipy taily sub def
|
374
|
+
/dx tipx tailx sub def
|
375
|
+
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
|
376
|
+
gsave
|
377
|
+
originalCTM setmatrix
|
378
|
+
tipx tipy translate
|
379
|
+
angle rotate
|
380
|
+
newpath
|
381
|
+
arrowHeight neg arrowWidth 2 div moveto
|
382
|
+
0 0 lineto
|
383
|
+
arrowHeight neg arrowWidth 2 div neg lineto
|
384
|
+
patternNone not {
|
385
|
+
originalCTM setmatrix
|
386
|
+
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
|
387
|
+
arrowWidth div def
|
388
|
+
/padtail brushWidth 2 div def
|
389
|
+
tipx tipy translate
|
390
|
+
angle rotate
|
391
|
+
padtip 0 translate
|
392
|
+
arrowHeight padtip add padtail add arrowHeight div dup scale
|
393
|
+
arrowheadpath
|
394
|
+
ifill
|
395
|
+
} if
|
396
|
+
brushNone not {
|
397
|
+
originalCTM setmatrix
|
398
|
+
tipx tipy translate
|
399
|
+
angle rotate
|
400
|
+
arrowheadpath
|
401
|
+
istroke
|
402
|
+
} if
|
403
|
+
grestore
|
404
|
+
end
|
405
|
+
} dup 0 9 dict put def
|
406
|
+
|
407
|
+
/arrowheadpath {
|
408
|
+
newpath
|
409
|
+
arrowHeight neg arrowWidth 2 div moveto
|
410
|
+
0 0 lineto
|
411
|
+
arrowHeight neg arrowWidth 2 div neg lineto
|
412
|
+
} def
|
413
|
+
|
414
|
+
/leftarrow {
|
415
|
+
0 begin
|
416
|
+
y exch get /taily exch def
|
417
|
+
x exch get /tailx exch def
|
418
|
+
y exch get /tipy exch def
|
419
|
+
x exch get /tipx exch def
|
420
|
+
brushLeftArrow { tipx tipy tailx taily arrowhead } if
|
421
|
+
end
|
422
|
+
} dup 0 4 dict put def
|
423
|
+
|
424
|
+
/rightarrow {
|
425
|
+
0 begin
|
426
|
+
y exch get /tipy exch def
|
427
|
+
x exch get /tipx exch def
|
428
|
+
y exch get /taily exch def
|
429
|
+
x exch get /tailx exch def
|
430
|
+
brushRightArrow { tipx tipy tailx taily arrowhead } if
|
431
|
+
end
|
432
|
+
} dup 0 4 dict put def
|
433
|
+
%%EndResource
|
434
|
+
%%EndSetup
|
435
|
+
|
436
|
+
%%Page: 1 1
|
437
|
+
%%PageResources:
|
438
|
+
%%PageBoundingBox: -3 84 39 132
|
439
|
+
%%BeginPageSetup
|
440
|
+
%I Idraw 8
|
441
|
+
|
442
|
+
Begin
|
443
|
+
%I b u
|
444
|
+
%I cfg u
|
445
|
+
%I cbg u
|
446
|
+
%I f u
|
447
|
+
%I p u
|
448
|
+
%I t
|
449
|
+
[ 1 0 0 1 0 0 ] concat
|
450
|
+
/originalCTM matrix currentmatrix def
|
451
|
+
/trueoriginalCTM matrix currentmatrix def
|
452
|
+
%%EndPageSetup
|
453
|
+
|
454
|
+
Begin %I Poly
|
455
|
+
[1.44 0 0 1.44 0 0 ] trueoriginalCTM originalCTM
|
456
|
+
concatmatrix pop
|
457
|
+
0 setlinecap 0 setlinejoin 10.43 setmiterlimit
|
458
|
+
/eoFillRule true def
|
459
|
+
%I b 65535
|
460
|
+
1 0 0 [ ] 0 SetB
|
461
|
+
%I cfg Black
|
462
|
+
0 0 0 SetCFg
|
463
|
+
%I cbg White
|
464
|
+
1 1 1 SetCBg
|
465
|
+
%I p
|
466
|
+
none SetP
|
467
|
+
%I t
|
468
|
+
[0.05 0 0 0.05 18 108 ] concat
|
469
|
+
%I 6
|
470
|
+
0 461
|
471
|
+
399 230
|
472
|
+
399 -230
|
473
|
+
0 -461
|
474
|
+
-399 -230
|
475
|
+
-399 230
|
476
|
+
6 Poly
|
477
|
+
End
|
478
|
+
|
479
|
+
%%PageTrailer
|
480
|
+
End %I eop
|
481
|
+
showpage
|
482
|
+
|
483
|
+
%%Trailer
|
484
|
+
end
|
485
|
+
%%EOF
|