bg2e-js 2.0.1 → 2.0.2

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.
Files changed (135) hide show
  1. package/dist/bg2e-js.js +11001 -0
  2. package/dist/bg2e-js.js.map +1 -0
  3. package/package.json +17 -6
  4. package/app/AppController.d.ts +0 -37
  5. package/app/AppController.js +0 -32
  6. package/app/Canvas.d.ts +0 -42
  7. package/app/Canvas.js +0 -98
  8. package/app/EventBase.js +0 -8
  9. package/app/KeyboardEvent.js +0 -51
  10. package/app/MainLoop.d.ts +0 -245
  11. package/app/MainLoop.js +0 -251
  12. package/app/MouseEvent.js +0 -77
  13. package/app/TouchEvent.js +0 -15
  14. package/base/Color.js +0 -131
  15. package/base/Environment.js +0 -78
  16. package/base/Light.js +0 -176
  17. package/base/Material.js +0 -619
  18. package/base/PolyList.js +0 -336
  19. package/base/Texture.js +0 -545
  20. package/db/Bg2LoaderPlugin.js +0 -113
  21. package/db/DBPluginApi.js +0 -40
  22. package/db/Loader.js +0 -91
  23. package/db/LoaderPlugin.js +0 -26
  24. package/db/MtlParser.js +0 -7
  25. package/db/ObjLoaderPlugin.js +0 -51
  26. package/db/ObjParser.js +0 -233
  27. package/db/ObjWriterPlugin.js +0 -18
  28. package/db/VitscnjLoaderPlugin.js +0 -87
  29. package/db/Writer.js +0 -49
  30. package/db/WriterPlugin.js +0 -20
  31. package/debug/DebugRenderer.js +0 -138
  32. package/debug/WebGLTextureViewer.js +0 -67
  33. package/manipulation/SelectionBuffer.js +0 -65
  34. package/manipulation/SelectionHighlight.js +0 -69
  35. package/manipulation/SelectionIdAssignVisitor.js +0 -86
  36. package/manipulation/SelectionManager.js +0 -134
  37. package/manipulation/SelectionMode.js +0 -6
  38. package/math/Mat3.js +0 -248
  39. package/math/Mat4.js +0 -694
  40. package/math/MatrixStrategy.js +0 -23
  41. package/math/Quat.js +0 -60
  42. package/math/Vec.js +0 -728
  43. package/math/constants.js +0 -44
  44. package/math/functions.js +0 -104
  45. package/math/index.js +0 -74
  46. package/phsics/joint.js +0 -124
  47. package/primitives/arrow.js +0 -58
  48. package/primitives/cone.js +0 -137
  49. package/primitives/cube.js +0 -59
  50. package/primitives/cylinder.js +0 -215
  51. package/primitives/index.js +0 -13
  52. package/primitives/plane.js +0 -31
  53. package/primitives/sphere.js +0 -808
  54. package/render/BRDFIntegrationMap.js +0 -4
  55. package/render/Environment.js +0 -105
  56. package/render/EnvironmentRenderer.js +0 -12
  57. package/render/FrameBuffer.js +0 -26
  58. package/render/MaterialRenderer.js +0 -28
  59. package/render/Pipeline.js +0 -83
  60. package/render/PolyListRenderer.js +0 -42
  61. package/render/RenderBuffer.js +0 -189
  62. package/render/RenderQueue.js +0 -162
  63. package/render/RenderState.js +0 -82
  64. package/render/Renderer.js +0 -202
  65. package/render/SceneAppController.js +0 -208
  66. package/render/SceneRenderer.js +0 -310
  67. package/render/Shader.js +0 -21
  68. package/render/ShadowRenderer.js +0 -159
  69. package/render/SkyCube.js +0 -77
  70. package/render/SkySphere.js +0 -94
  71. package/render/TextureMergerRenderer.js +0 -58
  72. package/render/TextureRenderer.js +0 -29
  73. package/render/webgl/FrameBuffer.js +0 -9
  74. package/render/webgl/MaterialRenderer.js +0 -99
  75. package/render/webgl/Pipeline.js +0 -82
  76. package/render/webgl/PolyListRenderer.js +0 -224
  77. package/render/webgl/RenderBuffer.js +0 -244
  78. package/render/webgl/Renderer.js +0 -239
  79. package/render/webgl/SceneRenderer.js +0 -43
  80. package/render/webgl/ShaderProgram.js +0 -350
  81. package/render/webgl/ShadowRenderer.js +0 -6
  82. package/render/webgl/SkyCube.js +0 -15
  83. package/render/webgl/SkySphere.js +0 -14
  84. package/render/webgl/State.js +0 -149
  85. package/render/webgl/TextureRenderer.js +0 -167
  86. package/render/webgl/VertexBuffer.js +0 -128
  87. package/scene/Camera.js +0 -378
  88. package/scene/Chain.js +0 -43
  89. package/scene/ChainJoint.js +0 -55
  90. package/scene/Component.js +0 -146
  91. package/scene/ComponentMap.js +0 -99
  92. package/scene/Drawable.js +0 -130
  93. package/scene/EnvironmentComponent.js +0 -123
  94. package/scene/FindNodeVisitor.js +0 -55
  95. package/scene/LightComponent.js +0 -146
  96. package/scene/MatrixState.js +0 -39
  97. package/scene/Node.js +0 -300
  98. package/scene/NodeVisitor.js +0 -12
  99. package/scene/OrbitCameraController.js +0 -407
  100. package/scene/SmoothOrbitCameraController.js +0 -92
  101. package/scene/Transform.js +0 -74
  102. package/scene/index.js +0 -24
  103. package/shaders/BasicDiffuseColorShader.js +0 -91
  104. package/shaders/BasicPBRLightShader.js +0 -238
  105. package/shaders/DebugRenderShader.js +0 -79
  106. package/shaders/DepthRenderShader.js +0 -69
  107. package/shaders/IrradianceMapCubeShader.js +0 -99
  108. package/shaders/PBRLightIBLShader.js +0 -380
  109. package/shaders/PickSelectionShader.js +0 -75
  110. package/shaders/PresentDebugFramebufferShader.js +0 -90
  111. package/shaders/PresentTextureShader.js +0 -73
  112. package/shaders/SelectionHighlightShader.js +0 -98
  113. package/shaders/ShaderFunction.js +0 -72
  114. package/shaders/SkyCubeShader.js +0 -78
  115. package/shaders/SkySphereShader.js +0 -77
  116. package/shaders/SpecularMapCubeShader.js +0 -145
  117. package/shaders/TextureMergerShader.js +0 -127
  118. package/shaders/webgl_shader_lib.js +0 -187
  119. package/tools/BinaryResourceProvider.js +0 -15
  120. package/tools/ImageResourceProvider.js +0 -65
  121. package/tools/MaterialModifier.js +0 -228
  122. package/tools/Resource.js +0 -177
  123. package/tools/ResourceProvider.js +0 -56
  124. package/tools/TextResourceProvider.js +0 -24
  125. package/tools/TextureCache.js +0 -44
  126. package/tools/TextureResourceDatabase.js +0 -87
  127. package/tools/UserAgent.js +0 -294
  128. package/tools/VideoResourceProvider.js +0 -51
  129. package/tools/WriteStrategy.js +0 -22
  130. package/tools/base64.js +0 -15
  131. package/tools/crypto.js +0 -15
  132. package/tools/endiantess.js +0 -15
  133. package/tools/image.js +0 -15
  134. package/tools/index.js +0 -33
  135. package/tools/processType.js +0 -56
@@ -1,128 +0,0 @@
1
-
2
- export const BufferTarget = {
3
- ARRAY_BUFFER: 0,
4
- ELEMENT_ARRAY_BUFFER: 1,
5
-
6
- // WebGL 2:
7
- COPY_READ_BUFFER: 2,
8
- COPY_WRITE_BUFFER: 3,
9
- TRANSFORM_FEEDBACK_BUFFER: 4,
10
- UNIFORM_BUFFER: 5,
11
- PIXEL_PACK_BUFFER: 6,
12
- PIXEL_UNPACK_BUFFER: 7
13
- };
14
-
15
- export const BufferUsage = {
16
- STATIC_DRAW: 0,
17
- DYNAMIC_DRAW: 1,
18
- STREAM_DRAW: 2,
19
-
20
- // WebGL 2:
21
- STATIC_READ: 3,
22
- DYNAMIC_READ: 4,
23
- STREAM_READ: 5,
24
- STATIC_COPY: 6,
25
- DYNAMIC_COPY: 7,
26
- STREAM_COPY: 8
27
- };
28
-
29
- const g_bufferTargetConversion = [];
30
- const g_bufferUsageConversion = [];
31
-
32
- const g_createdBuffers = {};
33
-
34
- // DEBUG: assign an unique identifier to each buffer
35
- let g_bg2e_id__ = 0;
36
-
37
- export default class VertexBuffer {
38
-
39
- static Delete(buffer) {
40
- const gls = Symbol.for(buffer._gl);
41
- const buffer_s = Symbol.for(buffer._buffer);
42
- g_createdBuffers[gls] = g_createdBuffers[gls] || {};
43
- if (g_createdBuffers[gls][buffer_s]) {
44
- delete g_createdBuffers[gls][buffer_s];
45
- }
46
- buffer._gl.deleteBuffer(buffer._buffer);
47
- buffer._buffer = null;
48
- }
49
-
50
- static CreateArrayBuffer(gl,data,usage = BufferUsage.STATIC_DRAW) {
51
- const buffer = new VertexBuffer(gl);
52
- buffer.bind(BufferTarget.ARRAY_BUFFER);
53
- buffer.bufferData(BufferTarget.ARRAY_BUFFER, data, usage);
54
- return buffer;
55
- }
56
-
57
- static CreateElementArrayBuffer(gl,data,usage = BufferUsage.STATIC_DRAW) {
58
- const buffer = new VertexBuffer(gl);
59
- buffer.bind(BufferTarget.ELEMENT_ARRAY_BUFFER);
60
- buffer.bufferData(BufferTarget.ELEMENT_ARRAY_BUFFER, data, usage);
61
- return buffer;
62
- }
63
-
64
- static CurrentBuffer(gl, target) {
65
- if (target === BufferTarget.ARRAY_BUFFER) {
66
- target = gl.ARRAY_BUFFER_BINDING;
67
- }
68
- else if (target === BufferTarget.ELEMENT_ARRAY_BUFFER) {
69
- target = gl.ELEMENT_ARRAY_BUFFER_BINDING;
70
- }
71
- const gls = gl._bg2_id;
72
- g_createdBuffers[gls] = g_createdBuffers[gls] || {}
73
- const gl_buffer = gl.getParameter(target);
74
- const buffer = g_createdBuffers[gls][gl_buffer._bg2e_id_];
75
- return buffer;
76
- }
77
-
78
- get id() {
79
- return this._buffer?._bg2e_id_;
80
- }
81
-
82
- constructor(gl) {
83
- this._gl = gl;
84
- this._buffer = gl.createBuffer();
85
- gl._bg2_id_ = gl._bg2_id_ ?? ++g_bg2e_id__;
86
- this._buffer._bg2e_id_ = ++g_bg2e_id__;
87
- const gls = gl._bg2_id;
88
- g_createdBuffers[gls] = g_createdBuffers[gls] || {}
89
- g_createdBuffers[gls][this._buffer._bg2e_id_] = this;
90
-
91
- if (g_bufferTargetConversion.length === 0) {
92
- g_bufferTargetConversion.push(gl.ARRAY_BUFFER);
93
- g_bufferTargetConversion.push(gl.ELEMENT_ARRAY_BUFFER);
94
- g_bufferTargetConversion.push(gl.COPY_READ_BUFFER);
95
- g_bufferTargetConversion.push(gl.COPY_WRITE_BUFFER);
96
- g_bufferTargetConversion.push(gl.TRANSFORM_FEEDBACK_BUFFER);
97
- g_bufferTargetConversion.push(gl.UNIFORM_BUFFER);
98
- g_bufferTargetConversion.push(gl.PIXEL_PACK_BUFFER);
99
- g_bufferTargetConversion.push(gl.PIXEL_UNPACK_BUFFER);
100
- }
101
-
102
- if (g_bufferUsageConversion.length === 0) {
103
- g_bufferUsageConversion.push(gl.STATIC_DRAW);
104
- g_bufferUsageConversion.push(gl.DYNAMIC_DRAW);
105
- g_bufferUsageConversion.push(gl.STREAM_DRAW);
106
- g_bufferUsageConversion.push(gl.STATIC_READ);
107
- g_bufferUsageConversion.push(gl.DYNAMIC_READ);
108
- g_bufferUsageConversion.push(gl.STREAM_READ);
109
- g_bufferUsageConversion.push(gl.STATIC_COPY);
110
- g_bufferUsageConversion.push(gl.DYNAMIC_COPY);
111
- g_bufferUsageConversion.push(gl.STREAM_COPY);
112
- }
113
- }
114
-
115
- get buffer() {
116
- return this._buffer;
117
- }
118
-
119
- bind(target) {
120
- this._gl.bindBuffer(g_bufferTargetConversion[target], this._buffer);
121
- }
122
-
123
- bufferData(target, data, usage, srcOffset = null, length = null) {
124
- this._gl.bufferData(
125
- g_bufferTargetConversion[target], data,
126
- g_bufferUsageConversion[usage], srcOffset, length);
127
- }
128
- }
package/scene/Camera.js DELETED
@@ -1,378 +0,0 @@
1
- import Mat4 from "../math/Mat4";
2
- import Vec from "../math/Vec";
3
- import Component from "./Component";
4
- import MatrixStrategy from "../math/MatrixStrategy";
5
- import { radiansToDegrees } from "../math/functions";
6
- import NodeVisitor from "./NodeVisitor";
7
- import Node from "./Node";
8
-
9
- export class ProjectionStrategy extends MatrixStrategy {
10
- static Factory(jsonData) {
11
- const create = () => {
12
- switch (jsonData?.type) {
13
- case "PerspectiveProjectionMethod":
14
- return new PerspectiveProjectionStrategy();
15
- case "OpticalProjectionMethod":
16
- return new OpticalProjectionStrategy();
17
- case "OrthographicProjectionStrategy":
18
- return new OrthographicProjectionStrategy();
19
- default:
20
- return null;
21
- }
22
- }
23
-
24
- const result = create();
25
- if (result) {
26
- result.deserialize(jsonData);
27
- }
28
- return result;
29
- }
30
-
31
- constructor(target) {
32
- super(target);
33
-
34
- this._near = 0.1;
35
- this._far = 1000.0;
36
- this._viewport = new Vec([0, 0, 512, 512]);
37
- }
38
-
39
- clone() {
40
- throw Error("ProjectionStrategy.clone(): method not implemented by child class.");
41
- }
42
-
43
- assign(other) {
44
- this.near = other.near;
45
- this.far = other.far;
46
- this.viewport = new Vec(other.viewport);
47
- }
48
-
49
- set near(v) { this._near = v; this.apply(); }
50
- get near() { return this._near; }
51
- set far(v) { this._far = v; this.apply(); }
52
- get far() { return this._far; }
53
- set viewport(v) { this._viewport = v; this.apply(); }
54
- get viewport() { return this._viewport; }
55
-
56
- get fov() { return 0; }
57
-
58
- serialize(jsonData) {
59
- jsonData.near = this.near;
60
- jsonData.far = this.far;
61
- jsonData.viewport = this.viewport;
62
- }
63
-
64
- deserialize(jsonData) {
65
- this.near = jsonData.near || this.near;
66
- this.far = jsonData.far || this.far;
67
- this.viewport = Array.isArray(jsonData.viewport) ? new Vec(jsonData.viewport) : this.viewport;
68
- }
69
- }
70
-
71
- export class PerspectiveProjectionStrategy extends ProjectionStrategy {
72
- constructor(target) {
73
- super(target);
74
- this._fov = 60;
75
- }
76
-
77
- set fov(f) { this._fov = f; this.apply(); }
78
- get fov() { return this._fov; }
79
-
80
- clone() {
81
- const other = new PerspectiveProjectionStrategy(this._target);
82
- other.assign(this);
83
- return other;
84
- }
85
-
86
- assign(other) {
87
- super.assign(other);
88
- this.fov = other.fov;
89
- }
90
-
91
- apply() {
92
- if (this.target) {
93
- this.target.perspective(this.fov, this.viewport.aspectRatio, this.near, this.far);
94
- }
95
- }
96
-
97
- serialize(jsonData) {
98
- jsonData.type = "PerspectiveProjectionMethod";
99
- jsonData.fov = this.fov;
100
- super.serialize(jsonData);
101
- }
102
-
103
- deserialize(jsonData) {
104
- super.deserialize(jsonData);
105
- this.fov = jsonData.fov || this.fov;
106
- }
107
- }
108
-
109
- export class OpticalProjectionStrategy extends ProjectionStrategy {
110
- constructor(target) {
111
- super(target);
112
- this._focalLength = 50;
113
- this._frameSize = 35;
114
- }
115
-
116
- set focalLength(v) { this._focalLength; this.apply(); }
117
- get focalLength() { return this._focalLength; }
118
- set frameSize(v) { this._frameSize; this.apply(); }
119
- get frameSize() { return this._frameSize; }
120
-
121
- get fov() {
122
- return 2 * Math.atan((this.frameSize / 2.0) / this.focalLength);
123
- }
124
-
125
- clone() {
126
- const other = new OpticalProjectionStrategy(this._target);
127
- other.assign(this);
128
- return other;
129
- }
130
-
131
- assign(other) {
132
- super.assign(other);
133
- this.focalLength = other.focalLength;
134
- this.frameSize = other.frameSize;
135
- }
136
-
137
- apply() {
138
- if (this.target) {
139
- const fov = radiansToDegrees(this.fov);
140
- this.target.perspective(fov, this.viewport.aspectRatio, this.near, this.far);
141
- }
142
- }
143
-
144
- serialize(jsonData) {
145
- super.serialize(jsonData);
146
- jsonData.type = "OpticalProjectionMethod";
147
- jsonData.frameSize = this.frameSize;
148
- jsonData.focalLength = this.focalLength;
149
- }
150
-
151
- deserialize(jsonData) {
152
- super.deserialize(jsonData);
153
- this.frameSize = jsonData.frameSize || this.frameSize;
154
- this.focalLength = jsonData.focalLength || this.focalLength;
155
- }
156
- }
157
-
158
- export class OrthographicProjectionStrategy extends ProjectionStrategy {
159
- constructor(target) {
160
- super(target);
161
- this._viewWidth = 100;
162
- }
163
-
164
- set viewWidth(v) { this._viewWidth = v; this.apply(); }
165
- get viewWidth() { return this._viewWidth; }
166
-
167
- clone() {
168
- const other = new OrthographicProjectionStrategy(this._target);
169
- other.assign(this);
170
- return other;
171
- }
172
-
173
- asign(other) {
174
- super.assign(other);
175
- this.viewWidth = other.viewWidth;
176
- }
177
-
178
- apply() {
179
- if (this.target) {
180
- const height = this.viewWidth / this.viewport.aspectRatio;
181
- const x = this.viewWidth / 2;
182
- const y = height / 2;
183
- this.target.ortho(-x, x, -y, y, -this._far, this._far);
184
- }
185
- }
186
-
187
- serialize(jsonData) {
188
- jsonData.type = "OrthographicProjectionStrategy";
189
- jsonData.viewWidth = this.viewWidth;
190
- super.serialize(jsonData);
191
- }
192
-
193
- deserialize(jsonData) {
194
- this.viewWidth = jsonData.viewWidth || this.viewWidth;
195
- super.deserialize(jsonData);
196
- }
197
- }
198
-
199
- class SetMainCameraVisitor extends NodeVisitor {
200
- constructor(mainCamera) {
201
- super();
202
- if (!mainCamera) {
203
- throw Error("Set main camera: invalid parameter. The camera paremeter is null.")
204
- }
205
- if (!(mainCamera instanceof Camera)) {
206
- throw Error("Set main camera: invalid parameter. The object is not an instance of Camera class.")
207
- }
208
- this._mainCamera = mainCamera;
209
- }
210
-
211
- visit(node) {
212
- const cam = node.camera;
213
- if (cam && cam === this._mainCamera) {
214
- cam._isMain = true;
215
- }
216
- else if (cam && cam !== this._mainCamera) {
217
- cam._isMain = false;
218
- }
219
- }
220
- }
221
-
222
- class GetMainCameraVisitor extends NodeVisitor {
223
- constructor() {
224
- super();
225
- this._mainCamera;
226
- this._firstCameraFound;
227
- }
228
-
229
- get mainCamera() {
230
- return this._mainCamera;
231
- }
232
-
233
- get firstCameraFound() {
234
- return this._firstCameraFound;
235
- }
236
-
237
- clear() {
238
- this._mainCamera = null;
239
- this._firstCameraFound = null;
240
- }
241
-
242
- visit(node) {
243
- // Note: The _isMain flag is set in Cmaer.SetMain() function
244
- if (node.camera && node.camera.isMain) {
245
- node.camera._isMain = false;
246
- if (this._mainCamera) {
247
- console.warn("More than one main cameras found in the scene");
248
- }
249
- this._mainCamera = node.camera;
250
- }
251
- else if (node.camera && !this._firstCameraFound) {
252
- node.camera._isMain = false;
253
- this._firstCameraFound = node.camera;
254
- }
255
- }
256
- }
257
-
258
- export default class Camera extends Component {
259
- static SetMain(sceneRoot,camera) {
260
- const isNode = sceneRoot instanceof Node;
261
- if (!isNode || sceneRoot.parent !== null) {
262
- throw Error("Camera.setMain(): invalid parameter. Object is not a scene root");
263
- }
264
- const visitor = new SetMainCameraVisitor(camera);
265
- sceneRoot.accept(visitor);
266
- sceneRoot.__mainCamera__ = camera;
267
- }
268
-
269
- static GetMain(sceneRoot) {
270
- if (!sceneRoot.__mainCamera__) {
271
- const visitor = new GetMainCameraVisitor();
272
- sceneRoot.accept(visitor);
273
- sceneRoot.__mainCamera__ = visitor.result || visitor.firstCameraFound;
274
- if (sceneRoot.__mainCamera__) {
275
- sceneRoot.__mainCamera__._isMain = true;
276
- }
277
- }
278
- return sceneRoot.__mainCamera__;
279
- }
280
-
281
- setMain(sceneRoot) {
282
- Camera.SetMain(sceneRoot,this);
283
- }
284
-
285
- constructor() {
286
- super("Camera");
287
-
288
- this._projectionStrategy = null;
289
- this._isMain = false;
290
-
291
- this._projectionMatrix = Mat4.MakePerspective(45.0, 1, 0.1, 100.0);
292
- this._viewport = new Vec(0, 0, 512, 512);
293
-
294
- this._focusDistance = 5;
295
- }
296
-
297
- clone() {
298
- const other = new Camera();
299
- other.assign(this);
300
- return other;
301
- }
302
-
303
- assign(other) {
304
- other._projectionStrategy = this._projectionStrategy?.clone() || null;
305
- // This attribute cannot be assigned, because there can only be one main camera.
306
- other._isMain = false;
307
- other._projectionMatrix = new Mat4(this._projectionMatrix);
308
- other._viewport = new Vec(this._viewport);
309
- other._focusDistance = this._focusDistance;
310
- }
311
-
312
- get isMain() {
313
- return this._isMain;
314
- }
315
-
316
- get projectionMatrix() {
317
- return this._projectionMatrix;
318
- }
319
-
320
- set projectionMatrix(p) {
321
- this._projectionStrategy = null;
322
- this._projectionMatrix = p;
323
- }
324
-
325
- get viewport() {
326
- return this._viewport;
327
- }
328
-
329
- set viewport(vp) {
330
- this._viewport = vp;
331
- }
332
-
333
- get projectionStrategy() {
334
- return this._projectionStrategy;
335
- }
336
-
337
- set projectionStrategy(ps) {
338
- this._projectionStrategy = ps;
339
- this._projectionStrategy.target = this._projectionMatrix;
340
- }
341
-
342
- get focusDistance() {
343
- return this._focusDistance;
344
- }
345
-
346
- set focusDistance(fd) {
347
- this._focusDistance = fd;
348
- }
349
-
350
- // This function regenerate the projection matrix with the new
351
- // aspect ratio, if the projectionStrategy is set.
352
- resize(width,height) {
353
- this._viewport = new Vec([0, 0, width, height]);
354
- if (this._projectionStrategy) {
355
- this._projectionStrategy.viewport = this._viewport;
356
- this._projectionStrategy.apply();
357
- }
358
- }
359
-
360
- async deserialize(sceneData,loader) {
361
- this.focusDistance = sceneData.focusDistance ?? this._focusDistance;
362
- if (sceneData.projectionMethod) {
363
- this.projectionStrategy = ProjectionStrategy.Factory(sceneData.projectionMethod || {});
364
- }
365
- }
366
-
367
- async serialize(sceneData,writer) {
368
- super.serialize(sceneData,writer);
369
- sceneData.isMain = this._isMain;
370
- sceneData.focusDistance = this._focusDistance;
371
- if (this.projectionStrategy) {
372
- const projMethod = {};
373
- sceneData.projectionMethod = projMethod;
374
- this.projectionStrategy.serialize(projMethod);
375
- }
376
- }
377
- }
378
-
package/scene/Chain.js DELETED
@@ -1,43 +0,0 @@
1
-
2
- import Mat4 from "../math/Mat4";
3
- import Component from "./Component";
4
-
5
- export default class Chain extends Component {
6
- constructor() {
7
- super('Chain');
8
- }
9
-
10
- willUpdate(frame,matrixState) {
11
- if (this.node) {
12
- const matrix = Mat4.MakeIdentity();
13
- this.node.children.forEach((child, index) => {
14
- const trx = child.component("Transform");
15
- const inJoint = child.component("InputChainJoint");
16
- const outJoint = child.component("OutputChainJoint");
17
-
18
- if (index>0 && inJoint) {
19
- inJoint.joint.applyTransform(matrix);
20
- }
21
- else {
22
- matrix.identity();
23
- }
24
-
25
- if (trx) {
26
- trx.matrix.assign(matrix);
27
- }
28
-
29
- if (outJoint) {
30
- outJoint.joint.applyTransform(matrix);
31
- }
32
- });
33
- }
34
- }
35
-
36
- clone() { return new Chain(); }
37
- assign(other) {}
38
- async deserialize(sceneData,loader) {}
39
-
40
- async serialize(sceneData,writer) {
41
- await super.serialize(sceneData,writer);
42
- }
43
- }
@@ -1,55 +0,0 @@
1
- import Component from "./Component";
2
- import Joint, { LinkTransformOrder, LinkJoint } from "../phsics/joint";
3
-
4
- export class ChainJoint extends Component {
5
- constructor(typeId) {
6
- super(typeId);
7
-
8
- this._joint = new LinkJoint();
9
- }
10
-
11
- get joint() { return this._joint; }
12
- set joint(j) { this._joint = j; }
13
-
14
- assign(other) {
15
- this.joint.assign(other.joint);
16
- }
17
-
18
- async deserialize(sceneData,loader) {
19
- if (sceneData.joint) {
20
- this.joint = Joint.Factory(sceneData.joint);
21
- }
22
- }
23
-
24
- async serialize(sceneData,writer) {
25
- await super.serialize(sceneData,writer);
26
- sceneData.joint = {};
27
- this.joint.serialize(sceneData.joint);
28
- }
29
- }
30
-
31
- export class InputChainJoint extends ChainJoint {
32
- constructor() {
33
- super('InputChainJoint');
34
- this.joint.transformOrder = LinkTransformOrder.ROTATE_TRANSLATE;
35
- }
36
-
37
- clone() {
38
- const result = new InputChainJoint();
39
- result.assign(this);
40
- return result;
41
- }
42
- }
43
-
44
- export class OutputChainJoint extends ChainJoint {
45
- constructor() {
46
- super('OutputChainJoint');
47
- this.joint.transformOrder = LinkTransformOrder.TRANSLATE_ROTATE;
48
- }
49
-
50
- clone() {
51
- const result = new OutputChainJoint();
52
- result.assign(this);
53
- return result;
54
- }
55
- }