manim-web 0.17.0 → 0.18.0
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/MTLLoader-C4f4JmoY.js +169 -0
- package/dist/MTLLoader-CuV0f5vX.js +169 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/integrations/react.js +17 -17
- package/dist/integrations/vue.js +16 -16
- package/dist/manim-web.browser.js +1085 -1045
- package/dist/mobjects/three-d/ModelMobject.d.ts +19 -1
- package/dist/mobjects/three-d/ModelMobject.d.ts.map +1 -1
- package/dist/mobjects/three-d/objMaterials.d.ts +54 -0
- package/dist/mobjects/three-d/objMaterials.d.ts.map +1 -0
- package/dist/{src-BDtZsFr6.js → src-DfxRF-kW.js} +1067 -1027
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Vector3Tuple } from '../../core/Mobject';
|
|
2
2
|
import { Mobject3D } from './Mobject3D';
|
|
3
|
+
import { MtlLoader } from './objMaterials';
|
|
3
4
|
/**
|
|
4
5
|
* ModelMobject - import an external 3D model (glTF / .glb / .obj) as a mobject.
|
|
5
6
|
*
|
|
@@ -56,12 +57,25 @@ export interface ModelMobjectOptions {
|
|
|
56
57
|
center?: boolean;
|
|
57
58
|
/** Convenience fill color applied to every mesh material. */
|
|
58
59
|
color?: string;
|
|
59
|
-
/** Replace every mesh material with this one. Wins over `color
|
|
60
|
+
/** Replace every mesh material with this one. Wins over `color` and MTL. */
|
|
60
61
|
materialOverride?: THREE.Material;
|
|
62
|
+
/**
|
|
63
|
+
* For .obj only: explicit companion .mtl URL. Its materials and texture maps
|
|
64
|
+
* apply to the meshes. `materialOverride` and `color` still win over them.
|
|
65
|
+
* Ignored for glTF, which embeds its materials natively.
|
|
66
|
+
*/
|
|
67
|
+
mtlUrl?: string;
|
|
68
|
+
/**
|
|
69
|
+
* For .obj only: auto-derive the .mtl URL from the .obj URL and load it.
|
|
70
|
+
* `mtlUrl` takes priority when both are set. Default: false.
|
|
71
|
+
*/
|
|
72
|
+
loadMaterials?: boolean;
|
|
61
73
|
/** Progress callback forwarded to the loader. */
|
|
62
74
|
onProgress?: (event: ProgressEvent) => void;
|
|
63
75
|
/** Inject a loader directly (bypasses the factory and the network). */
|
|
64
76
|
loader?: ModelLoader;
|
|
77
|
+
/** Inject an MTLLoader directly (bypasses the factory and the network). */
|
|
78
|
+
mtlLoader?: MtlLoader;
|
|
65
79
|
/**
|
|
66
80
|
* When false, a load failure resolves to an empty ModelMobject whose
|
|
67
81
|
* {@link ModelMobject.getLoadError} holds the error instead of rejecting.
|
|
@@ -96,6 +110,10 @@ export declare class ModelMobject extends Mobject3D {
|
|
|
96
110
|
* The loader is chosen from the extension: `.glb` / `.gltf` -> GLTFLoader,
|
|
97
111
|
* `.obj` -> OBJLoader. Inject a loader with the `loader` option (or
|
|
98
112
|
* `setModelLoaderFactory`) to avoid the network, e.g. in tests.
|
|
113
|
+
*
|
|
114
|
+
* For `.obj`, set `mtlUrl` (or `loadMaterials: true` to derive the .mtl URL)
|
|
115
|
+
* to load the companion .mtl and apply its materials and texture maps before
|
|
116
|
+
* the OBJ parse. `materialOverride` and `color` still win over them.
|
|
99
117
|
*/
|
|
100
118
|
static fromUrl(url: string, options?: ModelMobjectOptions): Promise<ModelMobject>;
|
|
101
119
|
/** Offset the center group so the model's bounding box sits at the origin. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelMobject.d.ts","sourceRoot":"","sources":["../../../src/mobjects/three-d/ModelMobject.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelMobject.d.ts","sourceRoot":"","sources":["../../../src/mobjects/three-d/ModelMobject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ModelLoader } from './ModelMobject';
|
|
2
|
+
/** A preloaded MTL material set. Three.js MaterialCreator satisfies it. */
|
|
3
|
+
export interface MtlMaterials {
|
|
4
|
+
preload(): void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The minimal MTLLoader contract ModelMobject needs. Three.js MTLLoader
|
|
8
|
+
* satisfies it structurally. Tests implement it with a stub.
|
|
9
|
+
*/
|
|
10
|
+
export interface MtlLoader {
|
|
11
|
+
setPath(path: string): MtlLoader;
|
|
12
|
+
setResourcePath(path: string): MtlLoader;
|
|
13
|
+
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<MtlMaterials>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The OBJLoader subset that accepts materials. OBJLoader.setMaterials applies
|
|
17
|
+
* the given materials to the meshes it then parses.
|
|
18
|
+
*/
|
|
19
|
+
export interface ObjMaterialSink {
|
|
20
|
+
setMaterials(materials: MtlMaterials): void;
|
|
21
|
+
}
|
|
22
|
+
/** Builds an MTLLoader. The DI seam set by `setMtlLoaderFactory`. */
|
|
23
|
+
export type MtlLoaderFactory = () => MtlLoader | Promise<MtlLoader>;
|
|
24
|
+
/** The options that drive OBJ material loading. A subset of ModelMobjectOptions. */
|
|
25
|
+
export interface ObjMaterialOptions {
|
|
26
|
+
/** Explicit companion .mtl URL. Takes priority over `loadMaterials`. */
|
|
27
|
+
mtlUrl?: string;
|
|
28
|
+
/** Auto-derive the .mtl URL from the .obj URL and load it. Default: false. */
|
|
29
|
+
loadMaterials?: boolean;
|
|
30
|
+
/** Inject an MTLLoader directly (bypasses the factory and the network). */
|
|
31
|
+
mtlLoader?: MtlLoader;
|
|
32
|
+
/** Progress callback forwarded to the MTLLoader. */
|
|
33
|
+
onProgress?: (event: ProgressEvent) => void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Inject an MTLLoader factory, replacing the lazy-loaded Three.js MTLLoader.
|
|
37
|
+
* Pass `null` to restore the default. Tests use this to avoid any real loader.
|
|
38
|
+
*/
|
|
39
|
+
export declare function setMtlLoaderFactory(factory: MtlLoaderFactory | null): void;
|
|
40
|
+
/** The directory part of a URL, with its trailing slash; ignores query and fragment. */
|
|
41
|
+
export declare function deriveBasePath(url: string): string;
|
|
42
|
+
/** The companion .mtl URL for an .obj URL (same name, .mtl extension). */
|
|
43
|
+
export declare function deriveMtlUrl(objUrl: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Load the companion .mtl and hand its materials to the OBJ loader before it
|
|
46
|
+
* parses. Call this on the resolved OBJ loader before `loadAsync`.
|
|
47
|
+
*
|
|
48
|
+
* It is a no-op when neither `mtlUrl` nor `loadMaterials` is set (so an OBJ
|
|
49
|
+
* loads exactly as before), and when the loader cannot accept materials. The
|
|
50
|
+
* MTLLoader base path and resource path come from the .mtl URL, so texture maps
|
|
51
|
+
* named in the .mtl load from the same directory.
|
|
52
|
+
*/
|
|
53
|
+
export declare function applyObjMaterials(loader: ModelLoader, objUrl: string, options: ObjMaterialOptions): Promise<void>;
|
|
54
|
+
//# sourceMappingURL=objMaterials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objMaterials.d.ts","sourceRoot":"","sources":["../../../src/mobjects/three-d/objMaterials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5F;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7C;AAED,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAEpE,oFAAoF;AACpF,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,oDAAoD;IACpD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C;AAKD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAE1E;AAeD,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlD;AASD,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnD;AAcD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf"}
|