bg2e-js 2.1.1 → 2.2.0

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 (147) hide show
  1. package/dist/bg2e-js.js +7031 -6989
  2. package/dist/bg2e-js.js.map +1 -1
  3. package/package.json +20 -2
  4. package/src/app/AppController.ts +39 -0
  5. package/src/app/Bg2KeyboardEvent.ts +54 -0
  6. package/src/app/Bg2MouseEvent.ts +82 -0
  7. package/src/app/Bg2TouchEvent.ts +18 -0
  8. package/src/app/Canvas.ts +108 -0
  9. package/src/app/EventBase.ts +10 -0
  10. package/src/app/MainLoop.ts +273 -0
  11. package/src/app/index.ts +25 -0
  12. package/src/base/Color.ts +134 -0
  13. package/src/base/Environment.ts +183 -0
  14. package/src/base/Light.ts +192 -0
  15. package/src/base/Material.ts +616 -0
  16. package/src/base/PolyList.ts +365 -0
  17. package/src/base/Texture.ts +620 -0
  18. package/src/base/index.ts +81 -0
  19. package/src/db/Bg2LoaderPlugin.ts +129 -0
  20. package/src/db/DBPluginApi.ts +48 -0
  21. package/src/db/Loader.ts +116 -0
  22. package/src/db/LoaderPlugin.ts +34 -0
  23. package/src/db/MtlParser.ts +7 -0
  24. package/src/db/ObjLoaderPlugin.ts +55 -0
  25. package/src/db/ObjParser.ts +252 -0
  26. package/src/db/ObjWriterPlugin.ts +19 -0
  27. package/src/db/VitscnjLoaderPlugin.ts +100 -0
  28. package/src/db/Writer.ts +52 -0
  29. package/src/db/WriterPlugin.ts +22 -0
  30. package/src/db/index.ts +44 -0
  31. package/src/debug/DebugRenderer.ts +173 -0
  32. package/src/debug/WebGLTextureViewer.ts +75 -0
  33. package/src/debug/index.ts +7 -0
  34. package/src/index.html +11 -0
  35. package/src/index.ts +33 -0
  36. package/src/manipulation/SelectionBuffer.ts +82 -0
  37. package/src/manipulation/SelectionHighlight.ts +85 -0
  38. package/src/manipulation/SelectionIdAssignVisitor.ts +97 -0
  39. package/src/manipulation/SelectionManager.ts +166 -0
  40. package/src/manipulation/SelectionMode.ts +6 -0
  41. package/src/math/Mat3.ts +259 -0
  42. package/src/math/Mat4.ts +706 -0
  43. package/src/math/MatrixStrategy.ts +25 -0
  44. package/src/math/Quat.ts +65 -0
  45. package/src/math/Vec.ts +753 -0
  46. package/src/math/constants.ts +47 -0
  47. package/src/math/functions.ts +103 -0
  48. package/src/math/index.ts +74 -0
  49. package/src/phsics/joint.ts +137 -0
  50. package/src/primitives/arrow.ts +58 -0
  51. package/src/primitives/cone.ts +138 -0
  52. package/src/primitives/cube.ts +60 -0
  53. package/src/primitives/cylinder.ts +216 -0
  54. package/src/primitives/index.ts +13 -0
  55. package/src/primitives/plane.ts +31 -0
  56. package/src/primitives/sphere.ts +809 -0
  57. package/src/render/BRDFIntegrationMap.ts +4 -0
  58. package/src/render/Environment.ts +136 -0
  59. package/src/render/FrameBuffer.ts +35 -0
  60. package/src/render/MaterialRenderer.ts +34 -0
  61. package/src/render/Pipeline.ts +109 -0
  62. package/src/render/PolyListRenderer.ts +47 -0
  63. package/src/render/RenderBuffer.ts +197 -0
  64. package/src/render/RenderQueue.ts +199 -0
  65. package/src/render/RenderState.ts +116 -0
  66. package/src/render/Renderer.ts +248 -0
  67. package/src/render/SceneAppController.ts +238 -0
  68. package/src/render/SceneRenderer.ts +373 -0
  69. package/src/render/Shader.ts +32 -0
  70. package/src/render/ShadowRenderer.ts +176 -0
  71. package/src/render/SkyCube.ts +106 -0
  72. package/src/render/SkySphere.ts +118 -0
  73. package/src/render/TextureMergerRenderer.ts +70 -0
  74. package/src/render/TextureRenderer.ts +34 -0
  75. package/src/render/index.ts +67 -0
  76. package/src/render/webgl/FrameBuffer.ts +10 -0
  77. package/src/render/webgl/MaterialRenderer.ts +113 -0
  78. package/src/render/webgl/Pipeline.ts +89 -0
  79. package/src/render/webgl/PolyListRenderer.ts +260 -0
  80. package/src/render/webgl/RenderBuffer.ts +227 -0
  81. package/src/render/webgl/Renderer.ts +262 -0
  82. package/src/render/webgl/SceneRenderer.ts +68 -0
  83. package/src/render/webgl/ShaderProgram.ts +424 -0
  84. package/src/render/webgl/ShadowRenderer.ts +6 -0
  85. package/src/render/webgl/SkyCube.ts +16 -0
  86. package/src/render/webgl/SkySphere.ts +16 -0
  87. package/src/render/webgl/State.ts +152 -0
  88. package/src/render/webgl/TextureRenderer.ts +167 -0
  89. package/src/render/webgl/VertexBuffer.ts +137 -0
  90. package/src/render/webgl/index.ts +35 -0
  91. package/src/scene/Camera.ts +458 -0
  92. package/src/scene/Chain.ts +44 -0
  93. package/src/scene/ChainJoint.ts +58 -0
  94. package/src/scene/Component.ts +173 -0
  95. package/src/scene/ComponentMap.ts +107 -0
  96. package/src/scene/Drawable.ts +154 -0
  97. package/src/scene/EnvironmentComponent.ts +142 -0
  98. package/src/scene/FindNodeVisitor.ts +60 -0
  99. package/src/scene/LightComponent.ts +155 -0
  100. package/src/scene/MatrixState.ts +46 -0
  101. package/src/scene/Node.ts +314 -0
  102. package/src/scene/NodeVisitor.ts +15 -0
  103. package/src/scene/OrbitCameraController.ts +450 -0
  104. package/src/scene/SmoothOrbitCameraController.ts +99 -0
  105. package/src/scene/Transform.ts +73 -0
  106. package/src/scene/index.ts +57 -0
  107. package/src/shaders/BasicDiffuseColorShader.ts +111 -0
  108. package/src/shaders/BasicPBRLightShader.ts +277 -0
  109. package/src/shaders/DebugRenderShader.ts +98 -0
  110. package/src/shaders/DepthRenderShader.ts +91 -0
  111. package/src/shaders/IrradianceMapCubeShader.ts +116 -0
  112. package/src/shaders/PBRLightIBLShader.ts +487 -0
  113. package/src/shaders/PickSelectionShader.ts +101 -0
  114. package/src/shaders/PresentDebugFramebufferShader.ts +118 -0
  115. package/src/shaders/PresentTextureShader.ts +99 -0
  116. package/src/shaders/SelectionHighlightShader.ts +127 -0
  117. package/src/shaders/ShaderFunction.ts +318 -0
  118. package/src/shaders/SkyCubeShader.ts +94 -0
  119. package/src/shaders/SkySphereShader.ts +102 -0
  120. package/src/shaders/SpecularMapCubeShader.ts +165 -0
  121. package/src/shaders/TextureMergerShader.ts +171 -0
  122. package/src/shaders/index.ts +37 -0
  123. package/src/shaders/webgl/color_correction.glsl +47 -0
  124. package/src/shaders/webgl/constants.glsl +6 -0
  125. package/src/shaders/webgl/index.ts +70 -0
  126. package/src/shaders/webgl/normal_map.glsl +9 -0
  127. package/src/shaders/webgl/pbr.glsl +173 -0
  128. package/src/shaders/webgl/uniforms.glsl +91 -0
  129. package/src/shaders/webgl_shader_lib.ts +213 -0
  130. package/src/tools/BinaryResourceProvider.ts +14 -0
  131. package/src/tools/ImageResourceProvider.ts +66 -0
  132. package/src/tools/MaterialModifier.ts +276 -0
  133. package/src/tools/Resource.ts +203 -0
  134. package/src/tools/ResourceProvider.ts +69 -0
  135. package/src/tools/TextResourceProvider.ts +24 -0
  136. package/src/tools/TextureCache.ts +52 -0
  137. package/src/tools/TextureResourceDatabase.ts +100 -0
  138. package/src/tools/UserAgent.ts +362 -0
  139. package/src/tools/VideoResourceProvider.ts +50 -0
  140. package/src/tools/WriteStrategy.ts +22 -0
  141. package/src/tools/base64.ts +11 -0
  142. package/src/tools/crypto.ts +19 -0
  143. package/src/tools/endiantess.ts +13 -0
  144. package/src/tools/image.ts +18 -0
  145. package/src/tools/index.ts +41 -0
  146. package/src/tools/processType.ts +38 -0
  147. package/src/vite-env.d.ts +12 -0
@@ -0,0 +1,216 @@
1
+ import ObjParser from "../db/ObjParser";
2
+ import PolyList from "../base/PolyList";
3
+
4
+ const objData = (height: number, radius: number) => {
5
+ return `mtllib cylinder.mtl
6
+ o Cylinder
7
+ v ${radius * 0.000000} ${height * -0.500000} ${radius * -1.000000}
8
+ v ${radius * 0.000000} ${height * 0.500000} ${radius * -1.000000}
9
+ v ${radius * 0.309017} ${height * -0.500000} ${radius * -0.951057}
10
+ v ${radius * 0.309017} ${height * 0.500000} ${radius * -0.951057}
11
+ v ${radius * 0.587785} ${height * -0.500000} ${radius * -0.809017}
12
+ v ${radius * 0.587785} ${height * 0.500000} ${radius * -0.809017}
13
+ v ${radius * 0.809017} ${height * -0.500000} ${radius * -0.587785}
14
+ v ${radius * 0.809017} ${height * 0.500000} ${radius * -0.587785}
15
+ v ${radius * 0.951057} ${height * -0.500000} ${radius * -0.309017}
16
+ v ${radius * 0.951057} ${height * 0.500000} ${radius * -0.309017}
17
+ v ${radius * 1.000000} ${height * -0.500000} ${radius * 0.000000}
18
+ v ${radius * 1.000000} ${height * 0.500000} ${radius * 0.000000}
19
+ v ${radius * 0.951056} ${height * -0.500000} ${radius * 0.309017}
20
+ v ${radius * 0.951056} ${height * 0.500000} ${radius * 0.309017}
21
+ v ${radius * 0.809017} ${height * -0.500000} ${radius * 0.587785}
22
+ v ${radius * 0.809017} ${height * 0.500000} ${radius * 0.587785}
23
+ v ${radius * 0.587785} ${height * -0.500000} ${radius * 0.809017}
24
+ v ${radius * 0.587785} ${height * 0.500000} ${radius * 0.809017}
25
+ v ${radius * 0.309017} ${height * -0.500000} ${radius * 0.951056}
26
+ v ${radius * 0.309017} ${height * 0.500000} ${radius * 0.951056}
27
+ v ${radius * -0.000000} ${height * -0.500000} ${radius * 1.000000}
28
+ v ${radius * -0.000000} ${height * 0.500000} ${radius * 1.000000}
29
+ v ${radius * -0.309017} ${height * -0.500000} ${radius * 0.951057}
30
+ v ${radius * -0.309017} ${height * 0.500000} ${radius * 0.951057}
31
+ v ${radius * -0.587785} ${height * -0.500000} ${radius * 0.809017}
32
+ v ${radius * -0.587785} ${height * 0.500000} ${radius * 0.809017}
33
+ v ${radius * -0.809017} ${height * -0.500000} ${radius * 0.587785}
34
+ v ${radius * -0.809017} ${height * 0.500000} ${radius * 0.587785}
35
+ v ${radius * -0.951056} ${height * -0.500000} ${radius * 0.309017}
36
+ v ${radius * -0.951056} ${height * 0.500000} ${radius * 0.309017}
37
+ v ${radius * -1.000000} ${height * -0.500000} ${radius * -0.000000}
38
+ v ${radius * -1.000000} ${height * 0.500000} ${radius * -0.000000}
39
+ v ${radius * -0.951056} ${height * -0.500000} ${radius * -0.309017}
40
+ v ${radius * -0.951056} ${height * 0.500000} ${radius * -0.309017}
41
+ v ${radius * -0.809017} ${height * -0.500000} ${radius * -0.587785}
42
+ v ${radius * -0.809017} ${height * 0.500000} ${radius * -0.587785}
43
+ v ${radius * -0.587785} ${height * -0.500000} ${radius * -0.809017}
44
+ v ${radius * -0.587785} ${height * 0.500000} ${radius * -0.809017}
45
+ v ${radius * -0.309017} ${height * -0.500000} ${radius * -0.951057}
46
+ v ${radius * -0.309017} ${height * 0.500000} ${radius * -0.951057}
47
+ vn -0.0000 -0.0000 -1.0000
48
+ vn 0.3090 -0.0000 -0.9511
49
+ vn 0.5878 -0.0000 -0.8090
50
+ vn 0.8090 -0.0000 -0.5878
51
+ vn 0.9511 -0.0000 -0.3090
52
+ vn 1.0000 -0.0000 -0.0000
53
+ vn 0.9511 -0.0000 0.3090
54
+ vn 0.8090 -0.0000 0.5878
55
+ vn 0.5878 -0.0000 0.8090
56
+ vn 0.3090 -0.0000 0.9511
57
+ vn -0.0000 -0.0000 1.0000
58
+ vn -0.3090 -0.0000 0.9511
59
+ vn -0.5878 -0.0000 0.8090
60
+ vn -0.8090 -0.0000 0.5878
61
+ vn -0.9511 -0.0000 0.3090
62
+ vn -1.0000 -0.0000 -0.0000
63
+ vn -0.9511 -0.0000 -0.3090
64
+ vn -0.8090 -0.0000 -0.5878
65
+ vn -0.5878 -0.0000 -0.8090
66
+ vn -0.0000 1.0000 -0.0000
67
+ vn -0.3090 -0.0000 -0.9511
68
+ vn -0.0000 -1.0000 -0.0000
69
+ vt 1.000000 0.500000
70
+ vt -0.000000 0.500000
71
+ vt 0.750000 0.490000
72
+ vt 1.000000 1.000000
73
+ vt -0.000000 1.000000
74
+ vt 0.250000 0.490000
75
+ vt 0.950000 0.500000
76
+ vt 0.824164 0.478254
77
+ vt 0.950000 1.000000
78
+ vt 0.324164 0.478254
79
+ vt 0.900000 0.500000
80
+ vt 0.891068 0.444164
81
+ vt 0.900000 1.000000
82
+ vt 0.391068 0.444164
83
+ vt 0.850000 0.500000
84
+ vt 0.944164 0.391068
85
+ vt 0.850000 1.000000
86
+ vt 0.444164 0.391068
87
+ vt 0.800000 0.500000
88
+ vt 0.978254 0.324164
89
+ vt 0.800000 1.000000
90
+ vt 0.478254 0.324164
91
+ vt 0.750000 0.500000
92
+ vt 0.990000 0.250000
93
+ vt 0.750000 1.000000
94
+ vt 0.490000 0.250000
95
+ vt 0.700000 0.500000
96
+ vt 0.978254 0.175836
97
+ vt 0.700000 1.000000
98
+ vt 0.478254 0.175836
99
+ vt 0.650000 0.500000
100
+ vt 0.944164 0.108932
101
+ vt 0.650000 1.000000
102
+ vt 0.444164 0.108932
103
+ vt 0.600000 0.500000
104
+ vt 0.891068 0.055836
105
+ vt 0.600000 1.000000
106
+ vt 0.391068 0.055836
107
+ vt 0.550000 0.500000
108
+ vt 0.824164 0.021746
109
+ vt 0.550000 1.000000
110
+ vt 0.324164 0.021746
111
+ vt 0.500000 0.500000
112
+ vt 0.750000 0.010000
113
+ vt 0.500000 1.000000
114
+ vt 0.250000 0.010000
115
+ vt 0.450000 0.500000
116
+ vt 0.675836 0.021746
117
+ vt 0.450000 1.000000
118
+ vt 0.175836 0.021746
119
+ vt 0.400000 0.500000
120
+ vt 0.608932 0.055836
121
+ vt 0.400000 1.000000
122
+ vt 0.108932 0.055836
123
+ vt 0.350000 0.500000
124
+ vt 0.555836 0.108932
125
+ vt 0.350000 1.000000
126
+ vt 0.055836 0.108932
127
+ vt 0.300000 0.500000
128
+ vt 0.521746 0.175836
129
+ vt 0.300000 1.000000
130
+ vt 0.021746 0.175836
131
+ vt 0.250000 0.500000
132
+ vt 0.510000 0.250000
133
+ vt 0.250000 1.000000
134
+ vt 0.010000 0.250000
135
+ vt 0.200000 0.500000
136
+ vt 0.521746 0.324164
137
+ vt 0.200000 1.000000
138
+ vt 0.021746 0.324164
139
+ vt 0.150000 0.500000
140
+ vt 0.555836 0.391068
141
+ vt 0.150000 1.000000
142
+ vt 0.055836 0.391068
143
+ vt 0.100000 0.500000
144
+ vt 0.608932 0.444164
145
+ vt 0.100000 1.000000
146
+ vt 0.108932 0.444164
147
+ vt 0.050000 0.500000
148
+ vt 0.675836 0.478254
149
+ vt 0.050000 1.000000
150
+ vt 0.175836 0.478254
151
+ s 1
152
+ usemtl Cylinder
153
+ f 1/1/1 2/4/1 4/9/2 3/7/2
154
+ f 3/7/2 4/9/2 6/13/3 5/11/3
155
+ f 5/11/3 6/13/3 8/17/4 7/15/4
156
+ f 7/15/4 8/17/4 10/21/5 9/19/5
157
+ f 9/19/5 10/21/5 12/25/6 11/23/6
158
+ f 11/23/6 12/25/6 14/29/7 13/27/7
159
+ f 13/27/7 14/29/7 16/33/8 15/31/8
160
+ f 15/31/8 16/33/8 18/37/9 17/35/9
161
+ f 17/35/9 18/37/9 20/41/10 19/39/10
162
+ f 19/39/10 20/41/10 22/45/11 21/43/11
163
+ f 21/43/11 22/45/11 24/49/12 23/47/12
164
+ f 23/47/12 24/49/12 26/53/13 25/51/13
165
+ f 25/51/13 26/53/13 28/57/14 27/55/14
166
+ f 27/55/14 28/57/14 30/61/15 29/59/15
167
+ f 29/59/15 30/61/15 32/65/16 31/63/16
168
+ f 31/63/16 32/65/16 34/69/17 33/67/17
169
+ f 33/67/17 34/69/17 36/73/18 35/71/18
170
+ f 35/71/18 36/73/18 38/77/19 37/75/19
171
+ f 30/62/20 14/30/20 6/14/20
172
+ f 37/75/19 38/77/19 40/81/21 39/79/21
173
+ f 39/79/21 40/81/21 2/5/1 1/2/1
174
+ f 7/16/22 15/32/22 31/64/22
175
+ f 6/14/20 4/10/20 2/6/20
176
+ f 2/6/20 40/82/20 38/78/20
177
+ f 38/78/20 36/74/20 34/70/20
178
+ f 34/70/20 32/66/20 30/62/20
179
+ f 30/62/20 28/58/20 22/46/20
180
+ f 28/58/20 26/54/20 22/46/20
181
+ f 26/54/20 24/50/20 22/46/20
182
+ f 22/46/20 20/42/20 14/30/20
183
+ f 20/42/20 18/38/20 14/30/20
184
+ f 18/38/20 16/34/20 14/30/20
185
+ f 14/30/20 12/26/20 10/22/20
186
+ f 10/22/20 8/18/20 14/30/20
187
+ f 8/18/20 6/14/20 14/30/20
188
+ f 6/14/20 2/6/20 38/78/20
189
+ f 38/78/20 34/70/20 6/14/20
190
+ f 34/70/20 30/62/20 6/14/20
191
+ f 30/62/20 22/46/20 14/30/20
192
+ f 39/80/22 1/3/22 3/8/22
193
+ f 3/8/22 5/12/22 39/80/22
194
+ f 5/12/22 7/16/22 39/80/22
195
+ f 7/16/22 9/20/22 15/32/22
196
+ f 9/20/22 11/24/22 15/32/22
197
+ f 11/24/22 13/28/22 15/32/22
198
+ f 15/32/22 17/36/22 23/48/22
199
+ f 17/36/22 19/40/22 23/48/22
200
+ f 19/40/22 21/44/22 23/48/22
201
+ f 23/48/22 25/52/22 27/56/22
202
+ f 27/56/22 29/60/22 31/64/22
203
+ f 31/64/22 33/68/22 35/72/22
204
+ f 35/72/22 37/76/22 31/64/22
205
+ f 37/76/22 39/80/22 31/64/22
206
+ f 23/48/22 27/56/22 15/32/22
207
+ f 27/56/22 31/64/22 15/32/22
208
+ f 39/80/22 7/16/22 31/64/22
209
+ `;
210
+ };
211
+
212
+ export default function cylinder(height: number, radius: number): PolyList {
213
+ const objTextData = objData(height,radius);
214
+ const parser = new ObjParser(objTextData);
215
+ return parser.polyListArray[0];
216
+ }
@@ -0,0 +1,13 @@
1
+ import cube from './cube';
2
+ import sphere from './sphere';
3
+ import cylinder from './cylinder';
4
+ import cone from './cone';
5
+ import plane from './plane';
6
+ import arrow from './arrow';
7
+
8
+ export const createCube = cube;
9
+ export const createSphere = sphere;
10
+ export const createCylinder = cylinder;
11
+ export const createCone = cone;
12
+ export const createPlane = plane;
13
+ export const createArrow = arrow;
@@ -0,0 +1,31 @@
1
+ import PolyList, { DrawMode } from "../base/PolyList";
2
+
3
+ export default function plane(w: number, d: number): PolyList {
4
+ const plist = new PolyList();
5
+ const w2 = w / 2;
6
+ const d2 = d / 2;
7
+ plist.vertex = [
8
+ -w2, 0, -d2,
9
+ w2, 0, -d2,
10
+ w2, 0, d2,
11
+ -w2, 0, d2
12
+ ];
13
+ plist.normal = [
14
+ 0, 1, 0,
15
+ 0, 1, 0,
16
+ 0, 1, 0,
17
+ 0, 1, 0
18
+ ];
19
+ plist.texCoord0 = [
20
+ 0, 1,
21
+ 1, 1,
22
+ 1, 0,
23
+ 0, 0
24
+ ];
25
+ plist.index = [
26
+ 0, 3, 2,
27
+ 2, 1, 0
28
+ ];
29
+ plist.drawMode = DrawMode.TRIANGLES;
30
+ return plist;
31
+ }