@loaders.gl/obj 3.1.0-alpha.5 → 3.1.0-beta.4
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.
- package/dist/bundle.d.ts +1 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +1091 -0
- package/dist/es5/obj-loader.js +1 -1
- package/dist/es5/obj-loader.js.map +1 -1
- package/dist/es5/workers/obj-worker.js +7 -3
- package/dist/es5/workers/obj-worker.js.map +1 -0
- package/dist/esm/obj-loader.js +1 -1
- package/dist/esm/obj-loader.js.map +1 -1
- package/dist/esm/workers/obj-worker.js +3 -3
- package/dist/esm/workers/obj-worker.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/lib/get-obj-schema.d.ts +1 -0
- package/dist/lib/get-obj-schema.d.ts.map +1 -0
- package/dist/lib/get-obj-schema.js +34 -0
- package/dist/lib/load-obj.d.ts +1 -0
- package/dist/lib/load-obj.d.ts.map +1 -0
- package/dist/lib/load-obj.js +73 -0
- package/dist/lib/obj-types.d.ts +1 -0
- package/dist/lib/obj-types.d.ts.map +1 -0
- package/dist/lib/obj-types.js +1 -0
- package/dist/lib/parse-obj.d.ts +1 -0
- package/dist/lib/parse-obj.d.ts.map +1 -0
- package/dist/lib/parse-obj.js +438 -0
- package/dist/obj-loader.d.ts +1 -0
- package/dist/obj-loader.d.ts.map +1 -0
- package/dist/obj-loader.js +27 -0
- package/dist/obj-worker.js +1134 -2
- package/dist/workers/obj-worker.d.ts +1 -0
- package/dist/workers/obj-worker.d.ts.map +1 -0
- package/dist/workers/obj-worker.js +5 -0
- package/package.json +6 -7
- package/src/workers/{obj-worker.js → obj-worker.ts} +0 -0
- package/dist/dist.min.js +0 -2
- package/dist/dist.min.js.map +0 -1
- package/dist/obj-worker.js.map +0 -1
package/dist/es5/obj-loader.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports._typecheckOBJLoader = exports.OBJLoader = void 0;
|
|
7
|
-
const VERSION = typeof "3.1.0-
|
|
7
|
+
const VERSION = typeof "3.1.0-beta.4" !== 'undefined' ? "3.1.0-beta.4" : 'latest';
|
|
8
8
|
const OBJLoader = {
|
|
9
9
|
name: 'OBJ',
|
|
10
10
|
id: 'obj',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/obj-loader.ts"],"names":["VERSION","OBJLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testOBJFile","options","obj","text","_typecheckOBJLoader"],"mappings":";;;;;;AAIA,MAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../src/obj-loader.ts"],"names":["VERSION","OBJLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testOBJFile","options","obj","text","_typecheckOBJLoader"],"mappings":";;;;;;AAIA,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE;AAKO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,KADiB;AAEvBC,EAAAA,EAAE,EAAE,KAFmB;AAGvBC,EAAAA,MAAM,EAAE,KAHe;AAIvBC,EAAAA,OAAO,EAAEL,OAJc;AAKvBM,EAAAA,MAAM,EAAE,IALe;AAMvBC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANW;AAOvBC,EAAAA,SAAS,EAAE,CAAC,YAAD,CAPY;AAQvBC,EAAAA,QAAQ,EAAEC,WARa;AASvBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AATc,CAAlB;;;AAcP,SAASF,WAAT,CAAqBG,IAArB,EAA2B;AAEzB,SAAOA,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAnB;AACD;;AAEM,MAAMC,mBAA2B,GAAGb,SAApC","sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Worker loader for the OBJ geometry format\n */\nexport const OBJLoader = {\n name: 'OBJ',\n id: 'obj',\n module: 'obj',\n version: VERSION,\n worker: true,\n extensions: ['obj'],\n mimeTypes: ['text/plain'],\n testText: testOBJFile,\n options: {\n obj: {}\n }\n};\n\nfunction testOBJFile(text) {\n // TODO - There could be comment line first\n return text[0] === 'v';\n}\n\nexport const _typecheckOBJLoader: Loader = OBJLoader;\n"],"file":"obj-loader.js"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import {OBJLoader} from '../index';
|
|
1
|
+
"use strict";
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
4
|
+
|
|
5
|
+
var _index = require("../index");
|
|
6
|
+
|
|
7
|
+
(0, _loaderUtils.createLoaderWorker)(_index.OBJLoader);
|
|
8
|
+
//# sourceMappingURL=obj-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/workers/obj-worker.ts"],"names":["OBJLoader"],"mappings":";;AAAA;;AACA;;AAEA,qCAAmBA,gBAAnB","sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {OBJLoader} from '../index';\n\ncreateLoaderWorker(OBJLoader);\n"],"file":"obj-worker.js"}
|
package/dist/esm/obj-loader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/obj-loader.ts"],"names":["VERSION","OBJLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testOBJFile","options","obj","text","_typecheckOBJLoader"],"mappings":"AAIA,MAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../src/obj-loader.ts"],"names":["VERSION","OBJLoader","name","id","module","version","worker","extensions","mimeTypes","testText","testOBJFile","options","obj","text","_typecheckOBJLoader"],"mappings":"AAIA,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE;AAKA,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,KADiB;AAEvBC,EAAAA,EAAE,EAAE,KAFmB;AAGvBC,EAAAA,MAAM,EAAE,KAHe;AAIvBC,EAAAA,OAAO,EAAEL,OAJc;AAKvBM,EAAAA,MAAM,EAAE,IALe;AAMvBC,EAAAA,UAAU,EAAE,CAAC,KAAD,CANW;AAOvBC,EAAAA,SAAS,EAAE,CAAC,YAAD,CAPY;AAQvBC,EAAAA,QAAQ,EAAEC,WARa;AASvBC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AADE;AATc,CAAlB;;AAcP,SAASF,WAAT,CAAqBG,IAArB,EAA2B;AAEzB,SAAOA,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAnB;AACD;;AAED,OAAO,MAAMC,mBAA2B,GAAGb,SAApC","sourcesContent":["import type {Loader} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Worker loader for the OBJ geometry format\n */\nexport const OBJLoader = {\n name: 'OBJ',\n id: 'obj',\n module: 'obj',\n version: VERSION,\n worker: true,\n extensions: ['obj'],\n mimeTypes: ['text/plain'],\n testText: testOBJFile,\n options: {\n obj: {}\n }\n};\n\nfunction testOBJFile(text) {\n // TODO - There could be comment line first\n return text[0] === 'v';\n}\n\nexport const _typecheckOBJLoader: Loader = OBJLoader;\n"],"file":"obj-loader.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {createLoaderWorker} from '@loaders.gl/loader-utils';
|
|
2
|
-
import {OBJLoader} from '../index';
|
|
3
|
-
|
|
1
|
+
import { createLoaderWorker } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { OBJLoader } from '../index';
|
|
4
3
|
createLoaderWorker(OBJLoader);
|
|
4
|
+
//# sourceMappingURL=obj-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/workers/obj-worker.ts"],"names":["createLoaderWorker","OBJLoader"],"mappings":"AAAA,SAAQA,kBAAR,QAAiC,0BAAjC;AACA,SAAQC,SAAR,QAAwB,UAAxB;AAEAD,kBAAkB,CAACC,SAAD,CAAlB","sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {OBJLoader} from '../index';\n\ncreateLoaderWorker(OBJLoader);\n"],"file":"obj-worker.js"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,13 +10,13 @@ export declare const OBJLoader: {
|
|
|
10
10
|
loaderData: {
|
|
11
11
|
header: {};
|
|
12
12
|
};
|
|
13
|
-
schema: import("
|
|
13
|
+
schema: import("@loaders.gl/schema").Schema;
|
|
14
14
|
header: {
|
|
15
15
|
vertexCount: number;
|
|
16
16
|
boundingBox: [[number, number, number], [number, number, number]];
|
|
17
17
|
};
|
|
18
18
|
mode: number;
|
|
19
|
-
attributes: import("
|
|
19
|
+
attributes: import("@loaders.gl/schema").MeshAttributes;
|
|
20
20
|
}>;
|
|
21
21
|
parseTextSync: typeof loadOBJ;
|
|
22
22
|
name: string;
|
|
@@ -32,3 +32,4 @@ export declare const OBJLoader: {
|
|
|
32
32
|
};
|
|
33
33
|
};
|
|
34
34
|
export declare const _typecheckOBJLoader: LoaderWithParser;
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAC,SAAS,IAAI,eAAe,EAAC,MAAM,cAAc,CAAC;AAI1D,OAAO,EAAC,eAAe,EAAC,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAIrB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,gBAA4B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports._typecheckOBJLoader = exports.OBJLoader = exports.OBJWorkerLoader = void 0;
|
|
7
|
+
const load_obj_1 = __importDefault(require("./lib/load-obj"));
|
|
8
|
+
const obj_loader_1 = require("./obj-loader");
|
|
9
|
+
Object.defineProperty(exports, "OBJWorkerLoader", { enumerable: true, get: function () { return obj_loader_1.OBJLoader; } });
|
|
10
|
+
/**
|
|
11
|
+
* Loader for the OBJ geometry format
|
|
12
|
+
*/
|
|
13
|
+
exports.OBJLoader = {
|
|
14
|
+
...obj_loader_1.OBJLoader,
|
|
15
|
+
parse: async (arrayBuffer, options) => (0, load_obj_1.default)(new TextDecoder().decode(arrayBuffer), options),
|
|
16
|
+
parseTextSync: load_obj_1.default
|
|
17
|
+
};
|
|
18
|
+
exports._typecheckOBJLoader = exports.OBJLoader;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-obj-schema.d.ts","sourceRoot":"","sources":["../../src/lib/get-obj-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAmD,MAAM,oBAAoB,CAAC;AAE5F,wBAAgB,YAAY,CAAC,UAAU,KAAA,EAAE,QAAQ,KAAK,UAgBrD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOBJSchema = void 0;
|
|
4
|
+
const schema_1 = require("@loaders.gl/schema");
|
|
5
|
+
function getOBJSchema(attributes, metadata = {}) {
|
|
6
|
+
let metadataMap;
|
|
7
|
+
for (const key in metadata) {
|
|
8
|
+
metadataMap = metadataMap || new Map();
|
|
9
|
+
if (key !== 'value') {
|
|
10
|
+
metadataMap.set(key, JSON.stringify(metadata[key]));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const fields = [];
|
|
14
|
+
for (const attributeName in attributes) {
|
|
15
|
+
const attribute = attributes[attributeName];
|
|
16
|
+
const field = getArrowFieldFromAttribute(attributeName, attribute);
|
|
17
|
+
fields.push(field);
|
|
18
|
+
}
|
|
19
|
+
return new schema_1.Schema(fields, metadataMap);
|
|
20
|
+
}
|
|
21
|
+
exports.getOBJSchema = getOBJSchema;
|
|
22
|
+
function getArrowFieldFromAttribute(attributeName, attribute) {
|
|
23
|
+
const metadataMap = new Map();
|
|
24
|
+
for (const key in attribute) {
|
|
25
|
+
if (key !== 'value') {
|
|
26
|
+
metadataMap.set(key, JSON.stringify(attribute[key]));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const type = (0, schema_1.getArrowTypeFromTypedArray)(attribute.value);
|
|
30
|
+
const isSingleValue = !('size' in attribute) || attribute.size === 1;
|
|
31
|
+
return isSingleValue
|
|
32
|
+
? new schema_1.Field(attributeName, type, false, metadataMap)
|
|
33
|
+
: new schema_1.Field(attributeName, new schema_1.FixedSizeList(attribute.size, new schema_1.Field('value', type)), false, metadataMap);
|
|
34
|
+
}
|
package/dist/lib/load-obj.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-obj.d.ts","sourceRoot":"","sources":["../../src/lib/load-obj.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAKvD,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA;;;;;;;;;;;EAgC5C"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const schema_1 = require("@loaders.gl/schema");
|
|
7
|
+
const parse_obj_1 = __importDefault(require("./parse-obj"));
|
|
8
|
+
const get_obj_schema_1 = require("./get-obj-schema");
|
|
9
|
+
function loadOBJ(text, options) {
|
|
10
|
+
const { meshes } = (0, parse_obj_1.default)(text);
|
|
11
|
+
// @ts-expect-error
|
|
12
|
+
const vertexCount = meshes.reduce((s, mesh) => s + mesh.header.vertexCount, 0);
|
|
13
|
+
// TODO - render objects separately
|
|
14
|
+
const attributes = mergeAttributes(meshes, vertexCount);
|
|
15
|
+
const header = {
|
|
16
|
+
vertexCount,
|
|
17
|
+
// @ts-ignore Need to export Attributes type
|
|
18
|
+
boundingBox: (0, schema_1.getMeshBoundingBox)(attributes)
|
|
19
|
+
};
|
|
20
|
+
const schema = (0, get_obj_schema_1.getOBJSchema)(attributes, {
|
|
21
|
+
mode: 4,
|
|
22
|
+
boundingBox: header.boundingBox
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
// Data return by this loader implementation
|
|
26
|
+
loaderData: {
|
|
27
|
+
header: {}
|
|
28
|
+
},
|
|
29
|
+
// Normalised data
|
|
30
|
+
schema,
|
|
31
|
+
header,
|
|
32
|
+
mode: 4,
|
|
33
|
+
attributes
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
exports.default = loadOBJ;
|
|
37
|
+
// eslint-disable-next-line max-statements
|
|
38
|
+
function mergeAttributes(meshes, vertexCount) {
|
|
39
|
+
const positions = new Float32Array(vertexCount * 3);
|
|
40
|
+
let normals;
|
|
41
|
+
let colors;
|
|
42
|
+
let uvs;
|
|
43
|
+
let i = 0;
|
|
44
|
+
for (const mesh of meshes) {
|
|
45
|
+
const { POSITION, NORMAL, COLOR_0, TEXCOORD_0 } = mesh.attributes;
|
|
46
|
+
positions.set(POSITION.value, i * 3);
|
|
47
|
+
if (NORMAL) {
|
|
48
|
+
normals = normals || new Float32Array(vertexCount * 3);
|
|
49
|
+
normals.set(NORMAL.value, i * 3);
|
|
50
|
+
}
|
|
51
|
+
if (COLOR_0) {
|
|
52
|
+
colors = colors || new Float32Array(vertexCount * 3);
|
|
53
|
+
colors.set(COLOR_0.value, i * 3);
|
|
54
|
+
}
|
|
55
|
+
if (TEXCOORD_0) {
|
|
56
|
+
uvs = uvs || new Float32Array(vertexCount * 2);
|
|
57
|
+
uvs.set(TEXCOORD_0.value, i * 2);
|
|
58
|
+
}
|
|
59
|
+
i += POSITION.value.length / 3;
|
|
60
|
+
}
|
|
61
|
+
const attributes = {};
|
|
62
|
+
attributes.POSITION = { value: positions, size: 3 };
|
|
63
|
+
if (normals) {
|
|
64
|
+
attributes.NORMAL = { value: normals, size: 3 };
|
|
65
|
+
}
|
|
66
|
+
if (colors) {
|
|
67
|
+
attributes.COLOR_0 = { value: colors, size: 3 };
|
|
68
|
+
}
|
|
69
|
+
if (uvs) {
|
|
70
|
+
attributes.TEXCOORD_0 = { value: uvs, size: 2 };
|
|
71
|
+
}
|
|
72
|
+
return attributes;
|
|
73
|
+
}
|
package/dist/lib/obj-types.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=obj-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obj-types.d.ts","sourceRoot":"","sources":["../../src/lib/obj-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/dist/lib/parse-obj.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-obj.d.ts","sourceRoot":"","sources":["../../src/lib/parse-obj.ts"],"names":[],"mappings":";;;;AAgTA,wBA4NE"}
|