angular-three 2.0.0-beta.294 → 2.0.0-beta.296
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/esm2022/lib/loader.mjs +3 -3
- package/esm2022/lib/renderer/index.mjs +9 -1
- package/esm2022/lib/three-types.mjs +1 -1
- package/esm2022/lib/utils/update.mjs +3 -3
- package/fesm2022/angular-three.mjs +12 -4
- package/fesm2022/angular-three.mjs.map +1 -1
- package/lib/canvas.d.ts +3 -3
- package/lib/loader.d.ts +2 -2
- package/lib/three-types.d.ts +1 -0
- package/package.json +1 -1
- package/plugin/generators.json +14 -4
- package/plugin/src/generators/gltf/compat.d.ts +2 -0
- package/plugin/src/generators/gltf/compat.js +6 -0
- package/plugin/src/generators/gltf/compat.js.map +1 -0
- package/plugin/src/generators/gltf/files/__fileName__.ts__tmpl__ +36 -0
- package/plugin/src/generators/gltf/generator.d.ts +12 -0
- package/plugin/src/generators/gltf/generator.js +82 -0
- package/plugin/src/generators/gltf/generator.js.map +1 -0
- package/plugin/src/generators/gltf/schema.json +58 -0
- package/metadata.json +0 -1
- package/web-types.json +0 -1
package/lib/canvas.d.ts
CHANGED
|
@@ -97,7 +97,6 @@ export declare class NgtCanvas {
|
|
|
97
97
|
getWorldQuaternion?: ((target: import("three").Quaternion) => import("three").Quaternion) | undefined;
|
|
98
98
|
getWorldScale?: ((target: Vector3) => Vector3) | undefined;
|
|
99
99
|
getWorldDirection?: ((target: Vector3) => Vector3) | undefined;
|
|
100
|
-
raycast?: ((raycaster: Raycaster, intersects: import("three").Intersection[]) => void) | undefined;
|
|
101
100
|
traverse?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
102
101
|
traverseVisible?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
103
102
|
traverseAncestors?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
@@ -118,6 +117,7 @@ export declare class NgtCanvas {
|
|
|
118
117
|
quaternion: import("angular-three").NgtQuaternion;
|
|
119
118
|
layers: import("angular-three").NgtLayers;
|
|
120
119
|
dispose: (() => void) | null;
|
|
120
|
+
raycast: import("three").Object3D["raycast"] | null;
|
|
121
121
|
} & {
|
|
122
122
|
addEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<import("three").PerspectiveCamera>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<import("three").PerspectiveCamera, typeof import("three").PerspectiveCamera>, ev: import("angular-three").NgtNodeEventMap<import("three").PerspectiveCamera>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
|
|
123
123
|
removeEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<import("three").PerspectiveCamera>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<import("three").PerspectiveCamera, typeof import("three").PerspectiveCamera>, ev: import("angular-three").NgtNodeEventMap<import("three").PerspectiveCamera>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
|
|
@@ -199,7 +199,6 @@ export declare class NgtCanvas {
|
|
|
199
199
|
getWorldQuaternion?: ((target: import("three").Quaternion) => import("three").Quaternion) | undefined;
|
|
200
200
|
getWorldScale?: ((target: Vector3) => Vector3) | undefined;
|
|
201
201
|
getWorldDirection?: ((target: Vector3) => Vector3) | undefined;
|
|
202
|
-
raycast?: ((raycaster: Raycaster, intersects: import("three").Intersection[]) => void) | undefined;
|
|
203
202
|
traverse?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
204
203
|
traverseVisible?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
205
204
|
traverseAncestors?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
@@ -240,6 +239,7 @@ export declare class NgtCanvas {
|
|
|
240
239
|
quaternion: import("angular-three").NgtQuaternion;
|
|
241
240
|
layers: import("angular-three").NgtLayers;
|
|
242
241
|
dispose: (() => void) | null;
|
|
242
|
+
raycast: import("three").Object3D["raycast"] | null;
|
|
243
243
|
} & {
|
|
244
244
|
addEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<import("three").OrthographicCamera>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<import("three").OrthographicCamera, typeof import("three").OrthographicCamera>, ev: import("angular-three").NgtNodeEventMap<import("three").OrthographicCamera>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
|
|
245
245
|
removeEventListener: (<TEventKey extends keyof import("angular-three").NgtNodeEventMap<import("three").OrthographicCamera>>(type: TEventKey, listener: (this: import("angular-three").NgtNodeElement<import("three").OrthographicCamera, typeof import("three").OrthographicCamera>, ev: import("angular-three").NgtNodeEventMap<import("three").OrthographicCamera>[TEventKey]) => any) => void) & (<TEventKey extends keyof import("angular-three").NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: any, ev: import("angular-three").NgtAllObject3DEventsMap[TEventKey]) => any) => void);
|
|
@@ -321,7 +321,6 @@ export declare class NgtCanvas {
|
|
|
321
321
|
getWorldQuaternion?: ((target: import("three").Quaternion) => import("three").Quaternion) | undefined;
|
|
322
322
|
getWorldScale?: ((target: Vector3) => Vector3) | undefined;
|
|
323
323
|
getWorldDirection?: ((target: Vector3) => Vector3) | undefined;
|
|
324
|
-
raycast?: ((raycaster: Raycaster, intersects: import("three").Intersection[]) => void) | undefined;
|
|
325
324
|
traverse?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
326
325
|
traverseVisible?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
327
326
|
traverseAncestors?: ((callback: (object: import("three").Object3D) => any) => void) | undefined;
|
|
@@ -353,6 +352,7 @@ export declare class NgtCanvas {
|
|
|
353
352
|
quaternion: import("angular-three").NgtQuaternion;
|
|
354
353
|
layers: import("angular-three").NgtLayers;
|
|
355
354
|
dispose: (() => void) | null;
|
|
355
|
+
raycast: import("three").Object3D["raycast"] | null;
|
|
356
356
|
}>) & {
|
|
357
357
|
manual?: boolean;
|
|
358
358
|
}) | undefined> | undefined>;
|
package/lib/loader.d.ts
CHANGED
|
@@ -21,11 +21,11 @@ export type NgtLoaderResults<TInput extends string | string[] | Record<string, s
|
|
|
21
21
|
declare function _injectLoader<TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>, TReturn = NgtLoaderReturnType<TData, TLoaderConstructor>>(loaderConstructorFactory: (inputs: string[]) => TLoaderConstructor, inputs: () => TUrl, { extensions, onProgress, onLoad, injector, }?: {
|
|
22
22
|
extensions?: NgtLoaderExtensions<TLoaderConstructor>;
|
|
23
23
|
onProgress?: (event: ProgressEvent) => void;
|
|
24
|
-
onLoad?: (data: TData) => void;
|
|
24
|
+
onLoad?: (data: NoInfer<TData>) => void;
|
|
25
25
|
injector?: Injector;
|
|
26
26
|
}): Signal<NgtLoaderResults<TUrl, NgtBranchingReturn<TReturn, NgtGLTFLike, NgtGLTFLike & NgtObjectMap>> | null>;
|
|
27
27
|
declare namespace _injectLoader {
|
|
28
|
-
var preload: <TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>>(loaderConstructorFactory: (inputs: string[]) => TLoaderConstructor, inputs: () => TUrl, extensions?: NgtLoaderExtensions<TLoaderConstructor>) => void;
|
|
28
|
+
var preload: <TData, TUrl extends string | string[] | Record<string, string>, TLoaderConstructor extends NgtLoaderProto<TData>>(loaderConstructorFactory: (inputs: string[]) => TLoaderConstructor, inputs: () => TUrl, extensions?: NgtLoaderExtensions<TLoaderConstructor>, onLoad?: (data: NoInfer<TData>) => void) => void;
|
|
29
29
|
var destroy: () => void;
|
|
30
30
|
var clear: (urls: string | string[]) => void;
|
|
31
31
|
}
|
package/lib/three-types.d.ts
CHANGED
|
@@ -51,6 +51,7 @@ export type NgtObject3DNode<TOriginal, TConstructor, TNoEvent = NoEvent<TOrigina
|
|
|
51
51
|
quaternion: NgtQuaternion;
|
|
52
52
|
layers: NgtLayers;
|
|
53
53
|
dispose: (() => void) | null;
|
|
54
|
+
raycast: Object3D['raycast'] | null;
|
|
54
55
|
addEventListener<TEventKey extends keyof NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: NgtObject3DNode<TOriginal, TConstructor>, ev: NgtAllObject3DEventsMap[TEventKey]) => any): void;
|
|
55
56
|
removeEventListener<TEventKey extends keyof NgtAllObject3DEventsMap>(type: TEventKey, listener: (this: NgtObject3DNode<TOriginal, TConstructor>, ev: NgtAllObject3DEventsMap[TEventKey]) => any): void;
|
|
56
57
|
}>>;
|
package/package.json
CHANGED
package/plugin/generators.json
CHANGED
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
"factory": "./src/generators/add-soba/generator",
|
|
11
11
|
"schema": "./src/generators/add-soba/schema.json",
|
|
12
12
|
"description": "Add angular-three-soba to your project"
|
|
13
|
+
},
|
|
14
|
+
"gltf": {
|
|
15
|
+
"factory": "./src/generators/gltf/generator",
|
|
16
|
+
"schema": "./src/generators/gltf/schema.json",
|
|
17
|
+
"description": "gltf generator"
|
|
13
18
|
}
|
|
14
19
|
},
|
|
15
20
|
"schematics": {
|
|
@@ -18,10 +23,15 @@
|
|
|
18
23
|
"schema": "./src/generators/init/schema.json",
|
|
19
24
|
"description": "Add Angular Three with proper packages and config"
|
|
20
25
|
},
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
"add-soba": {
|
|
27
|
+
"factory": "./src/generators/add-soba/compat",
|
|
28
|
+
"schema": "./src/generators/add-soba/schema.json",
|
|
29
|
+
"description": "Add angular-three-soba to your project"
|
|
30
|
+
},
|
|
31
|
+
"gltf": {
|
|
32
|
+
"factory": "./src/generators/gltf/compat",
|
|
33
|
+
"schema": "./src/generators/gltf/schema.json",
|
|
34
|
+
"description": "gltf generator"
|
|
25
35
|
}
|
|
26
36
|
}
|
|
27
37
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const devkit_1 = require("@nx/devkit");
|
|
4
|
+
const generator_1 = require("./generator");
|
|
5
|
+
exports.default = (0, devkit_1.convertNxGenerator)(generator_1.default);
|
|
6
|
+
//# sourceMappingURL=compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/gltf/compat.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAwC;AAExC,kBAAe,IAAA,2BAAkB,EAAC,mBAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { extend, NgtGroup } from 'angular-three';
|
|
3
|
+
import { injectGLTF } from 'angular-three-soba/loaders';
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { GLTF } from 'three-stdlib';
|
|
6
|
+
|
|
7
|
+
interface <%= className %>GLTFResult extends GLTF {
|
|
8
|
+
nodes: {},
|
|
9
|
+
materials: {}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface <%= className %>Options extends Partial<NgtGroup> {
|
|
13
|
+
/* more options */
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@Component({
|
|
17
|
+
selector: '<%= selector %>',
|
|
18
|
+
standalone: true,
|
|
19
|
+
template: `
|
|
20
|
+
@if (gltf(); as gltf) {
|
|
21
|
+
<ngt-group [dispose]="null" [parameters]="options()">
|
|
22
|
+
</ngt-group>
|
|
23
|
+
}
|
|
24
|
+
`,
|
|
25
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
26
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27
|
+
})
|
|
28
|
+
export class <%= className %> {
|
|
29
|
+
options = input({} as <%= className %>Options);
|
|
30
|
+
|
|
31
|
+
gltf = injectGLTF(() => '<%= runtimeGltfPath %>') as Signal<<%= className %>GLTFResult | null>;
|
|
32
|
+
|
|
33
|
+
constructor() {
|
|
34
|
+
extend({ Group: THREE.Group });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
export interface GltfGeneratorSchema {
|
|
3
|
+
gltfPath: string;
|
|
4
|
+
project: string;
|
|
5
|
+
console: boolean;
|
|
6
|
+
modelName: string;
|
|
7
|
+
meshopt: boolean;
|
|
8
|
+
outputPath?: string;
|
|
9
|
+
draco?: boolean | string;
|
|
10
|
+
}
|
|
11
|
+
export declare function gltfGenerator(tree: Tree, options: GltfGeneratorSchema): Promise<void>;
|
|
12
|
+
export default gltfGenerator;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gltfGenerator = gltfGenerator;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const enquirer_1 = require("enquirer");
|
|
6
|
+
const generator_1 = require("../add-soba/generator");
|
|
7
|
+
function normalizeOptions(options) {
|
|
8
|
+
let { gltfPath, project, console, modelName, outputPath, draco, meshopt } = options;
|
|
9
|
+
if (draco == null) {
|
|
10
|
+
draco = true;
|
|
11
|
+
}
|
|
12
|
+
return { gltfPath, project, console, modelName, outputPath, draco, meshopt };
|
|
13
|
+
}
|
|
14
|
+
function buildSelector(fileName, prefix) {
|
|
15
|
+
return `${prefix}-${fileName}`;
|
|
16
|
+
}
|
|
17
|
+
async function gltfGenerator(tree, options) {
|
|
18
|
+
const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
|
|
19
|
+
const hasAngularThreeSoba = packageJson['dependencies']['angular-three-soba'] || packageJson['devDependencies']['angular-three-soba'];
|
|
20
|
+
if (!hasAngularThreeSoba) {
|
|
21
|
+
devkit_1.logger.warn(`[NGT] angular-three-soba must be installed to use the GLTF generator`);
|
|
22
|
+
const { initSoba } = await (0, enquirer_1.prompt)({
|
|
23
|
+
type: 'confirm',
|
|
24
|
+
name: 'initSoba',
|
|
25
|
+
message: 'Would you like to initialize angular-three-soba?',
|
|
26
|
+
initial: true,
|
|
27
|
+
});
|
|
28
|
+
if (!initSoba)
|
|
29
|
+
return;
|
|
30
|
+
await (0, generator_1.addSobaGenerator)(tree);
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const injectGLTF = await Promise.resolve().then(() => require('angular-three-soba/loaders')).then((m) => m.injectGLTF);
|
|
34
|
+
const { gltfPath, project, console: toConsole, modelName, outputPath, draco, meshopt } = normalizeOptions(options);
|
|
35
|
+
let runtimeGltfPath;
|
|
36
|
+
if (!gltfPath.startsWith('http')) {
|
|
37
|
+
const { path } = await (0, enquirer_1.prompt)({
|
|
38
|
+
type: 'input',
|
|
39
|
+
name: 'path',
|
|
40
|
+
message: 'What is the path to the asset file to be used at runtime (with injectGLTF)?',
|
|
41
|
+
required: true,
|
|
42
|
+
});
|
|
43
|
+
runtimeGltfPath = path;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
runtimeGltfPath = gltfPath;
|
|
47
|
+
}
|
|
48
|
+
injectGLTF.preload(() => runtimeGltfPath, {
|
|
49
|
+
useDraco: draco,
|
|
50
|
+
useMeshOpt: meshopt,
|
|
51
|
+
onLoad: (data) => {
|
|
52
|
+
console.log('data', data);
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, project);
|
|
56
|
+
const modelNames = (0, devkit_1.names)(modelName);
|
|
57
|
+
const tmpPath = `${devkit_1.workspaceRoot}/tmp/ngt-gltf/${modelNames.fileName}`;
|
|
58
|
+
const output = toConsole ? tmpPath : (outputPath ?? (projectConfig.sourceRoot || `${projectConfig.root}/src`));
|
|
59
|
+
// NOTE: even if user passes in "console", we still generate the files.
|
|
60
|
+
// But we generate them to a temporary destination then we'll remove them printing to console.
|
|
61
|
+
// generateFiles(tree, 'files', output, {
|
|
62
|
+
// tmpl: '',
|
|
63
|
+
// fileName: modelNames.fileName,
|
|
64
|
+
// className: modelNames.className,
|
|
65
|
+
// selector: buildSelector(
|
|
66
|
+
// modelNames.fileName,
|
|
67
|
+
// 'prefix' in projectConfig && typeof projectConfig.prefix === 'string' ? projectConfig.prefix : 'app',
|
|
68
|
+
// ),
|
|
69
|
+
// runtimeGltfPath,
|
|
70
|
+
// });
|
|
71
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
72
|
+
if (toConsole) {
|
|
73
|
+
// print to console
|
|
74
|
+
// delete the files in tmp
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
devkit_1.logger.error(`[NGT] Error generating GLTF files: ${e}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.default = gltfGenerator;
|
|
82
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/gltf/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "Gltf",
|
|
4
|
+
"title": "",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"gltfPath": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "argv",
|
|
12
|
+
"index": 0
|
|
13
|
+
},
|
|
14
|
+
"x-prompt": "Where is your gltf file located?"
|
|
15
|
+
},
|
|
16
|
+
"project": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The name of the project to generate the model component for.",
|
|
19
|
+
"x-prompt": "What project would you like to generate the model component for?",
|
|
20
|
+
"pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$",
|
|
21
|
+
"x-dropdown": "projects",
|
|
22
|
+
"x-priority": "important"
|
|
23
|
+
},
|
|
24
|
+
"console": {
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"description": "Print to console instead of writing to file",
|
|
27
|
+
"default": false
|
|
28
|
+
},
|
|
29
|
+
"modelName": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "Name of the model",
|
|
32
|
+
"default": "Model"
|
|
33
|
+
},
|
|
34
|
+
"outputPath": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "The output path of the generated component",
|
|
37
|
+
"alias": ["o", "output"]
|
|
38
|
+
},
|
|
39
|
+
"draco": {
|
|
40
|
+
"oneOf": [
|
|
41
|
+
{
|
|
42
|
+
"type": "boolean",
|
|
43
|
+
"description": "Use Draco compression"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "Use Draco compression with a specific path"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"meshopt": {
|
|
52
|
+
"type": "boolean",
|
|
53
|
+
"description": "Use Meshopt compression",
|
|
54
|
+
"default": true
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"required": ["gltfPath", "project"]
|
|
58
|
+
}
|