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,56 +0,0 @@
1
- import { isBrowserOrElectronRenderer } from './processType';
2
- import { base64ToArrayBuffer } from './base64';
3
-
4
- export const DataFormat = {
5
- BYTES: 0, // Uint8Array
6
- IMAGE: 1, // DOM img
7
- BASE64: 2, // Base64 string. It can include or not the Base64 image prefix
8
- TEXT: 3, // Text string
9
- JSON_STRING: 4, // JSON text
10
- JSON_OBJECT: 5, // JSON serializable object
11
- FILE_PATH: 6 // File path (used to implement file copy)
12
- };
13
-
14
- export default class ResourceProvider {
15
- set writeStrategy(ws) {
16
- this._writeStrategy = ws;
17
- }
18
-
19
- get writeStrategy() {
20
- if (!this._writeStrategy) {
21
- throw new Error("ResourceProvider.write(): no write strategy configured.");
22
- }
23
- return this._writeStrategy;
24
- }
25
-
26
- async load(url) {
27
-
28
- }
29
-
30
- async write(url,data,format = DataFormat.TEXT) {
31
- switch (format) {
32
- case BYTES:
33
- return this.writeStrategy.writeBytes(url,data);
34
- case IMAGE:
35
- if (isBrowserOrElectronRenderer()) {
36
- return this.writeStrategy.writeImage(url, data);
37
- }
38
- else {
39
- throw new Error("ResourceProvider.write() unsupported data format: Image data format is supported only on browsers or electron renderer process.");
40
- }
41
- case BASE64:
42
- const bytes = base64ToArrayBuffer(data);
43
- return this.writeStrategy.writeBytes(url,bytes);
44
- case TEXT:
45
- return this.writeStrategy.writeText(url,data);
46
- case JSON_STRING:
47
- return this.writeStrategy.writeText(url,data);
48
- case JSON_OBJECT:
49
- return this.writeStrategy.writeJson(url,data);
50
- case FILE_PATH:
51
- return this.copyFile(url,data);
52
- default:
53
- throw new Error("ResourceProvider.write() invalid format");
54
- }
55
- }
56
- }
@@ -1,24 +0,0 @@
1
- import ResourceProvider from './ResourceProvider.js';
2
-
3
- export default class TextResourceProvider extends ResourceProvider {
4
- async load(url) {
5
- const response = await fetch(url);
6
- if (response.ok) {
7
- const textData = await response.text();
8
- try {
9
- const objectData = JSON.parse(textData);
10
- return objectData;
11
- }
12
- catch (e) {
13
- return textData;
14
- }
15
- }
16
- else {
17
- throw new Error(`Resource not found at '${ url }'`);
18
- }
19
- }
20
-
21
- async write(url,data) {
22
- return await this.writeStrategy.writeData(url,data,{encoding: 'utf-8'});
23
- }
24
- }
@@ -1,44 +0,0 @@
1
-
2
- import Canvas from '../app/Canvas';
3
-
4
- const g_canvasCache = {};
5
-
6
- export default class TextureCache {
7
- static Get(canvas = null) {
8
- canvas = canvas || Canvas.FirstCanvas();
9
- if (!canvas) {
10
- throw new Error("No canvas created. Create a canvas before using TextureCache.");
11
- }
12
-
13
- if (!g_canvasCache[canvas.id]) {
14
- g_canvasCache[canvas.id] = new TextureCache(canvas);
15
- }
16
- return g_canvasCache[canvas.id];
17
- }
18
-
19
- constructor(canvas) {
20
- this._canvas = canvas;
21
- this._cache = {};
22
- }
23
-
24
- get canvas() { return this._canvas; }
25
-
26
- registerTexture(texture) {
27
- if (!texture.fileName) {
28
- throw new Error("TextureCache.registerTexture() texture path is empty");
29
- }
30
- this._cache[texture.fileName] = texture;
31
- }
32
-
33
- getTexture(texturePath) {
34
- return this._cache[texturePath];
35
- }
36
-
37
- findTexture(texturePath) {
38
- return this._cache[texturePath] != null;
39
- }
40
-
41
- clear() {
42
- this._cache = {};
43
- }
44
- }
@@ -1,87 +0,0 @@
1
- import Color from "../base/Color"
2
- import Texture, { ProceduralTextureFunction, TextureFilter, TextureTarget, TextureWrap } from "../base/Texture"
3
- import BRDFIntegrationMap from "../render/BRDFIntegrationMap";
4
-
5
- const g_textureDatabase = {
6
- whiteTexture: {},
7
- blackTexture: {},
8
- normalTexture: {},
9
- brdfIntegrationTexture: {}
10
- }
11
-
12
- const createColorTexture = async (color, name = "") => {
13
- const result = new Texture();
14
- result.magFilter = TextureFilter.NEAREST;
15
- result.minFilter = TextureFilter.NEAREST;
16
- result.wrapModeXY = TextureWrap.REPEAT;
17
- result.proceduralFunction = ProceduralTextureFunction.PLAIN_COLOR;
18
- result.proceduralParameters = color;
19
- result.size = [2, 2];
20
- name = name || `ColorTexture_${color.r}_${color.g}_${color.b}_${color.a}`;
21
- result.name = `${ name }_${result.size.width}_${result.size.height}`;
22
- await result.loadImageData();
23
- return result;
24
- }
25
-
26
- export const createWhiteTexture = async (renderer) => {
27
- if (!g_textureDatabase.whiteTexture[renderer.uniqueId]) {
28
- g_textureDatabase.whiteTexture[renderer.uniqueId] = await createColorTexture(Color.White(), "WhiteTexture");
29
- }
30
- return g_textureDatabase.whiteTexture[renderer.uniqueId];
31
- }
32
- export const whiteTexture = (renderer) => {
33
- if (!g_textureDatabase.whiteTexture[renderer.uniqueId]) {
34
- throw new Error(`TextureResourceDatabase: whiteTexture is not initialize. Call 'createWhiteTexture' before use 'whiteTexture' function`);
35
- }
36
- return g_textureDatabase.whiteTexture[renderer.uniqueId];
37
- }
38
-
39
- export const createBlackTexture = async (renderer) => {
40
- if (!g_textureDatabase.blackTexture[renderer.uniqueId]) {
41
- g_textureDatabase.blackTexture[renderer.uniqueId] = await createColorTexture(Color.Black(), "BlackTexture");
42
- }
43
- return g_textureDatabase.blackTexture[renderer.uniqueId];
44
- }
45
-
46
- export const blackTexture = (renderer) => {
47
- if (!g_textureDatabase.blackTexture[renderer.uniqueId]) {
48
- throw new Error(`TextureResourceDatabase: blackTexture is not initialize. Call 'createBlackTexture' before use 'blackTexture' function`);
49
- }
50
- return g_textureDatabase.blackTexture[renderer.uniqueId];
51
- }
52
-
53
- export const createNormalTexture = async (renderer) => {
54
- if (!g_textureDatabase.normalTexture[renderer.uniqueId]) {
55
- g_textureDatabase.normalTexture[renderer.uniqueId] = await createColorTexture(new Color([0.5, 0.5, 1, 1]), "NormalMapTexture");
56
- }
57
- return g_textureDatabase.normalTexture[renderer.uniqueId];
58
- }
59
-
60
- export const normalTexture = (renderer) => {
61
- if (!g_textureDatabase.normalTexture[renderer.uniqueId]) {
62
- throw new Error(`TextureResourceDatabase: normalTexture is not initialized. Call 'createNormalTexture' before use 'normalTexture' function`);
63
- }
64
- return g_textureDatabase.normalTexture[renderer.uniqueId];
65
- }
66
-
67
- export const createBRDFIntegrationTexture = async (renderer) => {
68
- if (!g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId]) {
69
- const tex = new Texture();
70
- tex.name = "BRDFIntegrationMapTexture";
71
- tex.target = TextureTarget.TEXTURE_2D;
72
- tex.proceduralFunction = ProceduralTextureFunction.FROM_BASE64;
73
- tex.proceduralParameters = {
74
- imageData: BRDFIntegrationMap
75
- };
76
- await tex.loadImageData();
77
- g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId] = tex;
78
- }
79
- return g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId];
80
- }
81
-
82
- export const BRDFIntegrationTexture = (renderer) => {
83
- if (!g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId]) {
84
- throw new Error(`TextureResourceDatabase: BRDFIntegrationTexture is not initialized. Call 'createBRDFIntegrationTexture' before use 'BRDFIntegrationTexture' function`);
85
- }
86
- return g_textureDatabase.brdfIntegrationTexture[renderer.uniqueId];
87
- }
@@ -1,294 +0,0 @@
1
-
2
-
3
- export default class UserAgent {
4
- constructor(userAgentString) {
5
- this.system = {};
6
- this.browser = {};
7
-
8
- if (!userAgentString) {
9
- userAgentString = navigator.userAgent;
10
- }
11
- this.parseOperatingSystem(userAgentString);
12
- this.parseBrowser(userAgentString);
13
- }
14
-
15
- parseOperatingSystem(userAgentString) {
16
- this.system.OSX = /Macintosh/.test(userAgentString);
17
- this.system.Windows = /Windows/.test(userAgentString);
18
- this.system.iPhone = /iPhone/.test(userAgentString);
19
- this.system.iPodTouch = /iPod/.test(userAgentString);
20
- this.system.iPad = /iPad/.test(userAgentString);
21
- this.system.iOS = this.system.iPhone || this.system.iPad || this.system.iPodTouch;
22
- this.system.Android = /Android/.test(userAgentString);
23
- this.system.Linux = (this.system.Android) ? false:/Linux/.test(userAgentString);
24
-
25
- if (this.system.OSX) {
26
- this.system.OSName = "OS X";
27
- this.parseOSXVersion(userAgentString);
28
- }
29
- else if (this.system.Windows) {
30
- this.system.OSName = "Windows";
31
- this.parseWindowsVersion(userAgentString);
32
- }
33
- else if (this.system.Linux) {
34
- this.system.OSName = "Linux";
35
- this.parseLinuxVersion(userAgentString);
36
- }
37
- else if (this.system.iOS) {
38
- this.system.OSName = "iOS";
39
- this.parseIOSVersion(userAgentString);
40
- }
41
- else if (this.system.Android) {
42
- this.system.OSName = "Android";
43
- this.parseAndroidVersion(userAgentString);
44
- }
45
- }
46
-
47
- parseBrowser(userAgentString) {
48
- // Safari: Version/X.X.X Safari/XXX
49
- // Chrome: Chrome/XX.X.XX.XX Safari/XXX
50
- // Opera: Opera/X.XX
51
- // Firefox: Gecko/XXXXXX Firefox/XX.XX.XX
52
- // Explorer: MSIE X.X
53
- this.browser.Version = {};
54
- this.browser.Safari = /Version\/([\d\.]+) Safari\//.test(userAgentString);
55
- if (this.browser.Safari) {
56
- this.browser.Name = "Safari";
57
- this.browser.Vendor = "Apple";
58
- this.browser.Version.versionString = RegExp.$1;
59
- }
60
-
61
- this.browser.Chrome = /Chrome\/([\d\.]+) Safari\//.test(userAgentString);
62
- if (this.browser.Chrome) {
63
- this.browser.Name = "Chrome";
64
- this.browser.Vendor = "Google";
65
- this.browser.Version.versionString = RegExp.$1;
66
- }
67
-
68
- this.browser.Opera = /Opera\/[\d\.]+/.test(userAgentString);
69
- if (this.browser.Opera) {
70
- this.browser.Name = "Opera";
71
- this.browser.Vendor = "Opera Software";
72
- var versionString = /Version\/([\d\.]+)/.test(userAgentString);
73
- this.browser.Version.versionString = RegExp.$1;
74
- }
75
-
76
- this.browser.Firefox = /Gecko\/[\d\.]+ Firefox\/([\d\.]+)/.test(userAgentString);
77
- if (this.browser.Firefox) {
78
- this.browser.Name = "Firefox";
79
- this.browser.Vendor = "Mozilla Foundation";
80
- this.browser.Version.versionString = RegExp.$1;
81
- }
82
-
83
- this.browser.Edge = /Edge\/(.*)/.test(userAgentString);
84
- if (this.browser.Edge) {
85
- var result = /Edge\/(.*)/.exec(userAgentString);
86
- this.browser.Name = "Edge";
87
- this.browser.Chrome = false;
88
- this.browser.Vendor = "Microsoft";
89
- this.browser.Version.versionString = result[1];
90
- }
91
-
92
- this.browser.Explorer = /MSIE ([\d\.]+)/.test(userAgentString);
93
- if (!this.browser.Explorer) {
94
- var re = /\Mozilla\/5.0 \(([^)]+)\) like Gecko/
95
- var matches = re.exec(userAgentString);
96
- if (matches) {
97
- re = /rv:(.*)/
98
- var version = re.exec(matches[1]);
99
- this.browser.Explorer = true;
100
- this.browser.Name = "Internet Explorer";
101
- this.browser.Vendor = "Microsoft";
102
- if (version) {
103
- this.browser.Version.versionString = version[1];
104
- }
105
- else {
106
- this.browser.Version.versionString = "unknown";
107
- }
108
- }
109
- }
110
- else {
111
- this.browser.Name = "Internet Explorer";
112
- this.browser.Vendor = "Microsoft";
113
- this.browser.Version.versionString = RegExp.$1;
114
- }
115
-
116
- if (this.system.iOS) {
117
- this.browser.IsMobileVersion = true;
118
- this.browser.MobileSafari = /Version\/([\d\.]+) Mobile/.test(userAgentString);
119
- if (this.browser.MobileSafari) {
120
- this.browser.Name = "Mobile Safari";
121
- this.browser.Vendor = "Apple";
122
- this.browser.Version.versionString = RegExp.$1;
123
- }
124
- this.browser.Android = false;
125
- }
126
- else if (this.system.Android) {
127
- this.browser.IsMobileVersion = true;
128
- this.browser.Android = /Version\/([\d\.]+) Mobile/.test(userAgentString);
129
- if (this.browser.MobileSafari) {
130
- this.browser.Name = "Android Browser";
131
- this.browser.Vendor = "Google";
132
- this.browser.Version.versionString = RegExp.$1;
133
- }
134
- else {
135
- this.browser.Chrome = /Chrome\/([\d\.]+)/.test(userAgentString);
136
- this.browser.Name = "Chrome";
137
- this.browser.Vendor = "Google";
138
- this.browser.Version.versionString = RegExp.$1;
139
- }
140
-
141
- this.browser.Safari = false;
142
- }
143
- else {
144
- this.browser.IsMobileVersion = false;
145
- }
146
-
147
- this.parseBrowserVersion(userAgentString);
148
- }
149
-
150
- parseBrowserVersion(userAgentString) {
151
- if (/([\d]+)\.([\d]+)\.*([\d]*)/.test(this.browser.Version.versionString)) {
152
- this.browser.Version.major = Number(RegExp.$1);
153
- this.browser.Version.minor = Number(RegExp.$2);
154
- this.browser.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
155
- }
156
- }
157
-
158
- parseOSXVersion(userAgentString) {
159
- var versionString = (/Mac OS X (\d+_\d+_*\d*)/.test(userAgentString)) ? RegExp.$1:'';
160
- this.system.Version = {};
161
- // Safari/Chrome
162
- if (versionString!='') {
163
- if (/(\d+)_(\d+)_*(\d*)/.test(versionString)) {
164
- this.system.Version.major = Number(RegExp.$1);
165
- this.system.Version.minor = Number(RegExp.$2);
166
- this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
167
- }
168
- }
169
- // Firefox/Opera
170
- else {
171
- versionString = (/Mac OS X (\d+\.\d+\.*\d*)/.test(userAgentString)) ? RegExp.$1:'Unknown';
172
- if (/(\d+)\.(\d+)\.*(\d*)/.test(versionString)) {
173
- this.system.Version.major = Number(RegExp.$1);
174
- this.system.Version.minor = Number(RegExp.$2);
175
- this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
176
- }
177
- }
178
- if (!this.system.Version.major) {
179
- this.system.Version.major = 0;
180
- this.system.Version.minor = 0;
181
- this.system.Version.revision = 0;
182
- }
183
- this.system.Version.stringValue = this.system.Version.major + '.' + this.system.Version.minor + '.' + this.system.Version.revision;
184
- switch (this.system.Version.minor) {
185
- case 0:
186
- this.system.Version.name = "Cheetah";
187
- break;
188
- case 1:
189
- this.system.Version.name = "Puma";
190
- break;
191
- case 2:
192
- this.system.Version.name = "Jaguar";
193
- break;
194
- case 3:
195
- this.system.Version.name = "Panther";
196
- break;
197
- case 4:
198
- this.system.Version.name = "Tiger";
199
- break;
200
- case 5:
201
- this.system.Version.name = "Leopard";
202
- break;
203
- case 6:
204
- this.system.Version.name = "Snow Leopard";
205
- break;
206
- case 7:
207
- this.system.Version.name = "Lion";
208
- break;
209
- case 8:
210
- this.system.Version.name = "Mountain Lion";
211
- break;
212
- }
213
- }
214
-
215
- parseWindowsVersion(userAgentString) {
216
- this.system.Version = {};
217
- if (/NT (\d+)\.(\d*)/.test(userAgentString)) {
218
- this.system.Version.major = Number(RegExp.$1);
219
- this.system.Version.minor = Number(RegExp.$2);
220
- this.system.Version.revision = 0; // Solo por compatibilidad
221
- this.system.Version.stringValue = "NT " + this.system.Version.major + "." + this.system.Version.minor;
222
- var major = this.system.Version.major;
223
- var minor = this.system.Version.minor;
224
- var name = 'undefined';
225
- if (major==5) {
226
- if (minor==0) this.system.Version.name = '2000';
227
- else this.system.Version.name = 'XP';
228
- }
229
- else if (major==6) {
230
- if (minor==0) this.system.Version.name = 'Vista';
231
- else if (minor==1) this.system.Version.name = '7';
232
- else if (minor==2) this.system.Version.name = '8';
233
- }
234
- }
235
- else {
236
- this.system.Version.major = 0;
237
- this.system.Version.minor = 0;
238
- this.system.Version.name = "Unknown";
239
- this.system.Version.stringValue = "Unknown";
240
- }
241
- }
242
-
243
- parseLinuxVersion(userAgentString) {
244
- this.system.Version = {};
245
- this.system.Version.major = 0;
246
- this.system.Version.minor = 0;
247
- this.system.Version.revision = 0;
248
- this.system.Version.name = "";
249
- this.system.Version.stringValue = "Unknown distribution";
250
- }
251
-
252
- parseIOSVersion(userAgentString) {
253
- this.system.Version = {};
254
- if (/iPhone OS (\d+)_(\d+)_*(\d*)/i.test(userAgentString)) {
255
- this.system.Version.major = Number(RegExp.$1);
256
- this.system.Version.minor = Number(RegExp.$2);
257
- this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
258
- this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
259
- this.system.Version.name = "iOS";
260
- }
261
- else {
262
- this.system.Version.major = 0;
263
- this.system.Version.minor = 0;
264
- this.system.Version.name = "Unknown";
265
- this.system.Version.stringValue = "Unknown";
266
- }
267
- }
268
-
269
- parseAndroidVersion(userAgentString) {
270
- this.system.Version = {};
271
- if (/Android (\d+)\.(\d+)\.*(\d*)/.test(userAgentString)) {
272
- this.system.Version.major = Number(RegExp.$1);
273
- this.system.Version.minor = Number(RegExp.$2);
274
- this.system.Version.revision = (RegExp.$3) ? Number(RegExp.$3):0;
275
- this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
276
- }
277
- else {
278
- this.system.Version.major = 0;
279
- this.system.Version.minor = 0;
280
- this.system.Version.revision = 0;
281
- }
282
- if (/Build\/([a-zA-Z]+)/.test(userAgentString)) {
283
- this.system.Version.name = RegExp.$1;
284
- }
285
- else {
286
- this.system.Version.name = "Unknown version";
287
- }
288
- this.system.Version.stringValue = this.system.Version.major + "." + this.system.Version.minor + '.' + this.system.Version.revision;
289
- }
290
-
291
- getInfoString() {
292
- return navigator.userAgent;
293
- }
294
- }
@@ -1,51 +0,0 @@
1
-
2
- import ResourceProvider from "./ResourceProvider.js";
3
-
4
- const g_preventVideoDump = [];
5
-
6
- const beginLoadVideo = (video) => {
7
- if (g_preventVideoDump.indexOf(video) === -1) {
8
- g_preventVideoDump.push(video);
9
- }
10
- };
11
-
12
- const endLoadVideo = (video) => {
13
- const i = g_preventVideoDump.indexOf(video);
14
- if (i !== -1) {
15
- g_preventVideoDump.splice(i, 1);
16
- }
17
- }
18
-
19
- const loadVideo = (url) => {
20
- return new Promise((resolve,reject) => {
21
- const video = document.createElement("video");
22
- beginLoadVideo(video);
23
- video.crossOrigin = "";
24
- video.autoplay = true;
25
- video.setAttribute("playsinline", null);
26
- video.addEventListener("canplay", evt => {
27
- endLoadVideo(evt.target);
28
- resolve(evt.target);
29
- });
30
- video.addEventListener("error", evt => {
31
- endLoadVideo(evt.target);
32
- reject(new Error(`Error loading video ${ url }`));
33
- });
34
- video.addEventListener("abort", evt => {
35
- endLoadVideo(evt.target);
36
- reject(new Error(`Video load aborted '${ url }'`));
37
- });
38
- video.src = url;
39
- });
40
- }
41
-
42
- export default class VideoResourceProvider extends ResourceProvider {
43
- async load(url) {
44
- const video = await loadVideo(url);
45
- return video;
46
- }
47
-
48
- async write(url,data) {
49
- throw new Error("VideoResourceProvider.write(): not supported");
50
- }
51
- }
@@ -1,22 +0,0 @@
1
-
2
- export default class WriteStrategy {
3
- async writeBytes(path, data) {
4
- throw new Error("WriteStrategy: writeBytes() not implemented");
5
- }
6
-
7
- async writeImage(path, img) {
8
- throw new Error("WriteStrategy: writeImage() not implemented");
9
- }
10
-
11
- async writeText(path, data) {
12
- throw new Error("WriteStrategy: writeText() not implemented");
13
- }
14
-
15
- async writeJson(path, object) {
16
- throw new Error("WriteStrategy: writeJson() not implemented");
17
- }
18
-
19
- async copyFile(srcPath, dstPath) {
20
- throw new Error("WriteStrategy: copyFile() not implemented");
21
- }
22
- }
package/tools/base64.js DELETED
@@ -1,15 +0,0 @@
1
- import { isNode, isBrowserOrElectronRenderer } from "./processType";
2
-
3
- export const base64ToArrayBuffer = async (base64) => {
4
- if (isBrowserOrElectronRenderer()) {
5
- return new Uint8Array(atob(base64).split('').map(c => c.charCodeAt(0)));
6
- }
7
- else if (isNode()) {
8
- const Buffer = await import('buffer');
9
- return Buffer.atob(base64).split('').map(c => c.charCodeAt(0));
10
- }
11
- else {
12
- throw new Error("base64ToArrayBuffer: Unsupported platform. Valid platforms are NodeJS, Browser or ElectronRenderer");
13
- }
14
- }
15
-
package/tools/crypto.js DELETED
@@ -1,15 +0,0 @@
1
- !function(r){function n(r){for(var n="",t="",o=0,e=0,a=0,i=r.length;i>a;a++){var f=r.charCodeAt(a);128>f?e++:(t=2048>f?String.fromCharCode(f>>6|192,63&f|128):String.fromCharCode(f>>12|224,f>>6&63|128,63&f|128),e>o&&(n+=r.slice(o,e)),n+=t,o=e=a+1)}return e>o&&(n+=r.slice(o,i)),n}function t(r){var n,t;if(r+="",s=!1,v=w=r.length,w>63){for(o(r.substring(0,64)),i(A),s=!0,n=128;w>=n;n+=64)o(r.substring(n-64,n)),f(A);r=r.substring(n-64),w=r.length}for(d[0]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,n=0;w>n;n++)t=3&n,0===t?d[n>>2]=r.charCodeAt(n):d[n>>2]|=r.charCodeAt(n)<<C[t];return d[n>>2]|=h[3&n],n>55?(s?f(d):(i(d),s=!0),f([0,0,0,0,0,0,0,0,0,0,0,0,0,0,v<<3,0])):(d[14]=v<<3,void(s?f(d):i(d)))}function o(r){for(var n=16;n--;){var t=n<<2;A[n]=r.charCodeAt(t)+(r.charCodeAt(t+1)<<8)+(r.charCodeAt(t+2)<<16)+(r.charCodeAt(t+3)<<24)}}function e(r,o,e){t(o?r:n(r));var a=g[0];return u[1]=l[15&a],u[0]=l[15&(a>>=4)],u[3]=l[15&(a>>=4)],u[2]=l[15&(a>>=4)],u[5]=l[15&(a>>=4)],u[4]=l[15&(a>>=4)],u[7]=l[15&(a>>=4)],u[6]=l[15&(a>>=4)],a=g[1],u[9]=l[15&a],u[8]=l[15&(a>>=4)],u[11]=l[15&(a>>=4)],u[10]=l[15&(a>>=4)],u[13]=l[15&(a>>=4)],u[12]=l[15&(a>>=4)],u[15]=l[15&(a>>=4)],u[14]=l[15&(a>>=4)],a=g[2],u[17]=l[15&a],u[16]=l[15&(a>>=4)],u[19]=l[15&(a>>=4)],u[18]=l[15&(a>>=4)],u[21]=l[15&(a>>=4)],u[20]=l[15&(a>>=4)],u[23]=l[15&(a>>=4)],u[22]=l[15&(a>>=4)],a=g[3],u[25]=l[15&a],u[24]=l[15&(a>>=4)],u[27]=l[15&(a>>=4)],u[26]=l[15&(a>>=4)],u[29]=l[15&(a>>=4)],u[28]=l[15&(a>>=4)],u[31]=l[15&(a>>=4)],u[30]=l[15&(a>>=4)],e?u:u.join("")}function a(r,n,t,o,e,a,i){return n+=r+o+i,(n<<e|n>>>a)+t<<0}function i(r){c(0,0,0,0,r),g[0]=y[0]+1732584193<<0,g[1]=y[1]-271733879<<0,g[2]=y[2]-1732584194<<0,g[3]=y[3]+271733878<<0}function f(r){c(g[0],g[1],g[2],g[3],r),g[0]=y[0]+g[0]<<0,g[1]=y[1]+g[1]<<0,g[2]=y[2]+g[2]<<0,g[3]=y[3]+g[3]<<0}function c(r,n,t,o,e){var i,f;s?(r=a((t^o)&n^o,r,n,e[0],7,25,-680876936),o=a((n^t)&r^t,o,r,e[1],12,20,-389564586),t=a((r^n)&o^n,t,o,e[2],17,15,606105819),n=a((o^r)&t^r,n,t,e[3],22,10,-1044525330)):(r=e[0]-680876937,r=(r<<7|r>>>25)-271733879<<0,o=e[1]-117830708+(2004318071&r^-1732584194),o=(o<<12|o>>>20)+r<<0,t=e[2]-1126478375+((-271733879^r)&o^-271733879),t=(t<<17|t>>>15)+o<<0,n=e[3]-1316259209+((o^r)&t^r),n=(n<<22|n>>>10)+t<<0),r=a((t^o)&n^o,r,n,e[4],7,25,-176418897),o=a((n^t)&r^t,o,r,e[5],12,20,1200080426),t=a((r^n)&o^n,t,o,e[6],17,15,-1473231341),n=a((o^r)&t^r,n,t,e[7],22,10,-45705983),r=a((t^o)&n^o,r,n,e[8],7,25,1770035416),o=a((n^t)&r^t,o,r,e[9],12,20,-1958414417),t=a((r^n)&o^n,t,o,e[10],17,15,-42063),n=a((o^r)&t^r,n,t,e[11],22,10,-1990404162),r=a((t^o)&n^o,r,n,e[12],7,25,1804603682),o=a((n^t)&r^t,o,r,e[13],12,20,-40341101),t=a((r^n)&o^n,t,o,e[14],17,15,-1502002290),n=a((o^r)&t^r,n,t,e[15],22,10,1236535329),r=a((n^t)&o^t,r,n,e[1],5,27,-165796510),o=a((r^n)&t^n,o,r,e[6],9,23,-1069501632),t=a((o^r)&n^r,t,o,e[11],14,18,643717713),n=a((t^o)&r^o,n,t,e[0],20,12,-373897302),r=a((n^t)&o^t,r,n,e[5],5,27,-701558691),o=a((r^n)&t^n,o,r,e[10],9,23,38016083),t=a((o^r)&n^r,t,o,e[15],14,18,-660478335),n=a((t^o)&r^o,n,t,e[4],20,12,-405537848),r=a((n^t)&o^t,r,n,e[9],5,27,568446438),o=a((r^n)&t^n,o,r,e[14],9,23,-1019803690),t=a((o^r)&n^r,t,o,e[3],14,18,-187363961),n=a((t^o)&r^o,n,t,e[8],20,12,1163531501),r=a((n^t)&o^t,r,n,e[13],5,27,-1444681467),o=a((r^n)&t^n,o,r,e[2],9,23,-51403784),t=a((o^r)&n^r,t,o,e[7],14,18,1735328473),n=a((t^o)&r^o,n,t,e[12],20,12,-1926607734),i=n^t,r=a(i^o,r,n,e[5],4,28,-378558),o=a(i^r,o,r,e[8],11,21,-2022574463),f=o^r,t=a(f^n,t,o,e[11],16,16,1839030562),n=a(f^t,n,t,e[14],23,9,-35309556),i=n^t,r=a(i^o,r,n,e[1],4,28,-1530992060),o=a(i^r,o,r,e[4],11,21,1272893353),f=o^r,t=a(f^n,t,o,e[7],16,16,-155497632),n=a(f^t,n,t,e[10],23,9,-1094730640),i=n^t,r=a(i^o,r,n,e[13],4,28,681279174),o=a(i^r,o,r,e[0],11,21,-358537222),f=o^r,t=a(f^n,t,o,e[3],16,16,-722521979),n=a(f^t,n,t,e[6],23,9,76029189),i=n^t,r=a(i^o,r,n,e[9],4,28,-640364487),o=a(i^r,o,r,e[12],11,21,-421815835),f=o^r,t=a(f^n,t,o,e[15],16,16,530742520),n=a(f^t,n,t,e[2],23,9,-995338651),r=a(t^(n|~o),r,n,e[0],6,26,-198630844),o=a(n^(r|~t),o,r,e[7],10,22,1126891415),t=a(r^(o|~n),t,o,e[14],15,17,-1416354905),n=a(o^(t|~r),n,t,e[5],21,11,-57434055),r=a(t^(n|~o),r,n,e[12],6,26,1700485571),o=a(n^(r|~t),o,r,e[3],10,22,-1894986606),t=a(r^(o|~n),t,o,e[10],15,17,-1051523),n=a(o^(t|~r),n,t,e[1],21,11,-2054922799),r=a(t^(n|~o),r,n,e[8],6,26,1873313359),o=a(n^(r|~t),o,r,e[15],10,22,-30611744),t=a(r^(o|~n),t,o,e[6],15,17,-1560198380),n=a(o^(t|~r),n,t,e[13],21,11,1309151649),r=a(t^(n|~o),r,n,e[4],6,26,-145523070),o=a(n^(r|~t),o,r,e[11],10,22,-1120210379),t=a(r^(o|~n),t,o,e[2],15,17,718787259),n=a(o^(t|~r),n,t,e[9],21,11,-343485551),y[0]=r,y[1]=n,y[2]=t,y[3]=o}var u=[],d=[],A=[],h=[],l="0123456789abcdef".split(""),C=[],g=[],s=!1,v=0,w=0,y=[];if(r.Int32Array)d=new Int32Array(16),A=new Int32Array(16),h=new Int32Array(4),C=new Int32Array(4),g=new Int32Array(4),y=new Int32Array(4);else{var I;for(I=0;16>I;I++)d[I]=A[I]=0;for(I=0;4>I;I++)h[I]=C[I]=g[I]=y[I]=0}h[0]=128,h[1]=32768,h[2]=8388608,h[3]=-2147483648,C[0]=0,C[1]=8,C[2]=16,C[3]=24,r.md5=r.md5||e}("undefined"==typeof global?window:global);
2
-
3
- export const generateMD5 = (data) => md5(data);
4
-
5
- export const generateUUID = () => {
6
- let d = new Date().getTime();
7
- if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
8
- d += performance.now(); //use high-precision timer if available
9
- }
10
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
11
- var r = (d + Math.random() * 16) % 16 | 0;
12
- d = Math.floor(d / 16);
13
- return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
14
- });
15
- }
@@ -1,15 +0,0 @@
1
-
2
- export const isBigEndian = () => {
3
- let arr32 = new Uint32Array(1);
4
- let arr8 = new Uint8Array(arr32.buffer);
5
- arr32[0] = 255;
6
- return arr32[3]==255;
7
- };
8
-
9
- export const isLittleEndian = () => {
10
- let arr32 = new Uint32Array(1);
11
- let arr8 = new Uint8Array(arr32.buffer);
12
- arr32[0] = 255;
13
- return arr32[0]==255;
14
- };
15
-
package/tools/image.js DELETED
@@ -1,15 +0,0 @@
1
- import { generateMD5 } from '../tools/crypto';
2
-
3
- export const imageToBase64 = (image, format = 'image/jpeg') => {
4
- const canvas = document.createElement('canvas');
5
- const ctx = canvas.getContext('2d');
6
- canvas.height = image.naturalHeight;
7
- canvas.width = image.naturalWidth;
8
- ctx.drawImage(image, 0, 0);
9
- return canvas.toDataURL(format);
10
- }
11
-
12
- export const generateImageHash = (image) => {
13
- const base64 = imageToBase64(image);
14
- return generateMD5(base64);
15
- }