@loaders.gl/obj 3.1.0-beta.6 → 3.1.2

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.
@@ -1,21 +1,35 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.default = void 0;
7
- const OBJECT_RE = /^[og]\s*(.+)?/;
8
- const MATERIAL_RE = /^mtllib /;
9
- const MATERIAL_USE_RE = /^usemtl /;
10
-
11
- class MeshMaterial {
12
- constructor({
13
- index,
14
- name = '',
15
- mtllib,
16
- smooth,
17
- groupStart
18
- }) {
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
15
+
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
+
20
+ var OBJECT_RE = /^[og]\s*(.+)?/;
21
+ var MATERIAL_RE = /^mtllib /;
22
+ var MATERIAL_USE_RE = /^usemtl /;
23
+
24
+ var MeshMaterial = function () {
25
+ function MeshMaterial(_ref) {
26
+ var index = _ref.index,
27
+ _ref$name = _ref.name,
28
+ name = _ref$name === void 0 ? '' : _ref$name,
29
+ mtllib = _ref.mtllib,
30
+ smooth = _ref.smooth,
31
+ groupStart = _ref.groupStart;
32
+ (0, _classCallCheck2.default)(this, MeshMaterial);
19
33
  this.index = index;
20
34
  this.name = name;
21
35
  this.mtllib = mtllib;
@@ -26,20 +40,26 @@ class MeshMaterial {
26
40
  this.inherited = false;
27
41
  }
28
42
 
29
- clone(index = this.index) {
30
- return new MeshMaterial({
31
- index,
32
- name: this.name,
33
- mtllib: this.mtllib,
34
- smooth: this.smooth,
35
- groupStart: 0
36
- });
37
- }
38
-
39
- }
40
-
41
- class MeshObject {
42
- constructor(name = '') {
43
+ (0, _createClass2.default)(MeshMaterial, [{
44
+ key: "clone",
45
+ value: function clone() {
46
+ var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.index;
47
+ return new MeshMaterial({
48
+ index: index,
49
+ name: this.name,
50
+ mtllib: this.mtllib,
51
+ smooth: this.smooth,
52
+ groupStart: 0
53
+ });
54
+ }
55
+ }]);
56
+ return MeshMaterial;
57
+ }();
58
+
59
+ var MeshObject = function () {
60
+ function MeshObject() {
61
+ var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
62
+ (0, _classCallCheck2.default)(this, MeshObject);
43
63
  this.name = name;
44
64
  this.geometry = {
45
65
  vertices: [],
@@ -52,63 +72,69 @@ class MeshObject {
52
72
  this.fromDeclaration = null;
53
73
  }
54
74
 
55
- startMaterial(name, libraries) {
56
- const previous = this._finalize(false);
57
-
58
- if (previous && (previous.inherited || previous.groupCount <= 0)) {
59
- this.materials.splice(previous.index, 1);
60
- }
75
+ (0, _createClass2.default)(MeshObject, [{
76
+ key: "startMaterial",
77
+ value: function startMaterial(name, libraries) {
78
+ var previous = this._finalize(false);
61
79
 
62
- const material = new MeshMaterial({
63
- index: this.materials.length,
64
- name,
65
- mtllib: Array.isArray(libraries) && libraries.length > 0 ? libraries[libraries.length - 1] : '',
66
- smooth: previous !== undefined ? previous.smooth : this.smooth,
67
- groupStart: previous !== undefined ? previous.groupEnd : 0
68
- });
69
- this.materials.push(material);
70
- return material;
71
- }
80
+ if (previous && (previous.inherited || previous.groupCount <= 0)) {
81
+ this.materials.splice(previous.index, 1);
82
+ }
72
83
 
73
- currentMaterial() {
74
- if (this.materials.length > 0) {
75
- return this.materials[this.materials.length - 1];
84
+ var material = new MeshMaterial({
85
+ index: this.materials.length,
86
+ name: name,
87
+ mtllib: Array.isArray(libraries) && libraries.length > 0 ? libraries[libraries.length - 1] : '',
88
+ smooth: previous !== undefined ? previous.smooth : this.smooth,
89
+ groupStart: previous !== undefined ? previous.groupEnd : 0
90
+ });
91
+ this.materials.push(material);
92
+ return material;
76
93
  }
94
+ }, {
95
+ key: "currentMaterial",
96
+ value: function currentMaterial() {
97
+ if (this.materials.length > 0) {
98
+ return this.materials[this.materials.length - 1];
99
+ }
77
100
 
78
- return undefined;
79
- }
80
-
81
- _finalize(end) {
82
- const lastMultiMaterial = this.currentMaterial();
83
-
84
- if (lastMultiMaterial && lastMultiMaterial.groupEnd === -1) {
85
- lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;
86
- lastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;
87
- lastMultiMaterial.inherited = false;
101
+ return undefined;
88
102
  }
103
+ }, {
104
+ key: "_finalize",
105
+ value: function _finalize(end) {
106
+ var lastMultiMaterial = this.currentMaterial();
107
+
108
+ if (lastMultiMaterial && lastMultiMaterial.groupEnd === -1) {
109
+ lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;
110
+ lastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;
111
+ lastMultiMaterial.inherited = false;
112
+ }
89
113
 
90
- if (end && this.materials.length > 1) {
91
- for (let mi = this.materials.length - 1; mi >= 0; mi--) {
92
- if (this.materials[mi].groupCount <= 0) {
93
- this.materials.splice(mi, 1);
114
+ if (end && this.materials.length > 1) {
115
+ for (var mi = this.materials.length - 1; mi >= 0; mi--) {
116
+ if (this.materials[mi].groupCount <= 0) {
117
+ this.materials.splice(mi, 1);
118
+ }
94
119
  }
95
120
  }
96
- }
97
121
 
98
- if (end && this.materials.length === 0) {
99
- this.materials.push({
100
- name: '',
101
- smooth: this.smooth
102
- });
103
- }
104
-
105
- return lastMultiMaterial;
106
- }
122
+ if (end && this.materials.length === 0) {
123
+ this.materials.push({
124
+ name: '',
125
+ smooth: this.smooth
126
+ });
127
+ }
107
128
 
108
- }
129
+ return lastMultiMaterial;
130
+ }
131
+ }]);
132
+ return MeshObject;
133
+ }();
109
134
 
110
- class ParserState {
111
- constructor() {
135
+ var ParserState = function () {
136
+ function ParserState() {
137
+ (0, _classCallCheck2.default)(this, ParserState);
112
138
  this.objects = [];
113
139
  this.object = null;
114
140
  this.vertices = [];
@@ -119,157 +145,206 @@ class ParserState {
119
145
  this.startObject('', false);
120
146
  }
121
147
 
122
- startObject(name, fromDeclaration = true) {
123
- if (this.object && !this.object.fromDeclaration) {
124
- this.object.name = name;
125
- this.object.fromDeclaration = fromDeclaration;
126
- return;
127
- }
148
+ (0, _createClass2.default)(ParserState, [{
149
+ key: "startObject",
150
+ value: function startObject(name) {
151
+ var fromDeclaration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
128
152
 
129
- const previousMaterial = this.object && typeof this.object.currentMaterial === 'function' ? this.object.currentMaterial() : undefined;
153
+ if (this.object && !this.object.fromDeclaration) {
154
+ this.object.name = name;
155
+ this.object.fromDeclaration = fromDeclaration;
156
+ return;
157
+ }
130
158
 
131
- if (this.object && typeof this.object._finalize === 'function') {
132
- this.object._finalize(true);
133
- }
159
+ var previousMaterial = this.object && typeof this.object.currentMaterial === 'function' ? this.object.currentMaterial() : undefined;
134
160
 
135
- this.object = new MeshObject(name);
136
- this.object.fromDeclaration = fromDeclaration;
161
+ if (this.object && typeof this.object._finalize === 'function') {
162
+ this.object._finalize(true);
163
+ }
137
164
 
138
- if (previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function') {
139
- const declared = previousMaterial.clone(0);
140
- declared.inherited = true;
141
- this.object.materials.push(declared);
142
- }
165
+ this.object = new MeshObject(name);
166
+ this.object.fromDeclaration = fromDeclaration;
143
167
 
144
- this.objects.push(this.object);
145
- }
168
+ if (previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function') {
169
+ var declared = previousMaterial.clone(0);
170
+ declared.inherited = true;
171
+ this.object.materials.push(declared);
172
+ }
146
173
 
147
- finalize() {
148
- if (this.object && typeof this.object._finalize === 'function') {
149
- this.object._finalize(true);
174
+ this.objects.push(this.object);
150
175
  }
151
- }
152
-
153
- parseVertexIndex(value, len) {
154
- const index = parseInt(value);
155
- return (index >= 0 ? index - 1 : index + len / 3) * 3;
156
- }
157
-
158
- parseNormalIndex(value, len) {
159
- const index = parseInt(value);
160
- return (index >= 0 ? index - 1 : index + len / 3) * 3;
161
- }
162
-
163
- parseUVIndex(value, len) {
164
- const index = parseInt(value);
165
- return (index >= 0 ? index - 1 : index + len / 2) * 2;
166
- }
167
-
168
- addVertex(a, b, c) {
169
- const src = this.vertices;
170
- const dst = this.object.geometry.vertices;
171
- dst.push(src[a + 0], src[a + 1], src[a + 2]);
172
- dst.push(src[b + 0], src[b + 1], src[b + 2]);
173
- dst.push(src[c + 0], src[c + 1], src[c + 2]);
174
- }
175
-
176
- addVertexPoint(a) {
177
- const src = this.vertices;
178
- const dst = this.object.geometry.vertices;
179
- dst.push(src[a + 0], src[a + 1], src[a + 2]);
180
- }
181
-
182
- addVertexLine(a) {
183
- const src = this.vertices;
184
- const dst = this.object.geometry.vertices;
185
- dst.push(src[a + 0], src[a + 1], src[a + 2]);
186
- }
187
-
188
- addNormal(a, b, c) {
189
- const src = this.normals;
190
- const dst = this.object.geometry.normals;
191
- dst.push(src[a + 0], src[a + 1], src[a + 2]);
192
- dst.push(src[b + 0], src[b + 1], src[b + 2]);
193
- dst.push(src[c + 0], src[c + 1], src[c + 2]);
194
- }
195
-
196
- addColor(a, b, c) {
197
- const src = this.colors;
198
- const dst = this.object.geometry.colors;
199
- dst.push(src[a + 0], src[a + 1], src[a + 2]);
200
- dst.push(src[b + 0], src[b + 1], src[b + 2]);
201
- dst.push(src[c + 0], src[c + 1], src[c + 2]);
202
- }
203
-
204
- addUV(a, b, c) {
205
- const src = this.uvs;
206
- const dst = this.object.geometry.uvs;
207
- dst.push(src[a + 0], src[a + 1]);
208
- dst.push(src[b + 0], src[b + 1]);
209
- dst.push(src[c + 0], src[c + 1]);
210
- }
211
-
212
- addUVLine(a) {
213
- const src = this.uvs;
214
- const dst = this.object.geometry.uvs;
215
- dst.push(src[a + 0], src[a + 1]);
216
- }
217
-
218
- addFace(a, b, c, ua, ub, uc, na, nb, nc) {
219
- const vLen = this.vertices.length;
220
- let ia = this.parseVertexIndex(a, vLen);
221
- let ib = this.parseVertexIndex(b, vLen);
222
- let ic = this.parseVertexIndex(c, vLen);
223
- this.addVertex(ia, ib, ic);
224
-
225
- if (ua !== undefined && ua !== '') {
226
- const uvLen = this.uvs.length;
227
- ia = this.parseUVIndex(ua, uvLen);
228
- ib = this.parseUVIndex(ub, uvLen);
229
- ic = this.parseUVIndex(uc, uvLen);
230
- this.addUV(ia, ib, ic);
176
+ }, {
177
+ key: "finalize",
178
+ value: function finalize() {
179
+ if (this.object && typeof this.object._finalize === 'function') {
180
+ this.object._finalize(true);
181
+ }
231
182
  }
232
-
233
- if (na !== undefined && na !== '') {
234
- const nLen = this.normals.length;
235
- ia = this.parseNormalIndex(na, nLen);
236
- ib = na === nb ? ia : this.parseNormalIndex(nb, nLen);
237
- ic = na === nc ? ia : this.parseNormalIndex(nc, nLen);
238
- this.addNormal(ia, ib, ic);
183
+ }, {
184
+ key: "parseVertexIndex",
185
+ value: function parseVertexIndex(value, len) {
186
+ var index = parseInt(value);
187
+ return (index >= 0 ? index - 1 : index + len / 3) * 3;
239
188
  }
240
-
241
- if (this.colors.length > 0) {
242
- this.addColor(ia, ib, ic);
189
+ }, {
190
+ key: "parseNormalIndex",
191
+ value: function parseNormalIndex(value, len) {
192
+ var index = parseInt(value);
193
+ return (index >= 0 ? index - 1 : index + len / 3) * 3;
243
194
  }
244
- }
245
-
246
- addPointGeometry(vertices) {
247
- this.object.geometry.type = 'Points';
248
- const vLen = this.vertices.length;
249
-
250
- for (const vertex of vertices) {
251
- this.addVertexPoint(this.parseVertexIndex(vertex, vLen));
195
+ }, {
196
+ key: "parseUVIndex",
197
+ value: function parseUVIndex(value, len) {
198
+ var index = parseInt(value);
199
+ return (index >= 0 ? index - 1 : index + len / 2) * 2;
252
200
  }
253
- }
201
+ }, {
202
+ key: "addVertex",
203
+ value: function addVertex(a, b, c) {
204
+ var src = this.vertices;
205
+ var dst = this.object.geometry.vertices;
206
+ dst.push(src[a + 0], src[a + 1], src[a + 2]);
207
+ dst.push(src[b + 0], src[b + 1], src[b + 2]);
208
+ dst.push(src[c + 0], src[c + 1], src[c + 2]);
209
+ }
210
+ }, {
211
+ key: "addVertexPoint",
212
+ value: function addVertexPoint(a) {
213
+ var src = this.vertices;
214
+ var dst = this.object.geometry.vertices;
215
+ dst.push(src[a + 0], src[a + 1], src[a + 2]);
216
+ }
217
+ }, {
218
+ key: "addVertexLine",
219
+ value: function addVertexLine(a) {
220
+ var src = this.vertices;
221
+ var dst = this.object.geometry.vertices;
222
+ dst.push(src[a + 0], src[a + 1], src[a + 2]);
223
+ }
224
+ }, {
225
+ key: "addNormal",
226
+ value: function addNormal(a, b, c) {
227
+ var src = this.normals;
228
+ var dst = this.object.geometry.normals;
229
+ dst.push(src[a + 0], src[a + 1], src[a + 2]);
230
+ dst.push(src[b + 0], src[b + 1], src[b + 2]);
231
+ dst.push(src[c + 0], src[c + 1], src[c + 2]);
232
+ }
233
+ }, {
234
+ key: "addColor",
235
+ value: function addColor(a, b, c) {
236
+ var src = this.colors;
237
+ var dst = this.object.geometry.colors;
238
+ dst.push(src[a + 0], src[a + 1], src[a + 2]);
239
+ dst.push(src[b + 0], src[b + 1], src[b + 2]);
240
+ dst.push(src[c + 0], src[c + 1], src[c + 2]);
241
+ }
242
+ }, {
243
+ key: "addUV",
244
+ value: function addUV(a, b, c) {
245
+ var src = this.uvs;
246
+ var dst = this.object.geometry.uvs;
247
+ dst.push(src[a + 0], src[a + 1]);
248
+ dst.push(src[b + 0], src[b + 1]);
249
+ dst.push(src[c + 0], src[c + 1]);
250
+ }
251
+ }, {
252
+ key: "addUVLine",
253
+ value: function addUVLine(a) {
254
+ var src = this.uvs;
255
+ var dst = this.object.geometry.uvs;
256
+ dst.push(src[a + 0], src[a + 1]);
257
+ }
258
+ }, {
259
+ key: "addFace",
260
+ value: function addFace(a, b, c, ua, ub, uc, na, nb, nc) {
261
+ var vLen = this.vertices.length;
262
+ var ia = this.parseVertexIndex(a, vLen);
263
+ var ib = this.parseVertexIndex(b, vLen);
264
+ var ic = this.parseVertexIndex(c, vLen);
265
+ this.addVertex(ia, ib, ic);
266
+
267
+ if (ua !== undefined && ua !== '') {
268
+ var uvLen = this.uvs.length;
269
+ ia = this.parseUVIndex(ua, uvLen);
270
+ ib = this.parseUVIndex(ub, uvLen);
271
+ ic = this.parseUVIndex(uc, uvLen);
272
+ this.addUV(ia, ib, ic);
273
+ }
254
274
 
255
- addLineGeometry(vertices, uvs) {
256
- this.object.geometry.type = 'Line';
257
- const vLen = this.vertices.length;
258
- const uvLen = this.uvs.length;
275
+ if (na !== undefined && na !== '') {
276
+ var nLen = this.normals.length;
277
+ ia = this.parseNormalIndex(na, nLen);
278
+ ib = na === nb ? ia : this.parseNormalIndex(nb, nLen);
279
+ ic = na === nc ? ia : this.parseNormalIndex(nc, nLen);
280
+ this.addNormal(ia, ib, ic);
281
+ }
259
282
 
260
- for (const vertex of vertices) {
261
- this.addVertexLine(this.parseVertexIndex(vertex, vLen));
283
+ if (this.colors.length > 0) {
284
+ this.addColor(ia, ib, ic);
285
+ }
262
286
  }
263
-
264
- for (const uv of uvs) {
265
- this.addUVLine(this.parseUVIndex(uv, uvLen));
287
+ }, {
288
+ key: "addPointGeometry",
289
+ value: function addPointGeometry(vertices) {
290
+ this.object.geometry.type = 'Points';
291
+ var vLen = this.vertices.length;
292
+
293
+ var _iterator = _createForOfIteratorHelper(vertices),
294
+ _step;
295
+
296
+ try {
297
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
298
+ var vertex = _step.value;
299
+ this.addVertexPoint(this.parseVertexIndex(vertex, vLen));
300
+ }
301
+ } catch (err) {
302
+ _iterator.e(err);
303
+ } finally {
304
+ _iterator.f();
305
+ }
266
306
  }
267
- }
307
+ }, {
308
+ key: "addLineGeometry",
309
+ value: function addLineGeometry(vertices, uvs) {
310
+ this.object.geometry.type = 'Line';
311
+ var vLen = this.vertices.length;
312
+ var uvLen = this.uvs.length;
313
+
314
+ var _iterator2 = _createForOfIteratorHelper(vertices),
315
+ _step2;
316
+
317
+ try {
318
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
319
+ var vertex = _step2.value;
320
+ this.addVertexLine(this.parseVertexIndex(vertex, vLen));
321
+ }
322
+ } catch (err) {
323
+ _iterator2.e(err);
324
+ } finally {
325
+ _iterator2.f();
326
+ }
268
327
 
269
- }
328
+ var _iterator3 = _createForOfIteratorHelper(uvs),
329
+ _step3;
330
+
331
+ try {
332
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
333
+ var uv = _step3.value;
334
+ this.addUVLine(this.parseUVIndex(uv, uvLen));
335
+ }
336
+ } catch (err) {
337
+ _iterator3.e(err);
338
+ } finally {
339
+ _iterator3.f();
340
+ }
341
+ }
342
+ }]);
343
+ return ParserState;
344
+ }();
270
345
 
271
- var _default = text => {
272
- const state = new ParserState();
346
+ var _default = function _default(text) {
347
+ var state = new ParserState();
273
348
 
274
349
  if (text.indexOf('\r\n') !== -1) {
275
350
  text = text.replace(/\r\n/g, '\n');
@@ -279,14 +354,14 @@ var _default = text => {
279
354
  text = text.replace(/\\\n/g, '');
280
355
  }
281
356
 
282
- const lines = text.split('\n');
283
- let line = '';
284
- let lineFirstChar = '';
285
- let lineLength = 0;
286
- let result = [];
287
- const trimLeft = typeof ''.trimLeft === 'function';
357
+ var lines = text.split('\n');
358
+ var line = '';
359
+ var lineFirstChar = '';
360
+ var lineLength = 0;
361
+ var result = [];
362
+ var trimLeft = typeof ''.trimLeft === 'function';
288
363
 
289
- for (let i = 0, l = lines.length; i < l; i++) {
364
+ for (var i = 0, l = lines.length; i < l; i++) {
290
365
  line = lines[i];
291
366
  line = trimLeft ? line.trimLeft() : line.trim();
292
367
  lineLength = line.length;
@@ -295,7 +370,7 @@ var _default = text => {
295
370
  if (lineFirstChar === '#') continue;
296
371
 
297
372
  if (lineFirstChar === 'v') {
298
- const data = line.split(/\s+/);
373
+ var data = line.split(/\s+/);
299
374
 
300
375
  switch (data[0]) {
301
376
  case 'v':
@@ -318,38 +393,38 @@ var _default = text => {
318
393
  default:
319
394
  }
320
395
  } else if (lineFirstChar === 'f') {
321
- const lineData = line.substr(1).trim();
322
- const vertexData = lineData.split(/\s+/);
323
- const faceVertices = [];
396
+ var lineData = line.substr(1).trim();
397
+ var vertexData = lineData.split(/\s+/);
398
+ var faceVertices = [];
324
399
 
325
- for (let j = 0, jl = vertexData.length; j < jl; j++) {
326
- const vertex = vertexData[j];
400
+ for (var j = 0, jl = vertexData.length; j < jl; j++) {
401
+ var vertex = vertexData[j];
327
402
 
328
403
  if (vertex.length > 0) {
329
- const vertexParts = vertex.split('/');
404
+ var vertexParts = vertex.split('/');
330
405
  faceVertices.push(vertexParts);
331
406
  }
332
407
  }
333
408
 
334
- const v1 = faceVertices[0];
409
+ var v1 = faceVertices[0];
335
410
 
336
- for (let j = 1, jl = faceVertices.length - 1; j < jl; j++) {
337
- const v2 = faceVertices[j];
338
- const v3 = faceVertices[j + 1];
411
+ for (var _j = 1, _jl = faceVertices.length - 1; _j < _jl; _j++) {
412
+ var v2 = faceVertices[_j];
413
+ var v3 = faceVertices[_j + 1];
339
414
  state.addFace(v1[0], v2[0], v3[0], v1[1], v2[1], v3[1], v1[2], v2[2], v3[2]);
340
415
  }
341
416
  } else if (lineFirstChar === 'l') {
342
- const lineParts = line.substring(1).trim().split(' ');
343
- let lineVertices;
344
- const lineUVs = [];
417
+ var lineParts = line.substring(1).trim().split(' ');
418
+ var lineVertices = void 0;
419
+ var lineUVs = [];
345
420
 
346
421
  if (line.indexOf('/') === -1) {
347
422
  lineVertices = lineParts;
348
423
  } else {
349
424
  lineVertices = [];
350
425
 
351
- for (let li = 0, llen = lineParts.length; li < llen; li++) {
352
- const parts = lineParts[li].split('/');
426
+ for (var li = 0, llen = lineParts.length; li < llen; li++) {
427
+ var parts = lineParts[li].split('/');
353
428
  if (parts[0] !== '') lineVertices.push(parts[0]);
354
429
  if (parts[1] !== '') lineUVs.push(parts[1]);
355
430
  }
@@ -357,11 +432,13 @@ var _default = text => {
357
432
 
358
433
  state.addLineGeometry(lineVertices, lineUVs);
359
434
  } else if (lineFirstChar === 'p') {
360
- const lineData = line.substr(1).trim();
361
- const pointData = lineData.split(' ');
435
+ var _lineData = line.substr(1).trim();
436
+
437
+ var pointData = _lineData.split(' ');
438
+
362
439
  state.addPointGeometry(pointData);
363
440
  } else if ((result = OBJECT_RE.exec(line)) !== null) {
364
- const name = (' ' + result[0].substr(1).trim()).substr(1);
441
+ var name = (' ' + result[0].substr(1).trim()).substr(1);
365
442
  state.startObject(name);
366
443
  } else if (MATERIAL_USE_RE.test(line)) {
367
444
  state.object.startMaterial(line.substring(7).trim(), state.materialLibraries);
@@ -371,13 +448,13 @@ var _default = text => {
371
448
  result = line.split(' ');
372
449
 
373
450
  if (result.length > 1) {
374
- const value = result[1].trim().toLowerCase();
451
+ var value = result[1].trim().toLowerCase();
375
452
  state.object.smooth = value !== '0' && value !== 'off';
376
453
  } else {
377
454
  state.object.smooth = true;
378
455
  }
379
456
 
380
- const material = state.object.currentMaterial();
457
+ var material = state.object.currentMaterial();
381
458
  if (material) material.smooth = state.object.smooth;
382
459
  } else {
383
460
  if (line === '\0') continue;
@@ -386,79 +463,97 @@ var _default = text => {
386
463
  }
387
464
 
388
465
  state.finalize();
389
- const meshes = [];
390
- const materials = [];
391
-
392
- for (const object of state.objects) {
393
- const {
394
- geometry
395
- } = object;
396
- if (geometry.vertices.length === 0) continue;
397
- const mesh = {
398
- header: {
399
- vertexCount: geometry.vertices.length / 3
400
- },
401
- attributes: {}
402
- };
403
-
404
- switch (geometry.type) {
405
- case 'Points':
406
- mesh.mode = 0;
407
- break;
466
+ var meshes = [];
467
+ var materials = [];
468
+
469
+ var _iterator4 = _createForOfIteratorHelper(state.objects),
470
+ _step4;
471
+
472
+ try {
473
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
474
+ var object = _step4.value;
475
+ var geometry = object.geometry;
476
+ if (geometry.vertices.length === 0) continue;
477
+ var mesh = {
478
+ header: {
479
+ vertexCount: geometry.vertices.length / 3
480
+ },
481
+ attributes: {}
482
+ };
408
483
 
409
- case 'Line':
410
- mesh.mode = 1;
411
- break;
484
+ switch (geometry.type) {
485
+ case 'Points':
486
+ mesh.mode = 0;
487
+ break;
412
488
 
413
- default:
414
- mesh.mode = 4;
415
- break;
416
- }
489
+ case 'Line':
490
+ mesh.mode = 1;
491
+ break;
417
492
 
418
- mesh.attributes.POSITION = {
419
- value: new Float32Array(geometry.vertices),
420
- size: 3
421
- };
493
+ default:
494
+ mesh.mode = 4;
495
+ break;
496
+ }
422
497
 
423
- if (geometry.normals.length > 0) {
424
- mesh.attributes.NORMAL = {
425
- value: new Float32Array(geometry.normals),
498
+ mesh.attributes.POSITION = {
499
+ value: new Float32Array(geometry.vertices),
426
500
  size: 3
427
501
  };
428
- }
429
502
 
430
- if (geometry.colors.length > 0) {
431
- mesh.attributes.COLOR_0 = {
432
- value: new Float32Array(geometry.colors),
433
- size: 3
434
- };
435
- }
503
+ if (geometry.normals.length > 0) {
504
+ mesh.attributes.NORMAL = {
505
+ value: new Float32Array(geometry.normals),
506
+ size: 3
507
+ };
508
+ }
436
509
 
437
- if (geometry.uvs.length > 0) {
438
- mesh.attributes.TEXCOORD_0 = {
439
- value: new Float32Array(geometry.uvs),
440
- size: 2
441
- };
442
- }
510
+ if (geometry.colors.length > 0) {
511
+ mesh.attributes.COLOR_0 = {
512
+ value: new Float32Array(geometry.colors),
513
+ size: 3
514
+ };
515
+ }
516
+
517
+ if (geometry.uvs.length > 0) {
518
+ mesh.attributes.TEXCOORD_0 = {
519
+ value: new Float32Array(geometry.uvs),
520
+ size: 2
521
+ };
522
+ }
443
523
 
444
- mesh.materials = [];
524
+ mesh.materials = [];
445
525
 
446
- for (const sourceMaterial of object.materials) {
447
- const _material = {
448
- name: sourceMaterial.name,
449
- flatShading: !sourceMaterial.smooth
450
- };
451
- mesh.materials.push(_material);
452
- materials.push(_material);
453
- }
526
+ var _iterator5 = _createForOfIteratorHelper(object.materials),
527
+ _step5;
454
528
 
455
- mesh.name = object.name;
456
- meshes.push(mesh);
529
+ try {
530
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
531
+ var sourceMaterial = _step5.value;
532
+ var _material = {
533
+ name: sourceMaterial.name,
534
+ flatShading: !sourceMaterial.smooth
535
+ };
536
+ mesh.materials.push(_material);
537
+ materials.push(_material);
538
+ }
539
+ } catch (err) {
540
+ _iterator5.e(err);
541
+ } finally {
542
+ _iterator5.f();
543
+ }
544
+
545
+ mesh.name = object.name;
546
+ meshes.push(mesh);
547
+ }
548
+ } catch (err) {
549
+ _iterator4.e(err);
550
+ } finally {
551
+ _iterator4.f();
457
552
  }
458
553
 
459
554
  return {
460
- meshes,
461
- materials
555
+ meshes: meshes,
556
+ materials: materials
462
557
  };
463
558
  };
464
559