geomerative 0.4.3-java → 2.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/.mvn/extensions.xml +1 -1
  4. data/.mvn/wrapper/maven-wrapper.properties +1 -1
  5. data/CHANGELOG.md +19 -1
  6. data/COPYING.md +1 -1
  7. data/README.md +2 -2
  8. data/Rakefile +2 -15
  9. data/docs/_config.yml +8 -0
  10. data/docs/_includes/head.html +7 -6
  11. data/docs/_includes/header.html +6 -6
  12. data/docs/_includes/icon-github.svg +3 -1
  13. data/docs/_includes/icon-twitter.svg +3 -1
  14. data/docs/_includes/navigation.html +24 -0
  15. data/docs/_sass/_base.scss +79 -79
  16. data/docs/_sass/_layout.scss +137 -137
  17. data/docs/_sass/_syntax-highlighting.scss +64 -64
  18. data/docs/index.html +18 -18
  19. data/examples/README.md +1 -1
  20. data/examples/data/bot1.svg +1 -1
  21. data/examples/data/lion.svg +156 -156
  22. data/examples/data/ruby.svg +1 -1
  23. data/examples/jruby_merge.rb +1 -1
  24. data/examples/{f_agent.rb → library/f_agent/f_agent.rb} +0 -0
  25. data/examples/{font_agent.rb → library/font_agent/font_agent.rb} +2 -1
  26. data/examples/text_on_geomerative_path.rb +3 -2
  27. data/examples/typo_deform.rb +2 -2
  28. data/examples/typo_extra_bright.rb +1 -1
  29. data/geomerative.gemspec +3 -6
  30. data/lib/geomerative/version.rb +1 -1
  31. data/lib/geomerative.jar +0 -0
  32. data/lib/geomerative.rb +10 -10
  33. data/mvnw +234 -0
  34. data/mvnw.cmd +145 -0
  35. data/pom.rb +14 -16
  36. data/pom.xml +13 -19
  37. data/src/geomerative/FastRClip.java +2050 -2334
  38. data/src/geomerative/RClip.java +2237 -2539
  39. data/src/geomerative/RClosest.java +33 -31
  40. data/src/geomerative/RCommand.java +1750 -1758
  41. data/src/geomerative/RContour.java +290 -292
  42. data/src/geomerative/RFont.java +277 -246
  43. data/src/geomerative/RG.java +722 -727
  44. data/src/geomerative/RGeomElem.java +967 -962
  45. data/src/geomerative/RGroup.java +508 -467
  46. data/src/geomerative/RMatrix.java +304 -289
  47. data/src/geomerative/RMesh.java +241 -229
  48. data/src/geomerative/RPath.java +924 -926
  49. data/src/geomerative/RPoint.java +391 -391
  50. data/src/geomerative/RPolygon.java +1017 -1013
  51. data/src/geomerative/RRectangle.java +43 -52
  52. data/src/geomerative/RSVG.java +480 -516
  53. data/src/geomerative/RShape.java +1767 -1777
  54. data/src/geomerative/RStrip.java +173 -176
  55. data/src/geomerative/RStyle.java +197 -194
  56. data/src/module-info.java +4 -0
  57. data/src/org/apache/batik/svggen/font/Font.java +141 -142
  58. data/src/org/apache/batik/svggen/font/Glyph.java +102 -71
  59. data/src/org/apache/batik/svggen/font/Point.java +12 -12
  60. data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +14 -12
  61. data/src/org/apache/batik/svggen/font/table/ClassDef.java +12 -12
  62. data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +27 -24
  63. data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +20 -17
  64. data/src/org/apache/batik/svggen/font/table/CmapFormat.java +43 -43
  65. data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +33 -26
  66. data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +25 -20
  67. data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +106 -96
  68. data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +36 -32
  69. data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +69 -49
  70. data/src/org/apache/batik/svggen/font/table/CmapTable.java +50 -50
  71. data/src/org/apache/batik/svggen/font/table/Coverage.java +19 -19
  72. data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +30 -27
  73. data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +26 -24
  74. data/src/org/apache/batik/svggen/font/table/CvtTable.java +16 -16
  75. data/src/org/apache/batik/svggen/font/table/Device.java +32 -32
  76. data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +39 -39
  77. data/src/org/apache/batik/svggen/font/table/Feature.java +26 -23
  78. data/src/org/apache/batik/svggen/font/table/FeatureList.java +37 -35
  79. data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +22 -22
  80. data/src/org/apache/batik/svggen/font/table/FeatureTags.java +4 -3
  81. data/src/org/apache/batik/svggen/font/table/FpgmTable.java +9 -9
  82. data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +134 -132
  83. data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +123 -122
  84. data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +44 -44
  85. data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +110 -109
  86. data/src/org/apache/batik/svggen/font/table/GlyfTable.java +46 -46
  87. data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +25 -13
  88. data/src/org/apache/batik/svggen/font/table/GposTable.java +26 -23
  89. data/src/org/apache/batik/svggen/font/table/GsubTable.java +85 -82
  90. data/src/org/apache/batik/svggen/font/table/HeadTable.java +131 -131
  91. data/src/org/apache/batik/svggen/font/table/HheaTable.java +80 -80
  92. data/src/org/apache/batik/svggen/font/table/HmtxTable.java +50 -49
  93. data/src/org/apache/batik/svggen/font/table/KernSubtable.java +29 -27
  94. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +35 -32
  95. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +28 -26
  96. data/src/org/apache/batik/svggen/font/table/KernTable.java +36 -31
  97. data/src/org/apache/batik/svggen/font/table/KerningPair.java +27 -23
  98. data/src/org/apache/batik/svggen/font/table/LangSys.java +28 -26
  99. data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +22 -22
  100. data/src/org/apache/batik/svggen/font/table/Ligature.java +24 -24
  101. data/src/org/apache/batik/svggen/font/table/LigatureSet.java +24 -24
  102. data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +9 -9
  103. data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +30 -30
  104. data/src/org/apache/batik/svggen/font/table/LocaTable.java +37 -37
  105. data/src/org/apache/batik/svggen/font/table/Lookup.java +41 -40
  106. data/src/org/apache/batik/svggen/font/table/LookupList.java +34 -34
  107. data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +7 -5
  108. data/src/org/apache/batik/svggen/font/table/MaxpTable.java +96 -96
  109. data/src/org/apache/batik/svggen/font/table/NameRecord.java +64 -65
  110. data/src/org/apache/batik/svggen/font/table/NameTable.java +33 -33
  111. data/src/org/apache/batik/svggen/font/table/Os2Table.java +196 -196
  112. data/src/org/apache/batik/svggen/font/table/Panose.java +14 -12
  113. data/src/org/apache/batik/svggen/font/table/PostTable.java +338 -338
  114. data/src/org/apache/batik/svggen/font/table/PrepTable.java +9 -9
  115. data/src/org/apache/batik/svggen/font/table/Program.java +15 -15
  116. data/src/org/apache/batik/svggen/font/table/RangeRecord.java +26 -25
  117. data/src/org/apache/batik/svggen/font/table/Script.java +38 -38
  118. data/src/org/apache/batik/svggen/font/table/ScriptList.java +42 -42
  119. data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +22 -22
  120. data/src/org/apache/batik/svggen/font/table/ScriptTags.java +2 -1
  121. data/src/org/apache/batik/svggen/font/table/SingleSubst.java +15 -16
  122. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +33 -33
  123. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +32 -32
  124. data/src/org/apache/batik/svggen/font/table/Table.java +171 -170
  125. data/src/org/apache/batik/svggen/font/table/TableDirectory.java +55 -55
  126. data/src/org/apache/batik/svggen/font/table/TableFactory.java +92 -93
  127. metadata +18 -19
  128. data/.travis.yml +0 -10
  129. data/calculate_torsional_angle.rb +0 -17
@@ -19,7 +19,7 @@ package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.ByteArrayInputStream;
21
21
  import java.io.IOException;
22
- import org.apache.batik.svggen.font.*;
22
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
23
23
 
24
24
  /**
25
25
  * @version $Id: GlyfTable.java,v 1.4 2004/08/18 07:15:21 vhardy Exp $
@@ -27,14 +27,14 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GlyfTable implements Table {
29
29
 
30
- private byte[] buf = null;
31
- private GlyfDescript[] descript;
30
+ private byte[] buf = null;
31
+ private GlyfDescript[] descript;
32
32
 
33
- protected GlyfTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
34
- raf.seek(de.getOffset());
35
- buf = new byte[de.getLength()];
36
- raf.read(buf);
37
- /*
33
+ protected GlyfTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
34
+ raf.seek(de.getOffset());
35
+ buf = new byte[de.getLength()];
36
+ raf.read(buf);
37
+ /*
38
38
  TableMaxp t_maxp = (TableMaxp) td.getEntryByTag(maxp).getTable();
39
39
  TableLoca t_loca = (TableLoca) td.getEntryByTag(loca).getTable();
40
40
  descript = new TableGlyfDescript[t_maxp.getNumGlyphs()];
@@ -63,49 +63,49 @@ public class GlyfTable implements Table {
63
63
  }
64
64
  }
65
65
  }
66
- */
67
- }
66
+ */
67
+ }
68
68
 
69
- public void init(int numGlyphs, LocaTable loca) {
70
- if (buf == null) {
71
- return;
72
- }
73
- descript = new GlyfDescript[numGlyphs];
74
- ByteArrayInputStream bais = new ByteArrayInputStream(buf);
75
- for (int i = 0; i < numGlyphs; i++) {
76
- int len = loca.getOffset((short)(i + 1)) - loca.getOffset(i);
77
- if (len > 0) {
78
- bais.reset();
79
- bais.skip(loca.getOffset(i));
80
- short numberOfContours = (short)(bais.read()<<8 | bais.read());
81
- if (numberOfContours >= 0) {
82
- descript[i] = new GlyfSimpleDescript(this, numberOfContours, bais);
83
- }
84
- } else {
85
- descript[i] = null;
86
- }
69
+ public void init(int numGlyphs, LocaTable loca) {
70
+ if (buf == null) {
71
+ return;
72
+ }
73
+ descript = new GlyfDescript[numGlyphs];
74
+ ByteArrayInputStream bais = new ByteArrayInputStream(buf);
75
+ for (int i = 0; i < numGlyphs; i++) {
76
+ int len = loca.getOffset((short) (i + 1)) - loca.getOffset(i);
77
+ if (len > 0) {
78
+ bais.reset();
79
+ bais.skip(loca.getOffset(i));
80
+ short numberOfContours = (short) (bais.read() << 8 | bais.read());
81
+ if (numberOfContours >= 0) {
82
+ descript[i] = new GlyfSimpleDescript(this, numberOfContours, bais);
87
83
  }
84
+ } else {
85
+ descript[i] = null;
86
+ }
87
+ }
88
88
 
89
- for (int i = 0; i < numGlyphs; i++) {
90
- int len = loca.getOffset((short)(i + 1)) - loca.getOffset(i);
91
- if (len > 0) {
92
- bais.reset();
93
- bais.skip(loca.getOffset(i));
94
- short numberOfContours = (short)(bais.read()<<8 | bais.read());
95
- if (numberOfContours < 0) {
96
- descript[i] = new GlyfCompositeDescript(this, bais);
97
- }
98
- }
89
+ for (int i = 0; i < numGlyphs; i++) {
90
+ int len = loca.getOffset((short) (i + 1)) - loca.getOffset(i);
91
+ if (len > 0) {
92
+ bais.reset();
93
+ bais.skip(loca.getOffset(i));
94
+ short numberOfContours = (short) (bais.read() << 8 | bais.read());
95
+ if (numberOfContours < 0) {
96
+ descript[i] = new GlyfCompositeDescript(this, bais);
99
97
  }
100
- buf = null;
98
+ }
101
99
  }
100
+ buf = null;
101
+ }
102
102
 
103
- public GlyfDescript getDescription(int i) {
104
- return descript[i];
105
- }
103
+ public GlyfDescript getDescription(int i) {
104
+ return descript[i];
105
+ }
106
106
 
107
- @Override
108
- public int getType() {
109
- return glyf;
110
- }
107
+ @Override
108
+ public int getType() {
109
+ return GLYF;
110
+ }
111
111
  }
@@ -19,21 +19,33 @@ package org.apache.batik.svggen.font.table;
19
19
 
20
20
  /**
21
21
  * Specifies access to glyph description classes, simple and composite.
22
+ *
22
23
  * @version $Id: GlyphDescription.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
23
24
  * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
24
25
  */
25
26
  public interface GlyphDescription {
26
- public int getEndPtOfContours(int i);
27
- public byte getFlags(int i);
28
- public short getXCoordinate(int i);
29
- public short getYCoordinate(int i);
30
- public short getXMaximum();
31
- public short getXMinimum();
32
- public short getYMaximum();
33
- public short getYMinimum();
34
- public boolean isComposite();
35
- public int getPointCount();
36
- public int getContourCount();
37
- // public int getComponentIndex(int c);
38
- // public int getComponentCount();
27
+
28
+ public int getEndPtOfContours(int i);
29
+
30
+ public byte getFlags(int i);
31
+
32
+ public short getXCoordinate(int i);
33
+
34
+ public short getYCoordinate(int i);
35
+
36
+ public short getXMaximum();
37
+
38
+ public short getXMinimum();
39
+
40
+ public short getYMaximum();
41
+
42
+ public short getYMinimum();
43
+
44
+ public boolean isComposite();
45
+
46
+ public int getPointCount();
47
+
48
+ public int getContourCount();
49
+ // public int getComponentIndex(int c);
50
+ // public int getComponentCount();
39
51
  }
@@ -18,7 +18,7 @@
18
18
  package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.IOException;
21
- import org.apache.batik.svggen.font.*;
21
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
22
22
 
23
23
  /**
24
24
  *
@@ -27,15 +27,16 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GposTable implements Table {
29
29
 
30
- protected GposTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
31
- raf.seek(de.getOffset());
30
+ protected GposTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
31
+ raf.seek(de.getOffset());
32
32
 
33
- // GPOS Header
34
- /* int version = */ raf.readInt();
35
- /* int scriptList = */ raf.readInt();
36
- /* int featureList = */ raf.readInt();
37
- /* int lookupList = */ raf.readInt();
38
- /*
33
+
34
+ // GPOS Header
35
+ /* int version = */ raf.readInt();
36
+ /* int scriptList = */ raf.readInt();
37
+ /* int featureList = */ raf.readInt();
38
+ /* int lookupList = */ raf.readInt();
39
+ /*
39
40
  for (int i = 0; i < t_maxp.getNumGlyphs(); i++) {
40
41
  raf.seek(tde.getOffset() + t_loca.getOffset(i));
41
42
  int len = t_loca.getOffset((short)(i + 1)) - t_loca.getOffset(i);
@@ -61,20 +62,22 @@ public class GposTable implements Table {
61
62
  }
62
63
  }
63
64
  }
64
- */
65
- }
66
-
67
- /** Get the table type, as a table directory value.
68
- * @return The table type
69
65
  */
70
- @Override
71
- public int getType() {
72
- return GPOS;
73
- }
74
-
75
- @Override
76
- public String toString() {
77
- return "GPOS";
78
- }
66
+ }
67
+
68
+ /**
69
+ * Get the table type, as a table directory value.
70
+ *
71
+ * @return The table type
72
+ */
73
+ @Override
74
+ public int getType() {
75
+ return GPOS;
76
+ }
77
+
78
+ @Override
79
+ public String toString() {
80
+ return "GPOS";
81
+ }
79
82
 
80
83
  }
@@ -18,7 +18,7 @@
18
18
  package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.IOException;
21
- import org.apache.batik.svggen.font.*;
21
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
22
22
 
23
23
  /**
24
24
  *
@@ -27,92 +27,95 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GsubTable implements Table, LookupSubtableFactory {
29
29
 
30
- private final ScriptList scriptList;
31
- private final FeatureList featureList;
32
- private final LookupList lookupList;
33
-
34
- protected GsubTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
- raf.seek(de.getOffset());
36
-
37
- // GSUB Header
38
- /* int version = */ raf.readInt();
39
- int scriptListOffset = raf.readUnsignedShort();
40
- int featureListOffset = raf.readUnsignedShort();
41
- int lookupListOffset = raf.readUnsignedShort();
42
-
43
- // Script List
44
- scriptList = new ScriptList(raf, de.getOffset() + scriptListOffset);
45
-
46
- // Feature List
47
- featureList = new FeatureList(raf, de.getOffset() + featureListOffset);
48
-
49
- // Lookup List
50
- lookupList = new LookupList(raf, de.getOffset() + lookupListOffset, this);
51
- }
52
-
53
- /**
54
- * 1 - Single - Replace one glyph with one glyph
55
- * 2 - Multiple - Replace one glyph with more than one glyph
56
- * 3 - Alternate - Replace one glyph with one of many glyphs
57
- * 4 - Ligature - Replace multiple glyphs with one glyph
58
- * 5 - Context - Replace one or more glyphs in context
59
- * 6 - Chaining - Context Replace one or more glyphs in chained context
60
- * @param type
61
- * @param raf
62
- * @param offset
63
- * @return
64
- * @throws java.io.IOException
65
- */
66
- @Override
67
- public LookupSubtable read(int type, RandomAccessFileEmulator raf, int offset)
30
+ private final ScriptList scriptList;
31
+ private final FeatureList featureList;
32
+ private final LookupList lookupList;
33
+
34
+ protected GsubTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
+ raf.seek(de.getOffset());
36
+
37
+
38
+ // GSUB Header
39
+ /* int version = */ raf.readInt();
40
+ int scriptListOffset = raf.readUnsignedShort();
41
+ int featureListOffset = raf.readUnsignedShort();
42
+ int lookupListOffset = raf.readUnsignedShort();
43
+
44
+ // Script List
45
+ scriptList = new ScriptList(raf, de.getOffset() + scriptListOffset);
46
+
47
+ // Feature List
48
+ featureList = new FeatureList(raf, de.getOffset() + featureListOffset);
49
+
50
+ // Lookup List
51
+ lookupList = new LookupList(raf, de.getOffset() + lookupListOffset, this);
52
+ }
53
+
54
+ /**
55
+ * 1 - Single - Replace one glyph with one glyph 2 - Multiple - Replace one
56
+ * glyph with more than one glyph 3 - Alternate - Replace one glyph with one
57
+ * of many glyphs 4 - Ligature - Replace multiple glyphs with one glyph 5 -
58
+ * Context - Replace one or more glyphs in context 6 - Chaining - Context
59
+ * Replace one or more glyphs in chained context
60
+ *
61
+ * @param type
62
+ * @param raf
63
+ * @param offset
64
+ * @return
65
+ * @throws java.io.IOException
66
+ */
67
+ @Override
68
+ public LookupSubtable read(int type, RandomAccessFileEmulator raf, int offset)
68
69
  throws IOException {
69
- LookupSubtable s = null;
70
- switch (type) {
71
- case 1:
72
- s = SingleSubst.read(raf, offset);
73
- break;
74
- case 2:
70
+ LookupSubtable s = null;
71
+ switch (type) {
72
+ case 1:
73
+ s = SingleSubst.read(raf, offset);
74
+ break;
75
+ case 2:
75
76
  // s = MultipleSubst.read(raf, offset);
76
- break;
77
- case 3:
77
+ break;
78
+ case 3:
78
79
  // s = AlternateSubst.read(raf, offset);
79
- break;
80
- case 4:
81
- s = LigatureSubst.read(raf, offset);
82
- break;
83
- case 5:
80
+ break;
81
+ case 4:
82
+ s = LigatureSubst.read(raf, offset);
83
+ break;
84
+ case 5:
84
85
  // s = ContextSubst.read(raf, offset);
85
- break;
86
- case 6:
86
+ break;
87
+ case 6:
87
88
  // s = ChainingSubst.read(raf, offset);
88
- break;
89
- }
90
- return s;
91
- }
92
-
93
- /** Get the table type, as a table directory value.
94
- * @return The table type
95
- */
96
- @Override
97
- public int getType() {
98
- return GSUB;
99
- }
100
-
101
- public ScriptList getScriptList() {
102
- return scriptList;
103
- }
104
-
105
- public FeatureList getFeatureList() {
106
- return featureList;
107
- }
108
-
109
- public LookupList getLookupList() {
110
- return lookupList;
111
- }
112
-
113
- @Override
114
- public String toString() {
115
- return "GSUB";
89
+ break;
116
90
  }
91
+ return s;
92
+ }
93
+
94
+ /**
95
+ * Get the table type, as a table directory value.
96
+ *
97
+ * @return The table type
98
+ */
99
+ @Override
100
+ public int getType() {
101
+ return GSUB;
102
+ }
103
+
104
+ public ScriptList getScriptList() {
105
+ return scriptList;
106
+ }
107
+
108
+ public FeatureList getFeatureList() {
109
+ return featureList;
110
+ }
111
+
112
+ public LookupList getLookupList() {
113
+ return lookupList;
114
+ }
115
+
116
+ @Override
117
+ public String toString() {
118
+ return "GSUB";
119
+ }
117
120
 
118
121
  }