@threepipe/plugins-extra-importers 0.2.2 → 0.2.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/CHANGELOG.md +20 -0
- package/README.md +12 -0
- package/dist/dependencies.txt +1 -1
- package/dist/index.d.ts +33 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -49
- package/dist/index.js.map +1 -1
- package/docs/.nojekyll +1 -0
- package/docs/assets/hierarchy.js +1 -0
- package/docs/assets/highlight.css +22 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1633 -0
- package/docs/classes/AMFLoadPlugin.html +10 -0
- package/docs/classes/BVHLoadPlugin.html +10 -0
- package/docs/classes/ColladaLoadPlugin.html +10 -0
- package/docs/classes/GCodeLoadPlugin.html +10 -0
- package/docs/classes/LDrawLoadPlugin.html +10 -0
- package/docs/classes/MDDLoadPlugin.html +10 -0
- package/docs/classes/PCDLoadPlugin.html +10 -0
- package/docs/classes/TDSLoadPlugin.html +10 -0
- package/docs/classes/ThreeMFLoadPlugin.html +10 -0
- package/docs/classes/TiltLoadPlugin.html +10 -0
- package/docs/classes/VOXLoadPlugin.html +10 -0
- package/docs/classes/VRMLLoadPlugin.html +10 -0
- package/docs/classes/VTKLoadPlugin.html +10 -0
- package/docs/classes/XYZLoadPlugin.html +10 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +1 -0
- package/docs/variables/extraImportPlugins.html +1 -0
- package/package.json +9 -5
- package/src/index.ts +3 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Changelog for @threepipe/extra-importers
|
|
2
|
+
|
|
3
|
+
All notable changes to this plugin will be documented in this file.
|
|
4
|
+
|
|
5
|
+
[//]: # (The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).)
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- NA
|
|
12
|
+
|
|
13
|
+
## [0.2.4] - 2025-09-01
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Update [threepipe](https://threepipe.org/) `peerDependency` to [0.1.0](https://github.com/repalash/threepipe/releases/tag/v0.1.0)
|
|
18
|
+
|
|
19
|
+
[unreleased]: https://github.com/repalash/threepipe/tree/dev/plugins/extra-importers
|
|
20
|
+
[0.2.4]: https://github.com/repalash/threepipe/releases/tag/@threepipe/plugin-extra-importers-v0.2.4
|
package/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# @threepipe/extra-importers
|
|
2
|
+
|
|
3
|
+
Additional importers for [threepipe](https://threepipe.org/) to handle various 3D file formats.
|
|
4
|
+
|
|
5
|
+
[Github](https://github.com/repalash/threepipe/tree/dev/plugins/extra-importers) —
|
|
6
|
+
[Examples](https://threepipe.org/examples/?q=extra#extra-importer-plugins/) —
|
|
7
|
+
[API Reference](https://threepipe.org/docs/)
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@threepipe/plugin-extra-importers)
|
|
10
|
+
[](https://opensource.org/license/apache-2-0/)
|
|
11
|
+
|
|
12
|
+
**Documentation and Guides**: [threepipe.org/package/plugin-extra-importers](https://threepipe.org/package/plugin-extra-importers.html)
|
package/dist/dependencies.txt
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyOptions, BaseImporterPlugin, BufferGeometry, Group, Importer, Mesh, Object3D, Points, Scene } from 'threepipe';
|
|
1
|
+
import { AnyOptions, BaseImporterPlugin, BufferGeometry, Group, ImportAddOptions, Importer, Mesh, Object3D, Points, PointsMaterial, Scene } from 'threepipe';
|
|
2
2
|
import { TDSLoader } from 'three/examples/jsm/loaders/TDSLoader.js';
|
|
3
3
|
import { ThreeMFLoader } from 'three/examples/jsm/loaders/3MFLoader.js';
|
|
4
4
|
import { Collada } from 'three/examples/jsm/loaders/ColladaLoader.js';
|
|
@@ -30,17 +30,17 @@ export declare class ColladaLoadPlugin extends BaseImporterPlugin {
|
|
|
30
30
|
static readonly PluginType = "ColladaLoadPlugin";
|
|
31
31
|
protected _importer: Importer<{
|
|
32
32
|
transform(res: Collada, _: AnyOptions): Scene;
|
|
33
|
-
load(url: string, onLoad: (collada: Collada) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
|
|
34
|
-
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Collada>;
|
|
35
33
|
parse(text: string, path: string): Collada;
|
|
36
34
|
crossOrigin: string;
|
|
37
35
|
withCredentials: boolean;
|
|
38
36
|
path: string;
|
|
39
37
|
resourcePath: string;
|
|
40
|
-
manager: import('threepipe').LoadingManager;
|
|
38
|
+
manager: import('./threepipe').LoadingManager;
|
|
41
39
|
requestHeader: {
|
|
42
40
|
[header: string]: string;
|
|
43
41
|
};
|
|
42
|
+
load(url: string, onLoad: (data: Collada) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
|
|
43
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Collada>;
|
|
44
44
|
setCrossOrigin(crossOrigin: string): /*elided*/ any;
|
|
45
45
|
setWithCredentials(value: boolean): /*elided*/ any;
|
|
46
46
|
setPath(path: string): /*elided*/ any;
|
|
@@ -73,17 +73,17 @@ export declare class BVHLoadPlugin extends BaseImporterPlugin {
|
|
|
73
73
|
transform(res: BVH, _: AnyOptions): Object3D;
|
|
74
74
|
animateBonePositions: boolean;
|
|
75
75
|
animateBoneRotations: boolean;
|
|
76
|
-
load(url: string, onLoad: (bvh: BVH) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
|
|
77
|
-
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<BVH>;
|
|
78
76
|
parse(text: string): BVH;
|
|
79
77
|
crossOrigin: string;
|
|
80
78
|
withCredentials: boolean;
|
|
81
79
|
path: string;
|
|
82
80
|
resourcePath: string;
|
|
83
|
-
manager: import('threepipe').LoadingManager;
|
|
81
|
+
manager: import('./threepipe').LoadingManager;
|
|
84
82
|
requestHeader: {
|
|
85
83
|
[header: string]: string;
|
|
86
84
|
};
|
|
85
|
+
load(url: string, onLoad: (data: BVH) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
|
|
86
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<BVH>;
|
|
87
87
|
setCrossOrigin(crossOrigin: string): /*elided*/ any;
|
|
88
88
|
setWithCredentials(value: boolean): /*elided*/ any;
|
|
89
89
|
setPath(path: string): /*elided*/ any;
|
|
@@ -100,17 +100,17 @@ export declare class VOXLoadPlugin extends BaseImporterPlugin {
|
|
|
100
100
|
static readonly PluginType = "VOXLoadPlugin";
|
|
101
101
|
protected _importer: Importer<{
|
|
102
102
|
transform(chunks: Chunk[], _: AnyOptions): Object3D;
|
|
103
|
-
load(url: string, onLoad: (chunks: Chunk[]) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
|
|
104
|
-
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Chunk[]>;
|
|
105
103
|
parse(data: ArrayBuffer): object[];
|
|
106
104
|
crossOrigin: string;
|
|
107
105
|
withCredentials: boolean;
|
|
108
106
|
path: string;
|
|
109
107
|
resourcePath: string;
|
|
110
|
-
manager: import('threepipe').LoadingManager;
|
|
108
|
+
manager: import('./threepipe').LoadingManager;
|
|
111
109
|
requestHeader: {
|
|
112
110
|
[header: string]: string;
|
|
113
111
|
};
|
|
112
|
+
load(url: string, onLoad: (data: Chunk[]) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
|
|
113
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Chunk[]>;
|
|
114
114
|
setCrossOrigin(crossOrigin: string): /*elided*/ any;
|
|
115
115
|
setWithCredentials(value: boolean): /*elided*/ any;
|
|
116
116
|
setPath(path: string): /*elided*/ any;
|
|
@@ -127,17 +127,17 @@ export declare class MDDLoadPlugin extends BaseImporterPlugin {
|
|
|
127
127
|
static readonly PluginType = "MDDLoadPlugin";
|
|
128
128
|
protected _importer: Importer<{
|
|
129
129
|
transform(res: MDD, _: AnyOptions): Object3D;
|
|
130
|
-
load(url: string, onLoad: (result: MDD) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
|
|
131
|
-
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<MDD>;
|
|
132
130
|
parse(data: ArrayBuffer): MDD;
|
|
133
131
|
crossOrigin: string;
|
|
134
132
|
withCredentials: boolean;
|
|
135
133
|
path: string;
|
|
136
134
|
resourcePath: string;
|
|
137
|
-
manager: import('threepipe').LoadingManager;
|
|
135
|
+
manager: import('./threepipe').LoadingManager;
|
|
138
136
|
requestHeader: {
|
|
139
137
|
[header: string]: string;
|
|
140
138
|
};
|
|
139
|
+
load(url: string, onLoad: (data: MDD) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
|
|
140
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<MDD>;
|
|
141
141
|
setCrossOrigin(crossOrigin: string): /*elided*/ any;
|
|
142
142
|
setWithCredentials(value: boolean): /*elided*/ any;
|
|
143
143
|
setPath(path: string): /*elided*/ any;
|
|
@@ -153,19 +153,19 @@ export declare class MDDLoadPlugin extends BaseImporterPlugin {
|
|
|
153
153
|
export declare class PCDLoadPlugin extends BaseImporterPlugin {
|
|
154
154
|
static readonly PluginType = "PCDLoadPlugin";
|
|
155
155
|
protected _importer: Importer<{
|
|
156
|
-
transform(points: Points, options:
|
|
156
|
+
transform(points: Points, options: ImportAddOptions): any;
|
|
157
157
|
littleEndian: boolean;
|
|
158
|
-
|
|
159
|
-
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Points>;
|
|
160
|
-
parse(data: ArrayBuffer | string): Points;
|
|
158
|
+
parse(data: ArrayBuffer | string): Points<BufferGeometry, PointsMaterial>;
|
|
161
159
|
crossOrigin: string;
|
|
162
160
|
withCredentials: boolean;
|
|
163
161
|
path: string;
|
|
164
162
|
resourcePath: string;
|
|
165
|
-
manager: import('threepipe').LoadingManager;
|
|
163
|
+
manager: import('./threepipe').LoadingManager;
|
|
166
164
|
requestHeader: {
|
|
167
165
|
[header: string]: string;
|
|
168
166
|
};
|
|
167
|
+
load(url: string, onLoad: (data: Points<BufferGeometry<import('./threepipe').NormalBufferAttributes, import('./threepipe').BufferGeometryEventMap>, PointsMaterial>) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
|
|
168
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Points<BufferGeometry<import('./threepipe').NormalBufferAttributes, import('./threepipe').BufferGeometryEventMap>, PointsMaterial>>;
|
|
169
169
|
setCrossOrigin(crossOrigin: string): /*elided*/ any;
|
|
170
170
|
setWithCredentials(value: boolean): /*elided*/ any;
|
|
171
171
|
setPath(path: string): /*elided*/ any;
|
|
@@ -196,26 +196,26 @@ export declare class LDrawLoadPlugin extends BaseImporterPlugin {
|
|
|
196
196
|
static readonly PluginType = "LDrawLoadPlugin";
|
|
197
197
|
protected _importer: Importer<{
|
|
198
198
|
transform(res: Group, _: AnyOptions): any;
|
|
199
|
-
materials: import('threepipe').Material[];
|
|
200
|
-
materialsLibrary: Record<string, import('threepipe').Material>;
|
|
199
|
+
materials: import('./threepipe').Material[];
|
|
200
|
+
materialsLibrary: Record<string, import('./threepipe').Material>;
|
|
201
201
|
fileMap: Record<string, string>;
|
|
202
202
|
smoothNormals: boolean;
|
|
203
|
-
load(url: string, onLoad: (data: Group) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
|
|
204
|
-
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Group>;
|
|
205
203
|
preloadMaterials(url: string): Promise<void>;
|
|
206
204
|
setFileMap(fileMap: Record<string, string>): void;
|
|
207
|
-
setMaterials(materials: import('threepipe').Material[]): void;
|
|
205
|
+
setMaterials(materials: import('./threepipe').Material[]): void;
|
|
208
206
|
parse(text: string, path: string, onLoad: (data: Group) => void): void;
|
|
209
|
-
addMaterial(material: import('threepipe').Material): void;
|
|
210
|
-
getMaterial(colourCode: string): import('threepipe').Material | null;
|
|
207
|
+
addMaterial(material: import('./threepipe').Material): void;
|
|
208
|
+
getMaterial(colourCode: string): import('./threepipe').Material | null;
|
|
211
209
|
crossOrigin: string;
|
|
212
210
|
withCredentials: boolean;
|
|
213
211
|
path: string;
|
|
214
212
|
resourcePath: string;
|
|
215
|
-
manager: import('threepipe').LoadingManager;
|
|
213
|
+
manager: import('./threepipe').LoadingManager;
|
|
216
214
|
requestHeader: {
|
|
217
215
|
[header: string]: string;
|
|
218
216
|
};
|
|
217
|
+
load(url: string, onLoad: (data: Group<import('./threepipe').Object3DEventMap>) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
|
|
218
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Group<import('./threepipe').Object3DEventMap>>;
|
|
219
219
|
setCrossOrigin(crossOrigin: string): /*elided*/ any;
|
|
220
220
|
setWithCredentials(value: boolean): /*elided*/ any;
|
|
221
221
|
setPath(path: string): /*elided*/ any;
|
|
@@ -232,17 +232,17 @@ export declare class VTKLoadPlugin extends BaseImporterPlugin {
|
|
|
232
232
|
static readonly PluginType = "VTKLoadPlugin";
|
|
233
233
|
protected _importer: Importer<{
|
|
234
234
|
transform(res: BufferGeometry, _: AnyOptions): Mesh | undefined;
|
|
235
|
-
load(url: string, onLoad: (geometry: BufferGeometry) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
|
|
236
|
-
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<BufferGeometry>;
|
|
237
235
|
parse(data: ArrayBuffer | string, path: string): BufferGeometry;
|
|
238
236
|
crossOrigin: string;
|
|
239
237
|
withCredentials: boolean;
|
|
240
238
|
path: string;
|
|
241
239
|
resourcePath: string;
|
|
242
|
-
manager: import('threepipe').LoadingManager;
|
|
240
|
+
manager: import('./threepipe').LoadingManager;
|
|
243
241
|
requestHeader: {
|
|
244
242
|
[header: string]: string;
|
|
245
243
|
};
|
|
244
|
+
load(url: string, onLoad: (data: BufferGeometry<import('./threepipe').NormalBufferAttributes, import('./threepipe').BufferGeometryEventMap>) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
|
|
245
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<BufferGeometry<import('./threepipe').NormalBufferAttributes, import('./threepipe').BufferGeometryEventMap>>;
|
|
246
246
|
setCrossOrigin(crossOrigin: string): /*elided*/ any;
|
|
247
247
|
setWithCredentials(value: boolean): /*elided*/ any;
|
|
248
248
|
setPath(path: string): /*elided*/ any;
|
|
@@ -258,18 +258,18 @@ export declare class VTKLoadPlugin extends BaseImporterPlugin {
|
|
|
258
258
|
export declare class XYZLoadPlugin extends BaseImporterPlugin {
|
|
259
259
|
static readonly PluginType = "XYZLoadPlugin";
|
|
260
260
|
protected _importer: Importer<{
|
|
261
|
-
transform(res: BufferGeometry, options:
|
|
262
|
-
load(url: string, onLoad: (geometry: BufferGeometry) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
|
|
263
|
-
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<BufferGeometry>;
|
|
261
|
+
transform(res: BufferGeometry, options: ImportAddOptions): Points | undefined;
|
|
264
262
|
parse(data: string, onLoad: (geometry: BufferGeometry) => void): object;
|
|
265
263
|
crossOrigin: string;
|
|
266
264
|
withCredentials: boolean;
|
|
267
265
|
path: string;
|
|
268
266
|
resourcePath: string;
|
|
269
|
-
manager: import('threepipe').LoadingManager;
|
|
267
|
+
manager: import('./threepipe').LoadingManager;
|
|
270
268
|
requestHeader: {
|
|
271
269
|
[header: string]: string;
|
|
272
270
|
};
|
|
271
|
+
load(url: string, onLoad: (data: BufferGeometry<import('./threepipe').NormalBufferAttributes, import('./threepipe').BufferGeometryEventMap>) => void, onProgress?: (event: ProgressEvent) => void, onError?: (err: unknown) => void): void;
|
|
272
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<BufferGeometry<import('./threepipe').NormalBufferAttributes, import('./threepipe').BufferGeometryEventMap>>;
|
|
273
273
|
setCrossOrigin(crossOrigin: string): /*elided*/ any;
|
|
274
274
|
setWithCredentials(value: boolean): /*elided*/ any;
|
|
275
275
|
setPath(path: string): /*elided*/ any;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,kBAAkB,EAElB,cAAc,EAEd,KAAK,EAEL,QAAQ,EACR,IAAI,EACJ,QAAQ,EAER,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* @threepipe/plugins-extra-importers v0.2.
|
|
3
|
+
* @threepipe/plugins-extra-importers v0.2.4
|
|
4
4
|
* Copyright 2022-2025 repalash <palash@shaders.app>
|
|
5
5
|
* Apache-2.0 License
|
|
6
6
|
* See ./dependencies.txt for any bundled third-party dependencies and licenses.
|
|
7
7
|
*/
|
|
8
|
-
import { Loader, LoaderUtils, FileLoader, Group, MeshPhongMaterial, DoubleSide, AdditiveBlending, BufferGeometry, Mesh, Float32BufferAttribute, Matrix4, TextureLoader, Color, SRGBColorSpace, BufferAttribute,
|
|
8
|
+
import { Loader, LoaderUtils, FileLoader, Group, MeshPhongMaterial, DoubleSide, AdditiveBlending, BufferGeometry, Mesh, Float32BufferAttribute, Matrix4, TextureLoader, Color, SRGBColorSpace, BufferAttribute, RepeatWrapping, ClampToEdgeWrapping, MirroredRepeatWrapping, LinearFilter, LinearMipmapLinearFilter, NearestFilter, MeshStandardMaterial, DataTextureLoader, Vector3, Quaternion, MeshBasicMaterial, Scene, MathUtils, AnimationClip, MeshLambertMaterial, Vector2, FrontSide, PerspectiveCamera, OrthographicCamera, AmbientLight, SpotLight, PointLight, DirectionalLight, VectorKeyframeTrack, QuaternionKeyframeTrack, Bone, LineBasicMaterial, SkinnedMesh, Line, LineSegments, Skeleton, NumberKeyframeTrack, Int32BufferAttribute, PointsMaterial, Points, RawShaderMaterial, Object3D, SphereGeometry, BackSide, DataTexture, BoxGeometry, ConeGeometry, CylinderGeometry, ShapeUtils, ShaderMaterial, UniformsUtils, UniformsLib, Ray, BaseImporterPlugin, Importer, SkeletonHelper, PhysicalMaterial } from "threepipe";
|
|
9
9
|
class TDSLoader extends Loader {
|
|
10
10
|
constructor(manager) {
|
|
11
11
|
super(manager);
|
|
@@ -1660,7 +1660,11 @@ class ThreeMFLoader extends Loader {
|
|
|
1660
1660
|
const geometry = new BufferGeometry();
|
|
1661
1661
|
geometry.setIndex(new BufferAttribute(meshData["triangles"], 1));
|
|
1662
1662
|
geometry.setAttribute("position", new BufferAttribute(meshData["vertices"], 3));
|
|
1663
|
-
const material = new MeshPhongMaterial({
|
|
1663
|
+
const material = new MeshPhongMaterial({
|
|
1664
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
1665
|
+
color: 16777215,
|
|
1666
|
+
flatShading: true
|
|
1667
|
+
});
|
|
1664
1668
|
const mesh = new Mesh(geometry, material);
|
|
1665
1669
|
return mesh;
|
|
1666
1670
|
}
|
|
@@ -1882,7 +1886,7 @@ class TGALoader extends DataTextureLoader {
|
|
|
1882
1886
|
case TGA_TYPE_INDEXED:
|
|
1883
1887
|
case TGA_TYPE_RLE_INDEXED:
|
|
1884
1888
|
if (header2.colormap_length > 256 || header2.colormap_size !== 24 || header2.colormap_type !== 1) {
|
|
1885
|
-
|
|
1889
|
+
throw new Error("THREE.TGALoader: Invalid type colormap data for indexed type.");
|
|
1886
1890
|
}
|
|
1887
1891
|
break;
|
|
1888
1892
|
// check colormap type
|
|
@@ -1891,21 +1895,21 @@ class TGALoader extends DataTextureLoader {
|
|
|
1891
1895
|
case TGA_TYPE_RLE_RGB:
|
|
1892
1896
|
case TGA_TYPE_RLE_GREY:
|
|
1893
1897
|
if (header2.colormap_type) {
|
|
1894
|
-
|
|
1898
|
+
throw new Error("THREE.TGALoader: Invalid type colormap data for colormap type.");
|
|
1895
1899
|
}
|
|
1896
1900
|
break;
|
|
1897
1901
|
// What the need of a file without data ?
|
|
1898
1902
|
case TGA_TYPE_NO_DATA:
|
|
1899
|
-
|
|
1903
|
+
throw new Error("THREE.TGALoader: No data.");
|
|
1900
1904
|
// Invalid type ?
|
|
1901
1905
|
default:
|
|
1902
|
-
|
|
1906
|
+
throw new Error("THREE.TGALoader: Invalid type " + header2.image_type);
|
|
1903
1907
|
}
|
|
1904
1908
|
if (header2.width <= 0 || header2.height <= 0) {
|
|
1905
|
-
|
|
1909
|
+
throw new Error("THREE.TGALoader: Invalid image size.");
|
|
1906
1910
|
}
|
|
1907
1911
|
if (header2.pixel_size !== 8 && header2.pixel_size !== 16 && header2.pixel_size !== 24 && header2.pixel_size !== 32) {
|
|
1908
|
-
|
|
1912
|
+
throw new Error("THREE.TGALoader: Invalid pixel size " + header2.pixel_size);
|
|
1909
1913
|
}
|
|
1910
1914
|
}
|
|
1911
1915
|
function tgaParse(use_rle2, use_pal2, header2, offset2, data) {
|
|
@@ -2078,8 +2082,7 @@ class TGALoader extends DataTextureLoader {
|
|
|
2078
2082
|
tgaGetImageDataGrey16bits(data, y_start, y_step, y_end, x_start, x_step, x_end, image);
|
|
2079
2083
|
break;
|
|
2080
2084
|
default:
|
|
2081
|
-
|
|
2082
|
-
break;
|
|
2085
|
+
throw new Error("THREE.TGALoader: Format not supported.");
|
|
2083
2086
|
}
|
|
2084
2087
|
} else {
|
|
2085
2088
|
switch (header.pixel_size) {
|
|
@@ -2096,14 +2099,13 @@ class TGALoader extends DataTextureLoader {
|
|
|
2096
2099
|
tgaGetImageData32bits(data, y_start, y_step, y_end, x_start, x_step, x_end, image);
|
|
2097
2100
|
break;
|
|
2098
2101
|
default:
|
|
2099
|
-
|
|
2100
|
-
break;
|
|
2102
|
+
throw new Error("THREE.TGALoader: Format not supported.");
|
|
2101
2103
|
}
|
|
2102
2104
|
}
|
|
2103
2105
|
return data;
|
|
2104
2106
|
}
|
|
2105
2107
|
const TGA_TYPE_NO_DATA = 0, TGA_TYPE_INDEXED = 1, TGA_TYPE_RGB = 2, TGA_TYPE_GREY = 3, TGA_TYPE_RLE_INDEXED = 9, TGA_TYPE_RLE_RGB = 10, TGA_TYPE_RLE_GREY = 11, TGA_ORIGIN_MASK = 48, TGA_ORIGIN_SHIFT = 4, TGA_ORIGIN_BL = 0, TGA_ORIGIN_BR = 1, TGA_ORIGIN_UL = 2, TGA_ORIGIN_UR = 3;
|
|
2106
|
-
if (buffer.length < 19)
|
|
2108
|
+
if (buffer.length < 19) throw new Error("THREE.TGALoader: Not enough data to contain header.");
|
|
2107
2109
|
let offset = 0;
|
|
2108
2110
|
const content = new Uint8Array(buffer), header = {
|
|
2109
2111
|
id_length: content[offset++],
|
|
@@ -2123,7 +2125,7 @@ class TGALoader extends DataTextureLoader {
|
|
|
2123
2125
|
};
|
|
2124
2126
|
tgaCheckHeader(header);
|
|
2125
2127
|
if (header.id_length + offset > buffer.length) {
|
|
2126
|
-
|
|
2128
|
+
throw new Error("THREE.TGALoader: No data.");
|
|
2127
2129
|
}
|
|
2128
2130
|
offset += header.id_length;
|
|
2129
2131
|
let use_rle = false, use_pal = false, use_grey = false;
|
|
@@ -2162,9 +2164,6 @@ class TGALoader extends DataTextureLoader {
|
|
|
2162
2164
|
}
|
|
2163
2165
|
}
|
|
2164
2166
|
class ColladaLoader extends Loader {
|
|
2165
|
-
constructor(manager) {
|
|
2166
|
-
super(manager);
|
|
2167
|
-
}
|
|
2168
2167
|
load(url, onLoad, onProgress, onError) {
|
|
2169
2168
|
const scope = this;
|
|
2170
2169
|
const path = scope.path === "" ? LoaderUtils.extractUrlBase(url) : scope.path;
|
|
@@ -4268,7 +4267,10 @@ class ColladaLoader extends Loader {
|
|
|
4268
4267
|
object.matrix.decompose(object.position, object.quaternion, object.scale);
|
|
4269
4268
|
return object;
|
|
4270
4269
|
}
|
|
4271
|
-
const fallbackMaterial = new MeshBasicMaterial({
|
|
4270
|
+
const fallbackMaterial = new MeshBasicMaterial({
|
|
4271
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
4272
|
+
color: 16711935
|
|
4273
|
+
});
|
|
4272
4274
|
function resolveMaterialBinding(keys, instanceMaterials) {
|
|
4273
4275
|
const materials = [];
|
|
4274
4276
|
for (let i = 0, l = keys.length; i < l; i++) {
|
|
@@ -4423,7 +4425,7 @@ class ColladaLoader extends Loader {
|
|
|
4423
4425
|
const textureLoader = new TextureLoader(this.manager);
|
|
4424
4426
|
textureLoader.setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin);
|
|
4425
4427
|
let tgaLoader;
|
|
4426
|
-
{
|
|
4428
|
+
if (TGALoader) {
|
|
4427
4429
|
tgaLoader = new TGALoader(this.manager);
|
|
4428
4430
|
tgaLoader.setPath(this.resourcePath || path);
|
|
4429
4431
|
}
|
|
@@ -4717,7 +4719,11 @@ class AMFLoader extends Loader {
|
|
|
4717
4719
|
}
|
|
4718
4720
|
}
|
|
4719
4721
|
const sceneObject = new Group();
|
|
4720
|
-
const defaultMaterial = new MeshPhongMaterial({
|
|
4722
|
+
const defaultMaterial = new MeshPhongMaterial({
|
|
4723
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
4724
|
+
color: 11184895,
|
|
4725
|
+
flatShading: true
|
|
4726
|
+
});
|
|
4721
4727
|
sceneObject.name = amfName;
|
|
4722
4728
|
sceneObject.userData.author = amfAuthor;
|
|
4723
4729
|
sceneObject.userData.loader = "AMF";
|
|
@@ -11387,7 +11393,10 @@ class VRMLLoader extends Loader {
|
|
|
11387
11393
|
}
|
|
11388
11394
|
function buildShapeNode(node) {
|
|
11389
11395
|
const fields = node.fields;
|
|
11390
|
-
let material = new MeshBasicMaterial({
|
|
11396
|
+
let material = new MeshBasicMaterial({
|
|
11397
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
11398
|
+
color: 0
|
|
11399
|
+
});
|
|
11391
11400
|
let geometry;
|
|
11392
11401
|
for (let i = 0, l = fields.length; i < l; i++) {
|
|
11393
11402
|
const field = fields[i];
|
|
@@ -11413,7 +11422,10 @@ class VRMLLoader extends Loader {
|
|
|
11413
11422
|
if (geometry && geometry.attributes.position) {
|
|
11414
11423
|
const type = geometry._type;
|
|
11415
11424
|
if (type === "points") {
|
|
11416
|
-
const pointsMaterial = new PointsMaterial({
|
|
11425
|
+
const pointsMaterial = new PointsMaterial({
|
|
11426
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
11427
|
+
color: 16777215
|
|
11428
|
+
});
|
|
11417
11429
|
if (geometry.attributes.color !== void 0) {
|
|
11418
11430
|
pointsMaterial.vertexColors = true;
|
|
11419
11431
|
} else {
|
|
@@ -11423,7 +11435,10 @@ class VRMLLoader extends Loader {
|
|
|
11423
11435
|
}
|
|
11424
11436
|
object = new Points(geometry, pointsMaterial);
|
|
11425
11437
|
} else if (type === "line") {
|
|
11426
|
-
const lineMaterial = new LineBasicMaterial({
|
|
11438
|
+
const lineMaterial = new LineBasicMaterial({
|
|
11439
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
11440
|
+
color: 16777215
|
|
11441
|
+
});
|
|
11427
11442
|
if (geometry.attributes.color !== void 0) {
|
|
11428
11443
|
lineMaterial.vertexColors = true;
|
|
11429
11444
|
} else {
|
|
@@ -11466,7 +11481,10 @@ class VRMLLoader extends Loader {
|
|
|
11466
11481
|
if (materialData.transparency) material.opacity = 1 - materialData.transparency;
|
|
11467
11482
|
if (materialData.transparency > 0) material.transparent = true;
|
|
11468
11483
|
} else {
|
|
11469
|
-
material = new MeshBasicMaterial({
|
|
11484
|
+
material = new MeshBasicMaterial({
|
|
11485
|
+
name: Loader.DEFAULT_MATERIAL_NAME,
|
|
11486
|
+
color: 0
|
|
11487
|
+
});
|
|
11470
11488
|
}
|
|
11471
11489
|
break;
|
|
11472
11490
|
case "texture":
|
|
@@ -12924,7 +12942,7 @@ class LDrawConditionalLineMaterial extends ShaderMaterial {
|
|
|
12924
12942
|
outgoingLight = diffuseColor.rgb; // simple shader
|
|
12925
12943
|
gl_FragColor = vec4( outgoingLight, diffuseColor.a );
|
|
12926
12944
|
#include <tonemapping_fragment>
|
|
12927
|
-
#include <
|
|
12945
|
+
#include <colorspace_fragment>
|
|
12928
12946
|
#include <fog_fragment>
|
|
12929
12947
|
#include <premultiplied_alpha_fragment>
|
|
12930
12948
|
}
|
|
@@ -13285,7 +13303,7 @@ class LDrawParsedCache {
|
|
|
13285
13303
|
try {
|
|
13286
13304
|
const text = await fileLoader.loadAsync(subobjectURL);
|
|
13287
13305
|
return text;
|
|
13288
|
-
} catch {
|
|
13306
|
+
} catch (_) {
|
|
13289
13307
|
continue;
|
|
13290
13308
|
}
|
|
13291
13309
|
}
|
|
@@ -13755,13 +13773,13 @@ class LDrawPartsGeometryCache {
|
|
|
13755
13773
|
}
|
|
13756
13774
|
const group = info.group;
|
|
13757
13775
|
if (info.faces.length > 0) {
|
|
13758
|
-
group.add(createObject(info.faces, 3, false, info.totalFaces));
|
|
13776
|
+
group.add(createObject(this.loader, info.faces, 3, false, info.totalFaces));
|
|
13759
13777
|
}
|
|
13760
13778
|
if (info.lineSegments.length > 0) {
|
|
13761
|
-
group.add(createObject(info.lineSegments, 2));
|
|
13779
|
+
group.add(createObject(this.loader, info.lineSegments, 2));
|
|
13762
13780
|
}
|
|
13763
13781
|
if (info.conditionalSegments.length > 0) {
|
|
13764
|
-
group.add(createObject(info.conditionalSegments, 2, true));
|
|
13782
|
+
group.add(createObject(this.loader, info.conditionalSegments, 2, true));
|
|
13765
13783
|
}
|
|
13766
13784
|
return group;
|
|
13767
13785
|
}
|
|
@@ -13816,7 +13834,7 @@ function sortByMaterial(a, b) {
|
|
|
13816
13834
|
}
|
|
13817
13835
|
return 1;
|
|
13818
13836
|
}
|
|
13819
|
-
function createObject(elements, elementSize, isConditionalSegments = false, totalElements = null) {
|
|
13837
|
+
function createObject(loader, elements, elementSize, isConditionalSegments = false, totalElements = null) {
|
|
13820
13838
|
elements.sort(sortByMaterial);
|
|
13821
13839
|
if (totalElements === null) {
|
|
13822
13840
|
totalElements = elements.length;
|
|
@@ -13889,9 +13907,10 @@ function createObject(elements, elementSize, isConditionalSegments = false, tota
|
|
|
13889
13907
|
materials.push(material);
|
|
13890
13908
|
} else if (elementSize === 2) {
|
|
13891
13909
|
if (isConditionalSegments) {
|
|
13892
|
-
|
|
13910
|
+
const edgeMaterial = loader.edgeMaterialCache.get(material);
|
|
13911
|
+
materials.push(loader.conditionalEdgeMaterialCache.get(edgeMaterial));
|
|
13893
13912
|
} else {
|
|
13894
|
-
materials.push(
|
|
13913
|
+
materials.push(loader.edgeMaterialCache.get(material));
|
|
13895
13914
|
}
|
|
13896
13915
|
}
|
|
13897
13916
|
} else {
|
|
@@ -13966,19 +13985,18 @@ class LDrawLoader extends Loader {
|
|
|
13966
13985
|
super(manager);
|
|
13967
13986
|
this.materials = [];
|
|
13968
13987
|
this.materialLibrary = {};
|
|
13988
|
+
this.edgeMaterialCache = /* @__PURE__ */ new WeakMap();
|
|
13989
|
+
this.conditionalEdgeMaterialCache = /* @__PURE__ */ new WeakMap();
|
|
13969
13990
|
this.partsCache = new LDrawPartsGeometryCache(this);
|
|
13970
13991
|
this.fileMap = {};
|
|
13971
13992
|
this.setMaterials([]);
|
|
13972
13993
|
this.smoothNormals = true;
|
|
13973
13994
|
this.partsLibraryPath = "";
|
|
13974
|
-
this.missingColorMaterial = new MeshStandardMaterial({ color: 16711935, roughness: 0.3, metalness: 0 });
|
|
13975
|
-
this.
|
|
13976
|
-
this.
|
|
13977
|
-
this.
|
|
13978
|
-
this.
|
|
13979
|
-
this.missingConditionalEdgeColorMaterial.name = "Missing material - Conditional Edge";
|
|
13980
|
-
this.missingColorMaterial.userData.edgeMaterial = this.missingEdgeColorMaterial;
|
|
13981
|
-
this.missingEdgeColorMaterial.userData.conditionalEdgeMaterial = this.missingConditionalEdgeColorMaterial;
|
|
13995
|
+
this.missingColorMaterial = new MeshStandardMaterial({ name: Loader.DEFAULT_MATERIAL_NAME, color: 16711935, roughness: 0.3, metalness: 0 });
|
|
13996
|
+
this.missingEdgeColorMaterial = new LineBasicMaterial({ name: Loader.DEFAULT_MATERIAL_NAME, color: 16711935 });
|
|
13997
|
+
this.missingConditionalEdgeColorMaterial = new LDrawConditionalLineMaterial({ name: Loader.DEFAULT_MATERIAL_NAME, fog: true, color: 16711935 });
|
|
13998
|
+
this.edgeMaterialCache.set(this.missingColorMaterial, this.missingEdgeColorMaterial);
|
|
13999
|
+
this.conditionalEdgeMaterialCache.set(this.missingEdgeColorMaterial, this.missingConditionalEdgeColorMaterial);
|
|
13982
14000
|
}
|
|
13983
14001
|
setPartsLibraryPath(path) {
|
|
13984
14002
|
this.partsLibraryPath = path;
|
|
@@ -14094,9 +14112,9 @@ class LDrawLoader extends Loader {
|
|
|
14094
14112
|
return colorCode;
|
|
14095
14113
|
}
|
|
14096
14114
|
if (c.isLineSegments) {
|
|
14097
|
-
material =
|
|
14115
|
+
material = loader.edgeMaterialCache.get(material);
|
|
14098
14116
|
if (c.isConditionalLine) {
|
|
14099
|
-
material =
|
|
14117
|
+
material = loader.conditionalEdgeMaterialCache.get(material);
|
|
14100
14118
|
}
|
|
14101
14119
|
}
|
|
14102
14120
|
return material;
|
|
@@ -14107,7 +14125,7 @@ class LDrawLoader extends Loader {
|
|
|
14107
14125
|
}
|
|
14108
14126
|
getMainEdgeMaterial() {
|
|
14109
14127
|
const mat = this.getMaterial(MAIN_EDGE_COLOUR_CODE);
|
|
14110
|
-
return mat ?
|
|
14128
|
+
return mat ? this.edgeMaterialCache.get(mat) : null;
|
|
14111
14129
|
}
|
|
14112
14130
|
parseColorMetaDirective(lineParser) {
|
|
14113
14131
|
let code = null;
|
|
@@ -14150,7 +14168,7 @@ class LDrawLoader extends Loader {
|
|
|
14150
14168
|
if (!edgeMaterial) {
|
|
14151
14169
|
throw new Error("LDrawLoader: Invalid edge color while parsing material" + lineParser.getLineNumberString() + ".");
|
|
14152
14170
|
}
|
|
14153
|
-
edgeMaterial =
|
|
14171
|
+
edgeMaterial = this.edgeMaterialCache.get(edgeMaterial);
|
|
14154
14172
|
}
|
|
14155
14173
|
break;
|
|
14156
14174
|
case "ALPHA":
|
|
@@ -14232,19 +14250,20 @@ class LDrawLoader extends Loader {
|
|
|
14232
14250
|
edgeMaterial.color;
|
|
14233
14251
|
edgeMaterial.userData.code = code;
|
|
14234
14252
|
edgeMaterial.name = name + " - Edge";
|
|
14235
|
-
|
|
14253
|
+
const conditionalEdgeMaterial = new LDrawConditionalLineMaterial({
|
|
14236
14254
|
fog: true,
|
|
14237
14255
|
transparent: isTransparent,
|
|
14238
14256
|
depthWrite: !isTransparent,
|
|
14239
14257
|
color: new Color().setStyle(edgeColor, COLOR_SPACE_LDRAW),
|
|
14240
14258
|
opacity: alpha
|
|
14241
14259
|
});
|
|
14242
|
-
|
|
14243
|
-
|
|
14260
|
+
conditionalEdgeMaterial.userData.code = code;
|
|
14261
|
+
conditionalEdgeMaterial.name = name + " - Conditional Edge";
|
|
14262
|
+
this.conditionalEdgeMaterialCache.set(edgeMaterial, conditionalEdgeMaterial);
|
|
14244
14263
|
}
|
|
14245
14264
|
material.userData.code = code;
|
|
14246
14265
|
material.name = name;
|
|
14247
|
-
|
|
14266
|
+
this.edgeMaterialCache.set(material, edgeMaterial);
|
|
14248
14267
|
this.addMaterial(material);
|
|
14249
14268
|
return material;
|
|
14250
14269
|
function parseLuminance(token2) {
|