bg2e-js 2.3.11 → 2.3.13
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/bg2e-js.js +356 -326
- package/dist/bg2e-js.js.map +1 -1
- package/package.json +56 -56
- package/src/app/AppController.ts +39 -39
- package/src/app/Bg2KeyboardEvent.ts +54 -54
- package/src/app/Bg2MouseEvent.ts +82 -82
- package/src/app/Bg2TouchEvent.ts +18 -18
- package/src/app/Canvas.ts +108 -108
- package/src/app/EventBase.ts +10 -10
- package/src/app/MainLoop.ts +273 -273
- package/src/app/index.ts +24 -24
- package/src/base/Color.ts +134 -134
- package/src/base/Environment.ts +183 -183
- package/src/base/Light.ts +192 -192
- package/src/base/Material.ts +620 -620
- package/src/base/PolyList.ts +365 -365
- package/src/base/Texture.ts +620 -620
- package/src/base/index.ts +81 -81
- package/src/db/Bg2LoaderPlugin.ts +143 -143
- package/src/db/DBPluginApi.ts +48 -48
- package/src/db/Loader.ts +116 -116
- package/src/db/LoaderPlugin.ts +34 -34
- package/src/db/MtlParser.ts +7 -7
- package/src/db/ObjLoaderPlugin.ts +54 -54
- package/src/db/ObjParser.ts +252 -252
- package/src/db/ObjWriterPlugin.ts +18 -18
- package/src/db/VitscnjLoaderPlugin.ts +112 -112
- package/src/db/Writer.ts +52 -52
- package/src/db/WriterPlugin.ts +22 -22
- package/src/db/index.ts +44 -44
- package/src/debug/DebugRenderer.ts +173 -173
- package/src/debug/WebGLTextureViewer.ts +75 -75
- package/src/debug/index.ts +6 -6
- package/src/index.html +11 -11
- package/src/index.ts +33 -33
- package/src/manipulation/SelectionBuffer.ts +81 -81
- package/src/manipulation/SelectionHighlight.ts +105 -84
- package/src/manipulation/SelectionIdAssignVisitor.ts +96 -96
- package/src/manipulation/SelectionManager.ts +196 -188
- package/src/manipulation/SelectionMode.ts +6 -6
- package/src/math/Mat3.ts +259 -259
- package/src/math/Mat4.ts +710 -710
- package/src/math/MatrixStrategy.ts +25 -25
- package/src/math/Quat.ts +65 -65
- package/src/math/Vec.ts +753 -753
- package/src/math/constants.ts +46 -46
- package/src/math/functions.ts +103 -103
- package/src/math/index.ts +74 -74
- package/src/phsics/joint.ts +137 -137
- package/src/primitives/arrow.ts +57 -57
- package/src/primitives/cone.ts +138 -138
- package/src/primitives/cube.ts +60 -60
- package/src/primitives/cylinder.ts +216 -216
- package/src/primitives/index.ts +13 -13
- package/src/primitives/plane.ts +31 -31
- package/src/primitives/sphere.ts +809 -809
- package/src/react/useBg2e.ts +69 -69
- package/src/render/BRDFIntegrationMap.ts +4 -4
- package/src/render/Environment.ts +135 -135
- package/src/render/FrameBuffer.ts +35 -35
- package/src/render/MaterialRenderer.ts +34 -34
- package/src/render/Pipeline.ts +108 -108
- package/src/render/PolyListRenderer.ts +47 -47
- package/src/render/RenderBuffer.ts +197 -197
- package/src/render/RenderQueue.ts +198 -198
- package/src/render/RenderState.ts +116 -116
- package/src/render/Renderer.ts +248 -248
- package/src/render/SceneAppController.ts +250 -250
- package/src/render/SceneRenderer.ts +387 -387
- package/src/render/Shader.ts +32 -32
- package/src/render/ShadowRenderer.ts +176 -176
- package/src/render/SkyCube.ts +105 -105
- package/src/render/SkySphere.ts +117 -117
- package/src/render/TextureMergerRenderer.ts +70 -70
- package/src/render/TextureRenderer.ts +34 -34
- package/src/render/index.ts +67 -67
- package/src/render/webgl/FrameBuffer.ts +9 -9
- package/src/render/webgl/MaterialRenderer.ts +112 -112
- package/src/render/webgl/Pipeline.ts +88 -88
- package/src/render/webgl/PolyListRenderer.ts +260 -260
- package/src/render/webgl/RenderBuffer.ts +226 -226
- package/src/render/webgl/Renderer.ts +262 -262
- package/src/render/webgl/SceneRenderer.ts +67 -67
- package/src/render/webgl/ShaderProgram.ts +424 -424
- package/src/render/webgl/ShadowRenderer.ts +6 -6
- package/src/render/webgl/SkyCube.ts +15 -15
- package/src/render/webgl/SkySphere.ts +15 -15
- package/src/render/webgl/State.ts +152 -152
- package/src/render/webgl/TextureRenderer.ts +167 -167
- package/src/render/webgl/VertexBuffer.ts +137 -137
- package/src/render/webgl/index.ts +35 -35
- package/src/scene/Camera.ts +458 -458
- package/src/scene/Chain.ts +44 -44
- package/src/scene/ChainJoint.ts +58 -58
- package/src/scene/Component.ts +177 -177
- package/src/scene/ComponentMap.ts +106 -106
- package/src/scene/Drawable.ts +154 -154
- package/src/scene/EnvironmentComponent.ts +141 -141
- package/src/scene/FindNodeVisitor.ts +59 -59
- package/src/scene/LightComponent.ts +154 -154
- package/src/scene/MatrixState.ts +46 -46
- package/src/scene/Node.ts +328 -328
- package/src/scene/NodeVisitor.ts +15 -15
- package/src/scene/OrbitCameraController.ts +450 -450
- package/src/scene/SmoothOrbitCameraController.ts +99 -99
- package/src/scene/Transform.ts +73 -73
- package/src/scene/index.ts +60 -60
- package/src/shaders/BasicDiffuseColorShader.ts +111 -111
- package/src/shaders/BasicPBRLightShader.ts +276 -276
- package/src/shaders/DebugRenderShader.ts +97 -97
- package/src/shaders/DepthRenderShader.ts +127 -127
- package/src/shaders/IrradianceMapCubeShader.ts +115 -115
- package/src/shaders/PBRLightIBLShader.ts +486 -486
- package/src/shaders/PickSelectionShader.ts +101 -101
- package/src/shaders/PresentDebugFramebufferShader.ts +118 -118
- package/src/shaders/PresentTextureShader.ts +99 -99
- package/src/shaders/SelectionHighlightShader.ts +143 -127
- package/src/shaders/ShaderFunction.ts +318 -318
- package/src/shaders/SkyCubeShader.ts +93 -93
- package/src/shaders/SkySphereShader.ts +102 -102
- package/src/shaders/SpecularMapCubeShader.ts +164 -164
- package/src/shaders/TextureMergerShader.ts +171 -171
- package/src/shaders/index.ts +36 -36
- package/src/shaders/webgl/color_correction.glsl +47 -47
- package/src/shaders/webgl/constants.glsl +6 -6
- package/src/shaders/webgl/index.ts +70 -70
- package/src/shaders/webgl/normal_map.glsl +9 -9
- package/src/shaders/webgl/pbr.glsl +173 -173
- package/src/shaders/webgl/uniforms.glsl +91 -91
- package/src/shaders/webgl_shader_lib.ts +213 -213
- package/src/tools/BinaryResourceProvider.ts +14 -14
- package/src/tools/ImageResourceProvider.ts +66 -66
- package/src/tools/MaterialModifier.ts +446 -446
- package/src/tools/Resource.ts +203 -203
- package/src/tools/ResourceProvider.ts +69 -69
- package/src/tools/TextResourceProvider.ts +24 -24
- package/src/tools/TextureCache.ts +51 -51
- package/src/tools/TextureResourceDatabase.ts +100 -100
- package/src/tools/UserAgent.ts +362 -362
- package/src/tools/VideoResourceProvider.ts +50 -50
- package/src/tools/WriteStrategy.ts +22 -22
- package/src/tools/base64.ts +11 -11
- package/src/tools/crypto.ts +19 -19
- package/src/tools/endiantess.ts +13 -13
- package/src/tools/image.ts +18 -18
- package/src/tools/index.ts +41 -41
- package/src/tools/processType.ts +39 -39
- package/src/vite-env.d.ts +12 -12
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
import Resource, { removeFileName, ResourceType } from "../tools/Resource";
|
|
2
|
-
import LoaderPlugin from "./LoaderPlugin";
|
|
3
|
-
import Node from "../scene/Node";
|
|
4
|
-
import { deserializeComponent } from "../scene/Component";
|
|
5
|
-
import Bg2LoaderPlugin, { type MaterialImportCallback } from "./Bg2LoaderPlugin";
|
|
6
|
-
import Loader from "./Loader";
|
|
7
|
-
|
|
8
|
-
interface NodeData {
|
|
9
|
-
name: string;
|
|
10
|
-
enabled?: boolean;
|
|
11
|
-
steady?: boolean;
|
|
12
|
-
children?: NodeData[];
|
|
13
|
-
components?: any[];
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const deserializeNode = async (nodeData: NodeData, loader: Loader): Promise<Node> => {
|
|
17
|
-
nodeData.children = nodeData.children || [];
|
|
18
|
-
nodeData.components = nodeData.components || [];
|
|
19
|
-
|
|
20
|
-
const node = new Node(nodeData.name);
|
|
21
|
-
node.enabled = nodeData.enabled !== undefined ? nodeData.enabled : true;
|
|
22
|
-
node.steady = nodeData.steady !== undefined ? nodeData.steady : false;
|
|
23
|
-
|
|
24
|
-
for (const componentData of nodeData.components) {
|
|
25
|
-
try {
|
|
26
|
-
const component = await deserializeComponent(componentData, loader);
|
|
27
|
-
if (component) {
|
|
28
|
-
node.addComponent(component);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
catch (err: any) {
|
|
32
|
-
console.warn(`Deserialization of node with name "${node.name}": ${err.message}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
for (const childData of nodeData.children) {
|
|
37
|
-
const child = await deserializeNode(childData, loader);
|
|
38
|
-
node.addChild(child);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return node;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export const DrawableFormat = {
|
|
45
|
-
LEGACY: 'vwglb',
|
|
46
|
-
BG2: 'bg2'
|
|
47
|
-
} as const;
|
|
48
|
-
|
|
49
|
-
export type DrawableFormatValue = typeof DrawableFormat[keyof typeof DrawableFormat];
|
|
50
|
-
|
|
51
|
-
let g_prefDrawableFormat: DrawableFormatValue = DrawableFormat.BG2;
|
|
52
|
-
export default class VitscnjLoaderPlugin extends LoaderPlugin {
|
|
53
|
-
private _bg2ioPath: string | null;
|
|
54
|
-
private _materialImportCallback?: MaterialImportCallback;
|
|
55
|
-
|
|
56
|
-
static PreferredDrawableFormat(): DrawableFormatValue {
|
|
57
|
-
return g_prefDrawableFormat;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
constructor({
|
|
61
|
-
bg2ioPath,
|
|
62
|
-
preferedDrawableFormat = DrawableFormat.BG2,
|
|
63
|
-
materialImportCallback
|
|
64
|
-
}: {
|
|
65
|
-
bg2ioPath: string | null
|
|
66
|
-
preferedDrawableFormat?: DrawableFormatValue
|
|
67
|
-
materialImportCallback?: MaterialImportCallback
|
|
68
|
-
} = { bg2ioPath: null }) {
|
|
69
|
-
super();
|
|
70
|
-
|
|
71
|
-
this._bg2ioPath = bg2ioPath;
|
|
72
|
-
g_prefDrawableFormat = preferedDrawableFormat;
|
|
73
|
-
this._materialImportCallback = materialImportCallback;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
get supportedExtensions(): string[] { return ["vitscnj"]; }
|
|
77
|
-
|
|
78
|
-
get resourceTypes(): ResourceType[] {
|
|
79
|
-
return [
|
|
80
|
-
ResourceType.Node
|
|
81
|
-
];
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
async load(path: string, resourceType: ResourceType, loader: Loader): Promise<Node> {
|
|
85
|
-
if (resourceType !== ResourceType.Node) {
|
|
86
|
-
throw new Error(`VitscnjLoaderPlugin.load() unexpected resource type received: ${resourceType}`);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const prevPath = loader.currentPath;
|
|
90
|
-
loader.currentPath = removeFileName(path);
|
|
91
|
-
|
|
92
|
-
const resource = new Resource();
|
|
93
|
-
|
|
94
|
-
const root = new Node("Scene Root");
|
|
95
|
-
|
|
96
|
-
const { scene } = await resource.load(path);
|
|
97
|
-
for (const nodeData of scene) {
|
|
98
|
-
const node = await deserializeNode(nodeData, loader);
|
|
99
|
-
root.addChild(node);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
loader.currentPath = prevPath;
|
|
103
|
-
|
|
104
|
-
return root;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
get dependencies(): LoaderPlugin[] {
|
|
108
|
-
return [new Bg2LoaderPlugin({
|
|
109
|
-
bg2ioPath: this._bg2ioPath,
|
|
110
|
-
materialImportCallback: this._materialImportCallback
|
|
111
|
-
})];
|
|
112
|
-
}
|
|
1
|
+
import Resource, { removeFileName, ResourceType } from "../tools/Resource";
|
|
2
|
+
import LoaderPlugin from "./LoaderPlugin";
|
|
3
|
+
import Node from "../scene/Node";
|
|
4
|
+
import { deserializeComponent } from "../scene/Component";
|
|
5
|
+
import Bg2LoaderPlugin, { type MaterialImportCallback } from "./Bg2LoaderPlugin";
|
|
6
|
+
import Loader from "./Loader";
|
|
7
|
+
|
|
8
|
+
interface NodeData {
|
|
9
|
+
name: string;
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
steady?: boolean;
|
|
12
|
+
children?: NodeData[];
|
|
13
|
+
components?: any[];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const deserializeNode = async (nodeData: NodeData, loader: Loader): Promise<Node> => {
|
|
17
|
+
nodeData.children = nodeData.children || [];
|
|
18
|
+
nodeData.components = nodeData.components || [];
|
|
19
|
+
|
|
20
|
+
const node = new Node(nodeData.name);
|
|
21
|
+
node.enabled = nodeData.enabled !== undefined ? nodeData.enabled : true;
|
|
22
|
+
node.steady = nodeData.steady !== undefined ? nodeData.steady : false;
|
|
23
|
+
|
|
24
|
+
for (const componentData of nodeData.components) {
|
|
25
|
+
try {
|
|
26
|
+
const component = await deserializeComponent(componentData, loader);
|
|
27
|
+
if (component) {
|
|
28
|
+
node.addComponent(component);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (err: any) {
|
|
32
|
+
console.warn(`Deserialization of node with name "${node.name}": ${err.message}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
for (const childData of nodeData.children) {
|
|
37
|
+
const child = await deserializeNode(childData, loader);
|
|
38
|
+
node.addChild(child);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return node;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const DrawableFormat = {
|
|
45
|
+
LEGACY: 'vwglb',
|
|
46
|
+
BG2: 'bg2'
|
|
47
|
+
} as const;
|
|
48
|
+
|
|
49
|
+
export type DrawableFormatValue = typeof DrawableFormat[keyof typeof DrawableFormat];
|
|
50
|
+
|
|
51
|
+
let g_prefDrawableFormat: DrawableFormatValue = DrawableFormat.BG2;
|
|
52
|
+
export default class VitscnjLoaderPlugin extends LoaderPlugin {
|
|
53
|
+
private _bg2ioPath: string | null;
|
|
54
|
+
private _materialImportCallback?: MaterialImportCallback;
|
|
55
|
+
|
|
56
|
+
static PreferredDrawableFormat(): DrawableFormatValue {
|
|
57
|
+
return g_prefDrawableFormat;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
constructor({
|
|
61
|
+
bg2ioPath,
|
|
62
|
+
preferedDrawableFormat = DrawableFormat.BG2,
|
|
63
|
+
materialImportCallback
|
|
64
|
+
}: {
|
|
65
|
+
bg2ioPath: string | null
|
|
66
|
+
preferedDrawableFormat?: DrawableFormatValue
|
|
67
|
+
materialImportCallback?: MaterialImportCallback
|
|
68
|
+
} = { bg2ioPath: null }) {
|
|
69
|
+
super();
|
|
70
|
+
|
|
71
|
+
this._bg2ioPath = bg2ioPath;
|
|
72
|
+
g_prefDrawableFormat = preferedDrawableFormat;
|
|
73
|
+
this._materialImportCallback = materialImportCallback;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
get supportedExtensions(): string[] { return ["vitscnj"]; }
|
|
77
|
+
|
|
78
|
+
get resourceTypes(): ResourceType[] {
|
|
79
|
+
return [
|
|
80
|
+
ResourceType.Node
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
async load(path: string, resourceType: ResourceType, loader: Loader): Promise<Node> {
|
|
85
|
+
if (resourceType !== ResourceType.Node) {
|
|
86
|
+
throw new Error(`VitscnjLoaderPlugin.load() unexpected resource type received: ${resourceType}`);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const prevPath = loader.currentPath;
|
|
90
|
+
loader.currentPath = removeFileName(path);
|
|
91
|
+
|
|
92
|
+
const resource = new Resource();
|
|
93
|
+
|
|
94
|
+
const root = new Node("Scene Root");
|
|
95
|
+
|
|
96
|
+
const { scene } = await resource.load(path);
|
|
97
|
+
for (const nodeData of scene) {
|
|
98
|
+
const node = await deserializeNode(nodeData, loader);
|
|
99
|
+
root.addChild(node);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
loader.currentPath = prevPath;
|
|
103
|
+
|
|
104
|
+
return root;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
get dependencies(): LoaderPlugin[] {
|
|
108
|
+
return [new Bg2LoaderPlugin({
|
|
109
|
+
bg2ioPath: this._bg2ioPath,
|
|
110
|
+
materialImportCallback: this._materialImportCallback
|
|
111
|
+
})];
|
|
112
|
+
}
|
|
113
113
|
}
|
package/src/db/Writer.ts
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { ResourceType } from '../tools/Resource';
|
|
2
|
-
import {
|
|
3
|
-
PluginOperationType,
|
|
4
|
-
createPluginDatabase,
|
|
5
|
-
registerPluginInDatabase,
|
|
6
|
-
getPluginFromDatabase
|
|
7
|
-
} from './DBPluginApi';
|
|
8
|
-
import LoaderPlugin from './LoaderPlugin';
|
|
9
|
-
import PolyList from '../base/PolyList';
|
|
10
|
-
import Texture from '../base/Texture';
|
|
11
|
-
|
|
12
|
-
const g_writePluginDatabase = createPluginDatabase(PluginOperationType.Write);
|
|
13
|
-
|
|
14
|
-
export const registerWriterPlugin = (pluginInstance: LoaderPlugin): void => {
|
|
15
|
-
registerPluginInDatabase(pluginInstance, g_writePluginDatabase);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export const getWriterPlugin = (path: string, type: ResourceType): LoaderPlugin => {
|
|
19
|
-
return getPluginFromDatabase(path, type, g_writePluginDatabase);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export default class Writer {
|
|
23
|
-
constructor() {
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
async writeResource(path: string, data: any, type: ResourceType): Promise<any> {
|
|
28
|
-
const plugin = getWriterPlugin(path, type);
|
|
29
|
-
const result = await plugin.write(path, data, type, this);
|
|
30
|
-
return result;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
async writePolyList(path: string, data: PolyList | PolyList[]): Promise<any> {
|
|
34
|
-
return await this.writeResource(path, data, ResourceType.PolyList);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
async writeDrawable(path: string, data: any): Promise<any> {
|
|
38
|
-
return await this.writeResource(path, data, ResourceType.Drawable);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async writeNode(path: string, data: any): Promise<any> {
|
|
42
|
-
return await this.writeResource(path, data, ResourceType.Node);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
async writeTexture(path: string, data: Texture): Promise<any> {
|
|
46
|
-
return await this.writeResource(path, data, ResourceType.Texture);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
async writeMaterial(path: string, data: any): Promise<any> {
|
|
50
|
-
return await this.writeResource(path, data, ResourceType.Material);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
1
|
+
import { ResourceType } from '../tools/Resource';
|
|
2
|
+
import {
|
|
3
|
+
PluginOperationType,
|
|
4
|
+
createPluginDatabase,
|
|
5
|
+
registerPluginInDatabase,
|
|
6
|
+
getPluginFromDatabase
|
|
7
|
+
} from './DBPluginApi';
|
|
8
|
+
import LoaderPlugin from './LoaderPlugin';
|
|
9
|
+
import PolyList from '../base/PolyList';
|
|
10
|
+
import Texture from '../base/Texture';
|
|
11
|
+
|
|
12
|
+
const g_writePluginDatabase = createPluginDatabase(PluginOperationType.Write);
|
|
13
|
+
|
|
14
|
+
export const registerWriterPlugin = (pluginInstance: LoaderPlugin): void => {
|
|
15
|
+
registerPluginInDatabase(pluginInstance, g_writePluginDatabase);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const getWriterPlugin = (path: string, type: ResourceType): LoaderPlugin => {
|
|
19
|
+
return getPluginFromDatabase(path, type, g_writePluginDatabase);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default class Writer {
|
|
23
|
+
constructor() {
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async writeResource(path: string, data: any, type: ResourceType): Promise<any> {
|
|
28
|
+
const plugin = getWriterPlugin(path, type);
|
|
29
|
+
const result = await plugin.write(path, data, type, this);
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async writePolyList(path: string, data: PolyList | PolyList[]): Promise<any> {
|
|
34
|
+
return await this.writeResource(path, data, ResourceType.PolyList);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async writeDrawable(path: string, data: any): Promise<any> {
|
|
38
|
+
return await this.writeResource(path, data, ResourceType.Drawable);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async writeNode(path: string, data: any): Promise<any> {
|
|
42
|
+
return await this.writeResource(path, data, ResourceType.Node);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async writeTexture(path: string, data: Texture): Promise<any> {
|
|
46
|
+
return await this.writeResource(path, data, ResourceType.Texture);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async writeMaterial(path: string, data: any): Promise<any> {
|
|
50
|
+
return await this.writeResource(path, data, ResourceType.Material);
|
|
51
|
+
}
|
|
52
|
+
}
|
package/src/db/WriterPlugin.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { ResourceType } from "../tools/Resource.js";
|
|
2
|
-
import Writer from "./Writer";
|
|
3
|
-
|
|
4
|
-
export default class WriterPlugin {
|
|
5
|
-
// Returns an array of valid file extensions for this plugin
|
|
6
|
-
// example: ['obj','dae']
|
|
7
|
-
get supportedExtensions(): string[] {
|
|
8
|
-
throw new Error("WriterPlugin.supportedExtensions: attribute not implemented");
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// Returns the resource types that the loader plugin can handle
|
|
12
|
-
// example: [ResourceType.PolyList, ResourceType.Drawable]
|
|
13
|
-
get resourceTypes(): ResourceType[] {
|
|
14
|
-
throw new Error("WriterPlugin.resourceTypes: attribute not implemented");
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// Performs the write action to the specified path, using the specified data
|
|
18
|
-
// and for the specified type.
|
|
19
|
-
async write(path: string, data: any, type: ResourceType, writer: Writer): Promise<any> {
|
|
20
|
-
throw new Error("WriterPlugin.write(): method not implemented");
|
|
21
|
-
}
|
|
22
|
-
}
|
|
1
|
+
import { ResourceType } from "../tools/Resource.js";
|
|
2
|
+
import Writer from "./Writer";
|
|
3
|
+
|
|
4
|
+
export default class WriterPlugin {
|
|
5
|
+
// Returns an array of valid file extensions for this plugin
|
|
6
|
+
// example: ['obj','dae']
|
|
7
|
+
get supportedExtensions(): string[] {
|
|
8
|
+
throw new Error("WriterPlugin.supportedExtensions: attribute not implemented");
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Returns the resource types that the loader plugin can handle
|
|
12
|
+
// example: [ResourceType.PolyList, ResourceType.Drawable]
|
|
13
|
+
get resourceTypes(): ResourceType[] {
|
|
14
|
+
throw new Error("WriterPlugin.resourceTypes: attribute not implemented");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Performs the write action to the specified path, using the specified data
|
|
18
|
+
// and for the specified type.
|
|
19
|
+
async write(path: string, data: any, type: ResourceType, writer: Writer): Promise<any> {
|
|
20
|
+
throw new Error("WriterPlugin.write(): method not implemented");
|
|
21
|
+
}
|
|
22
|
+
}
|
package/src/db/index.ts
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
import Bg2LoaderPlugin from "./Bg2LoaderPlugin";
|
|
3
|
-
import {
|
|
4
|
-
PluginOperationType,
|
|
5
|
-
createPluginDatabase,
|
|
6
|
-
registerPluginInDatabase,
|
|
7
|
-
getPluginFromDatabase
|
|
8
|
-
} from "./DBPluginApi";
|
|
9
|
-
import Loader, {
|
|
10
|
-
registerLoaderPlugin,
|
|
11
|
-
getLoaderPlugin
|
|
12
|
-
} from "./Loader"
|
|
13
|
-
import LoaderPlugin from "./LoaderPlugin";
|
|
14
|
-
import MtlParser from "./MtlParser";
|
|
15
|
-
import ObjLoaderPlugin from "./ObjLoaderPlugin";
|
|
16
|
-
import ObjParser from "./ObjParser";
|
|
17
|
-
import ObjWriterPlugin from "./ObjWriterPlugin";
|
|
18
|
-
import VitscnjLoaderPlugin from "./VitscnjLoaderPlugin";
|
|
19
|
-
import Writer, {
|
|
20
|
-
registerWriterPlugin,
|
|
21
|
-
getWriterPlugin
|
|
22
|
-
} from "./Writer"
|
|
23
|
-
import WriterPlugin from "./WriterPlugin";
|
|
24
|
-
|
|
25
|
-
export default {
|
|
26
|
-
Bg2LoaderPlugin,
|
|
27
|
-
PluginOperationType,
|
|
28
|
-
createPluginDatabase,
|
|
29
|
-
registerPluginInDatabase,
|
|
30
|
-
getPluginFromDatabase,
|
|
31
|
-
Loader,
|
|
32
|
-
registerLoaderPlugin,
|
|
33
|
-
getLoaderPlugin,
|
|
34
|
-
LoaderPlugin,
|
|
35
|
-
MtlParser,
|
|
36
|
-
ObjLoaderPlugin,
|
|
37
|
-
ObjParser,
|
|
38
|
-
ObjWriterPlugin,
|
|
39
|
-
VitscnjLoaderPlugin,
|
|
40
|
-
Writer,
|
|
41
|
-
registerWriterPlugin,
|
|
42
|
-
getWriterPlugin,
|
|
43
|
-
WriterPlugin
|
|
44
|
-
}
|
|
1
|
+
|
|
2
|
+
import Bg2LoaderPlugin from "./Bg2LoaderPlugin";
|
|
3
|
+
import {
|
|
4
|
+
PluginOperationType,
|
|
5
|
+
createPluginDatabase,
|
|
6
|
+
registerPluginInDatabase,
|
|
7
|
+
getPluginFromDatabase
|
|
8
|
+
} from "./DBPluginApi";
|
|
9
|
+
import Loader, {
|
|
10
|
+
registerLoaderPlugin,
|
|
11
|
+
getLoaderPlugin
|
|
12
|
+
} from "./Loader"
|
|
13
|
+
import LoaderPlugin from "./LoaderPlugin";
|
|
14
|
+
import MtlParser from "./MtlParser";
|
|
15
|
+
import ObjLoaderPlugin from "./ObjLoaderPlugin";
|
|
16
|
+
import ObjParser from "./ObjParser";
|
|
17
|
+
import ObjWriterPlugin from "./ObjWriterPlugin";
|
|
18
|
+
import VitscnjLoaderPlugin from "./VitscnjLoaderPlugin";
|
|
19
|
+
import Writer, {
|
|
20
|
+
registerWriterPlugin,
|
|
21
|
+
getWriterPlugin
|
|
22
|
+
} from "./Writer"
|
|
23
|
+
import WriterPlugin from "./WriterPlugin";
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
Bg2LoaderPlugin,
|
|
27
|
+
PluginOperationType,
|
|
28
|
+
createPluginDatabase,
|
|
29
|
+
registerPluginInDatabase,
|
|
30
|
+
getPluginFromDatabase,
|
|
31
|
+
Loader,
|
|
32
|
+
registerLoaderPlugin,
|
|
33
|
+
getLoaderPlugin,
|
|
34
|
+
LoaderPlugin,
|
|
35
|
+
MtlParser,
|
|
36
|
+
ObjLoaderPlugin,
|
|
37
|
+
ObjParser,
|
|
38
|
+
ObjWriterPlugin,
|
|
39
|
+
VitscnjLoaderPlugin,
|
|
40
|
+
Writer,
|
|
41
|
+
registerWriterPlugin,
|
|
42
|
+
getWriterPlugin,
|
|
43
|
+
WriterPlugin
|
|
44
|
+
}
|