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.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/.mvn/extensions.xml +1 -1
- data/.mvn/wrapper/maven-wrapper.properties +1 -1
- data/CHANGELOG.md +19 -1
- data/COPYING.md +1 -1
- data/README.md +2 -2
- data/Rakefile +2 -15
- data/docs/_config.yml +8 -0
- data/docs/_includes/head.html +7 -6
- data/docs/_includes/header.html +6 -6
- data/docs/_includes/icon-github.svg +3 -1
- data/docs/_includes/icon-twitter.svg +3 -1
- data/docs/_includes/navigation.html +24 -0
- data/docs/_sass/_base.scss +79 -79
- data/docs/_sass/_layout.scss +137 -137
- data/docs/_sass/_syntax-highlighting.scss +64 -64
- data/docs/index.html +18 -18
- data/examples/README.md +1 -1
- data/examples/data/bot1.svg +1 -1
- data/examples/data/lion.svg +156 -156
- data/examples/data/ruby.svg +1 -1
- data/examples/jruby_merge.rb +1 -1
- data/examples/{f_agent.rb → library/f_agent/f_agent.rb} +0 -0
- data/examples/{font_agent.rb → library/font_agent/font_agent.rb} +2 -1
- data/examples/text_on_geomerative_path.rb +3 -2
- data/examples/typo_deform.rb +2 -2
- data/examples/typo_extra_bright.rb +1 -1
- data/geomerative.gemspec +3 -6
- data/lib/geomerative/version.rb +1 -1
- data/lib/geomerative.jar +0 -0
- data/lib/geomerative.rb +10 -10
- data/mvnw +234 -0
- data/mvnw.cmd +145 -0
- data/pom.rb +14 -16
- data/pom.xml +13 -19
- data/src/geomerative/FastRClip.java +2050 -2334
- data/src/geomerative/RClip.java +2237 -2539
- data/src/geomerative/RClosest.java +33 -31
- data/src/geomerative/RCommand.java +1750 -1758
- data/src/geomerative/RContour.java +290 -292
- data/src/geomerative/RFont.java +277 -246
- data/src/geomerative/RG.java +722 -727
- data/src/geomerative/RGeomElem.java +967 -962
- data/src/geomerative/RGroup.java +508 -467
- data/src/geomerative/RMatrix.java +304 -289
- data/src/geomerative/RMesh.java +241 -229
- data/src/geomerative/RPath.java +924 -926
- data/src/geomerative/RPoint.java +391 -391
- data/src/geomerative/RPolygon.java +1017 -1013
- data/src/geomerative/RRectangle.java +43 -52
- data/src/geomerative/RSVG.java +480 -516
- data/src/geomerative/RShape.java +1767 -1777
- data/src/geomerative/RStrip.java +173 -176
- data/src/geomerative/RStyle.java +197 -194
- data/src/module-info.java +4 -0
- data/src/org/apache/batik/svggen/font/Font.java +141 -142
- data/src/org/apache/batik/svggen/font/Glyph.java +102 -71
- data/src/org/apache/batik/svggen/font/Point.java +12 -12
- data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +14 -12
- data/src/org/apache/batik/svggen/font/table/ClassDef.java +12 -12
- data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +27 -24
- data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +20 -17
- data/src/org/apache/batik/svggen/font/table/CmapFormat.java +43 -43
- data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +33 -26
- data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +25 -20
- data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +106 -96
- data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +36 -32
- data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +69 -49
- data/src/org/apache/batik/svggen/font/table/CmapTable.java +50 -50
- data/src/org/apache/batik/svggen/font/table/Coverage.java +19 -19
- data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +30 -27
- data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +26 -24
- data/src/org/apache/batik/svggen/font/table/CvtTable.java +16 -16
- data/src/org/apache/batik/svggen/font/table/Device.java +32 -32
- data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +39 -39
- data/src/org/apache/batik/svggen/font/table/Feature.java +26 -23
- data/src/org/apache/batik/svggen/font/table/FeatureList.java +37 -35
- data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +22 -22
- data/src/org/apache/batik/svggen/font/table/FeatureTags.java +4 -3
- data/src/org/apache/batik/svggen/font/table/FpgmTable.java +9 -9
- data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +134 -132
- data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +123 -122
- data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +44 -44
- data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +110 -109
- data/src/org/apache/batik/svggen/font/table/GlyfTable.java +46 -46
- data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +25 -13
- data/src/org/apache/batik/svggen/font/table/GposTable.java +26 -23
- data/src/org/apache/batik/svggen/font/table/GsubTable.java +85 -82
- data/src/org/apache/batik/svggen/font/table/HeadTable.java +131 -131
- data/src/org/apache/batik/svggen/font/table/HheaTable.java +80 -80
- data/src/org/apache/batik/svggen/font/table/HmtxTable.java +50 -49
- data/src/org/apache/batik/svggen/font/table/KernSubtable.java +29 -27
- data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +35 -32
- data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +28 -26
- data/src/org/apache/batik/svggen/font/table/KernTable.java +36 -31
- data/src/org/apache/batik/svggen/font/table/KerningPair.java +27 -23
- data/src/org/apache/batik/svggen/font/table/LangSys.java +28 -26
- data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +22 -22
- data/src/org/apache/batik/svggen/font/table/Ligature.java +24 -24
- data/src/org/apache/batik/svggen/font/table/LigatureSet.java +24 -24
- data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +9 -9
- data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +30 -30
- data/src/org/apache/batik/svggen/font/table/LocaTable.java +37 -37
- data/src/org/apache/batik/svggen/font/table/Lookup.java +41 -40
- data/src/org/apache/batik/svggen/font/table/LookupList.java +34 -34
- data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +7 -5
- data/src/org/apache/batik/svggen/font/table/MaxpTable.java +96 -96
- data/src/org/apache/batik/svggen/font/table/NameRecord.java +64 -65
- data/src/org/apache/batik/svggen/font/table/NameTable.java +33 -33
- data/src/org/apache/batik/svggen/font/table/Os2Table.java +196 -196
- data/src/org/apache/batik/svggen/font/table/Panose.java +14 -12
- data/src/org/apache/batik/svggen/font/table/PostTable.java +338 -338
- data/src/org/apache/batik/svggen/font/table/PrepTable.java +9 -9
- data/src/org/apache/batik/svggen/font/table/Program.java +15 -15
- data/src/org/apache/batik/svggen/font/table/RangeRecord.java +26 -25
- data/src/org/apache/batik/svggen/font/table/Script.java +38 -38
- data/src/org/apache/batik/svggen/font/table/ScriptList.java +42 -42
- data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +22 -22
- data/src/org/apache/batik/svggen/font/table/ScriptTags.java +2 -1
- data/src/org/apache/batik/svggen/font/table/SingleSubst.java +15 -16
- data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +33 -33
- data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +32 -32
- data/src/org/apache/batik/svggen/font/table/Table.java +171 -170
- data/src/org/apache/batik/svggen/font/table/TableDirectory.java +55 -55
- data/src/org/apache/batik/svggen/font/table/TableFactory.java +92 -93
- metadata +18 -19
- data/.travis.yml +0 -10
- data/calculate_torsional_angle.rb +0 -17
@@ -23,182 +23,183 @@ package org.apache.batik.svggen.font.table;
|
|
23
23
|
*/
|
24
24
|
public interface Table {
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
26
|
+
// Table constants
|
27
|
+
public static final int BASE = 0x42415345; // Baseline data [OpenType]
|
28
|
+
public static final int CFF = 0x43464620; // PostScript font program (compact font format) [PostScript]
|
29
|
+
public static final int DSIG = 0x44534947; // Digital signature
|
30
|
+
public static final int EBDT = 0x45424454; // Embedded bitmap data
|
31
|
+
public static final int EBLC = 0x45424c43; // Embedded bitmap location data
|
32
|
+
public static final int EBSC = 0x45425343; // Embedded bitmap scaling data
|
33
|
+
public static final int GDEF = 0x47444546; // Glyph definition data [OpenType]
|
34
|
+
public static final int GPOS = 0x47504f53; // Glyph positioning data [OpenType]
|
35
|
+
public static final int GSUB = 0x47535542; // Glyph substitution data [OpenType]
|
36
|
+
public static final int JSTF = 0x4a535446; // Justification data [OpenType]
|
37
|
+
public static final int LTSH = 0x4c545348; // Linear threshold table
|
38
|
+
public static final int MMFX = 0x4d4d4658; // Multiple master font metrics [PostScript]
|
39
|
+
public static final int MMSD = 0x4d4d5344; // Multiple master supplementary data [PostScript]
|
40
|
+
public static final int OS_2 = 0x4f532f32; // OS/2 and Windows specific metrics [r]
|
41
|
+
public static final int PCLT = 0x50434c54; // PCL5
|
42
|
+
public static final int VDMX = 0x56444d58; // Vertical Device Metrics table
|
43
|
+
public static final int CMAP = 0x636d6170; // character to glyph mapping [r]
|
44
|
+
public static final int CVT = 0x63767420; // Control Value Table
|
45
|
+
public static final int FPGM = 0x6670676d; // font program
|
46
|
+
public static final int FVAR = 0x66766172; // Apple's font variations table [PostScript]
|
47
|
+
public static final int GASP = 0x67617370; // grid-fitting and scan conversion procedure (grayscale)
|
48
|
+
public static final int GLYF = 0x676c7966; // glyph data [r]
|
49
|
+
public static final int HDMX = 0x68646d78; // horizontal device metrics
|
50
|
+
public static final int HEAD = 0x68656164; // font header [r]
|
51
|
+
public static final int HHEA = 0x68686561; // horizontal header [r]
|
52
|
+
public static final int HMTX = 0x686d7478; // horizontal metrics [r]
|
53
|
+
public static final int KERN = 0x6b65726e; // kerning
|
54
|
+
public static final int LOCA = 0x6c6f6361; // index to location [r]
|
55
|
+
public static final int MAXP = 0x6d617870; // maximum profile [r]
|
56
|
+
public static final int NAME = 0x6e616d65; // naming table [r]
|
57
|
+
public static final int PREP = 0x70726570; // CVT Program
|
58
|
+
public static final int POST = 0x706f7374; // PostScript information [r]
|
59
|
+
public static final int VHEA = 0x76686561; // Vertical Metrics header
|
60
|
+
public static final int VMTX = 0x766d7478; // Vertical Metrics
|
61
61
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
62
|
+
// Platform IDs
|
63
|
+
public static final short platformAppleUnicode = 0;
|
64
|
+
public static final short platformMacintosh = 1;
|
65
|
+
public static final short platformISO = 2;
|
66
|
+
public static final short platformMicrosoft = 3;
|
67
67
|
|
68
|
-
|
69
|
-
|
70
|
-
|
68
|
+
// Microsoft Encoding IDs
|
69
|
+
public static final short encodingUndefined = 0;
|
70
|
+
public static final short encodingUGL = 1;
|
71
71
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
72
|
+
// Macintosh Encoding IDs
|
73
|
+
public static final short encodingRoman = 0;
|
74
|
+
public static final short encodingJapanese = 1;
|
75
|
+
public static final short encodingChinese = 2;
|
76
|
+
public static final short encodingKorean = 3;
|
77
|
+
public static final short encodingArabic = 4;
|
78
|
+
public static final short encodingHebrew = 5;
|
79
|
+
public static final short encodingGreek = 6;
|
80
|
+
public static final short encodingRussian = 7;
|
81
|
+
public static final short encodingRSymbol = 8;
|
82
|
+
public static final short encodingDevanagari = 9;
|
83
|
+
public static final short encodingGurmukhi = 10;
|
84
|
+
public static final short encodingGujarati = 11;
|
85
|
+
public static final short encodingOriya = 12;
|
86
|
+
public static final short encodingBengali = 13;
|
87
|
+
public static final short encodingTamil = 14;
|
88
|
+
public static final short encodingTelugu = 15;
|
89
|
+
public static final short encodingKannada = 16;
|
90
|
+
public static final short encodingMalayalam = 17;
|
91
|
+
public static final short encodingSinhalese = 18;
|
92
|
+
public static final short encodingBurmese = 19;
|
93
|
+
public static final short encodingKhmer = 20;
|
94
|
+
public static final short encodingThai = 21;
|
95
|
+
public static final short encodingLaotian = 22;
|
96
|
+
public static final short encodingGeorgian = 23;
|
97
|
+
public static final short encodingArmenian = 24;
|
98
|
+
public static final short encodingMaldivian = 25;
|
99
|
+
public static final short encodingTibetan = 26;
|
100
|
+
public static final short encodingMongolian = 27;
|
101
|
+
public static final short encodingGeez = 28;
|
102
|
+
public static final short encodingSlavic = 29;
|
103
|
+
public static final short encodingVietnamese = 30;
|
104
|
+
public static final short encodingSindhi = 31;
|
105
|
+
public static final short encodingUninterp = 32;
|
106
106
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
107
|
+
// ISO Encoding IDs
|
108
|
+
public static final short encodingASCII = 0;
|
109
|
+
public static final short encodingISO10646 = 1;
|
110
|
+
public static final short encodingISO8859_1 = 2;
|
111
111
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
112
|
+
// Microsoft Language IDs
|
113
|
+
public static final short languageSQI = 0x041c;
|
114
|
+
public static final short languageEUQ = 0x042d;
|
115
|
+
public static final short languageBEL = 0x0423;
|
116
|
+
public static final short languageBGR = 0x0402;
|
117
|
+
public static final short languageCAT = 0x0403;
|
118
|
+
public static final short languageSHL = 0x041a;
|
119
|
+
public static final short languageCSY = 0x0405;
|
120
|
+
public static final short languageDAN = 0x0406;
|
121
|
+
public static final short languageNLD = 0x0413;
|
122
|
+
public static final short languageNLB = 0x0813;
|
123
|
+
public static final short languageENU = 0x0409;
|
124
|
+
public static final short languageENG = 0x0809;
|
125
|
+
public static final short languageENA = 0x0c09;
|
126
|
+
public static final short languageENC = 0x1009;
|
127
|
+
public static final short languageENZ = 0x1409;
|
128
|
+
public static final short languageENI = 0x1809;
|
129
|
+
public static final short languageETI = 0x0425;
|
130
|
+
public static final short languageFIN = 0x040b;
|
131
|
+
public static final short languageFRA = 0x040c;
|
132
|
+
public static final short languageFRB = 0x080c;
|
133
|
+
public static final short languageFRC = 0x0c0c;
|
134
|
+
public static final short languageFRS = 0x100c;
|
135
|
+
public static final short languageFRL = 0x140c;
|
136
|
+
public static final short languageDEU = 0x0407;
|
137
|
+
public static final short languageDES = 0x0807;
|
138
|
+
public static final short languageDEA = 0x0c07;
|
139
|
+
public static final short languageDEL = 0x1007;
|
140
|
+
public static final short languageDEC = 0x1407;
|
141
|
+
public static final short languageELL = 0x0408;
|
142
|
+
public static final short languageHUN = 0x040e;
|
143
|
+
public static final short languageISL = 0x040f;
|
144
|
+
public static final short languageITA = 0x0410;
|
145
|
+
public static final short languageITS = 0x0810;
|
146
|
+
public static final short languageLVI = 0x0426;
|
147
|
+
public static final short languageLTH = 0x0427;
|
148
|
+
public static final short languageNOR = 0x0414;
|
149
|
+
public static final short languageNON = 0x0814;
|
150
|
+
public static final short languagePLK = 0x0415;
|
151
|
+
public static final short languagePTB = 0x0416;
|
152
|
+
public static final short languagePTG = 0x0816;
|
153
|
+
public static final short languageROM = 0x0418;
|
154
|
+
public static final short languageRUS = 0x0419;
|
155
|
+
public static final short languageSKY = 0x041b;
|
156
|
+
public static final short languageSLV = 0x0424;
|
157
|
+
public static final short languageESP = 0x040a;
|
158
|
+
public static final short languageESM = 0x080a;
|
159
|
+
public static final short languageESN = 0x0c0a;
|
160
|
+
public static final short languageSVE = 0x041d;
|
161
|
+
public static final short languageTRK = 0x041f;
|
162
|
+
public static final short languageUKR = 0x0422;
|
163
163
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
164
|
+
// Macintosh Language IDs
|
165
|
+
public static final short languageEnglish = 0;
|
166
|
+
public static final short languageFrench = 1;
|
167
|
+
public static final short languageGerman = 2;
|
168
|
+
public static final short languageItalian = 3;
|
169
|
+
public static final short languageDutch = 4;
|
170
|
+
public static final short languageSwedish = 5;
|
171
|
+
public static final short languageSpanish = 6;
|
172
|
+
public static final short languageDanish = 7;
|
173
|
+
public static final short languagePortuguese = 8;
|
174
|
+
public static final short languageNorwegian = 9;
|
175
|
+
public static final short languageHebrew = 10;
|
176
|
+
public static final short languageJapanese = 11;
|
177
|
+
public static final short languageArabic = 12;
|
178
|
+
public static final short languageFinnish = 13;
|
179
|
+
public static final short languageGreek = 14;
|
180
|
+
public static final short languageIcelandic = 15;
|
181
|
+
public static final short languageMaltese = 16;
|
182
|
+
public static final short languageTurkish = 17;
|
183
|
+
public static final short languageYugoslavian = 18;
|
184
|
+
public static final short languageChinese = 19;
|
185
|
+
public static final short languageUrdu = 20;
|
186
|
+
public static final short languageHindi = 21;
|
187
|
+
public static final short languageThai = 22;
|
188
188
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
189
|
+
// Name IDs
|
190
|
+
public static final short nameCopyrightNotice = 0;
|
191
|
+
public static final short nameFontFamilyName = 1;
|
192
|
+
public static final short nameFontSubfamilyName = 2;
|
193
|
+
public static final short nameUniqueFontIdentifier = 3;
|
194
|
+
public static final short nameFullFontName = 4;
|
195
|
+
public static final short nameVersionString = 5;
|
196
|
+
public static final short namePostscriptName = 6;
|
197
|
+
public static final short nameTrademark = 7;
|
198
198
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
199
|
+
/**
|
200
|
+
* Get the table type, as a table directory value.
|
201
|
+
*
|
202
|
+
* @return The table type
|
203
|
+
*/
|
204
|
+
public int getType();
|
204
205
|
}
|
@@ -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: TableDirectory.java,v 1.3 2004/08/18 07:15:22 vhardy Exp $
|
@@ -26,69 +26,69 @@ import org.apache.batik.svggen.font.*;
|
|
26
26
|
*/
|
27
27
|
public class TableDirectory {
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
29
|
+
private int version = 0;
|
30
|
+
private short numTables = 0;
|
31
|
+
private short searchRange = 0;
|
32
|
+
private short entrySelector = 0;
|
33
|
+
private short rangeShift = 0;
|
34
|
+
private final DirectoryEntry[] entries;
|
35
|
+
|
36
|
+
public TableDirectory(RandomAccessFileEmulator raf) throws IOException {
|
37
|
+
version = raf.readInt();
|
38
|
+
numTables = raf.readShort();
|
39
|
+
searchRange = raf.readShort();
|
40
|
+
entrySelector = raf.readShort();
|
41
|
+
rangeShift = raf.readShort();
|
42
|
+
entries = new DirectoryEntry[numTables];
|
43
|
+
for (int i = 0; i < numTables; i++) {
|
44
|
+
entries[i] = new DirectoryEntry(raf);
|
45
|
+
}
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
}
|
58
|
-
}
|
47
|
+
// Sort them into file order (simple bubble sort)
|
48
|
+
boolean modified = true;
|
49
|
+
while (modified) {
|
50
|
+
modified = false;
|
51
|
+
for (int i = 0; i < numTables - 1; i++) {
|
52
|
+
if (entries[i].getOffset() > entries[i + 1].getOffset()) {
|
53
|
+
DirectoryEntry temp = entries[i];
|
54
|
+
entries[i] = entries[i + 1];
|
55
|
+
entries[i + 1] = temp;
|
56
|
+
modified = true;
|
59
57
|
}
|
58
|
+
}
|
60
59
|
}
|
60
|
+
}
|
61
61
|
|
62
|
-
|
63
|
-
|
64
|
-
|
62
|
+
public DirectoryEntry getEntry(int index) {
|
63
|
+
return entries[index];
|
64
|
+
}
|
65
65
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
}
|
72
|
-
return null;
|
66
|
+
public DirectoryEntry getEntryByTag(int tag) {
|
67
|
+
for (int i = 0; i < numTables; i++) {
|
68
|
+
if (entries[i].getTag() == tag) {
|
69
|
+
return entries[i];
|
70
|
+
}
|
73
71
|
}
|
72
|
+
return null;
|
73
|
+
}
|
74
74
|
|
75
|
-
|
76
|
-
|
77
|
-
|
75
|
+
public short getEntrySelector() {
|
76
|
+
return entrySelector;
|
77
|
+
}
|
78
78
|
|
79
|
-
|
80
|
-
|
81
|
-
|
79
|
+
public short getNumTables() {
|
80
|
+
return numTables;
|
81
|
+
}
|
82
82
|
|
83
|
-
|
84
|
-
|
85
|
-
|
83
|
+
public short getRangeShift() {
|
84
|
+
return rangeShift;
|
85
|
+
}
|
86
86
|
|
87
|
-
|
88
|
-
|
89
|
-
|
87
|
+
public short getSearchRange() {
|
88
|
+
return searchRange;
|
89
|
+
}
|
90
90
|
|
91
|
-
|
92
|
-
|
93
|
-
|
91
|
+
public int getVersion() {
|
92
|
+
return version;
|
93
|
+
}
|
94
94
|
}
|