bg2e-js 2.3.12 → 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 +350 -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 -196
- 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
package/package.json
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "bg2e-js",
|
|
3
|
-
"version": "2.3.
|
|
4
|
-
"description": "a graphics engine for productivity applications",
|
|
5
|
-
"main": "./dist/bg2e-js.js",
|
|
6
|
-
"types": "./src/index.ts",
|
|
7
|
-
"files": [
|
|
8
|
-
"dist/bg2e-js.js",
|
|
9
|
-
"dist/bg2e-js.js.map",
|
|
10
|
-
"src"
|
|
11
|
-
],
|
|
12
|
-
"module": "./dist/bg2e-js.js",
|
|
13
|
-
"exports": {
|
|
14
|
-
".": {
|
|
15
|
-
"types": "./src/index.ts",
|
|
16
|
-
"import": "./dist/bg2e-js.js",
|
|
17
|
-
"default": "./dist/bg2e-js.js"
|
|
18
|
-
},
|
|
19
|
-
"./ts": {
|
|
20
|
-
"types": "./src/index.ts",
|
|
21
|
-
"import": "./src/index.ts"
|
|
22
|
-
},
|
|
23
|
-
"./ts/*": {
|
|
24
|
-
"types": "./src/*",
|
|
25
|
-
"import": "./src/*"
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"type": "module",
|
|
29
|
-
"scripts": {
|
|
30
|
-
"dev": "vite build --watch --emptyOutDir",
|
|
31
|
-
"build": "vite build --emptyOutDir"
|
|
32
|
-
},
|
|
33
|
-
"repository": {
|
|
34
|
-
"type": "git",
|
|
35
|
-
"url": "git+https://github.com/ferserc1/bg2e-js.git"
|
|
36
|
-
},
|
|
37
|
-
"keywords": [
|
|
38
|
-
"webgl",
|
|
39
|
-
"business",
|
|
40
|
-
"graphic",
|
|
41
|
-
"engine"
|
|
42
|
-
],
|
|
43
|
-
"author": "Fernando Serrano Carpena",
|
|
44
|
-
"license": "MIT",
|
|
45
|
-
"bugs": {
|
|
46
|
-
"url": "https://github.com/ferserc1/bg2e-js/issues"
|
|
47
|
-
},
|
|
48
|
-
"homepage": "https://github.com/ferserc1/bg2e-js#readme",
|
|
49
|
-
"dependencies": {
|
|
50
|
-
"bg2io": "^1.0.7"
|
|
51
|
-
},
|
|
52
|
-
"devDependencies": {
|
|
53
|
-
"typescript": "^5.9.3",
|
|
54
|
-
"vite": "^7.1.5"
|
|
55
|
-
}
|
|
56
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "bg2e-js",
|
|
3
|
+
"version": "2.3.13",
|
|
4
|
+
"description": "a graphics engine for productivity applications",
|
|
5
|
+
"main": "./dist/bg2e-js.js",
|
|
6
|
+
"types": "./src/index.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist/bg2e-js.js",
|
|
9
|
+
"dist/bg2e-js.js.map",
|
|
10
|
+
"src"
|
|
11
|
+
],
|
|
12
|
+
"module": "./dist/bg2e-js.js",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./src/index.ts",
|
|
16
|
+
"import": "./dist/bg2e-js.js",
|
|
17
|
+
"default": "./dist/bg2e-js.js"
|
|
18
|
+
},
|
|
19
|
+
"./ts": {
|
|
20
|
+
"types": "./src/index.ts",
|
|
21
|
+
"import": "./src/index.ts"
|
|
22
|
+
},
|
|
23
|
+
"./ts/*": {
|
|
24
|
+
"types": "./src/*",
|
|
25
|
+
"import": "./src/*"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"type": "module",
|
|
29
|
+
"scripts": {
|
|
30
|
+
"dev": "vite build --watch --emptyOutDir",
|
|
31
|
+
"build": "vite build --emptyOutDir"
|
|
32
|
+
},
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "git+https://github.com/ferserc1/bg2e-js.git"
|
|
36
|
+
},
|
|
37
|
+
"keywords": [
|
|
38
|
+
"webgl",
|
|
39
|
+
"business",
|
|
40
|
+
"graphic",
|
|
41
|
+
"engine"
|
|
42
|
+
],
|
|
43
|
+
"author": "Fernando Serrano Carpena",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"bugs": {
|
|
46
|
+
"url": "https://github.com/ferserc1/bg2e-js/issues"
|
|
47
|
+
},
|
|
48
|
+
"homepage": "https://github.com/ferserc1/bg2e-js#readme",
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"bg2io": "^1.0.7"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"typescript": "^5.9.3",
|
|
54
|
+
"vite": "^7.1.5"
|
|
55
|
+
}
|
|
56
|
+
}
|
package/src/app/AppController.ts
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import Bg2MouseEvent from "./Bg2MouseEvent";
|
|
2
|
-
import Bg2KeyboardEvent from "./Bg2KeyboardEvent";
|
|
3
|
-
import Bg2TouchEvent from "./Bg2TouchEvent";
|
|
4
|
-
|
|
5
|
-
export default class AppController {
|
|
6
|
-
_mainLoop: any;
|
|
7
|
-
|
|
8
|
-
constructor() {
|
|
9
|
-
this._mainLoop = null;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
get mainLoop(): any { return this._mainLoop; }
|
|
13
|
-
set mainLoop(ml: any) { this._mainLoop = ml; }
|
|
14
|
-
|
|
15
|
-
get canvas(): any { return this._mainLoop?.canvas; }
|
|
16
|
-
|
|
17
|
-
get renderer(): any { return this._mainLoop?.canvas?.renderer; }
|
|
18
|
-
|
|
19
|
-
get viewport(): { width: number; height: number; aspectRatio: number } {
|
|
20
|
-
return this.canvas?.viewport || { width: 0, height: 0, aspectRatio: 0 };
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async init(): Promise<void> {}
|
|
24
|
-
reshape(width: number, height: number): void {}
|
|
25
|
-
async frame(delta: number): Promise<void> {}
|
|
26
|
-
display(): void {}
|
|
27
|
-
destroy(): void {}
|
|
28
|
-
keyDown(evt: Bg2KeyboardEvent): void {}
|
|
29
|
-
keyUp(evt: Bg2KeyboardEvent): void {}
|
|
30
|
-
mouseUp(evt: Bg2MouseEvent): void {}
|
|
31
|
-
mouseDown(evt: Bg2MouseEvent): void {}
|
|
32
|
-
mouseMove(evt: Bg2MouseEvent): void {}
|
|
33
|
-
mouseOut(evt: Bg2MouseEvent): void {}
|
|
34
|
-
mouseDrag(evt: Bg2MouseEvent): void {}
|
|
35
|
-
mouseWheel(evt: Bg2MouseEvent): void {}
|
|
36
|
-
touchStart(evt: Bg2TouchEvent): void {}
|
|
37
|
-
touchMove(evt: Bg2TouchEvent): void {}
|
|
38
|
-
touchEnd(evt: Bg2TouchEvent): void {}
|
|
39
|
-
}
|
|
1
|
+
import Bg2MouseEvent from "./Bg2MouseEvent";
|
|
2
|
+
import Bg2KeyboardEvent from "./Bg2KeyboardEvent";
|
|
3
|
+
import Bg2TouchEvent from "./Bg2TouchEvent";
|
|
4
|
+
|
|
5
|
+
export default class AppController {
|
|
6
|
+
_mainLoop: any;
|
|
7
|
+
|
|
8
|
+
constructor() {
|
|
9
|
+
this._mainLoop = null;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
get mainLoop(): any { return this._mainLoop; }
|
|
13
|
+
set mainLoop(ml: any) { this._mainLoop = ml; }
|
|
14
|
+
|
|
15
|
+
get canvas(): any { return this._mainLoop?.canvas; }
|
|
16
|
+
|
|
17
|
+
get renderer(): any { return this._mainLoop?.canvas?.renderer; }
|
|
18
|
+
|
|
19
|
+
get viewport(): { width: number; height: number; aspectRatio: number } {
|
|
20
|
+
return this.canvas?.viewport || { width: 0, height: 0, aspectRatio: 0 };
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async init(): Promise<void> {}
|
|
24
|
+
reshape(width: number, height: number): void {}
|
|
25
|
+
async frame(delta: number): Promise<void> {}
|
|
26
|
+
display(): void {}
|
|
27
|
+
destroy(): void {}
|
|
28
|
+
keyDown(evt: Bg2KeyboardEvent): void {}
|
|
29
|
+
keyUp(evt: Bg2KeyboardEvent): void {}
|
|
30
|
+
mouseUp(evt: Bg2MouseEvent): void {}
|
|
31
|
+
mouseDown(evt: Bg2MouseEvent): void {}
|
|
32
|
+
mouseMove(evt: Bg2MouseEvent): void {}
|
|
33
|
+
mouseOut(evt: Bg2MouseEvent): void {}
|
|
34
|
+
mouseDrag(evt: Bg2MouseEvent): void {}
|
|
35
|
+
mouseWheel(evt: Bg2MouseEvent): void {}
|
|
36
|
+
touchStart(evt: Bg2TouchEvent): void {}
|
|
37
|
+
touchMove(evt: Bg2TouchEvent): void {}
|
|
38
|
+
touchEnd(evt: Bg2TouchEvent): void {}
|
|
39
|
+
}
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import EventBase from "./EventBase";
|
|
2
|
-
|
|
3
|
-
export enum SpecialKey {
|
|
4
|
-
BACKSPACE = "Backspace",
|
|
5
|
-
TAB = "Tab",
|
|
6
|
-
ENTER = "Enter",
|
|
7
|
-
SHIFT = "Shift",
|
|
8
|
-
SHIFT_LEFT = "ShiftLeft",
|
|
9
|
-
SHIFT_RIGHT = "ShiftRight",
|
|
10
|
-
CTRL = "Control",
|
|
11
|
-
CTRL_LEFT = "ControlLeft",
|
|
12
|
-
CTRL_RIGHT = "ControlRight",
|
|
13
|
-
ALT = "Alt",
|
|
14
|
-
ALT_LEFT = "AltLeft",
|
|
15
|
-
ALT_RIGHT = "AltRight",
|
|
16
|
-
PAUSE = "Pause",
|
|
17
|
-
CAPS_LOCK = "CapsLock",
|
|
18
|
-
ESCAPE = "Escape",
|
|
19
|
-
PAGE_UP = "PageUp",
|
|
20
|
-
PAGEDOWN = "PageDown",
|
|
21
|
-
END = "End",
|
|
22
|
-
HOME = "Home",
|
|
23
|
-
LEFT_ARROW = "ArrowLeft",
|
|
24
|
-
UP_ARROW = "ArrowUp",
|
|
25
|
-
RIGHT_ARROW = "ArrowRight",
|
|
26
|
-
DOWN_ARROW = "ArrowDown",
|
|
27
|
-
INSERT = "Insert",
|
|
28
|
-
DELETE = "Delete",
|
|
29
|
-
SPACE = "Space"
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export const createKeyboardEvent = (evt: any): KeyboardEvent => {
|
|
33
|
-
const code = (SpecialKey as any)[evt.code] != null ? evt.keyCode : evt.code;
|
|
34
|
-
return new KeyboardEvent(code, evt);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export default class KeyboardEvent extends EventBase {
|
|
38
|
-
key: string;
|
|
39
|
-
event: any;
|
|
40
|
-
|
|
41
|
-
static IsSpecialKey(event: any): boolean {
|
|
42
|
-
return (SpecialKey as any)[event.code] != null;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
constructor(key: string, event: any) {
|
|
46
|
-
super();
|
|
47
|
-
this.key = key;
|
|
48
|
-
this.event = event;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
get isSpecialKey(): boolean {
|
|
52
|
-
return KeyboardEvent.IsSpecialKey(this.event);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
1
|
+
import EventBase from "./EventBase";
|
|
2
|
+
|
|
3
|
+
export enum SpecialKey {
|
|
4
|
+
BACKSPACE = "Backspace",
|
|
5
|
+
TAB = "Tab",
|
|
6
|
+
ENTER = "Enter",
|
|
7
|
+
SHIFT = "Shift",
|
|
8
|
+
SHIFT_LEFT = "ShiftLeft",
|
|
9
|
+
SHIFT_RIGHT = "ShiftRight",
|
|
10
|
+
CTRL = "Control",
|
|
11
|
+
CTRL_LEFT = "ControlLeft",
|
|
12
|
+
CTRL_RIGHT = "ControlRight",
|
|
13
|
+
ALT = "Alt",
|
|
14
|
+
ALT_LEFT = "AltLeft",
|
|
15
|
+
ALT_RIGHT = "AltRight",
|
|
16
|
+
PAUSE = "Pause",
|
|
17
|
+
CAPS_LOCK = "CapsLock",
|
|
18
|
+
ESCAPE = "Escape",
|
|
19
|
+
PAGE_UP = "PageUp",
|
|
20
|
+
PAGEDOWN = "PageDown",
|
|
21
|
+
END = "End",
|
|
22
|
+
HOME = "Home",
|
|
23
|
+
LEFT_ARROW = "ArrowLeft",
|
|
24
|
+
UP_ARROW = "ArrowUp",
|
|
25
|
+
RIGHT_ARROW = "ArrowRight",
|
|
26
|
+
DOWN_ARROW = "ArrowDown",
|
|
27
|
+
INSERT = "Insert",
|
|
28
|
+
DELETE = "Delete",
|
|
29
|
+
SPACE = "Space"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const createKeyboardEvent = (evt: any): KeyboardEvent => {
|
|
33
|
+
const code = (SpecialKey as any)[evt.code] != null ? evt.keyCode : evt.code;
|
|
34
|
+
return new KeyboardEvent(code, evt);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default class KeyboardEvent extends EventBase {
|
|
38
|
+
key: string;
|
|
39
|
+
event: any;
|
|
40
|
+
|
|
41
|
+
static IsSpecialKey(event: any): boolean {
|
|
42
|
+
return (SpecialKey as any)[event.code] != null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
constructor(key: string, event: any) {
|
|
46
|
+
super();
|
|
47
|
+
this.key = key;
|
|
48
|
+
this.event = event;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
get isSpecialKey(): boolean {
|
|
52
|
+
return KeyboardEvent.IsSpecialKey(this.event);
|
|
53
|
+
}
|
|
54
|
+
}
|
package/src/app/Bg2MouseEvent.ts
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
import { getMouseEventOffset } from "./Canvas";
|
|
2
|
-
import EventBase from "./EventBase";
|
|
3
|
-
|
|
4
|
-
export enum MouseButton {
|
|
5
|
-
LEFT = 0,
|
|
6
|
-
MIDDLE = 1,
|
|
7
|
-
RIGHT = 2,
|
|
8
|
-
NONE = -1
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export enum MouseButtonEventType {
|
|
12
|
-
NONE = 0,
|
|
13
|
-
UP = 1,
|
|
14
|
-
DOWN = 2
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const createMouseEvent = (evt: any, mainLoop: any, buttonType: MouseButtonEventType): MouseEvent => {
|
|
18
|
-
mainLoop.mouseStatus.pos = getMouseEventOffset(evt, mainLoop.canvas);
|
|
19
|
-
if (buttonType !== MouseButtonEventType.NONE) {
|
|
20
|
-
const buttonStatus = buttonType === MouseButtonEventType.DOWN;
|
|
21
|
-
if (evt.button === MouseButton.LEFT) {
|
|
22
|
-
mainLoop.mouseStatus.leftButton = buttonStatus;
|
|
23
|
-
}
|
|
24
|
-
else if (evt.button === MouseButton.MIDDLE) {
|
|
25
|
-
mainLoop.mouseStatus.middleButton = buttonStatus;
|
|
26
|
-
}
|
|
27
|
-
else if (evt.button === MouseButton.RIGHT) {
|
|
28
|
-
mainLoop.mouseStatus.rightButton = buttonStatus;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return new MouseEvent(evt.button, mainLoop.mouseStatus.pos.x, mainLoop.mouseStatus.pos.y, 0, evt);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const g_mouseButtons: boolean[] = [false, false, false];
|
|
36
|
-
export const leftMouseButton = (): boolean => {
|
|
37
|
-
return g_mouseButtons[0];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export const middleMouseButton = (): boolean => {
|
|
41
|
-
return g_mouseButtons[1];
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export const rightMouseButton = (): boolean => {
|
|
45
|
-
return g_mouseButtons[2];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export const clearMouseButtons = (): void => {
|
|
49
|
-
g_mouseButtons[0] = false;
|
|
50
|
-
g_mouseButtons[1] = false;
|
|
51
|
-
g_mouseButtons[2] = false;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export const setMouseButton = (event: any, status: boolean): void => {
|
|
55
|
-
switch (event.button) {
|
|
56
|
-
case MouseButton.LEFT:
|
|
57
|
-
g_mouseButtons[0] = status;
|
|
58
|
-
break;
|
|
59
|
-
case MouseButton.MIDDLE:
|
|
60
|
-
g_mouseButtons[1] = status;
|
|
61
|
-
break;
|
|
62
|
-
case MouseButton.RIGHT:
|
|
63
|
-
g_mouseButtons[2] = status;
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
export default class MouseEvent extends EventBase {
|
|
68
|
-
button: MouseButton;
|
|
69
|
-
x: number;
|
|
70
|
-
y: number;
|
|
71
|
-
delta: number;
|
|
72
|
-
event: any;
|
|
73
|
-
|
|
74
|
-
constructor(button: MouseButton = MouseButton.NONE, x: number = -1, y: number = -1, delta: number = 0, event: any = null) {
|
|
75
|
-
super();
|
|
76
|
-
this.button = button;
|
|
77
|
-
this.x = x;
|
|
78
|
-
this.y = y;
|
|
79
|
-
this.delta = delta;
|
|
80
|
-
this.event = event;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
1
|
+
import { getMouseEventOffset } from "./Canvas";
|
|
2
|
+
import EventBase from "./EventBase";
|
|
3
|
+
|
|
4
|
+
export enum MouseButton {
|
|
5
|
+
LEFT = 0,
|
|
6
|
+
MIDDLE = 1,
|
|
7
|
+
RIGHT = 2,
|
|
8
|
+
NONE = -1
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export enum MouseButtonEventType {
|
|
12
|
+
NONE = 0,
|
|
13
|
+
UP = 1,
|
|
14
|
+
DOWN = 2
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const createMouseEvent = (evt: any, mainLoop: any, buttonType: MouseButtonEventType): MouseEvent => {
|
|
18
|
+
mainLoop.mouseStatus.pos = getMouseEventOffset(evt, mainLoop.canvas);
|
|
19
|
+
if (buttonType !== MouseButtonEventType.NONE) {
|
|
20
|
+
const buttonStatus = buttonType === MouseButtonEventType.DOWN;
|
|
21
|
+
if (evt.button === MouseButton.LEFT) {
|
|
22
|
+
mainLoop.mouseStatus.leftButton = buttonStatus;
|
|
23
|
+
}
|
|
24
|
+
else if (evt.button === MouseButton.MIDDLE) {
|
|
25
|
+
mainLoop.mouseStatus.middleButton = buttonStatus;
|
|
26
|
+
}
|
|
27
|
+
else if (evt.button === MouseButton.RIGHT) {
|
|
28
|
+
mainLoop.mouseStatus.rightButton = buttonStatus;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return new MouseEvent(evt.button, mainLoop.mouseStatus.pos.x, mainLoop.mouseStatus.pos.y, 0, evt);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const g_mouseButtons: boolean[] = [false, false, false];
|
|
36
|
+
export const leftMouseButton = (): boolean => {
|
|
37
|
+
return g_mouseButtons[0];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const middleMouseButton = (): boolean => {
|
|
41
|
+
return g_mouseButtons[1];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const rightMouseButton = (): boolean => {
|
|
45
|
+
return g_mouseButtons[2];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const clearMouseButtons = (): void => {
|
|
49
|
+
g_mouseButtons[0] = false;
|
|
50
|
+
g_mouseButtons[1] = false;
|
|
51
|
+
g_mouseButtons[2] = false;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const setMouseButton = (event: any, status: boolean): void => {
|
|
55
|
+
switch (event.button) {
|
|
56
|
+
case MouseButton.LEFT:
|
|
57
|
+
g_mouseButtons[0] = status;
|
|
58
|
+
break;
|
|
59
|
+
case MouseButton.MIDDLE:
|
|
60
|
+
g_mouseButtons[1] = status;
|
|
61
|
+
break;
|
|
62
|
+
case MouseButton.RIGHT:
|
|
63
|
+
g_mouseButtons[2] = status;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export default class MouseEvent extends EventBase {
|
|
68
|
+
button: MouseButton;
|
|
69
|
+
x: number;
|
|
70
|
+
y: number;
|
|
71
|
+
delta: number;
|
|
72
|
+
event: any;
|
|
73
|
+
|
|
74
|
+
constructor(button: MouseButton = MouseButton.NONE, x: number = -1, y: number = -1, delta: number = 0, event: any = null) {
|
|
75
|
+
super();
|
|
76
|
+
this.button = button;
|
|
77
|
+
this.x = x;
|
|
78
|
+
this.y = y;
|
|
79
|
+
this.delta = delta;
|
|
80
|
+
this.event = event;
|
|
81
|
+
}
|
|
82
|
+
}
|
package/src/app/Bg2TouchEvent.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { getEventTouches } from "./Canvas";
|
|
2
|
-
import EventBase from "./EventBase";
|
|
3
|
-
|
|
4
|
-
export const createTouchEvent = (evt: any, mainLoop: any): TouchEvent => {
|
|
5
|
-
const touches = getEventTouches(evt,mainLoop.canvas);
|
|
6
|
-
return new TouchEvent(touches, evt);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export default class TouchEvent extends EventBase {
|
|
10
|
-
touches: any;
|
|
11
|
-
event: any;
|
|
12
|
-
|
|
13
|
-
constructor(touches: any, event: any) {
|
|
14
|
-
super();
|
|
15
|
-
this.touches = touches;
|
|
16
|
-
this.event = event;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
1
|
+
import { getEventTouches } from "./Canvas";
|
|
2
|
+
import EventBase from "./EventBase";
|
|
3
|
+
|
|
4
|
+
export const createTouchEvent = (evt: any, mainLoop: any): TouchEvent => {
|
|
5
|
+
const touches = getEventTouches(evt,mainLoop.canvas);
|
|
6
|
+
return new TouchEvent(touches, evt);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export default class TouchEvent extends EventBase {
|
|
10
|
+
touches: any;
|
|
11
|
+
event: any;
|
|
12
|
+
|
|
13
|
+
constructor(touches: any, event: any) {
|
|
14
|
+
super();
|
|
15
|
+
this.touches = touches;
|
|
16
|
+
this.event = event;
|
|
17
|
+
}
|
|
18
|
+
}
|