bg2e-js 2.0.0 → 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 (132) 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.js +0 -32
  5. package/app/Canvas.js +0 -98
  6. package/app/EventBase.js +0 -8
  7. package/app/KeyboardEvent.js +0 -51
  8. package/app/MainLoop.js +0 -251
  9. package/app/MouseEvent.js +0 -77
  10. package/app/TouchEvent.js +0 -15
  11. package/base/Color.js +0 -131
  12. package/base/Environment.js +0 -78
  13. package/base/Light.js +0 -176
  14. package/base/Material.js +0 -619
  15. package/base/PolyList.js +0 -336
  16. package/base/Texture.js +0 -545
  17. package/db/Bg2LoaderPlugin.js +0 -113
  18. package/db/DBPluginApi.js +0 -40
  19. package/db/Loader.js +0 -91
  20. package/db/LoaderPlugin.js +0 -26
  21. package/db/MtlParser.js +0 -7
  22. package/db/ObjLoaderPlugin.js +0 -51
  23. package/db/ObjParser.js +0 -233
  24. package/db/ObjWriterPlugin.js +0 -18
  25. package/db/VitscnjLoaderPlugin.js +0 -87
  26. package/db/Writer.js +0 -49
  27. package/db/WriterPlugin.js +0 -20
  28. package/debug/DebugRenderer.js +0 -138
  29. package/debug/WebGLTextureViewer.js +0 -67
  30. package/manipulation/SelectionBuffer.js +0 -65
  31. package/manipulation/SelectionHighlight.js +0 -69
  32. package/manipulation/SelectionIdAssignVisitor.js +0 -86
  33. package/manipulation/SelectionManager.js +0 -134
  34. package/manipulation/SelectionMode.js +0 -6
  35. package/math/Mat3.js +0 -248
  36. package/math/Mat4.js +0 -694
  37. package/math/MatrixStrategy.js +0 -23
  38. package/math/Quat.js +0 -60
  39. package/math/Vec.js +0 -728
  40. package/math/constants.js +0 -44
  41. package/math/functions.js +0 -104
  42. package/math/index.js +0 -74
  43. package/phsics/joint.js +0 -124
  44. package/primitives/arrow.js +0 -58
  45. package/primitives/cone.js +0 -137
  46. package/primitives/cube.js +0 -59
  47. package/primitives/cylinder.js +0 -215
  48. package/primitives/index.js +0 -13
  49. package/primitives/plane.js +0 -31
  50. package/primitives/sphere.js +0 -808
  51. package/render/BRDFIntegrationMap.js +0 -4
  52. package/render/Environment.js +0 -105
  53. package/render/EnvironmentRenderer.js +0 -12
  54. package/render/FrameBuffer.js +0 -26
  55. package/render/MaterialRenderer.js +0 -28
  56. package/render/Pipeline.js +0 -83
  57. package/render/PolyListRenderer.js +0 -42
  58. package/render/RenderBuffer.js +0 -189
  59. package/render/RenderQueue.js +0 -162
  60. package/render/RenderState.js +0 -82
  61. package/render/Renderer.js +0 -202
  62. package/render/SceneAppController.js +0 -208
  63. package/render/SceneRenderer.js +0 -310
  64. package/render/Shader.js +0 -21
  65. package/render/ShadowRenderer.js +0 -159
  66. package/render/SkyCube.js +0 -77
  67. package/render/SkySphere.js +0 -94
  68. package/render/TextureMergerRenderer.js +0 -58
  69. package/render/TextureRenderer.js +0 -29
  70. package/render/webgl/FrameBuffer.js +0 -9
  71. package/render/webgl/MaterialRenderer.js +0 -99
  72. package/render/webgl/Pipeline.js +0 -82
  73. package/render/webgl/PolyListRenderer.js +0 -224
  74. package/render/webgl/RenderBuffer.js +0 -244
  75. package/render/webgl/Renderer.js +0 -239
  76. package/render/webgl/SceneRenderer.js +0 -43
  77. package/render/webgl/ShaderProgram.js +0 -348
  78. package/render/webgl/ShadowRenderer.js +0 -6
  79. package/render/webgl/SkyCube.js +0 -15
  80. package/render/webgl/SkySphere.js +0 -14
  81. package/render/webgl/State.js +0 -149
  82. package/render/webgl/TextureRenderer.js +0 -167
  83. package/render/webgl/VertexBuffer.js +0 -128
  84. package/scene/Camera.js +0 -378
  85. package/scene/Chain.js +0 -43
  86. package/scene/ChainJoint.js +0 -55
  87. package/scene/Component.js +0 -146
  88. package/scene/ComponentMap.js +0 -99
  89. package/scene/Drawable.js +0 -130
  90. package/scene/EnvironmentComponent.js +0 -123
  91. package/scene/FindNodeVisitor.js +0 -55
  92. package/scene/LightComponent.js +0 -146
  93. package/scene/MatrixState.js +0 -39
  94. package/scene/Node.js +0 -300
  95. package/scene/NodeVisitor.js +0 -12
  96. package/scene/OrbitCameraController.js +0 -407
  97. package/scene/SmoothOrbitCameraController.js +0 -92
  98. package/scene/Transform.js +0 -74
  99. package/scene/index.js +0 -24
  100. package/shaders/BasicDiffuseColorShader.js +0 -91
  101. package/shaders/BasicPBRLightShader.js +0 -238
  102. package/shaders/DebugRenderShader.js +0 -79
  103. package/shaders/DepthRenderShader.js +0 -69
  104. package/shaders/IrradianceMapCubeShader.js +0 -99
  105. package/shaders/PBRLightIBLShader.js +0 -380
  106. package/shaders/PickSelectionShader.js +0 -75
  107. package/shaders/PresentDebugFramebufferShader.js +0 -90
  108. package/shaders/PresentTextureShader.js +0 -73
  109. package/shaders/SelectionHighlightShader.js +0 -98
  110. package/shaders/ShaderFunction.js +0 -72
  111. package/shaders/SkyCubeShader.js +0 -78
  112. package/shaders/SkySphereShader.js +0 -77
  113. package/shaders/SpecularMapCubeShader.js +0 -145
  114. package/shaders/TextureMergerShader.js +0 -127
  115. package/shaders/webgl_shader_lib.js +0 -187
  116. package/tools/BinaryResourceProvider.js +0 -15
  117. package/tools/ImageResourceProvider.js +0 -65
  118. package/tools/MaterialModifier.js +0 -228
  119. package/tools/Resource.js +0 -177
  120. package/tools/ResourceProvider.js +0 -56
  121. package/tools/TextResourceProvider.js +0 -24
  122. package/tools/TextureCache.js +0 -44
  123. package/tools/TextureResourceDatabase.js +0 -87
  124. package/tools/UserAgent.js +0 -294
  125. package/tools/VideoResourceProvider.js +0 -51
  126. package/tools/WriteStrategy.js +0 -22
  127. package/tools/base64.js +0 -15
  128. package/tools/crypto.js +0 -15
  129. package/tools/endiantess.js +0 -15
  130. package/tools/image.js +0 -15
  131. package/tools/index.js +0 -33
  132. 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
- }