geomerative 1.1.0-java → 2.0.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.mvn/extensions.xml +1 -1
  4. data/.mvn/wrapper/maven-wrapper.properties +1 -1
  5. data/CHANGELOG.md +3 -0
  6. data/COPYING.md +1 -1
  7. data/README.md +0 -1
  8. data/Rakefile +2 -15
  9. data/docs/_includes/header.html +6 -6
  10. data/docs/_includes/icon-github.svg +3 -1
  11. data/docs/_includes/icon-twitter.svg +3 -1
  12. data/docs/_includes/navigation.html +18 -18
  13. data/docs/_sass/_base.scss +79 -79
  14. data/docs/_sass/_layout.scss +137 -137
  15. data/docs/_sass/_syntax-highlighting.scss +64 -64
  16. data/docs/index.html +18 -18
  17. data/examples/data/bot1.svg +1 -1
  18. data/examples/data/lion.svg +156 -156
  19. data/examples/data/ruby.svg +1 -1
  20. data/geomerative.gemspec +1 -2
  21. data/lib/geomerative/version.rb +1 -1
  22. data/mvnw +234 -0
  23. data/mvnw.cmd +145 -0
  24. data/pom.rb +14 -13
  25. data/pom.xml +14 -13
  26. data/src/geomerative/FastRClip.java +2149 -2156
  27. data/src/geomerative/RClip.java +2237 -2539
  28. data/src/geomerative/RClosest.java +33 -31
  29. data/src/geomerative/RCommand.java +1750 -1758
  30. data/src/geomerative/RContour.java +290 -292
  31. data/src/geomerative/RFont.java +277 -246
  32. data/src/geomerative/RG.java +722 -727
  33. data/src/geomerative/RGeomElem.java +967 -960
  34. data/src/geomerative/RGroup.java +508 -467
  35. data/src/geomerative/RMatrix.java +304 -289
  36. data/src/geomerative/RMesh.java +241 -229
  37. data/src/geomerative/RPath.java +924 -925
  38. data/src/geomerative/RPoint.java +391 -391
  39. data/src/geomerative/RPolygon.java +998 -988
  40. data/src/geomerative/RRectangle.java +43 -52
  41. data/src/geomerative/RSVG.java +480 -516
  42. data/src/geomerative/RShape.java +1767 -1777
  43. data/src/geomerative/RStrip.java +173 -176
  44. data/src/geomerative/RStyle.java +197 -194
  45. data/src/org/apache/batik/svggen/font/Font.java +141 -142
  46. data/src/org/apache/batik/svggen/font/Glyph.java +102 -71
  47. data/src/org/apache/batik/svggen/font/Point.java +12 -12
  48. data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +14 -12
  49. data/src/org/apache/batik/svggen/font/table/ClassDef.java +12 -12
  50. data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +27 -24
  51. data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +20 -17
  52. data/src/org/apache/batik/svggen/font/table/CmapFormat.java +43 -43
  53. data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +33 -26
  54. data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +25 -20
  55. data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +106 -96
  56. data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +36 -32
  57. data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +69 -49
  58. data/src/org/apache/batik/svggen/font/table/CmapTable.java +50 -50
  59. data/src/org/apache/batik/svggen/font/table/Coverage.java +19 -19
  60. data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +30 -27
  61. data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +26 -24
  62. data/src/org/apache/batik/svggen/font/table/CvtTable.java +16 -16
  63. data/src/org/apache/batik/svggen/font/table/Device.java +32 -32
  64. data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +39 -39
  65. data/src/org/apache/batik/svggen/font/table/Feature.java +26 -23
  66. data/src/org/apache/batik/svggen/font/table/FeatureList.java +37 -35
  67. data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +22 -22
  68. data/src/org/apache/batik/svggen/font/table/FeatureTags.java +4 -3
  69. data/src/org/apache/batik/svggen/font/table/FpgmTable.java +9 -9
  70. data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +134 -132
  71. data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +123 -122
  72. data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +44 -44
  73. data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +110 -109
  74. data/src/org/apache/batik/svggen/font/table/GlyfTable.java +46 -46
  75. data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +25 -13
  76. data/src/org/apache/batik/svggen/font/table/GposTable.java +26 -23
  77. data/src/org/apache/batik/svggen/font/table/GsubTable.java +85 -82
  78. data/src/org/apache/batik/svggen/font/table/HeadTable.java +131 -131
  79. data/src/org/apache/batik/svggen/font/table/HheaTable.java +80 -80
  80. data/src/org/apache/batik/svggen/font/table/HmtxTable.java +50 -49
  81. data/src/org/apache/batik/svggen/font/table/KernSubtable.java +29 -27
  82. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +35 -32
  83. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +28 -26
  84. data/src/org/apache/batik/svggen/font/table/KernTable.java +36 -31
  85. data/src/org/apache/batik/svggen/font/table/KerningPair.java +27 -23
  86. data/src/org/apache/batik/svggen/font/table/LangSys.java +28 -26
  87. data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +22 -22
  88. data/src/org/apache/batik/svggen/font/table/Ligature.java +24 -24
  89. data/src/org/apache/batik/svggen/font/table/LigatureSet.java +24 -24
  90. data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +9 -9
  91. data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +30 -30
  92. data/src/org/apache/batik/svggen/font/table/LocaTable.java +37 -37
  93. data/src/org/apache/batik/svggen/font/table/Lookup.java +41 -40
  94. data/src/org/apache/batik/svggen/font/table/LookupList.java +34 -34
  95. data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +7 -5
  96. data/src/org/apache/batik/svggen/font/table/MaxpTable.java +96 -96
  97. data/src/org/apache/batik/svggen/font/table/NameRecord.java +64 -65
  98. data/src/org/apache/batik/svggen/font/table/NameTable.java +33 -33
  99. data/src/org/apache/batik/svggen/font/table/Os2Table.java +196 -196
  100. data/src/org/apache/batik/svggen/font/table/Panose.java +14 -12
  101. data/src/org/apache/batik/svggen/font/table/PostTable.java +338 -338
  102. data/src/org/apache/batik/svggen/font/table/PrepTable.java +9 -9
  103. data/src/org/apache/batik/svggen/font/table/Program.java +15 -15
  104. data/src/org/apache/batik/svggen/font/table/RangeRecord.java +26 -25
  105. data/src/org/apache/batik/svggen/font/table/Script.java +38 -38
  106. data/src/org/apache/batik/svggen/font/table/ScriptList.java +42 -42
  107. data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +22 -22
  108. data/src/org/apache/batik/svggen/font/table/ScriptTags.java +2 -1
  109. data/src/org/apache/batik/svggen/font/table/SingleSubst.java +15 -16
  110. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +33 -33
  111. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +32 -32
  112. data/src/org/apache/batik/svggen/font/table/Table.java +171 -170
  113. data/src/org/apache/batik/svggen/font/table/TableDirectory.java +55 -55
  114. data/src/org/apache/batik/svggen/font/table/TableFactory.java +92 -93
  115. metadata +10 -11
  116. data/.travis.yml +0 -9
@@ -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
  * @version $Id: HheaTable.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
@@ -26,84 +26,84 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class HheaTable implements Table {
28
28
 
29
- private final int version;
30
- private final short ascender;
31
- private final short descender;
32
- private final short lineGap;
33
- private final short advanceWidthMax;
34
- private final short minLeftSideBearing;
35
- private final short minRightSideBearing;
36
- private final short xMaxExtent;
37
- private final short caretSlopeRise;
38
- private final short caretSlopeRun;
39
- private final short metricDataFormat;
40
- private final short numberOfHMetrics;
41
-
42
- protected HheaTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
43
- raf.seek(de.getOffset());
44
- version = raf.readInt();
45
- ascender = raf.readShort();
46
- descender = raf.readShort();
47
- lineGap = raf.readShort();
48
- advanceWidthMax = raf.readShort();
49
- minLeftSideBearing = raf.readShort();
50
- minRightSideBearing = raf.readShort();
51
- xMaxExtent = raf.readShort();
52
- caretSlopeRise = raf.readShort();
53
- caretSlopeRun = raf.readShort();
54
- for (int i = 0; i < 5; i++) {
55
- raf.readShort();
56
- }
57
- metricDataFormat = raf.readShort();
58
- numberOfHMetrics = raf.readShort();
59
- }
60
-
61
- public short getAdvanceWidthMax() {
62
- return advanceWidthMax;
63
- }
64
-
65
- public short getAscender() {
66
- return ascender;
67
- }
68
-
69
- public short getCaretSlopeRise() {
70
- return caretSlopeRise;
71
- }
72
-
73
- public short getCaretSlopeRun() {
74
- return caretSlopeRun;
75
- }
76
-
77
- public short getDescender() {
78
- return descender;
79
- }
80
-
81
- public short getLineGap() {
82
- return lineGap;
83
- }
84
-
85
- public short getMetricDataFormat() {
86
- return metricDataFormat;
87
- }
88
-
89
- public short getMinLeftSideBearing() {
90
- return minLeftSideBearing;
91
- }
92
-
93
- public short getMinRightSideBearing() {
94
- return minRightSideBearing;
95
- }
96
-
97
- public short getNumberOfHMetrics() {
98
- return numberOfHMetrics;
99
- }
100
-
101
- @Override
102
- public int getType() {
103
- return hhea;
104
- }
105
-
106
- public short getXMaxExtent() {
107
- return xMaxExtent;
29
+ private final int version;
30
+ private final short ascender;
31
+ private final short descender;
32
+ private final short lineGap;
33
+ private final short advanceWidthMax;
34
+ private final short minLeftSideBearing;
35
+ private final short minRightSideBearing;
36
+ private final short xMaxExtent;
37
+ private final short caretSlopeRise;
38
+ private final short caretSlopeRun;
39
+ private final short metricDataFormat;
40
+ private final short numberOfHMetrics;
41
+
42
+ protected HheaTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
43
+ raf.seek(de.getOffset());
44
+ version = raf.readInt();
45
+ ascender = raf.readShort();
46
+ descender = raf.readShort();
47
+ lineGap = raf.readShort();
48
+ advanceWidthMax = raf.readShort();
49
+ minLeftSideBearing = raf.readShort();
50
+ minRightSideBearing = raf.readShort();
51
+ xMaxExtent = raf.readShort();
52
+ caretSlopeRise = raf.readShort();
53
+ caretSlopeRun = raf.readShort();
54
+ for (int i = 0; i < 5; i++) {
55
+ raf.readShort();
108
56
  }
57
+ metricDataFormat = raf.readShort();
58
+ numberOfHMetrics = raf.readShort();
59
+ }
60
+
61
+ public short getAdvanceWidthMax() {
62
+ return advanceWidthMax;
63
+ }
64
+
65
+ public short getAscender() {
66
+ return ascender;
67
+ }
68
+
69
+ public short getCaretSlopeRise() {
70
+ return caretSlopeRise;
71
+ }
72
+
73
+ public short getCaretSlopeRun() {
74
+ return caretSlopeRun;
75
+ }
76
+
77
+ public short getDescender() {
78
+ return descender;
79
+ }
80
+
81
+ public short getLineGap() {
82
+ return lineGap;
83
+ }
84
+
85
+ public short getMetricDataFormat() {
86
+ return metricDataFormat;
87
+ }
88
+
89
+ public short getMinLeftSideBearing() {
90
+ return minLeftSideBearing;
91
+ }
92
+
93
+ public short getMinRightSideBearing() {
94
+ return minRightSideBearing;
95
+ }
96
+
97
+ public short getNumberOfHMetrics() {
98
+ return numberOfHMetrics;
99
+ }
100
+
101
+ @Override
102
+ public int getType() {
103
+ return HHEA;
104
+ }
105
+
106
+ public short getXMaxExtent() {
107
+ return xMaxExtent;
108
+ }
109
109
  }
@@ -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: HmtxTable.java,v 1.4 2004/08/18 07:15:21 vhardy Exp $
@@ -27,15 +27,15 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class HmtxTable implements Table {
29
29
 
30
- private byte[] buf = null;
31
- private int[] hMetrics = null;
32
- private short[] leftSideBearing = null;
30
+ private byte[] buf = null;
31
+ private int[] hMetrics = null;
32
+ private short[] leftSideBearing = null;
33
33
 
34
- protected HmtxTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
35
- raf.seek(de.getOffset());
36
- buf = new byte[de.getLength()];
37
- raf.read(buf);
38
- /*
34
+ protected HmtxTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
+ raf.seek(de.getOffset());
36
+ buf = new byte[de.getLength()];
37
+ raf.read(buf);
38
+ /*
39
39
  TableMaxp t_maxp = (TableMaxp) td.getEntryByTag(maxp).getTable();
40
40
  TableHhea t_hhea = (TableHhea) td.getEntryByTag(hhea).getTable();
41
41
  int lsbCount = t_maxp.getNumGlyphs() - t_hhea.getNumberOfHMetrics();
@@ -49,51 +49,52 @@ public class HmtxTable implements Table {
49
49
  leftSideBearing[i] = raf.readShort();
50
50
  }
51
51
  }
52
- */
53
- }
52
+ */
53
+ }
54
54
 
55
- public void init(int numberOfHMetrics, int lsbCount) {
56
- if (buf == null) {
57
- return;
58
- }
59
- hMetrics = new int[numberOfHMetrics];
60
- ByteArrayInputStream bais = new ByteArrayInputStream(buf);
61
- for (int i = 0; i < numberOfHMetrics; i++) {
62
- hMetrics[i] = (bais.read()<<24 | bais.read()<<16 |
63
- bais.read()<< 8 | bais.read());
64
- }
65
- if (lsbCount > 0) {
66
- leftSideBearing = new short[lsbCount];
67
- for (int i = 0; i < lsbCount; i++) {
68
- leftSideBearing[i] = (short)(bais.read()<<8 | bais.read());
69
- }
70
- }
71
- buf = null;
55
+ public void init(int numberOfHMetrics, int lsbCount) {
56
+ if (buf == null) {
57
+ return;
72
58
  }
73
-
74
- public int getAdvanceWidth(int i) {
75
- if (hMetrics == null) {
76
- return 0;
77
- }
78
- if (i < hMetrics.length) {
79
- return hMetrics[i] >> 16;
80
- } else {
81
- return hMetrics[hMetrics.length - 1] >> 16;
82
- }
59
+ hMetrics = new int[numberOfHMetrics];
60
+ ByteArrayInputStream bais = new ByteArrayInputStream(buf);
61
+ for (int i = 0; i < numberOfHMetrics; i++) {
62
+ hMetrics[i] = (bais.read() << 24 | bais.read() << 16
63
+ | bais.read() << 8 | bais.read());
83
64
  }
65
+ if (lsbCount > 0) {
66
+ leftSideBearing = new short[lsbCount];
67
+ for (int i = 0; i < lsbCount; i++) {
68
+ leftSideBearing[i] = (short) (bais.read() << 8 | bais.read());
69
+ }
70
+ }
71
+ buf = null;
72
+ }
84
73
 
85
- public short getLeftSideBearing(int i) {
86
- if (hMetrics == null) {
87
- return 0;
88
- }
89
- if (i < hMetrics.length) {
90
- return (short)(hMetrics[i] & 0xffff);
91
- } else {
92
- return leftSideBearing[i - hMetrics.length];
93
- }
74
+ public int getAdvanceWidth(int i) {
75
+ if (hMetrics == null) {
76
+ return 0;
77
+ }
78
+ if (i < hMetrics.length) {
79
+ return hMetrics[i] >> 16;
80
+ } else {
81
+ return hMetrics[hMetrics.length - 1] >> 16;
94
82
  }
83
+ }
95
84
 
96
- public int getType() {
97
- return hmtx;
85
+ public short getLeftSideBearing(int i) {
86
+ if (hMetrics == null) {
87
+ return 0;
98
88
  }
89
+ if (i < hMetrics.length) {
90
+ return (short) (hMetrics[i] & 0xffff);
91
+ } else {
92
+ return leftSideBearing[i - hMetrics.length];
93
+ }
94
+ }
95
+
96
+ @Override
97
+ public int getType() {
98
+ return HMTX;
99
+ }
99
100
  }
@@ -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,32 +27,34 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public abstract class KernSubtable {
29
29
 
30
- /** Creates new KernSubtable */
31
- protected KernSubtable() {
32
- }
33
-
34
- public abstract int getKerningPairCount();
35
-
36
- public abstract KerningPair getKerningPair(int i);
37
-
38
- public static KernSubtable read(RandomAccessFileEmulator raf) throws IOException {
39
- KernSubtable table = null;
40
- /* int version =*/ raf.readUnsignedShort();
41
- /* int length =*/ raf.readUnsignedShort();
42
- int coverage = raf.readUnsignedShort();
43
- int format = coverage >> 8;
44
-
45
- switch (format) {
46
- case 0:
47
- table = new KernSubtableFormat0(raf);
48
- break;
49
- case 2:
50
- table = new KernSubtableFormat2(raf);
51
- break;
52
- default:
53
- break;
54
- }
55
- return table;
30
+ /**
31
+ * Creates new KernSubtable
32
+ */
33
+ protected KernSubtable() {
34
+ }
35
+
36
+ public abstract int getKerningPairCount();
37
+
38
+ public abstract KerningPair getKerningPair(int i);
39
+
40
+ public static KernSubtable read(RandomAccessFileEmulator raf) throws IOException {
41
+ KernSubtable table = null;
42
+ /* int version =*/ raf.readUnsignedShort();
43
+ /* int length =*/ raf.readUnsignedShort();
44
+ int coverage = raf.readUnsignedShort();
45
+ int format = coverage >> 8;
46
+
47
+ switch (format) {
48
+ case 0:
49
+ table = new KernSubtableFormat0(raf);
50
+ break;
51
+ case 2:
52
+ table = new KernSubtableFormat2(raf);
53
+ break;
54
+ default:
55
+ break;
56
56
  }
57
+ return table;
58
+ }
57
59
 
58
60
  }
@@ -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
  *
@@ -26,40 +26,43 @@ import org.apache.batik.svggen.font.*;
26
26
  * @version $Id: KernSubtableFormat0.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
27
27
  */
28
28
  public class KernSubtableFormat0 extends KernSubtable {
29
-
30
- private final int nPairs;
31
- private final int searchRange;
32
- private final int entrySelector;
33
- private final int rangeShift;
34
- private final KerningPair[] kerningPairs;
35
29
 
36
- /** Creates new KernSubtableFormat0
37
- * @param raf
38
- * @throws java.io.IOException */
39
- protected KernSubtableFormat0(RandomAccessFileEmulator raf) throws IOException {
40
- nPairs = raf.readUnsignedShort();
41
- searchRange = raf.readUnsignedShort();
42
- entrySelector = raf.readUnsignedShort();
43
- rangeShift = raf.readUnsignedShort();
44
- kerningPairs = new KerningPair[nPairs];
45
- for (int i = 0; i < nPairs; i++) {
46
- kerningPairs[i] = new KerningPair(raf);
47
- }
48
- }
30
+ private final int nPairs;
31
+ private final int searchRange;
32
+ private final int entrySelector;
33
+ private final int rangeShift;
34
+ private final KerningPair[] kerningPairs;
49
35
 
50
- @Override
51
- public int getKerningPairCount() {
52
- return nPairs;
36
+ /**
37
+ * Creates new KernSubtableFormat0
38
+ *
39
+ * @param raf
40
+ * @throws java.io.IOException
41
+ */
42
+ protected KernSubtableFormat0(RandomAccessFileEmulator raf) throws IOException {
43
+ nPairs = raf.readUnsignedShort();
44
+ searchRange = raf.readUnsignedShort();
45
+ entrySelector = raf.readUnsignedShort();
46
+ rangeShift = raf.readUnsignedShort();
47
+ kerningPairs = new KerningPair[nPairs];
48
+ for (int i = 0; i < nPairs; i++) {
49
+ kerningPairs[i] = new KerningPair(raf);
53
50
  }
51
+ }
54
52
 
55
- /**
56
- *
57
- * @param i
58
- * @return
59
- */
60
- @Override
61
- public KerningPair getKerningPair(int i) {
62
- return kerningPairs[i];
63
- }
53
+ @Override
54
+ public int getKerningPairCount() {
55
+ return nPairs;
56
+ }
57
+
58
+ /**
59
+ *
60
+ * @param i
61
+ * @return
62
+ */
63
+ @Override
64
+ public KerningPair getKerningPair(int i) {
65
+ return kerningPairs[i];
66
+ }
64
67
 
65
68
  }