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.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/LICENSE +662 -0
- data/LICENSE.md +9 -0
- data/README.md +2 -0
- data/Rakefile +37 -0
- data/examples/README.md +7 -0
- data/examples/data/FreeSans.ttf +0 -0
- data/examples/data/ReplicaBold.ttf +0 -0
- data/examples/data/bot1.svg +160 -0
- data/examples/hello_svg_to_pdf.rb +26 -0
- data/examples/hello_world.rb +23 -0
- data/examples/physics_type.rb +77 -0
- data/examples/rotate_first_letter.rb +28 -0
- data/geomerative.gemspec +32 -0
- data/lib/geomerative.rb +12 -0
- data/lib/geomerative/version.rb +3 -0
- data/pom.xml +110 -0
- data/src/geomerative/FastRClip.java +2715 -0
- data/src/geomerative/RClip.java +2892 -0
- data/src/geomerative/RClosest.java +64 -0
- data/src/geomerative/RCommand.java +1941 -0
- data/src/geomerative/RContour.java +348 -0
- data/src/geomerative/RFont.java +583 -0
- data/src/geomerative/RG.java +753 -0
- data/src/geomerative/RGeomElem.java +1075 -0
- data/src/geomerative/RGroup.java +888 -0
- data/src/geomerative/RMatrix.java +401 -0
- data/src/geomerative/RMesh.java +420 -0
- data/src/geomerative/RPath.java +1095 -0
- data/src/geomerative/RPoint.java +419 -0
- data/src/geomerative/RPolygon.java +1110 -0
- data/src/geomerative/RRectangle.java +91 -0
- data/src/geomerative/RSVG.java +976 -0
- data/src/geomerative/RShape.java +2045 -0
- data/src/geomerative/RStrip.java +221 -0
- data/src/geomerative/RStyle.java +469 -0
- data/src/org/apache/batik/svggen/font/.SVGFont.java.swp +0 -0
- data/src/org/apache/batik/svggen/font/Font.java +188 -0
- data/src/org/apache/batik/svggen/font/Glyph.java +113 -0
- data/src/org/apache/batik/svggen/font/Messages.java.bak +72 -0
- data/src/org/apache/batik/svggen/font/Point.java +38 -0
- data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +15 -0
- data/src/org/apache/batik/svggen/font/table/ClassDef.java +42 -0
- data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +55 -0
- data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +49 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat.java +81 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +60 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +48 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +147 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +60 -0
- data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +84 -0
- data/src/org/apache/batik/svggen/font/table/CmapTable.java +87 -0
- data/src/org/apache/batik/svggen/font/table/Coverage.java +50 -0
- data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +59 -0
- data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +56 -0
- data/src/org/apache/batik/svggen/font/table/CvtTable.java +48 -0
- data/src/org/apache/batik/svggen/font/table/Device.java +63 -0
- data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +73 -0
- data/src/org/apache/batik/svggen/font/table/Feature.java +56 -0
- data/src/org/apache/batik/svggen/font/table/FeatureList.java +70 -0
- data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +52 -0
- data/src/org/apache/batik/svggen/font/table/FeatureTags.java +30 -0
- data/src/org/apache/batik/svggen/font/table/FpgmTable.java +38 -0
- data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +165 -0
- data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +160 -0
- data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +79 -0
- data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +155 -0
- data/src/org/apache/batik/svggen/font/table/GlyfTable.java +111 -0
- data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +39 -0
- data/src/org/apache/batik/svggen/font/table/GposTable.java +80 -0
- data/src/org/apache/batik/svggen/font/table/GsubTable.java +118 -0
- data/src/org/apache/batik/svggen/font/table/HeadTable.java +159 -0
- data/src/org/apache/batik/svggen/font/table/HheaTable.java +109 -0
- data/src/org/apache/batik/svggen/font/table/HmtxTable.java +99 -0
- data/src/org/apache/batik/svggen/font/table/KernSubtable.java +58 -0
- data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +65 -0
- data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +56 -0
- data/src/org/apache/batik/svggen/font/table/KernTable.java +64 -0
- data/src/org/apache/batik/svggen/font/table/KerningPair.java +53 -0
- data/src/org/apache/batik/svggen/font/table/LangSys.java +58 -0
- data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +52 -0
- data/src/org/apache/batik/svggen/font/table/Ligature.java +57 -0
- data/src/org/apache/batik/svggen/font/table/LigatureSet.java +55 -0
- data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +40 -0
- data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +63 -0
- data/src/org/apache/batik/svggen/font/table/LocaTable.java +72 -0
- data/src/org/apache/batik/svggen/font/table/Lookup.java +77 -0
- data/src/org/apache/batik/svggen/font/table/LookupList.java +68 -0
- data/src/org/apache/batik/svggen/font/table/LookupSubtable.java +27 -0
- data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +31 -0
- data/src/org/apache/batik/svggen/font/table/MaxpTable.java +124 -0
- data/src/org/apache/batik/svggen/font/table/NameRecord.java +98 -0
- data/src/org/apache/batik/svggen/font/table/NameTable.java +67 -0
- data/src/org/apache/batik/svggen/font/table/Os2Table.java +232 -0
- data/src/org/apache/batik/svggen/font/table/Panose.java +108 -0
- data/src/org/apache/batik/svggen/font/table/PostTable.java +379 -0
- data/src/org/apache/batik/svggen/font/table/PrepTable.java +38 -0
- data/src/org/apache/batik/svggen/font/table/Program.java +49 -0
- data/src/org/apache/batik/svggen/font/table/RangeRecord.java +57 -0
- data/src/org/apache/batik/svggen/font/table/Script.java +72 -0
- data/src/org/apache/batik/svggen/font/table/ScriptList.java +78 -0
- data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +52 -0
- data/src/org/apache/batik/svggen/font/table/ScriptTags.java +28 -0
- data/src/org/apache/batik/svggen/font/table/SingleSubst.java +47 -0
- data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +67 -0
- data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +67 -0
- data/src/org/apache/batik/svggen/font/table/Table.java +204 -0
- data/src/org/apache/batik/svggen/font/table/TableDirectory.java +94 -0
- data/src/org/apache/batik/svggen/font/table/TableFactory.java +121 -0
- metadata +206 -0
data/LICENSE.md
ADDED
|
@@ -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
|
data/README.md
ADDED
data/Rakefile
ADDED
|
@@ -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
|
data/examples/README.md
ADDED
|
@@ -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
|
+
```
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
+
|
data/geomerative.gemspec
ADDED
|
@@ -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
|
data/lib/geomerative.rb
ADDED
|
@@ -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
|
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>
|