geomerative 0.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 (111) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/LICENSE +662 -0
  4. data/LICENSE.md +9 -0
  5. data/README.md +2 -0
  6. data/Rakefile +37 -0
  7. data/examples/README.md +7 -0
  8. data/examples/data/FreeSans.ttf +0 -0
  9. data/examples/data/ReplicaBold.ttf +0 -0
  10. data/examples/data/bot1.svg +160 -0
  11. data/examples/hello_svg_to_pdf.rb +26 -0
  12. data/examples/hello_world.rb +23 -0
  13. data/examples/physics_type.rb +77 -0
  14. data/examples/rotate_first_letter.rb +28 -0
  15. data/geomerative.gemspec +32 -0
  16. data/lib/geomerative.rb +12 -0
  17. data/lib/geomerative/version.rb +3 -0
  18. data/pom.xml +110 -0
  19. data/src/geomerative/FastRClip.java +2715 -0
  20. data/src/geomerative/RClip.java +2892 -0
  21. data/src/geomerative/RClosest.java +64 -0
  22. data/src/geomerative/RCommand.java +1941 -0
  23. data/src/geomerative/RContour.java +348 -0
  24. data/src/geomerative/RFont.java +583 -0
  25. data/src/geomerative/RG.java +753 -0
  26. data/src/geomerative/RGeomElem.java +1075 -0
  27. data/src/geomerative/RGroup.java +888 -0
  28. data/src/geomerative/RMatrix.java +401 -0
  29. data/src/geomerative/RMesh.java +420 -0
  30. data/src/geomerative/RPath.java +1095 -0
  31. data/src/geomerative/RPoint.java +419 -0
  32. data/src/geomerative/RPolygon.java +1110 -0
  33. data/src/geomerative/RRectangle.java +91 -0
  34. data/src/geomerative/RSVG.java +976 -0
  35. data/src/geomerative/RShape.java +2045 -0
  36. data/src/geomerative/RStrip.java +221 -0
  37. data/src/geomerative/RStyle.java +469 -0
  38. data/src/org/apache/batik/svggen/font/.SVGFont.java.swp +0 -0
  39. data/src/org/apache/batik/svggen/font/Font.java +188 -0
  40. data/src/org/apache/batik/svggen/font/Glyph.java +113 -0
  41. data/src/org/apache/batik/svggen/font/Messages.java.bak +72 -0
  42. data/src/org/apache/batik/svggen/font/Point.java +38 -0
  43. data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +15 -0
  44. data/src/org/apache/batik/svggen/font/table/ClassDef.java +42 -0
  45. data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +55 -0
  46. data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +49 -0
  47. data/src/org/apache/batik/svggen/font/table/CmapFormat.java +81 -0
  48. data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +60 -0
  49. data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +48 -0
  50. data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +147 -0
  51. data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +60 -0
  52. data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +84 -0
  53. data/src/org/apache/batik/svggen/font/table/CmapTable.java +87 -0
  54. data/src/org/apache/batik/svggen/font/table/Coverage.java +50 -0
  55. data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +59 -0
  56. data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +56 -0
  57. data/src/org/apache/batik/svggen/font/table/CvtTable.java +48 -0
  58. data/src/org/apache/batik/svggen/font/table/Device.java +63 -0
  59. data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +73 -0
  60. data/src/org/apache/batik/svggen/font/table/Feature.java +56 -0
  61. data/src/org/apache/batik/svggen/font/table/FeatureList.java +70 -0
  62. data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +52 -0
  63. data/src/org/apache/batik/svggen/font/table/FeatureTags.java +30 -0
  64. data/src/org/apache/batik/svggen/font/table/FpgmTable.java +38 -0
  65. data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +165 -0
  66. data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +160 -0
  67. data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +79 -0
  68. data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +155 -0
  69. data/src/org/apache/batik/svggen/font/table/GlyfTable.java +111 -0
  70. data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +39 -0
  71. data/src/org/apache/batik/svggen/font/table/GposTable.java +80 -0
  72. data/src/org/apache/batik/svggen/font/table/GsubTable.java +118 -0
  73. data/src/org/apache/batik/svggen/font/table/HeadTable.java +159 -0
  74. data/src/org/apache/batik/svggen/font/table/HheaTable.java +109 -0
  75. data/src/org/apache/batik/svggen/font/table/HmtxTable.java +99 -0
  76. data/src/org/apache/batik/svggen/font/table/KernSubtable.java +58 -0
  77. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +65 -0
  78. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +56 -0
  79. data/src/org/apache/batik/svggen/font/table/KernTable.java +64 -0
  80. data/src/org/apache/batik/svggen/font/table/KerningPair.java +53 -0
  81. data/src/org/apache/batik/svggen/font/table/LangSys.java +58 -0
  82. data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +52 -0
  83. data/src/org/apache/batik/svggen/font/table/Ligature.java +57 -0
  84. data/src/org/apache/batik/svggen/font/table/LigatureSet.java +55 -0
  85. data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +40 -0
  86. data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +63 -0
  87. data/src/org/apache/batik/svggen/font/table/LocaTable.java +72 -0
  88. data/src/org/apache/batik/svggen/font/table/Lookup.java +77 -0
  89. data/src/org/apache/batik/svggen/font/table/LookupList.java +68 -0
  90. data/src/org/apache/batik/svggen/font/table/LookupSubtable.java +27 -0
  91. data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +31 -0
  92. data/src/org/apache/batik/svggen/font/table/MaxpTable.java +124 -0
  93. data/src/org/apache/batik/svggen/font/table/NameRecord.java +98 -0
  94. data/src/org/apache/batik/svggen/font/table/NameTable.java +67 -0
  95. data/src/org/apache/batik/svggen/font/table/Os2Table.java +232 -0
  96. data/src/org/apache/batik/svggen/font/table/Panose.java +108 -0
  97. data/src/org/apache/batik/svggen/font/table/PostTable.java +379 -0
  98. data/src/org/apache/batik/svggen/font/table/PrepTable.java +38 -0
  99. data/src/org/apache/batik/svggen/font/table/Program.java +49 -0
  100. data/src/org/apache/batik/svggen/font/table/RangeRecord.java +57 -0
  101. data/src/org/apache/batik/svggen/font/table/Script.java +72 -0
  102. data/src/org/apache/batik/svggen/font/table/ScriptList.java +78 -0
  103. data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +52 -0
  104. data/src/org/apache/batik/svggen/font/table/ScriptTags.java +28 -0
  105. data/src/org/apache/batik/svggen/font/table/SingleSubst.java +47 -0
  106. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +67 -0
  107. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +67 -0
  108. data/src/org/apache/batik/svggen/font/table/Table.java +204 -0
  109. data/src/org/apache/batik/svggen/font/table/TableDirectory.java +94 -0
  110. data/src/org/apache/batik/svggen/font/table/TableFactory.java +121 -0
  111. metadata +206 -0
@@ -0,0 +1,9 @@
1
+ ### Licenses
2
+
3
+ The geomerative library of Ricard Marxer was published with the GNU Affero General Public License v3.0 (see [LICENSE][]), but also incorporates batik font code published by the 'Apache Software Foundation', under the [Apache-2.0 license][]. Both code bases have been modified by Martin Prout, largely to bring them up to date with java-8, any modifications thereof can be considered to under the respective licenses and come with no guarantees of performance or warranties of any kind.
4
+
5
+
6
+
7
+ [LICENSE]:http://www.gnu.org/licenses/agpl-3.0.html
8
+
9
+ [Apache-2.0 license]:http://www.apache.org/licenses/LICENSE-2.0
@@ -0,0 +1,2 @@
1
+ # geomerative gem
2
+ Gem wrapper for Ricard Marxer Geomerative library for processing-3.0 and JRubyArt
@@ -0,0 +1,37 @@
1
+ require_relative 'lib/geomerative/version'
2
+
3
+ def create_manifest
4
+ title = 'Implementation-Title: geomerative (java extension for geomerative gem)'
5
+ version = format('Implementation-Version: %s', Geomerative::VERSION)
6
+ file = File.open('MANIFEST.MF', 'w') do |f|
7
+ f.puts(title)
8
+ f.puts(version)
9
+ end
10
+ end
11
+
12
+ task default: [:init, :compile, :gem]
13
+
14
+ desc 'Create Manifest'
15
+ task :init do
16
+ create_manifest
17
+ end
18
+
19
+ desc 'Build gem'
20
+ task :gem do
21
+ sh "gem build geomerative.gemspec"
22
+ end
23
+
24
+ desc 'Compile'
25
+ task :compile do
26
+ sh "mvn package"
27
+ sh "mv target/geomerative.jar lib"
28
+ end
29
+
30
+ desc 'clean'
31
+ task :clean do
32
+ Dir['./**/*.%w{jar gem}'].each do |path|
33
+ puts "Deleting #{path} ..."
34
+ File.delete(path)
35
+ end
36
+ FileUtils.rm_rf('./target')
37
+ end
@@ -0,0 +1,7 @@
1
+ The sketches here seem to be require the `--nojruby` flag to run, which seems to be Catch-22, since conventionally it was thought you needed an installed jruby to use gems. However it works absolutely fine for me on my linux box, suggesting that jruby-complete-9.0.4.0 is respecting the `GEM_PATH` and or `GEM_HOME` environmental variables set in my `.bashrc` Archlinux or `.profile` Mint (Ubuntu/Debian).
2
+
3
+ ```bash
4
+ export GEM_HOME="/home/tux/.gem/ruby/2.2.0"
5
+ export GEM_PATH="/home/tux/.gem/ruby/2.2.0"
6
+ export PATH="${PATH}:${GEM_PATH}/bin"
7
+ ```
@@ -0,0 +1,160 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
4
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
5
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
6
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
7
+ ]>
8
+ <svg version="1.0" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
9
+ width="281" height="285" viewBox="-0.826 -0.359 281 285" enable-background="new -0.826 -0.359 281 285" xml:space="preserve">
10
+ <defs>
11
+ </defs>
12
+ <path fill-rule="evenodd" clip-rule="evenodd" fill="#010101" stroke="#010101" stroke-width="9.6086" d="M113.433,30.168
13
+ c0,13.984-10.961,25.318-24.484,25.316C75.426,55.479,64.46,44.14,64.46,30.155S75.422,4.836,88.944,4.839
14
+ C102.467,4.846,113.433,16.184,113.433,30.168z"/>
15
+ <g>
16
+ <path fill="#DCD1C9" d="M39.651,46.68c-44.969,43.663-50.07,140.646-1.164,192.438c51.409,54.444,145.329,53.947,195.813,3.567
17
+ c51.877-51.769,54.604-131.891,8.549-188.207C192.479-7.108,104.535-16.322,39.651,46.68z"/>
18
+ <g>
19
+ <path fill="none" d="M39.651,46.68c-44.969,43.663-50.07,140.646-1.164,192.438c51.409,54.444,145.329,53.947,195.813,3.567
20
+ c51.877-51.769,54.604-131.891,8.549-188.207C192.479-7.108,104.535-16.322,39.651,46.68z"/>
21
+ <path fill="#010101" d="M36.934,43.962C6.838,73.562-3.205,119.66,0.862,160.518c2.165,21.755,8.708,43.123,20.062,61.861
22
+ c11.465,18.922,28.43,34.059,47.793,44.567c38.533,20.912,87.19,22.636,127.435,5.596c42.95-18.185,73.317-58.809,81.129-104.54
23
+ c8.081-47.314-9.347-95.687-43.426-128.983C201.161,7.076,154.53-6.69,109.856,3.103C82.15,9.177,57.217,24.448,36.934,43.962
24
+ c-3.578,3.442,1.864,8.871,5.436,5.436c35.482-34.137,84.699-50.869,132.869-36.563c46.25,13.736,81.641,54.486,92.779,100.845
25
+ c11.391,47.407-5.127,98.258-41.2,130.783c-33.292,30.017-82.76,38.231-125.342,27.153c-22.003-5.724-42.288-17.146-58.358-33.236
26
+ c-15.779-15.8-25.755-36.354-31.091-57.858c-10.125-40.805-3.8-90.13,23.262-123.42c2.202-2.709,4.594-5.257,7.082-7.704
27
+ C45.907,45.918,40.469,40.485,36.934,43.962z"/>
28
+ </g>
29
+ </g>
30
+ <path opacity="0.22" fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#010101" stroke-width="4.2158" d="
31
+ M253.34,71.086c0,0-21.447,73.052-144.24,113.348"/>
32
+ <path opacity="0.22" fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#010101" stroke-width="4.2158" d="
33
+ M50.023,37.374c0,0,16.015,107.296,184.966,205.785"/>
34
+ <g>
35
+ <path fill="#010101" d="M174.355,101.981c-43.021-7.701-111.662,3.068-137.524,26.602c-39.524,35.657,16.247,121.859,56.42,133.004
36
+ c52.411,14.541,116.388,7.237,143.871-45.502c32.469-64.455-4.94-99.36-60.651-114.104"/>
37
+ <g>
38
+ <path fill="none" d="M174.355,101.981c-43.021-7.701-111.662,3.068-137.524,26.602c-39.524,35.657,16.247,121.859,56.42,133.004
39
+ c52.411,14.541,116.388,7.237,143.871-45.502c32.469-64.455-4.94-99.36-60.651-114.104"/>
40
+ <path fill="#010101" d="M175.788,99.106c-22.491-3.917-45.875-2.992-68.383,0.283c-21.383,3.111-43.581,8.509-62.346,19.588
41
+ c-14.892,8.792-24.576,21.822-25.77,39.378c-1.249,18.36,5.922,36.67,14.672,52.43c9.148,16.477,21.649,31.662,36.767,42.994
42
+ c15.058,11.288,33.858,14.645,52.219,16.477c42.724,4.263,88.239-8.147,113.104-45.316c15.824-23.655,24.019-56.618,9.717-82.75
43
+ c-13.166-24.056-41.782-36.14-66.927-42.883c-3.38-0.906-9.645,4.035-4.738,5.351c19.54,5.24,39.436,13.162,54.013,27.673
44
+ c13.713,13.652,18.818,31.942,16.123,50.89c-3.305,23.229-15.872,46.106-34.214,60.756
45
+ c-17.037,13.607-38.688,19.634-60.147,21.017c-11.116,0.716-22.279-0.017-33.288-1.619c-9.442-1.374-19.371-3.145-28.102-7.137
46
+ c-16.275-7.442-29.36-22.438-39.418-36.794c-10.987-15.681-19.566-34.055-21.424-53.286c-0.806-8.338,0.27-16.99,3.752-24.637
47
+ c3.572-7.842,10.018-13.394,17.18-17.892c17.482-10.98,39.337-15.744,59.494-18.676c21.364-3.108,43.522-3.81,64.854-0.096
48
+ C176.822,105.536,181.239,100.055,175.788,99.106L175.788,99.106z"/>
49
+ </g>
50
+ </g>
51
+ <g>
52
+ <path fill="#ED1B6A" d="M250.235,163.193c-5.812-31.253-35.123-50.524-72.66-60.612h-2.145
53
+ c-43.628-7.931-113.24,3.161-139.468,27.398c-10.321,9.456-14.197,22.372-13.625,36.523l4.348,3.13
54
+ c8.622,7.931,17.963-3.604,22.99-9.373c6.469-7.93,9.343-12.977,19.403-15.86c9.341-3.606,18.684-2.884,28.019-4.326
55
+ c8.624-1.442,15.096-5.046,23.713-5.768c7.906-0.721,15.093-5.768,22.996-2.884c3.597,0.721,6.468,2.884,10.058,3.605
56
+ c4.317,0,8.623-1.442,12.938-0.721c5.03,1.442,6.466,5.768,11.495,7.21c5.749,1.441,7.902,1.441,12.934,5.048
57
+ c4.314,2.163,7.907,5.045,12.217,7.208c5.747,2.883,10.058,1.443,15.087,2.883c6.472,2.164,7.182,10.095,15.092,10.814
58
+ c4.312,0,12.214-1.439,15.808-3.603L250.235,163.193z"/>
59
+ </g>
60
+ <g>
61
+ <path fill="#ED1B6A" d="M98.567,263.236c50.975,14.76,109.2,2.759,136.183-45.144c0.402-0.735,0.743-1.448,1.124-2.178
62
+ l-2.929-2.908c0-0.634-0.696-2.543-1.388-3.178c-11.829-13.353-41.738,21.617-55.656,19.074c-5.565-1.271-5.565-5.725-12.519-3.817
63
+ c-4.176,0.639-7.652,3.817-11.826,4.453c-5.562,1.907-5.562-0.636-10.437-0.636c-3.475-0.636-7.651,1.271-11.128,1.907
64
+ c-11.132,1.907-18.086-1.271-27.134-5.086c-6.953-3.178-15.303-5.086-22.255-8.268c-5.566-2.542-31.306-16.53-34.782-4.45
65
+ c0,0-1.272,1.979-2.911,4.764C56.87,238.188,72.218,255.607,98.567,263.236z"/>
66
+ </g>
67
+ <g>
68
+ <path fill="#FFFFFF" d="M88.249,157.79c6.698,2.19,16.259-6.914,17.8-13.337c1.535-8.641-2.75-23.457-11.903-26.308
69
+ c-10.047-3.29-28.312,4.297-30.956,14.044c-3.752,13.073,11.67,23.428,22.827,25.609"/>
70
+ </g>
71
+ <g>
72
+ <path fill="#FFFFFF" d="M90.08,235.423c0.705-2.8,4.232-10.5,9.167-12.601c7.054-2.8,16.222,2.101,19.042,8.399
73
+ c4.938,8.401,0,18.898-8.463,19.601c-10.579,1.399-17.631-4.2-20.451-12.601"/>
74
+ </g>
75
+ <g>
76
+ <path fill="#FFFFFF" d="M79.232,236.037c9.167-3.502,3.55-27.247-8.463-22.401c-17.366,7-2.998,25.726,8.288,22.226"/>
77
+ </g>
78
+ <g>
79
+ <path fill="#FFFFFF" d="M126.639,252.798c-10.073-22.721,15.564-39.986,31.131-24.539c7.322,7.271,9.04,23.288-1.948,27.832
80
+ C149.414,258.816,132.13,258.25,126.639,252.798"/>
81
+ </g>
82
+ <g>
83
+ <path fill="#FFFFFF" d="M50.407,213.636c0-7.001,9.875-9.801,11.99-1.401c2.116,11.199-12.696,6.827-11.903,1.314"/>
84
+ </g>
85
+ <g>
86
+ <path fill="#FFFFFF" d="M194.573,241.075c5.755-10.238-17.841-27.873-25.184-14.225c-10.609,19.727,17.177,26.05,24.887,14.197"/>
87
+ </g>
88
+ <g>
89
+ <path fill="#FFFFFF" d="M196.846,228.575c-0.241-1.773,0.016-7.014,2.379-9.352c3.42-3.218,9.84-2.478,12.921,0.511
90
+ c4.787,3.723,4.364,10.9-0.356,13.23c-5.777,3.211-11.137,1.593-14.702-2.614"/>
91
+ </g>
92
+ <g>
93
+ <path fill="#FFFFFF" d="M216.494,212.062c0-7.002,9.875-9.803,11.989-1.401c2.116,11.2-12.695,6.824-11.903,1.313"/>
94
+ </g>
95
+ <g>
96
+ <path fill="#FFFFFF" d="M59.668,149.918c0.314,2.627-0.19,10.368-3.735,13.762c-5.132,4.677-14.6,3.434-19.084-1.06
97
+ c-6.985-5.614-6.186-16.212,0.844-19.543c8.613-4.61,16.496-2.085,21.666,4.21"/>
98
+ </g>
99
+ <g>
100
+ <path fill="#FFFFFF" d="M184.648,158.552c-6.402,2.938-16.947-5.027-19.219-11.233c-2.516-8.407,0.036-23.615,8.801-27.482
101
+ c9.604-4.405,28.62,1.061,32.369,10.445c5.229,12.562-8.9,24.596-19.734,28.025"/>
102
+ </g>
103
+ <g>
104
+ <path fill="#FFFFFF" d="M207.767,150.477c-0.341,2.864,0.208,11.304,4.072,15.005c5.597,5.096,15.921,3.741,20.806-1.158
105
+ c7.618-6.12,6.745-17.673-0.918-21.306c-9.391-5.028-17.984-2.273-23.621,4.589"/>
106
+ </g>
107
+ <g>
108
+ <circle fill="#010101" cx="36.818" cy="77.957" r="19.355"/>
109
+ </g>
110
+ <g>
111
+ <circle fill="#010101" cx="237.251" cy="76.863" r="22.024"/>
112
+ </g>
113
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" cx="36.677" cy="76.608" r="16.548"/>
114
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" cx="237.924" cy="76.074" r="19.217"/>
115
+ <path opacity="0.22" fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#010101" stroke-width="2.4" d="M187.23,11.758
116
+ c-13.361,38.694-59.96,40.978-115.854,73.392"/>
117
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#F7F8F8" cx="62.383" cy="43.059" r="5.072"/>
118
+ <polygon fill="#9F9F9F" points="65.342,42.071 63.369,42.071 63.369,40.1 61.396,40.1 61.396,42.071 59.425,42.071 59.425,44.046
119
+ 61.396,44.046 61.396,46.018 63.369,46.018 63.369,44.046 65.342,44.046 "/>
120
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#F7F8F8" cx="68.255" cy="56.778" r="5.072"/>
121
+ <polygon fill="#9F9F9F" points="71.213,55.79 69.24,55.79 69.24,53.819 67.268,53.819 67.268,55.79 65.296,55.79 65.296,57.765
122
+ 67.268,57.765 67.268,59.736 69.24,59.736 69.24,57.765 71.213,57.765 "/>
123
+ <ellipse transform="matrix(0.8929 -0.4502 0.4502 0.8929 -53.4242 36.5359)" fill-rule="evenodd" clip-rule="evenodd" fill="#F7F8F8" cx="50.106" cy="130.595" rx="5.072" ry="3.111"/>
124
+ <polygon fill="#9F9F9F" points="52.476,128.724 50.714,129.611 50.169,128.532 48.407,129.42 48.951,130.5 47.192,131.386
125
+ 47.736,132.468 49.496,131.58 50.041,132.661 51.803,131.774 51.259,130.691 53.02,129.803 "/>
126
+ <ellipse fill-rule="evenodd" clip-rule="evenodd" fill="#F7F8F8" cx="170.956" cy="251.875" rx="5.072" ry="3.644"/>
127
+ <polygon fill="#9F9F9F" points="173.912,251.166 171.94,251.166 171.94,249.75 169.969,249.75 169.969,251.166 167.996,251.166
128
+ 167.996,252.583 169.969,252.583 169.969,254 171.94,254 171.94,252.583 173.912,252.583 "/>
129
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#F7F8F8" cx="248.846" cy="109.625" r="5.071"/>
130
+ <polygon fill="#9F9F9F" points="251.805,108.637 249.831,108.637 249.831,106.666 247.858,106.666 247.858,108.637 245.887,108.637
131
+ 245.887,110.612 247.858,110.612 247.858,112.584 249.831,112.584 249.831,110.612 251.805,110.612 "/>
132
+ <path fill-rule="evenodd" clip-rule="evenodd" fill="#E54097" d="M107.625,29.171c0,10.696-8.384,19.365-18.727,19.363
133
+ c-10.343-0.003-18.73-8.676-18.73-19.373S78.553,9.796,88.896,9.799C99.238,9.803,107.625,18.475,107.625,29.171z"/>
134
+ <path fill-rule="evenodd" clip-rule="evenodd" fill="#AD208E" d="M99.555,29.17c0,5.887-4.771,10.657-10.656,10.655
135
+ c-5.885,0-10.657-4.776-10.66-10.66c0-5.888,4.771-10.658,10.656-10.657C94.781,18.51,99.555,23.283,99.555,29.17z"/>
136
+ <g>
137
+ <path fill="#F490AF" d="M88.895,7.848c-11.386-0.002-20.613,9.54-20.613,21.314c0,11.772,9.23,21.32,20.617,21.323
138
+ c11.385,0.003,20.612-9.539,20.612-21.312C109.511,17.4,100.278,7.853,88.895,7.848L88.895,7.848z M88.9,47.361
139
+ c-9.646-0.002-17.494-8.166-17.494-18.199c0-4.88,1.832-9.462,5.158-12.901c3.299-3.412,7.678-5.29,12.33-5.289
140
+ c9.646,0.004,17.493,8.169,17.493,18.2c0,4.88-1.832,9.462-5.158,12.901C97.93,45.485,93.551,47.362,88.9,47.361L88.9,47.361z"/>
141
+ </g>
142
+ <path fill-rule="evenodd" clip-rule="evenodd" fill="#F490AF" d="M103.231,19.386c0,3.882-3.143,7.027-7.024,7.026
143
+ c-3.887,0-7.03-3.149-7.033-7.03c0-3.882,3.146-7.027,7.027-7.026C100.085,12.358,103.231,15.505,103.231,19.386z"/>
144
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" cx="100.37" cy="26.965" r="3.905"/>
145
+ <path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M101.996,34.82c0,1.424-1.154,2.577-2.581,2.577
146
+ c-1.423,0-2.575-1.156-2.575-2.579c0-1.424,1.152-2.576,2.575-2.575C100.838,32.243,101.996,33.397,101.996,34.82z"/>
147
+ <path fill-rule="evenodd" clip-rule="evenodd" fill="#E54097" d="M134.252,19.146c0,5.71-4.476,10.339-9.998,10.337
148
+ s-10-4.632-10-10.343c0-5.711,4.476-10.339,9.998-10.338C129.774,8.805,134.252,13.435,134.252,19.146z"/>
149
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#AD208E" cx="124.253" cy="19.143" r="5.69"/>
150
+ <g>
151
+ <path fill="#F490AF" d="M124.252,7.761c-6.079-0.001-11.005,5.093-11.005,11.38c0,6.285,4.927,11.382,11.007,11.384
152
+ c6.079,0.001,11.005-5.093,11.005-11.379S130.329,7.764,124.252,7.761L124.252,7.761z M124.254,28.857
153
+ c-5.149-0.001-9.339-4.36-9.339-9.716c0-2.606,0.978-5.052,2.754-6.889c1.761-1.821,4.099-2.824,6.583-2.823
154
+ c5.149,0.002,9.339,4.361,9.339,9.717c0,2.605-0.978,5.051-2.754,6.888C129.076,27.855,126.738,28.858,124.254,28.857
155
+ L124.254,28.857z"/>
156
+ </g>
157
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#F490AF" cx="128.154" cy="13.92" r="3.753"/>
158
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" cx="130.378" cy="17.967" r="2.085"/>
159
+ <circle fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" cx="129.87" cy="22.161" r="1.376"/>
160
+ </svg>
@@ -0,0 +1,26 @@
1
+ load_library :pdf
2
+ require 'geomerative'
3
+
4
+ attr_reader :grp, :pdf
5
+
6
+ def settings
7
+ size(400, 400)
8
+ smooth
9
+ end
10
+
11
+ def setup
12
+ sketch_title 'SVG to PDF sketch'
13
+ RG.init(self)
14
+ @grp = RG.load_shape('bot1.svg')
15
+ @pdf = create_graphics(width, height, PDF, 'bot1.pdf')
16
+ end
17
+
18
+ def draw
19
+ background(255)
20
+ grp.draw
21
+ pdf.begin_draw
22
+ pdf.background(255)
23
+ grp.draw(pdf)
24
+ pdf.dispose
25
+ pdf.end_draw
26
+ end
@@ -0,0 +1,23 @@
1
+ require 'geomerative'
2
+
3
+ # Declare the objects we are going to use, so that they are accesible from setup() and from draw()
4
+ attr_reader :grp
5
+
6
+ def settings
7
+ size(600, 400)
8
+ end
9
+
10
+ def setup
11
+ sketch_title 'Hola Mundo'
12
+ RG.init(self)
13
+ background(255)
14
+ fill(255, 102, 0)
15
+ stroke(0)
16
+ @grp = RG.getText('Hola Mundo!', 'FreeSans.ttf', 72, CENTER)
17
+ end
18
+
19
+ def draw
20
+ background(255)
21
+ translate(width / 2, height / 2)
22
+ grp.draw
23
+ end
@@ -0,0 +1,77 @@
1
+ require 'toxiclibs'
2
+ require 'geomerative'
3
+
4
+ attr_reader :font, :input, :physics
5
+
6
+ def settings
7
+ size(1280, 720, P3D)
8
+ smooth
9
+ end
10
+
11
+ def setup
12
+ sketch_title 'Physics Type'
13
+ @input = 'Hello!'
14
+ RG.init(self)
15
+ fnt = RG.load_font('ReplicaBold.ttf') # file name
16
+ RG.text_font(fnt, 330) # RFont object, size
17
+ @font = RG.get_text(input) # String to RShape
18
+ RG.set_polygonizer(RCommand::UNIFORMLENGTH)
19
+ RG.set_polygonizer_length(10) # length of segment
20
+ init_physics
21
+ fill(255)
22
+ end
23
+
24
+ def draw
25
+ physics.update
26
+ background(0)
27
+ stroke(255)
28
+ physics.springs.each do |s|
29
+ line(s.a.x, s.a.y, s.b.x, s.b.y)
30
+ end
31
+ physics.particles.each do |p|
32
+ ellipse(p.x, p.y, 3, 3)
33
+ end
34
+ end
35
+
36
+ def init_physics
37
+ @physics = Physics::VerletPhysics2D.new
38
+ # set screen bounds as bounds for physics sim
39
+ physics.set_world_bounds(Toxi::Rect.new(0, 0, width, height))
40
+ # add gravity along positive Y axis
41
+ physics.add_behavior(Physics::GravityBehavior2D.new(TVec2D.new(0, 0.1)))
42
+ # multidimensional array of x and y coordinates
43
+ paths = font.get_points_in_paths
44
+ offset = TVec2D.new(200, 250)
45
+ return if paths.nil?
46
+ paths.length.times do |ii|
47
+ points = paths[ii]
48
+ path_particles = []
49
+ points.length.times do |i|
50
+ p = Physics::VerletParticle2D.new(
51
+ points[i].x + offset.x,
52
+ points[i].y + offset.y
53
+ )
54
+ physics.addParticle(p)
55
+ path_particles << p
56
+ physics.addSpring(
57
+ Physics::VerletSpring2D.new(
58
+ path_particles[i - 1],
59
+ p,
60
+ path_particles[i - 1].distanceTo(p),
61
+ 1
62
+ )
63
+ ) if i > 0
64
+ end
65
+ first = path_particles.first
66
+ last = path_particles.last
67
+ physics.add_spring(
68
+ Physics::VerletSpring2D.new(
69
+ first,
70
+ last,
71
+ first.distance_to(last),
72
+ 1
73
+ )
74
+ )
75
+ first.lock
76
+ end
77
+ end
@@ -0,0 +1,28 @@
1
+ require 'geomerative'
2
+
3
+ # Declare the objects we are going to use, so that they are accesible from setup() and from draw()
4
+ attr_reader :grp
5
+
6
+ def settings
7
+ size(600, 400)
8
+ smooth
9
+ end
10
+
11
+ def setup
12
+ sketch_title 'Hola Mundo'
13
+ frame_rate 24
14
+ RG.init(self)
15
+ background(255)
16
+ fill(255, 102, 0)
17
+ stroke(0)
18
+ @grp = RG.getText('Hola Mundo!', 'FreeSans.ttf', 72, CENTER)
19
+ end
20
+
21
+ def draw
22
+ background(255)
23
+ translate(width / 2, height / 2)
24
+ grp.children[0].rotate(PI / 20, grp.children[0].get_center)
25
+ grp.draw
26
+ end
27
+
28
+
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'geomerative/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'geomerative'
8
+ spec.version = Geomerative::VERSION
9
+ spec.has_rdoc = true
10
+ spec.extra_rdoc_files = %w{README.md LICENSE.md}
11
+ spec.summary = %q{Updated geomerative library for JRubyArt}
12
+ spec.description =<<-EOS
13
+ Geomerative java library wrapped in a rubygem. Updated to use String switch
14
+ etc available since jdk8.
15
+ EOS
16
+ spec.licenses = %w{Apache-2.0 AGPL-3.0}
17
+ spec.authors = %w{Ricard\ Marxer Martin\ Prout}
18
+ spec.email = 'martin_p@lineone.net'
19
+ spec.homepage = 'https://github.com/ruby-processing/geomerativegem'
20
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ spec.files << 'lib/geomerative.jar'
22
+ spec.require_paths = ['lib']
23
+ spec.add_dependency 'jruby_art', '~> 1.0'
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "minitest", "~> 5.8"
26
+ spec.platform = 'java'
27
+ spec.requirements << 'A decent graphics card'
28
+ spec.requirements << 'java runtime >= 1.8+'
29
+ spec.requirements << 'processing = 3.0.1+'
30
+ spec.requirements << 'maven = 3.3.3'
31
+ spec.requirements << 'jruby_art = 1.0+'
32
+ end
@@ -0,0 +1,12 @@
1
+ one = %w{FastRClip RClip RClosest RCommand RContour RFont RG RGeomElem RGroup RMatrix}
2
+ two = %w{RMesh RPath RPoint RPolygon RRectangle RSVG RShape RStrip RStyle}
3
+ geom = one + two
4
+
5
+ if RUBY_PLATFORM == 'java'
6
+ require_relative 'geomerative.jar'
7
+ def import_class_list(list, string)
8
+ list.each { |klass| java_import format(string, klass) }
9
+ end
10
+ geom_format = 'geomerative.%s'
11
+ import_class_list(geom, geom_format)
12
+ end
@@ -0,0 +1,3 @@
1
+ module Geomerative
2
+ VERSION = '0.1.0'
3
+ end
data/pom.xml ADDED
@@ -0,0 +1,110 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
+ <modelVersion>4.0.0</modelVersion>
4
+ <groupId>org.ruby-processing</groupId>
5
+ <artifactId>geomerative</artifactId>
6
+ <version>0.1.0</version>
7
+ <packaging>jar</packaging>
8
+ <description>
9
+ geomerative-library for JRubyArt
10
+ </description>
11
+
12
+ <parent>
13
+ <groupId>org.sonatype.oss</groupId>
14
+ <artifactId>oss-parent</artifactId>
15
+ <version>7</version>
16
+ </parent>
17
+
18
+ <issueManagement>
19
+ <system>Github</system>
20
+ <url>https://github.com/ruby-processing/geomerativegem/issues</url>
21
+ </issueManagement>
22
+
23
+ <scm>
24
+ <connection>scm:git:git://github.com/ruby-processing/geomerativegem.git</connection>
25
+ <developerConnection>scm:git:git@github.com:ruby-processing/geomerativegem.git</developerConnection>
26
+ <url>https://github.com/ruby-processing/geomerative</url>
27
+ </scm>
28
+
29
+ <licenses>
30
+ <license>
31
+ <name>AGPL 3</name>
32
+ <url>http://www.gnu.org/licenses/agpl-3.0.html</url>
33
+ </license>
34
+ <license>
35
+ <name>Apache 2</name>
36
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
37
+ </license>
38
+ </licenses>
39
+
40
+ <developers>
41
+ <developer>
42
+ <id>monkstone</id>
43
+ <name>Martin Prout</name>
44
+ <email>martin_p@lineone.net</email>
45
+ </developer>
46
+ </developers>
47
+
48
+ <dependencies>
49
+ <dependency>
50
+ <groupId>org.processing</groupId>
51
+ <artifactId>core</artifactId>
52
+ <scope>system</scope>
53
+ <version>3.0.1</version>
54
+ <systemPath>${processing.home}/core/library/core.jar</systemPath>
55
+ </dependency>
56
+ </dependencies>
57
+ <properties>
58
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
59
+ <maven.compiler.source>1.8</maven.compiler.source>
60
+ <maven.compiler.target>1.8</maven.compiler.target>
61
+ <!-- for Mac developers, non Archlinux and Windows can probably figure it out
62
+ <processing.home>/Applications/Processing.app/Contents/Java</processing.home>
63
+ -->
64
+ <processing.home>/usr/share/processing</processing.home>
65
+ </properties>
66
+ <build>
67
+ <sourceDirectory>src</sourceDirectory>
68
+ <finalName>geomerative</finalName>
69
+ <extensions>
70
+ <extension>
71
+ <groupId>org.apache.maven.wagon</groupId>
72
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
73
+ <version>2.1</version>
74
+ </extension>
75
+ </extensions>
76
+ <plugins>
77
+ <plugin>
78
+ <artifactId>maven-compiler-plugin</artifactId>
79
+ <version>3.1</version>
80
+ <configuration>
81
+ <source>1.8</source>
82
+ <target>1.8</target>
83
+ </configuration>
84
+ </plugin>
85
+ <plugin>
86
+ <artifactId>maven-jar-plugin</artifactId>
87
+ <version>2.4</version>
88
+ <configuration>
89
+ <archive>
90
+ <manifestFile>MANIFEST.MF</manifestFile>
91
+ </archive>
92
+ </configuration>
93
+ </plugin>
94
+ <plugin>
95
+ <artifactId>maven-resources-plugin</artifactId>
96
+ <version>2.6</version>
97
+ </plugin>
98
+ <plugin>
99
+ <groupId>org.apache.maven.plugins</groupId>
100
+ <artifactId>maven-dependency-plugin</artifactId>
101
+ <version>2.10</version>
102
+ <executions>
103
+ <execution>
104
+ <id>default-cli</id>
105
+ </execution>
106
+ </executions>
107
+ </plugin>
108
+ </plugins>
109
+ </build>
110
+ </project>