geomerative 0.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
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>