@loaders.gl/obj 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (80) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/dist.min.js +97 -549
  3. package/dist/es5/bundle.js +6 -0
  4. package/dist/es5/bundle.js.map +1 -0
  5. package/dist/es5/index.js +74 -0
  6. package/dist/es5/index.js.map +1 -0
  7. package/dist/es5/lib/get-obj-schema.js +54 -0
  8. package/dist/es5/lib/get-obj-schema.js.map +1 -0
  9. package/dist/es5/lib/obj-types.js +2 -0
  10. package/dist/es5/lib/obj-types.js.map +1 -0
  11. package/dist/es5/lib/parse-mtl.js +86 -0
  12. package/dist/es5/lib/parse-mtl.js.map +1 -0
  13. package/dist/es5/lib/parse-obj-meshes.js +486 -0
  14. package/dist/es5/lib/parse-obj-meshes.js.map +1 -0
  15. package/dist/es5/lib/parse-obj.js +100 -0
  16. package/dist/es5/lib/parse-obj.js.map +1 -0
  17. package/dist/es5/mtl-loader.js +26 -0
  18. package/dist/es5/mtl-loader.js.map +1 -0
  19. package/dist/es5/obj-loader.js +27 -0
  20. package/dist/es5/obj-loader.js.map +1 -0
  21. package/dist/es5/workers/obj-worker.js +6 -0
  22. package/dist/es5/workers/obj-worker.js.map +1 -0
  23. package/dist/esm/bundle.js +4 -0
  24. package/dist/esm/bundle.js.map +1 -0
  25. package/dist/esm/index.js +18 -0
  26. package/dist/esm/index.js.map +1 -0
  27. package/dist/esm/lib/get-obj-schema.js +49 -0
  28. package/dist/esm/lib/get-obj-schema.js.map +1 -0
  29. package/dist/esm/lib/obj-types.js +2 -0
  30. package/dist/esm/lib/obj-types.js.map +1 -0
  31. package/dist/esm/lib/parse-mtl.js +68 -0
  32. package/dist/esm/lib/parse-mtl.js.map +1 -0
  33. package/dist/esm/lib/parse-obj-meshes.js +385 -0
  34. package/dist/esm/lib/parse-obj-meshes.js.map +1 -0
  35. package/dist/esm/lib/parse-obj.js +82 -0
  36. package/dist/esm/lib/parse-obj.js.map +1 -0
  37. package/dist/esm/mtl-loader.js +16 -0
  38. package/dist/esm/mtl-loader.js.map +1 -0
  39. package/dist/esm/obj-loader.js +19 -0
  40. package/dist/esm/obj-loader.js.map +1 -0
  41. package/dist/esm/workers/obj-worker.js +4 -0
  42. package/dist/esm/workers/obj-worker.js.map +1 -0
  43. package/dist/index.d.ts +4 -58
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +25 -14
  46. package/dist/lib/get-obj-schema.d.ts +3 -2
  47. package/dist/lib/get-obj-schema.d.ts.map +1 -1
  48. package/dist/lib/get-obj-schema.js +33 -33
  49. package/dist/lib/obj-types.js +1 -2
  50. package/dist/lib/parse-mtl.d.ts +2 -2
  51. package/dist/lib/parse-mtl.d.ts.map +1 -1
  52. package/dist/lib/parse-mtl.js +185 -70
  53. package/dist/lib/parse-obj-meshes.js +408 -426
  54. package/dist/lib/parse-obj.d.ts +2 -13
  55. package/dist/lib/parse-obj.d.ts.map +1 -1
  56. package/dist/lib/parse-obj.js +66 -86
  57. package/dist/mtl-loader.d.ts +3 -15
  58. package/dist/mtl-loader.d.ts.map +1 -1
  59. package/dist/mtl-loader.js +23 -15
  60. package/dist/obj-loader.d.ts +3 -16
  61. package/dist/obj-loader.d.ts.map +1 -1
  62. package/dist/obj-loader.js +24 -18
  63. package/dist/obj-worker.js +133 -517
  64. package/dist/workers/obj-worker.js +5 -4
  65. package/package.json +6 -6
  66. package/src/index.ts +6 -3
  67. package/src/lib/get-obj-schema.ts +24 -20
  68. package/src/lib/parse-obj.ts +4 -3
  69. package/src/mtl-loader.ts +2 -2
  70. package/src/obj-loader.ts +2 -1
  71. package/dist/bundle.js.map +0 -1
  72. package/dist/index.js.map +0 -1
  73. package/dist/lib/get-obj-schema.js.map +0 -1
  74. package/dist/lib/obj-types.js.map +0 -1
  75. package/dist/lib/parse-mtl.js.map +0 -1
  76. package/dist/lib/parse-obj-meshes.js.map +0 -1
  77. package/dist/lib/parse-obj.js.map +0 -1
  78. package/dist/mtl-loader.js.map +0 -1
  79. package/dist/obj-loader.js.map +0 -1
  80. package/dist/workers/obj-worker.js.map +0 -1
@@ -1,14 +1,3 @@
1
- import type { MeshAttributes } from '@loaders.gl/schema';
2
- export declare function parseOBJ(text: any, options: any): {
3
- loaderData: {
4
- header: {};
5
- };
6
- schema: import("@loaders.gl/schema").Schema;
7
- header: {
8
- vertexCount: number;
9
- boundingBox: [[number, number, number], [number, number, number]];
10
- };
11
- mode: number;
12
- attributes: MeshAttributes;
13
- };
1
+ import type { Mesh } from '@loaders.gl/schema';
2
+ export declare function parseOBJ(text: any, options: any): Mesh;
14
3
  //# sourceMappingURL=parse-obj.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-obj.d.ts","sourceRoot":"","sources":["../../src/lib/parse-obj.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAKvD,wBAAgB,QAAQ,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA;;;;;;;;;;;EAgCrC"}
1
+ {"version":3,"file":"parse-obj.d.ts","sourceRoot":"","sources":["../../src/lib/parse-obj.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAiB,MAAM,oBAAoB,CAAC;AAK7D,wBAAgB,QAAQ,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,GAAG,IAAI,CAiC5C"}
@@ -1,92 +1,72 @@
1
- import { getMeshBoundingBox } from '@loaders.gl/schema';
2
- import { parseOBJMeshes } from './parse-obj-meshes';
3
- import { getOBJSchema } from './get-obj-schema';
4
- export function parseOBJ(text, options) {
5
- const {
6
- meshes
7
- } = parseOBJMeshes(text);
8
- const vertexCount = meshes.reduce((s, mesh) => s + mesh.header.vertexCount, 0);
9
- const attributes = mergeAttributes(meshes, vertexCount);
10
- const header = {
11
- vertexCount,
12
- boundingBox: getMeshBoundingBox(attributes)
13
- };
14
- const schema = getOBJSchema(attributes, {
15
- mode: 4,
16
- boundingBox: header.boundingBox
17
- });
18
- return {
19
- loaderData: {
20
- header: {}
21
- },
22
- schema,
23
- header,
24
- mode: 4,
25
- attributes
26
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseOBJ = void 0;
4
+ const schema_1 = require("@loaders.gl/schema");
5
+ const parse_obj_meshes_1 = require("./parse-obj-meshes");
6
+ const get_obj_schema_1 = require("./get-obj-schema");
7
+ function parseOBJ(text, options) {
8
+ const { meshes } = (0, parse_obj_meshes_1.parseOBJMeshes)(text);
9
+ // @ts-expect-error
10
+ const vertexCount = meshes.reduce((s, mesh) => s + mesh.header.vertexCount, 0);
11
+ // TODO - render objects separately
12
+ const attributes = mergeAttributes(meshes, vertexCount);
13
+ const header = {
14
+ vertexCount,
15
+ // @ts-ignore Need to export Attributes type
16
+ boundingBox: (0, schema_1.getMeshBoundingBox)(attributes)
17
+ };
18
+ const schema = (0, get_obj_schema_1.getOBJSchema)(attributes, {
19
+ mode: 4,
20
+ boundingBox: header.boundingBox
21
+ });
22
+ return {
23
+ // Data return by this loader implementation
24
+ loaderData: {
25
+ header: {}
26
+ },
27
+ // Normalised data
28
+ schema,
29
+ header,
30
+ mode: 4,
31
+ topology: 'point-list',
32
+ attributes
33
+ };
27
34
  }
28
-
35
+ exports.parseOBJ = parseOBJ;
36
+ // eslint-disable-next-line max-statements
29
37
  function mergeAttributes(meshes, vertexCount) {
30
- const positions = new Float32Array(vertexCount * 3);
31
- let normals;
32
- let colors;
33
- let uvs;
34
- let i = 0;
35
-
36
- for (const mesh of meshes) {
37
- const {
38
- POSITION,
39
- NORMAL,
40
- COLOR_0,
41
- TEXCOORD_0
42
- } = mesh.attributes;
43
- positions.set(POSITION.value, i * 3);
44
-
45
- if (NORMAL) {
46
- normals = normals || new Float32Array(vertexCount * 3);
47
- normals.set(NORMAL.value, i * 3);
38
+ const positions = new Float32Array(vertexCount * 3);
39
+ let normals;
40
+ let colors;
41
+ let uvs;
42
+ let i = 0;
43
+ for (const mesh of meshes) {
44
+ const { POSITION, NORMAL, COLOR_0, TEXCOORD_0 } = mesh.attributes;
45
+ positions.set(POSITION.value, i * 3);
46
+ if (NORMAL) {
47
+ normals = normals || new Float32Array(vertexCount * 3);
48
+ normals.set(NORMAL.value, i * 3);
49
+ }
50
+ if (COLOR_0) {
51
+ colors = colors || new Float32Array(vertexCount * 3);
52
+ colors.set(COLOR_0.value, i * 3);
53
+ }
54
+ if (TEXCOORD_0) {
55
+ uvs = uvs || new Float32Array(vertexCount * 2);
56
+ uvs.set(TEXCOORD_0.value, i * 2);
57
+ }
58
+ i += POSITION.value.length / 3;
48
59
  }
49
-
50
- if (COLOR_0) {
51
- colors = colors || new Float32Array(vertexCount * 3);
52
- colors.set(COLOR_0.value, i * 3);
60
+ const attributes = {};
61
+ attributes.POSITION = { value: positions, size: 3 };
62
+ if (normals) {
63
+ attributes.NORMAL = { value: normals, size: 3 };
53
64
  }
54
-
55
- if (TEXCOORD_0) {
56
- uvs = uvs || new Float32Array(vertexCount * 2);
57
- uvs.set(TEXCOORD_0.value, i * 2);
65
+ if (colors) {
66
+ attributes.COLOR_0 = { value: colors, size: 3 };
58
67
  }
59
-
60
- i += POSITION.value.length / 3;
61
- }
62
-
63
- const attributes = {};
64
- attributes.POSITION = {
65
- value: positions,
66
- size: 3
67
- };
68
-
69
- if (normals) {
70
- attributes.NORMAL = {
71
- value: normals,
72
- size: 3
73
- };
74
- }
75
-
76
- if (colors) {
77
- attributes.COLOR_0 = {
78
- value: colors,
79
- size: 3
80
- };
81
- }
82
-
83
- if (uvs) {
84
- attributes.TEXCOORD_0 = {
85
- value: uvs,
86
- size: 2
87
- };
88
- }
89
-
90
- return attributes;
68
+ if (uvs) {
69
+ attributes.TEXCOORD_0 = { value: uvs, size: 2 };
70
+ }
71
+ return attributes;
91
72
  }
92
- //# sourceMappingURL=parse-obj.js.map
@@ -1,24 +1,12 @@
1
1
  import type { Loader, LoaderOptions } from '@loaders.gl/loader-utils';
2
- import type { ParseMTLOptions } from './lib/parse-mtl';
3
- export declare type MTLLoaderOptions = LoaderOptions & {
2
+ import type { MTLMaterial, ParseMTLOptions } from './lib/parse-mtl';
3
+ export type MTLLoaderOptions = LoaderOptions & {
4
4
  mtl?: ParseMTLOptions;
5
5
  };
6
6
  /**
7
7
  * Loader for the MTL material format
8
8
  * Parses a Wavefront .mtl file specifying materials
9
9
  */
10
- export declare const MTLLoader: {
11
- name: string;
12
- id: string;
13
- module: string;
14
- version: any;
15
- worker: boolean;
16
- extensions: string[];
17
- mimeTypes: string[];
18
- testText: (text: string) => boolean;
19
- options: {
20
- mtl: {};
21
- };
22
- };
10
+ export declare const MTLLoader: Loader<MTLMaterial[], never, LoaderOptions>;
23
11
  export declare const _typecheckMTLLoader: Loader;
24
12
  //# sourceMappingURL=mtl-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mtl-loader.d.ts","sourceRoot":"","sources":["../src/mtl-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAMrD,oBAAY,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;qBAQH,MAAM,KAAG,OAAO;;;;CAIlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC"}
1
+ {"version":3,"file":"mtl-loader.d.ts","sourceRoot":"","sources":["../src/mtl-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAMlE,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,aAAa,CAYjE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC"}
@@ -1,16 +1,24 @@
1
- const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'latest';
2
- export const MTLLoader = {
3
- name: 'MTL',
4
- id: 'mtl',
5
- module: 'mtl',
6
- version: VERSION,
7
- worker: true,
8
- extensions: ['mtl'],
9
- mimeTypes: ['text/plain'],
10
- testText: text => text.includes('newmtl'),
11
- options: {
12
- mtl: {}
13
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._typecheckMTLLoader = exports.MTLLoader = void 0;
4
+ // __VERSION__ is injected by babel-plugin-version-inline
5
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
7
+ /**
8
+ * Loader for the MTL material format
9
+ * Parses a Wavefront .mtl file specifying materials
10
+ */
11
+ exports.MTLLoader = {
12
+ name: 'MTL',
13
+ id: 'mtl',
14
+ module: 'mtl',
15
+ version: VERSION,
16
+ worker: true,
17
+ extensions: ['mtl'],
18
+ mimeTypes: ['text/plain'],
19
+ testText: (text) => text.includes('newmtl'),
20
+ options: {
21
+ mtl: {}
22
+ }
14
23
  };
15
- export const _typecheckMTLLoader = MTLLoader;
16
- //# sourceMappingURL=mtl-loader.js.map
24
+ exports._typecheckMTLLoader = exports.MTLLoader;
@@ -1,24 +1,11 @@
1
1
  import type { Loader, LoaderOptions } from '@loaders.gl/loader-utils';
2
- export declare type OBJLoaderOptions = LoaderOptions & {
2
+ import { Mesh } from '@loaders.gl/schema';
3
+ export type OBJLoaderOptions = LoaderOptions & {
3
4
  obj?: {};
4
5
  };
5
6
  /**
6
7
  * Worker loader for the OBJ geometry format
7
8
  */
8
- export declare const OBJLoader: {
9
- name: string;
10
- id: string;
11
- module: string;
12
- version: any;
13
- worker: boolean;
14
- extensions: string[];
15
- mimeTypes: string[];
16
- testText: typeof testOBJFile;
17
- options: {
18
- obj: {};
19
- };
20
- };
21
- declare function testOBJFile(text: string): boolean;
9
+ export declare const OBJLoader: Loader<Mesh, never, OBJLoaderOptions>;
22
10
  export declare const _typecheckOBJLoader: Loader;
23
- export {};
24
11
  //# sourceMappingURL=obj-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"obj-loader.d.ts","sourceRoot":"","sources":["../src/obj-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAMpE,oBAAY,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYrB,CAAC;AAEF,iBAAS,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1C;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC"}
1
+ {"version":3,"file":"obj-loader.d.ts","sourceRoot":"","sources":["../src/obj-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AAMxC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAY3D,CAAC;AAOF,eAAO,MAAM,mBAAmB,EAAE,MAAkB,CAAC"}
@@ -1,21 +1,27 @@
1
- const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'latest';
2
- export const OBJLoader = {
3
- name: 'OBJ',
4
- id: 'obj',
5
- module: 'obj',
6
- version: VERSION,
7
- worker: true,
8
- extensions: ['obj'],
9
- mimeTypes: ['text/plain'],
10
- testText: testOBJFile,
11
- options: {
12
- obj: {}
13
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._typecheckOBJLoader = exports.OBJLoader = void 0;
4
+ // __VERSION__ is injected by babel-plugin-version-inline
5
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
7
+ /**
8
+ * Worker loader for the OBJ geometry format
9
+ */
10
+ exports.OBJLoader = {
11
+ name: 'OBJ',
12
+ id: 'obj',
13
+ module: 'obj',
14
+ version: VERSION,
15
+ worker: true,
16
+ extensions: ['obj'],
17
+ mimeTypes: ['text/plain'],
18
+ testText: testOBJFile,
19
+ options: {
20
+ obj: {}
21
+ }
14
22
  };
15
-
16
23
  function testOBJFile(text) {
17
- return text[0] === 'v';
24
+ // TODO - There could be comment line first
25
+ return text[0] === 'v';
18
26
  }
19
-
20
- export const _typecheckOBJLoader = OBJLoader;
21
- //# sourceMappingURL=obj-loader.js.map
27
+ exports._typecheckOBJLoader = exports.OBJLoader;