geomerative 0.4.3-java → 2.1.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/.mvn/extensions.xml +1 -1
  4. data/.mvn/wrapper/maven-wrapper.properties +1 -1
  5. data/CHANGELOG.md +19 -1
  6. data/COPYING.md +1 -1
  7. data/README.md +2 -2
  8. data/Rakefile +2 -15
  9. data/docs/_config.yml +8 -0
  10. data/docs/_includes/head.html +7 -6
  11. data/docs/_includes/header.html +6 -6
  12. data/docs/_includes/icon-github.svg +3 -1
  13. data/docs/_includes/icon-twitter.svg +3 -1
  14. data/docs/_includes/navigation.html +24 -0
  15. data/docs/_sass/_base.scss +79 -79
  16. data/docs/_sass/_layout.scss +137 -137
  17. data/docs/_sass/_syntax-highlighting.scss +64 -64
  18. data/docs/index.html +18 -18
  19. data/examples/README.md +1 -1
  20. data/examples/data/bot1.svg +1 -1
  21. data/examples/data/lion.svg +156 -156
  22. data/examples/data/ruby.svg +1 -1
  23. data/examples/jruby_merge.rb +1 -1
  24. data/examples/{f_agent.rb → library/f_agent/f_agent.rb} +0 -0
  25. data/examples/{font_agent.rb → library/font_agent/font_agent.rb} +2 -1
  26. data/examples/text_on_geomerative_path.rb +3 -2
  27. data/examples/typo_deform.rb +2 -2
  28. data/examples/typo_extra_bright.rb +1 -1
  29. data/geomerative.gemspec +3 -6
  30. data/lib/geomerative/version.rb +1 -1
  31. data/lib/geomerative.jar +0 -0
  32. data/lib/geomerative.rb +10 -10
  33. data/mvnw +234 -0
  34. data/mvnw.cmd +145 -0
  35. data/pom.rb +14 -16
  36. data/pom.xml +13 -19
  37. data/src/geomerative/FastRClip.java +2050 -2334
  38. data/src/geomerative/RClip.java +2237 -2539
  39. data/src/geomerative/RClosest.java +33 -31
  40. data/src/geomerative/RCommand.java +1750 -1758
  41. data/src/geomerative/RContour.java +290 -292
  42. data/src/geomerative/RFont.java +277 -246
  43. data/src/geomerative/RG.java +722 -727
  44. data/src/geomerative/RGeomElem.java +967 -962
  45. data/src/geomerative/RGroup.java +508 -467
  46. data/src/geomerative/RMatrix.java +304 -289
  47. data/src/geomerative/RMesh.java +241 -229
  48. data/src/geomerative/RPath.java +924 -926
  49. data/src/geomerative/RPoint.java +391 -391
  50. data/src/geomerative/RPolygon.java +1017 -1013
  51. data/src/geomerative/RRectangle.java +43 -52
  52. data/src/geomerative/RSVG.java +480 -516
  53. data/src/geomerative/RShape.java +1767 -1777
  54. data/src/geomerative/RStrip.java +173 -176
  55. data/src/geomerative/RStyle.java +197 -194
  56. data/src/module-info.java +4 -0
  57. data/src/org/apache/batik/svggen/font/Font.java +141 -142
  58. data/src/org/apache/batik/svggen/font/Glyph.java +102 -71
  59. data/src/org/apache/batik/svggen/font/Point.java +12 -12
  60. data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +14 -12
  61. data/src/org/apache/batik/svggen/font/table/ClassDef.java +12 -12
  62. data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +27 -24
  63. data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +20 -17
  64. data/src/org/apache/batik/svggen/font/table/CmapFormat.java +43 -43
  65. data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +33 -26
  66. data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +25 -20
  67. data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +106 -96
  68. data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +36 -32
  69. data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +69 -49
  70. data/src/org/apache/batik/svggen/font/table/CmapTable.java +50 -50
  71. data/src/org/apache/batik/svggen/font/table/Coverage.java +19 -19
  72. data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +30 -27
  73. data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +26 -24
  74. data/src/org/apache/batik/svggen/font/table/CvtTable.java +16 -16
  75. data/src/org/apache/batik/svggen/font/table/Device.java +32 -32
  76. data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +39 -39
  77. data/src/org/apache/batik/svggen/font/table/Feature.java +26 -23
  78. data/src/org/apache/batik/svggen/font/table/FeatureList.java +37 -35
  79. data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +22 -22
  80. data/src/org/apache/batik/svggen/font/table/FeatureTags.java +4 -3
  81. data/src/org/apache/batik/svggen/font/table/FpgmTable.java +9 -9
  82. data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +134 -132
  83. data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +123 -122
  84. data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +44 -44
  85. data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +110 -109
  86. data/src/org/apache/batik/svggen/font/table/GlyfTable.java +46 -46
  87. data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +25 -13
  88. data/src/org/apache/batik/svggen/font/table/GposTable.java +26 -23
  89. data/src/org/apache/batik/svggen/font/table/GsubTable.java +85 -82
  90. data/src/org/apache/batik/svggen/font/table/HeadTable.java +131 -131
  91. data/src/org/apache/batik/svggen/font/table/HheaTable.java +80 -80
  92. data/src/org/apache/batik/svggen/font/table/HmtxTable.java +50 -49
  93. data/src/org/apache/batik/svggen/font/table/KernSubtable.java +29 -27
  94. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +35 -32
  95. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +28 -26
  96. data/src/org/apache/batik/svggen/font/table/KernTable.java +36 -31
  97. data/src/org/apache/batik/svggen/font/table/KerningPair.java +27 -23
  98. data/src/org/apache/batik/svggen/font/table/LangSys.java +28 -26
  99. data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +22 -22
  100. data/src/org/apache/batik/svggen/font/table/Ligature.java +24 -24
  101. data/src/org/apache/batik/svggen/font/table/LigatureSet.java +24 -24
  102. data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +9 -9
  103. data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +30 -30
  104. data/src/org/apache/batik/svggen/font/table/LocaTable.java +37 -37
  105. data/src/org/apache/batik/svggen/font/table/Lookup.java +41 -40
  106. data/src/org/apache/batik/svggen/font/table/LookupList.java +34 -34
  107. data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +7 -5
  108. data/src/org/apache/batik/svggen/font/table/MaxpTable.java +96 -96
  109. data/src/org/apache/batik/svggen/font/table/NameRecord.java +64 -65
  110. data/src/org/apache/batik/svggen/font/table/NameTable.java +33 -33
  111. data/src/org/apache/batik/svggen/font/table/Os2Table.java +196 -196
  112. data/src/org/apache/batik/svggen/font/table/Panose.java +14 -12
  113. data/src/org/apache/batik/svggen/font/table/PostTable.java +338 -338
  114. data/src/org/apache/batik/svggen/font/table/PrepTable.java +9 -9
  115. data/src/org/apache/batik/svggen/font/table/Program.java +15 -15
  116. data/src/org/apache/batik/svggen/font/table/RangeRecord.java +26 -25
  117. data/src/org/apache/batik/svggen/font/table/Script.java +38 -38
  118. data/src/org/apache/batik/svggen/font/table/ScriptList.java +42 -42
  119. data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +22 -22
  120. data/src/org/apache/batik/svggen/font/table/ScriptTags.java +2 -1
  121. data/src/org/apache/batik/svggen/font/table/SingleSubst.java +15 -16
  122. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +33 -33
  123. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +32 -32
  124. data/src/org/apache/batik/svggen/font/table/Table.java +171 -170
  125. data/src/org/apache/batik/svggen/font/table/TableDirectory.java +55 -55
  126. data/src/org/apache/batik/svggen/font/table/TableFactory.java +92 -93
  127. metadata +18 -19
  128. data/.travis.yml +0 -10
  129. data/calculate_torsional_angle.rb +0 -17
@@ -1,23 +1,22 @@
1
1
  /**
2
- Copyright 2004-2008 Ricard Marxer <email@ricardmarxer.com>
3
-
4
- This file is part of Geomerative.
5
-
6
- Geomerative is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU General Public License as published by
8
- the Free Software Foundation, either version 3 of the License, or
9
- (at your option) any later version.
10
-
11
- Geomerative is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with Geomerative. If not, see <http://www.gnu.org/licenses/>.
18
- */
19
-
20
- package geomerative ;
2
+ * Copyright 2004-2008 Ricard Marxer <email@ricardmarxer.com>
3
+ *
4
+ * This file is part of Geomerative.
5
+ *
6
+ * Geomerative is free software: you can redistribute it and/or modify it under
7
+ * the terms of the GNU General Public License as published by the Free Software
8
+ * Foundation, either version 3 of the License, or (at your option) any later
9
+ * version.
10
+ *
11
+ * Geomerative is distributed in the hope that it will be useful, but WITHOUT
12
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14
+ * details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License along with
17
+ * Geomerative. If not, see <http://www.gnu.org/licenses/>.
18
+ */
19
+ package geomerative;
21
20
 
22
21
  import processing.core.PApplet;
23
22
  import processing.core.PConstants;
@@ -25,11 +24,12 @@ import processing.core.PGraphics;
25
24
  import processing.core.PImage;
26
25
 
27
26
  /**
28
- * @extended
29
- */
30
- public class RStyle{
27
+
28
+ */
29
+ public class RStyle {
30
+
31
31
  public PImage texture = null;
32
-
32
+
33
33
  public boolean fillDef = false;
34
34
  public boolean fill = false;
35
35
  public int fillColor = 0xff000000;
@@ -43,7 +43,7 @@ public class RStyle{
43
43
 
44
44
  public boolean strokeAlphaDef = false;
45
45
  public int strokeAlpha = 0xff000000;
46
-
46
+
47
47
  public boolean strokeWeightDef = false;
48
48
  public float strokeWeight = 1F;
49
49
 
@@ -55,24 +55,25 @@ public class RStyle{
55
55
 
56
56
  private boolean oldFill = false;
57
57
  private int oldFillColor = 0;
58
-
58
+
59
59
  private boolean oldStroke = false;
60
60
  private int oldStrokeColor = 0;
61
61
  private float oldStrokeWeight = 1F;
62
62
  private int oldStrokeCap = PConstants.PROJECT;
63
63
  private int oldStrokeJoin = PConstants.MITER;
64
64
 
65
- public RStyle(){}
65
+ public RStyle() {
66
+ }
66
67
 
67
- public RStyle(RStyle p){
68
+ public RStyle(RStyle p) {
68
69
  texture = p.texture;
69
-
70
+
70
71
  fillDef = p.fillDef;
71
72
  fill = p.fill;
72
73
  fillColor = p.fillColor;
73
74
  fillAlphaDef = p.fillAlphaDef;
74
75
  fillAlpha = p.fillAlpha;
75
-
76
+
76
77
  strokeDef = p.strokeDef;
77
78
  stroke = p.stroke;
78
79
  strokeColor = p.strokeColor;
@@ -89,173 +90,172 @@ public class RStyle{
89
90
  strokeJoin = p.strokeJoin;
90
91
  }
91
92
 
92
- protected void setStyle(String styleString){
93
+ protected void setStyle(String styleString) {
93
94
  //RG.parent().println("Style parsing: " + styleString);
94
95
  String[] styleTokens = PApplet.splitTokens(styleString, ";");
95
-
96
- for (String styleToken : styleTokens) {
97
- String[] tokens = PApplet.splitTokens(styleToken, ":");
98
- tokens[0] = PApplet.trim(tokens[0]);
99
- switch (tokens[0]) {
100
- case "fill":
101
- setFill(tokens[1]);
102
- break;
103
- case "fill-opacity":
104
- setFillAlpha(tokens[1]);
105
- break;
106
- case "stroke":
107
- setStroke(tokens[1]);
108
- break;
109
- case "stroke-width":
110
- setStrokeWeight(tokens[1]);
111
- break;
112
- case "stroke-linecap":
113
- setStrokeCap(tokens[1]);
114
- break;
115
- case "stroke-linejoin":
116
- setStrokeJoin(tokens[1]);
117
- break;
118
- case "stroke-opacity":
119
- setStrokeAlpha(tokens[1]);
120
- break;
121
- case "opacity":
122
- setAlpha(tokens[1]);
123
- break;
124
- default:
125
- PApplet.println("Attribute '" + tokens[0] + "' not known. Ignoring it.");
126
- break;
127
- }
96
+
97
+ for (String styleToken : styleTokens) {
98
+ String[] tokens = PApplet.splitTokens(styleToken, ":");
99
+ tokens[0] = PApplet.trim(tokens[0]);
100
+ switch (tokens[0]) {
101
+ case "fill":
102
+ setFill(tokens[1]);
103
+ break;
104
+ case "fill-opacity":
105
+ setFillAlpha(tokens[1]);
106
+ break;
107
+ case "stroke":
108
+ setStroke(tokens[1]);
109
+ break;
110
+ case "stroke-width":
111
+ setStrokeWeight(tokens[1]);
112
+ break;
113
+ case "stroke-linecap":
114
+ setStrokeCap(tokens[1]);
115
+ break;
116
+ case "stroke-linejoin":
117
+ setStrokeJoin(tokens[1]);
118
+ break;
119
+ case "stroke-opacity":
120
+ setStrokeAlpha(tokens[1]);
121
+ break;
122
+ case "opacity":
123
+ setAlpha(tokens[1]);
124
+ break;
125
+ default:
126
+ PApplet.println("Attribute '" + tokens[0] + "' not known. Ignoring it.");
127
+ break;
128
128
  }
129
+ }
129
130
  }
130
131
 
131
- public void setFill(boolean _fill){
132
+ public void setFill(boolean _fill) {
132
133
  fillDef = true;
133
134
  fill = _fill;
134
135
  }
135
136
 
136
- public void setFill(int _fillColor){
137
+ public void setFill(int _fillColor) {
137
138
  //RG.parent().println("Setting fill by int: " + RG.parent().hex(_fillColor));
138
139
  setFill(true);
139
140
  fillColor = (fillColor & 0xff000000) | (_fillColor & 0x00ffffff);
140
141
  }
141
142
 
142
- public void setFill(String str){
143
+ public void setFill(String str) {
143
144
  //RG.parent().println("id: " + id);
144
145
  //RG.parent().println(" set fill: " + str);
145
- if(str.equals("none")){
146
+ if (str.equals("none")) {
146
147
  setFill(false);
147
148
 
148
- }else{
149
+ } else {
149
150
  setFill(getColor(str));
150
151
 
151
152
  }
152
153
  //RG.parent().println(" fillColor after: " + RG.parent().hex(fillColor));
153
154
  }
154
155
 
155
- public void setStroke(boolean _stroke){
156
+ public void setStroke(boolean _stroke) {
156
157
  strokeDef = true;
157
158
  stroke = _stroke;
158
159
  }
159
160
 
160
- public void setStroke(int _strokeColor){
161
+ public void setStroke(int _strokeColor) {
161
162
  setStroke(true);
162
163
  strokeColor = (strokeColor & 0xff000000) | (_strokeColor & 0x00ffffff);
163
164
  }
164
165
 
165
- public void setStroke(String str){
166
+ public void setStroke(String str) {
166
167
  //RG.parent().println(" set stroke: " + str);
167
- if(str.equals("none")){
168
+ if (str.equals("none")) {
168
169
  setStroke(false);
169
170
 
170
- }else{
171
+ } else {
171
172
  setStroke(getColor(str));
172
-
173
+
173
174
  }
174
175
  }
175
176
 
176
- public void setStrokeWeight(float value){
177
+ public void setStrokeWeight(float value) {
177
178
  //RG.parent().println(" set strokeWeight by float: " + value);
178
179
  strokeWeightDef = true;
179
180
  strokeWeight = value;
180
181
  }
181
182
 
182
- public void setStrokeWeight(String str){
183
+ public void setStrokeWeight(String str) {
183
184
  //RG.parent().println(" set strokeWeight by String: " + str);
184
- if(str.endsWith("px")){
185
+ if (str.endsWith("px")) {
185
186
  setStrokeWeight(PApplet.parseFloat(str.substring(0, str.length() - 2)));
186
- }else{
187
+ } else {
187
188
  setStrokeWeight(PApplet.parseFloat(str));
188
189
  }
189
190
 
190
-
191
191
  }
192
192
 
193
- public void setStrokeCap(String str){
193
+ public void setStrokeCap(String str) {
194
194
  //RG.parent().println(" set stroke-cap: " + str);
195
195
  strokeCapDef = true;
196
196
 
197
- switch (str) {
198
- case "butt":
199
- strokeCap = PConstants.PROJECT;
200
- break;
201
- case "round":
202
- strokeCap = PConstants.ROUND;
203
- break;
204
- case "square":
205
- strokeCap = PConstants.SQUARE;
206
- break;
207
- }
197
+ switch (str) {
198
+ case "butt":
199
+ strokeCap = PConstants.PROJECT;
200
+ break;
201
+ case "round":
202
+ strokeCap = PConstants.ROUND;
203
+ break;
204
+ case "square":
205
+ strokeCap = PConstants.SQUARE;
206
+ break;
207
+ }
208
208
  }
209
209
 
210
- public void setStrokeJoin(String str){
210
+ public void setStrokeJoin(String str) {
211
211
  //RG.parent().println(" set stroke-cap: " + str);
212
212
  strokeJoinDef = true;
213
213
 
214
- switch (str) {
215
- case "miter":
216
- strokeJoin = PConstants.MITER;
217
- break;
218
- case "round":
219
- strokeJoin = PConstants.ROUND;
220
- break;
221
- case "bevel":
222
- strokeJoin = PConstants.BEVEL;
223
- break;
224
- }
214
+ switch (str) {
215
+ case "miter":
216
+ strokeJoin = PConstants.MITER;
217
+ break;
218
+ case "round":
219
+ strokeJoin = PConstants.ROUND;
220
+ break;
221
+ case "bevel":
222
+ strokeJoin = PConstants.BEVEL;
223
+ break;
224
+ }
225
225
  }
226
226
 
227
- public void setStrokeAlpha(int opacity){
227
+ public void setStrokeAlpha(int opacity) {
228
228
  strokeAlphaDef = true;
229
229
  strokeAlpha = opacity;
230
230
  }
231
231
 
232
- public void setStrokeAlpha(String str){
233
- setStrokeAlpha((int)(PApplet.parseFloat(str) * 255F));
232
+ public void setStrokeAlpha(String str) {
233
+ setStrokeAlpha((int) (PApplet.parseFloat(str) * 255F));
234
234
  }
235
235
 
236
- public void setFillAlpha(int opacity){
236
+ public void setFillAlpha(int opacity) {
237
237
  fillAlphaDef = true;
238
238
  fillAlpha = opacity;
239
239
  }
240
240
 
241
- public void setFillAlpha(String str){
241
+ public void setFillAlpha(String str) {
242
242
  //RG.parent().println(" set fillOpacity: " + str);
243
- setFillAlpha((int)(PApplet.parseFloat(str) * 255F));
243
+ setFillAlpha((int) (PApplet.parseFloat(str) * 255F));
244
244
  //RG.parent().println(" fillColor after: " + RG.parent().hex(fillColor));
245
- }
245
+ }
246
246
 
247
- public void setAlpha(float opacity){
247
+ public void setAlpha(float opacity) {
248
248
  //RG.parent().println("Setting float opacity: " + opacity);
249
- setAlpha((int)(opacity * 100F));
249
+ setAlpha((int) (opacity * 100F));
250
250
  }
251
251
 
252
- public void setAlpha(int opacity){
252
+ public void setAlpha(int opacity) {
253
253
  /*
254
254
  RG.parent().println("setting opacity: " + RG.parent().hex(opacity));
255
255
 
256
256
  RG.parent().println(" fillColor before: " + RG.parent().hex(fillColor));
257
257
  RG.parent().println(" strokeColor before: " + RG.parent().hex(fillColor));
258
- */
258
+ */
259
259
 
260
260
  setFillAlpha(opacity);
261
261
  setStrokeAlpha(opacity);
@@ -266,15 +266,15 @@ public class RStyle{
266
266
  /*
267
267
  RG.parent().println(" fillColor now: " + RG.parent().hex(fillColor));
268
268
  RG.parent().println(" strokeColor now: " + RG.parent().hex(fillColor));
269
- */
269
+ */
270
270
  }
271
271
 
272
- public void setAlpha(String str){
272
+ public void setAlpha(String str) {
273
273
  //RG.parent().println("Setting string opacity: " + str);
274
274
  setAlpha(PApplet.parseFloat(str));
275
275
  }
276
276
 
277
- protected void saveContext(PGraphics g){
277
+ protected void saveContext(PGraphics g) {
278
278
  oldFill = g.fill;
279
279
  oldFillColor = g.fillColor;
280
280
  oldStroke = g.stroke;
@@ -284,189 +284,192 @@ public class RStyle{
284
284
  oldStrokeJoin = g.strokeJoin;
285
285
  }
286
286
 
287
- protected void saveContext(PApplet p){
287
+ protected void saveContext(PApplet p) {
288
288
  oldFill = p.g.fill;
289
289
  oldFillColor = p.g.fillColor;
290
290
  oldStroke = p.g.stroke;
291
291
  oldStrokeColor = p.g.strokeColor;
292
- oldStrokeWeight = p.g.strokeWeight;
292
+ oldStrokeWeight = p.g.strokeWeight;
293
293
  oldStrokeCap = p.g.strokeCap;
294
294
  oldStrokeJoin = p.g.strokeJoin;
295
295
  }
296
296
 
297
- protected void saveContext(){
297
+ protected void saveContext() {
298
298
  saveContext(RG.parent());
299
299
  }
300
300
 
301
- protected void restoreContext(PGraphics g){
301
+ protected void restoreContext(PGraphics g) {
302
302
  g.fill(oldFillColor);
303
- if(!oldFill){
303
+ if (!oldFill) {
304
304
  g.noFill();
305
305
  }
306
306
 
307
307
  g.stroke(oldStrokeColor);
308
308
  g.strokeWeight(oldStrokeWeight);
309
309
 
310
- try{
310
+ try {
311
311
  g.strokeCap(oldStrokeCap);
312
312
  g.strokeJoin(oldStrokeJoin);
313
- }catch(RuntimeException e){}
313
+ } catch (RuntimeException e) {
314
+ }
314
315
 
315
- if(!oldStroke){
316
+ if (!oldStroke) {
316
317
  g.noStroke();
317
318
  }
318
319
  }
319
320
 
320
- protected void restoreContext(PApplet p){
321
+ protected void restoreContext(PApplet p) {
321
322
  p.fill(oldFillColor);
322
- if(!oldFill){
323
+ if (!oldFill) {
323
324
  p.noFill();
324
325
  }
325
326
 
326
327
  p.stroke(oldStrokeColor);
327
328
  p.strokeWeight(oldStrokeWeight);
328
329
 
329
- try{
330
+ try {
330
331
  p.strokeCap(oldStrokeCap);
331
332
  p.strokeJoin(oldStrokeJoin);
332
- }catch(RuntimeException e){}
333
+ } catch (RuntimeException e) {
334
+ }
333
335
 
334
- if(!oldStroke){
336
+ if (!oldStroke) {
335
337
  p.noStroke();
336
- }
338
+ }
337
339
  }
338
340
 
339
- protected void restoreContext(){
341
+ protected void restoreContext() {
340
342
  restoreContext(RG.parent());
341
343
  }
342
344
 
343
- protected void setContext(PGraphics g){
344
- if(fillAlphaDef){
345
- if(fillDef){
345
+ protected void setContext(PGraphics g) {
346
+ if (fillAlphaDef) {
347
+ if (fillDef) {
346
348
  fillColor = ((fillAlpha << 24) & 0xff000000) | (fillColor & 0x00ffffff);
347
- }else{
348
- if(g.fill){
349
+ } else {
350
+ if (g.fill) {
349
351
  g.fill(((fillAlpha << 24) & 0xff000000) | (g.fillColor & 0x00ffffff));
350
352
  }
351
353
  }
352
354
  }
353
355
 
354
- if(fillDef){
356
+ if (fillDef) {
355
357
  g.fill(fillColor);
356
- if(!fill){
358
+ if (!fill) {
357
359
  g.noFill();
358
360
  }
359
361
  }
360
362
 
361
- if(strokeWeightDef){
363
+ if (strokeWeightDef) {
362
364
  g.strokeWeight(strokeWeight);
363
365
  }
364
366
 
365
- try{
366
- if(strokeCapDef){
367
+ try {
368
+ if (strokeCapDef) {
367
369
  g.strokeCap(strokeCap);
368
370
  }
369
-
370
- if(strokeJoinDef){
371
+
372
+ if (strokeJoinDef) {
371
373
  g.strokeJoin(strokeJoin);
372
374
  }
373
- }catch(RuntimeException e){}
375
+ } catch (RuntimeException e) {
376
+ }
374
377
 
375
- if(strokeAlphaDef){
376
- if(strokeDef){
378
+ if (strokeAlphaDef) {
379
+ if (strokeDef) {
377
380
  strokeColor = ((strokeAlpha << 24) & 0xff000000) | (strokeColor & 0x00ffffff);
378
- }else{
379
- if(g.stroke){
381
+ } else {
382
+ if (g.stroke) {
380
383
  g.stroke(((strokeAlpha << 24) & 0xff000000) | (g.strokeColor & 0x00ffffff));
381
384
  }
382
385
  }
383
386
  }
384
-
385
- if(strokeDef){
387
+
388
+ if (strokeDef) {
386
389
  g.stroke(strokeColor);
387
- if(!stroke){
390
+ if (!stroke) {
388
391
  g.noStroke();
389
392
  }
390
393
  }
391
394
  }
392
395
 
393
- protected void setContext(PApplet p){
394
-
395
- if(fillAlphaDef){
396
- if(fillDef){
396
+ protected void setContext(PApplet p) {
397
+
398
+ if (fillAlphaDef) {
399
+ if (fillDef) {
397
400
  fillColor = ((fillAlpha << 24) & 0xff000000) | (fillColor & 0x00ffffff);
398
- }else{
399
- if(p.g.fill){
401
+ } else {
402
+ if (p.g.fill) {
400
403
  p.fill(((fillAlpha << 24) & 0xff000000) | (p.g.fillColor & 0x00ffffff));
401
404
  }
402
405
  }
403
406
  }
404
-
405
- if(fillDef){
407
+
408
+ if (fillDef) {
406
409
  p.fill(fillColor);
407
- if(!fill){
410
+ if (!fill) {
408
411
  p.noFill();
409
412
  }
410
413
  }
411
414
 
412
- if(strokeWeightDef){
415
+ if (strokeWeightDef) {
413
416
  p.strokeWeight(strokeWeight);
414
417
  }
415
418
 
416
- try{
417
- if(strokeCapDef){
419
+ try {
420
+ if (strokeCapDef) {
418
421
  p.strokeCap(strokeCap);
419
422
  }
420
-
421
- if(strokeJoinDef){
423
+
424
+ if (strokeJoinDef) {
422
425
  p.strokeJoin(strokeJoin);
423
426
  }
424
- }catch(RuntimeException e){}
427
+ } catch (RuntimeException e) {
428
+ }
425
429
 
426
- if(strokeAlphaDef){
427
- if(strokeDef){
430
+ if (strokeAlphaDef) {
431
+ if (strokeDef) {
428
432
  strokeColor = ((strokeAlpha << 24) & 0xff000000) | (strokeColor & 0x00ffffff);
429
- }else{
430
- if(p.g.stroke){
433
+ } else {
434
+ if (p.g.stroke) {
431
435
  p.stroke(((strokeAlpha << 24) & 0xff000000) | (p.g.strokeColor & 0x00ffffff));
432
436
  }
433
437
  }
434
438
  }
435
439
 
436
- if(strokeDef){
440
+ if (strokeDef) {
437
441
  p.stroke(strokeColor);
438
- if(!stroke){
442
+ if (!stroke) {
439
443
  p.noStroke();
440
444
  }
441
445
  }
442
446
  }
443
447
 
444
- protected void setContext(){
448
+ protected void setContext() {
445
449
  setContext(RG.parent());
446
450
  }
447
451
 
448
-
449
- private int getColor(String colorString){
452
+ private int getColor(String colorString) {
450
453
  colorString = PApplet.trim(colorString);
451
-
452
- if(colorString.startsWith("#")){
453
- return PApplet.unhex("FF"+colorString.substring(1));
454
- }else if(colorString.startsWith("rgb")){
454
+
455
+ if (colorString.startsWith("#")) {
456
+ return PApplet.unhex("FF" + colorString.substring(1));
457
+ } else if (colorString.startsWith("rgb")) {
455
458
  String[] rgb = PApplet.splitTokens(colorString, "rgb( , )");
456
- return (int)RG.parent().color(PApplet.parseInt(rgb[0]), PApplet.parseInt(rgb[1]), PApplet.parseInt(rgb[2]));
457
- }else{
458
- switch (colorString) {
459
- case "black":
460
- return 0;
461
- case "red":
462
- return RG.parent().color(255, 0, 0);
463
- case "green":
464
- return RG.parent().color(0, 255, 0);
465
- case "blue":
466
- return RG.parent().color(0, 0, 255);
467
- case "yellow":
468
- return RG.parent().color(0, 255, 255);
469
- }
459
+ return (int) RG.parent().color(PApplet.parseInt(rgb[0]), PApplet.parseInt(rgb[1]), PApplet.parseInt(rgb[2]));
460
+ } else {
461
+ switch (colorString) {
462
+ case "black":
463
+ return 0;
464
+ case "red":
465
+ return RG.parent().color(255, 0, 0);
466
+ case "green":
467
+ return RG.parent().color(0, 255, 0);
468
+ case "blue":
469
+ return RG.parent().color(0, 0, 255);
470
+ case "yellow":
471
+ return RG.parent().color(0, 255, 255);
472
+ }
470
473
  }
471
474
  return 0;
472
475
  }
@@ -0,0 +1,4 @@
1
+ module geomerative{
2
+ exports geomerative;
3
+ requires org.processing.core;
4
+ }