minerender 2.0.0-alpha.2 → 2.0.0-alpha.3

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 (283) hide show
  1. package/package.json +4 -4
  2. package/dist/cjs/AnimatorFunction.d.ts +0 -3
  3. package/dist/cjs/AnimatorFunction.js +0 -3
  4. package/dist/cjs/AnimatorFunction.js.map +0 -1
  5. package/dist/cjs/Axis.d.ts +0 -8
  6. package/dist/cjs/Axis.js +0 -23
  7. package/dist/cjs/Axis.js.map +0 -1
  8. package/dist/cjs/CubeFace.d.ts +0 -17
  9. package/dist/cjs/CubeFace.js +0 -23
  10. package/dist/cjs/CubeFace.js.map +0 -1
  11. package/dist/cjs/Disposable.d.ts +0 -4
  12. package/dist/cjs/Disposable.js +0 -8
  13. package/dist/cjs/Disposable.js.map +0 -1
  14. package/dist/cjs/Env.d.ts +0 -2
  15. package/dist/cjs/Env.js +0 -7
  16. package/dist/cjs/Env.js.map +0 -1
  17. package/dist/cjs/ExtractableImageData.d.ts +0 -5
  18. package/dist/cjs/ExtractableImageData.js +0 -3
  19. package/dist/cjs/ExtractableImageData.js.map +0 -1
  20. package/dist/cjs/Geometries.d.ts +0 -6
  21. package/dist/cjs/Geometries.js +0 -92
  22. package/dist/cjs/Geometries.js.map +0 -1
  23. package/dist/cjs/ListAsset.d.ts +0 -5
  24. package/dist/cjs/ListAsset.js +0 -3
  25. package/dist/cjs/ListAsset.js.map +0 -1
  26. package/dist/cjs/Materials.d.ts +0 -9
  27. package/dist/cjs/Materials.js +0 -151
  28. package/dist/cjs/Materials.js.map +0 -1
  29. package/dist/cjs/Meshes.d.ts +0 -6
  30. package/dist/cjs/Meshes.js +0 -21
  31. package/dist/cjs/Meshes.js.map +0 -1
  32. package/dist/cjs/MinecraftAsset.d.ts +0 -7
  33. package/dist/cjs/MinecraftAsset.js +0 -3
  34. package/dist/cjs/MinecraftAsset.js.map +0 -1
  35. package/dist/cjs/MinecraftCubeTexture.d.ts +0 -26
  36. package/dist/cjs/MinecraftCubeTexture.js +0 -104
  37. package/dist/cjs/MinecraftCubeTexture.js.map +0 -1
  38. package/dist/cjs/MinecraftTextureMeta.d.ts +0 -15
  39. package/dist/cjs/MinecraftTextureMeta.js +0 -3
  40. package/dist/cjs/MinecraftTextureMeta.js.map +0 -1
  41. package/dist/cjs/SceneStats.d.ts +0 -5
  42. package/dist/cjs/SceneStats.js +0 -12
  43. package/dist/cjs/SceneStats.js.map +0 -1
  44. package/dist/cjs/Serializable.d.ts +0 -3
  45. package/dist/cjs/Serializable.js +0 -3
  46. package/dist/cjs/Serializable.js.map +0 -1
  47. package/dist/cjs/Ticker.d.ts +0 -20
  48. package/dist/cjs/Ticker.js +0 -55
  49. package/dist/cjs/Ticker.js.map +0 -1
  50. package/dist/cjs/TintColors.d.ts +0 -1
  51. package/dist/cjs/TintColors.js +0 -5
  52. package/dist/cjs/TintColors.js.map +0 -1
  53. package/dist/cjs/Transformable.d.ts +0 -11
  54. package/dist/cjs/Transformable.js +0 -8
  55. package/dist/cjs/Transformable.js.map +0 -1
  56. package/dist/cjs/UVMapper.d.ts +0 -40
  57. package/dist/cjs/UVMapper.js +0 -434
  58. package/dist/cjs/UVMapper.js.map +0 -1
  59. package/dist/cjs/WrappedImage.d.ts +0 -17
  60. package/dist/cjs/WrappedImage.js +0 -50
  61. package/dist/cjs/WrappedImage.js.map +0 -1
  62. package/dist/cjs/_model/Cube.d.ts +0 -10
  63. package/dist/cjs/_model/Cube.js +0 -3
  64. package/dist/cjs/_model/Cube.js.map +0 -1
  65. package/dist/cjs/_model/Element.d.ts +0 -9
  66. package/dist/cjs/_model/Element.js +0 -3
  67. package/dist/cjs/_model/Element.js.map +0 -1
  68. package/dist/cjs/_model/Face.d.ts +0 -6
  69. package/dist/cjs/_model/Face.js +0 -3
  70. package/dist/cjs/_model/Face.js.map +0 -1
  71. package/dist/cjs/_model/Model.d.ts +0 -4
  72. package/dist/cjs/_model/Model.js +0 -3
  73. package/dist/cjs/_model/Model.js.map +0 -1
  74. package/dist/cjs/assets/AssetKey.d.ts +0 -26
  75. package/dist/cjs/assets/AssetKey.js +0 -83
  76. package/dist/cjs/assets/AssetKey.js.map +0 -1
  77. package/dist/cjs/assets/AssetLoader.d.ts +0 -26
  78. package/dist/cjs/assets/AssetLoader.js +0 -153
  79. package/dist/cjs/assets/AssetLoader.js.map +0 -1
  80. package/dist/cjs/assets/Assets.d.ts +0 -14
  81. package/dist/cjs/assets/Assets.js +0 -37
  82. package/dist/cjs/assets/Assets.js.map +0 -1
  83. package/dist/cjs/assets/BlockStates.d.ts +0 -11
  84. package/dist/cjs/assets/BlockStates.js +0 -75
  85. package/dist/cjs/assets/BlockStates.js.map +0 -1
  86. package/dist/cjs/assets/Entities.d.ts +0 -8
  87. package/dist/cjs/assets/Entities.js +0 -57
  88. package/dist/cjs/assets/Entities.js.map +0 -1
  89. package/dist/cjs/assets/ModelTextures.d.ts +0 -12
  90. package/dist/cjs/assets/ModelTextures.js +0 -66
  91. package/dist/cjs/assets/ModelTextures.js.map +0 -1
  92. package/dist/cjs/assets/Models.d.ts +0 -12
  93. package/dist/cjs/assets/Models.js +0 -95
  94. package/dist/cjs/assets/Models.js.map +0 -1
  95. package/dist/cjs/bedrock/BedrockEntityDescription.d.ts +0 -19
  96. package/dist/cjs/bedrock/BedrockEntityDescription.js +0 -3
  97. package/dist/cjs/bedrock/BedrockEntityDescription.js.map +0 -1
  98. package/dist/cjs/bedrock/BedrockEntityFile.d.ts +0 -7
  99. package/dist/cjs/bedrock/BedrockEntityFile.js +0 -3
  100. package/dist/cjs/bedrock/BedrockEntityFile.js.map +0 -1
  101. package/dist/cjs/bedrock/BedrockGeometry.d.ts +0 -27
  102. package/dist/cjs/bedrock/BedrockGeometry.js +0 -3
  103. package/dist/cjs/bedrock/BedrockGeometry.js.map +0 -1
  104. package/dist/cjs/bedrock/BedrockGeometryFile.d.ts +0 -5
  105. package/dist/cjs/bedrock/BedrockGeometryFile.js +0 -3
  106. package/dist/cjs/bedrock/BedrockGeometryFile.js.map +0 -1
  107. package/dist/cjs/cache/CacheKey.d.ts +0 -28
  108. package/dist/cjs/cache/CacheKey.js +0 -27
  109. package/dist/cjs/cache/CacheKey.js.map +0 -1
  110. package/dist/cjs/cache/Caching.d.ts +0 -29
  111. package/dist/cjs/cache/Caching.js +0 -93
  112. package/dist/cjs/cache/Caching.js.map +0 -1
  113. package/dist/cjs/cache/PersistentCache.d.ts +0 -15
  114. package/dist/cjs/cache/PersistentCache.js +0 -112
  115. package/dist/cjs/cache/PersistentCache.js.map +0 -1
  116. package/dist/cjs/canvas/CanvasCompat.d.ts +0 -5
  117. package/dist/cjs/canvas/CanvasCompat.js +0 -53
  118. package/dist/cjs/canvas/CanvasCompat.js.map +0 -1
  119. package/dist/cjs/canvas/CanvasImage.d.ts +0 -18
  120. package/dist/cjs/canvas/CanvasImage.js +0 -45
  121. package/dist/cjs/canvas/CanvasImage.js.map +0 -1
  122. package/dist/cjs/entity/EntityModel.d.ts +0 -7
  123. package/dist/cjs/entity/EntityModel.js +0 -3
  124. package/dist/cjs/entity/EntityModel.js.map +0 -1
  125. package/dist/cjs/entity/blockEntityModels.json +0 -1401
  126. package/dist/cjs/entity/entityModels.json +0 -20623
  127. package/dist/cjs/entity/scene/EntityObject.d.ts +0 -20
  128. package/dist/cjs/entity/scene/EntityObject.js +0 -131
  129. package/dist/cjs/entity/scene/EntityObject.js.map +0 -1
  130. package/dist/cjs/error/MineRenderError.d.ts +0 -4
  131. package/dist/cjs/error/MineRenderError.js +0 -15
  132. package/dist/cjs/error/MineRenderError.js.map +0 -1
  133. package/dist/cjs/gui/scene/GuiObject.d.ts +0 -6
  134. package/dist/cjs/gui/scene/GuiObject.js +0 -8
  135. package/dist/cjs/gui/scene/GuiObject.js.map +0 -1
  136. package/dist/cjs/image/ImageLoader.d.ts +0 -28
  137. package/dist/cjs/image/ImageLoader.js +0 -166
  138. package/dist/cjs/image/ImageLoader.js.map +0 -1
  139. package/dist/cjs/index.d.ts +0 -28
  140. package/dist/cjs/index.js +0 -43
  141. package/dist/cjs/index.js.map +0 -1
  142. package/dist/cjs/inspector/SceneInspector.d.ts +0 -27
  143. package/dist/cjs/inspector/SceneInspector.js +0 -366
  144. package/dist/cjs/inspector/SceneInspector.js.map +0 -1
  145. package/dist/cjs/inspector/SceneStats.d.ts +0 -22
  146. package/dist/cjs/inspector/SceneStats.js +0 -53
  147. package/dist/cjs/inspector/SceneStats.js.map +0 -1
  148. package/dist/cjs/instance/InstanceManager.d.ts +0 -14
  149. package/dist/cjs/instance/InstanceManager.js +0 -58
  150. package/dist/cjs/instance/InstanceManager.js.map +0 -1
  151. package/dist/cjs/instance/InstanceReference.d.ts +0 -21
  152. package/dist/cjs/instance/InstanceReference.js +0 -49
  153. package/dist/cjs/instance/InstanceReference.js.map +0 -1
  154. package/dist/cjs/instance/Instanceable.d.ts +0 -16
  155. package/dist/cjs/instance/Instanceable.js +0 -8
  156. package/dist/cjs/instance/Instanceable.js.map +0 -1
  157. package/dist/cjs/lib/OrbitControls.d.ts +0 -64
  158. package/dist/cjs/lib/OrbitControls.js +0 -658
  159. package/dist/cjs/lib/OrbitControls.js.map +0 -1
  160. package/dist/cjs/model/DisplayPosition.d.ts +0 -11
  161. package/dist/cjs/model/DisplayPosition.js +0 -16
  162. package/dist/cjs/model/DisplayPosition.js.map +0 -1
  163. package/dist/cjs/model/ElementFace.d.ts +0 -9
  164. package/dist/cjs/model/ElementFace.js +0 -3
  165. package/dist/cjs/model/ElementFace.js.map +0 -1
  166. package/dist/cjs/model/GuiLight.d.ts +0 -4
  167. package/dist/cjs/model/GuiLight.js +0 -9
  168. package/dist/cjs/model/GuiLight.js.map +0 -1
  169. package/dist/cjs/model/Model.d.ts +0 -46
  170. package/dist/cjs/model/Model.js +0 -20
  171. package/dist/cjs/model/Model.js.map +0 -1
  172. package/dist/cjs/model/ModelElement.d.ts +0 -21
  173. package/dist/cjs/model/ModelElement.js +0 -3
  174. package/dist/cjs/model/ModelElement.js.map +0 -1
  175. package/dist/cjs/model/ModelGenerator.d.ts +0 -6
  176. package/dist/cjs/model/ModelGenerator.js +0 -27
  177. package/dist/cjs/model/ModelGenerator.js.map +0 -1
  178. package/dist/cjs/model/ModelMerger.d.ts +0 -5
  179. package/dist/cjs/model/ModelMerger.js +0 -51
  180. package/dist/cjs/model/ModelMerger.js.map +0 -1
  181. package/dist/cjs/model/ModelPart.d.ts +0 -23
  182. package/dist/cjs/model/ModelPart.js +0 -3
  183. package/dist/cjs/model/ModelPart.js.map +0 -1
  184. package/dist/cjs/model/block/Block.d.ts +0 -6
  185. package/dist/cjs/model/block/Block.js +0 -3
  186. package/dist/cjs/model/block/Block.js.map +0 -1
  187. package/dist/cjs/model/block/BlockState.d.ts +0 -23
  188. package/dist/cjs/model/block/BlockState.js +0 -3
  189. package/dist/cjs/model/block/BlockState.js.map +0 -1
  190. package/dist/cjs/model/block/BlockStateProperties.d.ts +0 -13
  191. package/dist/cjs/model/block/BlockStateProperties.js +0 -3
  192. package/dist/cjs/model/block/BlockStateProperties.js.map +0 -1
  193. package/dist/cjs/model/block/scene/BlockObject.d.ts +0 -46
  194. package/dist/cjs/model/block/scene/BlockObject.js +0 -468
  195. package/dist/cjs/model/block/scene/BlockObject.js.map +0 -1
  196. package/dist/cjs/model/defaultBlockStates.json +0 -12337
  197. package/dist/cjs/model/multiblock/MultiBlockStructure.d.ts +0 -9
  198. package/dist/cjs/model/multiblock/MultiBlockStructure.js +0 -3
  199. package/dist/cjs/model/multiblock/MultiBlockStructure.js.map +0 -1
  200. package/dist/cjs/model/multiblock/SchematicParser.d.ts +0 -4
  201. package/dist/cjs/model/multiblock/SchematicParser.js +0 -23
  202. package/dist/cjs/model/multiblock/SchematicParser.js.map +0 -1
  203. package/dist/cjs/model/multiblock/StructureParser.d.ts +0 -70
  204. package/dist/cjs/model/multiblock/StructureParser.js +0 -52
  205. package/dist/cjs/model/multiblock/StructureParser.js.map +0 -1
  206. package/dist/cjs/model/scene/ModelObject.d.ts +0 -25
  207. package/dist/cjs/model/scene/ModelObject.js +0 -163
  208. package/dist/cjs/model/scene/ModelObject.js.map +0 -1
  209. package/dist/cjs/nbt/NBTHelper.d.ts +0 -8
  210. package/dist/cjs/nbt/NBTHelper.js +0 -42
  211. package/dist/cjs/nbt/NBTHelper.js.map +0 -1
  212. package/dist/cjs/renderer/MineRenderScene.d.ts +0 -35
  213. package/dist/cjs/renderer/MineRenderScene.js +0 -132
  214. package/dist/cjs/renderer/MineRenderScene.js.map +0 -1
  215. package/dist/cjs/renderer/Renderer.d.ts +0 -83
  216. package/dist/cjs/renderer/Renderer.js +0 -267
  217. package/dist/cjs/renderer/Renderer.js.map +0 -1
  218. package/dist/cjs/renderer/SceneObject.d.ts +0 -81
  219. package/dist/cjs/renderer/SceneObject.js +0 -400
  220. package/dist/cjs/renderer/SceneObject.js.map +0 -1
  221. package/dist/cjs/renderer/SceneObjectOptions.d.ts +0 -6
  222. package/dist/cjs/renderer/SceneObjectOptions.js +0 -3
  223. package/dist/cjs/renderer/SceneObjectOptions.js.map +0 -1
  224. package/dist/cjs/request/Requests.d.ts +0 -12
  225. package/dist/cjs/request/Requests.js +0 -39
  226. package/dist/cjs/request/Requests.js.map +0 -1
  227. package/dist/cjs/skin/SkinGeometries.d.ts +0 -5
  228. package/dist/cjs/skin/SkinGeometries.js +0 -39
  229. package/dist/cjs/skin/SkinGeometries.js.map +0 -1
  230. package/dist/cjs/skin/SkinPart.d.ts +0 -16
  231. package/dist/cjs/skin/SkinPart.js +0 -21
  232. package/dist/cjs/skin/SkinPart.js.map +0 -1
  233. package/dist/cjs/skin/SkinTextureCoordinates.d.ts +0 -5
  234. package/dist/cjs/skin/SkinTextureCoordinates.js +0 -751
  235. package/dist/cjs/skin/SkinTextureCoordinates.js.map +0 -1
  236. package/dist/cjs/skin/Skins.d.ts +0 -17
  237. package/dist/cjs/skin/Skins.js +0 -168
  238. package/dist/cjs/skin/Skins.js.map +0 -1
  239. package/dist/cjs/skin/scene/SkinObject.d.ts +0 -21
  240. package/dist/cjs/skin/scene/SkinObject.js +0 -119
  241. package/dist/cjs/skin/scene/SkinObject.js.map +0 -1
  242. package/dist/cjs/texture/TextureAtlas.d.ts +0 -29
  243. package/dist/cjs/texture/TextureAtlas.js +0 -26
  244. package/dist/cjs/texture/TextureAtlas.js.map +0 -1
  245. package/dist/cjs/texture/TextureLoader.d.ts +0 -6
  246. package/dist/cjs/texture/TextureLoader.js +0 -34
  247. package/dist/cjs/texture/TextureLoader.js.map +0 -1
  248. package/dist/cjs/texture/Textures.d.ts +0 -10
  249. package/dist/cjs/texture/Textures.js +0 -52
  250. package/dist/cjs/texture/Textures.js.map +0 -1
  251. package/dist/cjs/three/BufferGeometryUtils.d.ts +0 -44
  252. package/dist/cjs/three/BufferGeometryUtils.js +0 -554
  253. package/dist/cjs/three/BufferGeometryUtils.js.map +0 -1
  254. package/dist/cjs/three/OrbitControls.d.ts +0 -59
  255. package/dist/cjs/three/OrbitControls.js +0 -790
  256. package/dist/cjs/three/OrbitControls.js.map +0 -1
  257. package/dist/cjs/util/BatchedExecutor.d.ts +0 -12
  258. package/dist/cjs/util/BatchedExecutor.js +0 -26
  259. package/dist/cjs/util/BatchedExecutor.js.map +0 -1
  260. package/dist/cjs/util/log.d.ts +0 -1
  261. package/dist/cjs/util/log.js +0 -32
  262. package/dist/cjs/util/log.js.map +0 -1
  263. package/dist/cjs/util/model.d.ts +0 -11
  264. package/dist/cjs/util/model.js +0 -182
  265. package/dist/cjs/util/model.js.map +0 -1
  266. package/dist/cjs/util/performance.d.ts +0 -3
  267. package/dist/cjs/util/performance.js +0 -19
  268. package/dist/cjs/util/performance.js.map +0 -1
  269. package/dist/cjs/util/three.d.ts +0 -8
  270. package/dist/cjs/util/three.js +0 -28
  271. package/dist/cjs/util/three.js.map +0 -1
  272. package/dist/cjs/util/util.d.ts +0 -19
  273. package/dist/cjs/util/util.js +0 -143
  274. package/dist/cjs/util/util.js.map +0 -1
  275. package/dist/cjs/world/BlockInfo.d.ts +0 -6
  276. package/dist/cjs/world/BlockInfo.js +0 -3
  277. package/dist/cjs/world/BlockInfo.js.map +0 -1
  278. package/dist/cjs/world/Chunk.d.ts +0 -33
  279. package/dist/cjs/world/Chunk.js +0 -132
  280. package/dist/cjs/world/Chunk.js.map +0 -1
  281. package/dist/cjs/world/MineRenderWorld.d.ts +0 -31
  282. package/dist/cjs/world/MineRenderWorld.js +0 -133
  283. package/dist/cjs/world/MineRenderWorld.js.map +0 -1
@@ -1,790 +0,0 @@
1
- "use strict";
2
- /// https://github.com/mrdoob/three.js/blob/dev/examples/jsm/controls/OrbitControls.js
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.MapControls = exports.OrbitControls = void 0;
5
- const three_1 = require("three");
6
- // This set of controls performs orbiting, dollying (zooming), and panning.
7
- // Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default).
8
- //
9
- // Orbit - left mouse / touch: one-finger move
10
- // Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
11
- // Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move
12
- const _changeEvent = { type: 'change' };
13
- const _startEvent = { type: 'start' };
14
- const _endEvent = { type: 'end' };
15
- class OrbitControls extends three_1.EventDispatcher {
16
- constructor(object, domElement) {
17
- super();
18
- if (domElement === undefined)
19
- console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.');
20
- if (domElement === document)
21
- console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.');
22
- this.object = object;
23
- this.domElement = domElement;
24
- this.domElement.style.touchAction = 'none'; // disable touch scroll
25
- // Set to false to disable this control
26
- this.enabled = true;
27
- // "target" sets the location of focus, where the object orbits around
28
- this.target = new three_1.Vector3();
29
- // How far you can dolly in and out ( PerspectiveCamera only )
30
- this.minDistance = 0;
31
- this.maxDistance = Infinity;
32
- // How far you can zoom in and out ( OrthographicCamera only )
33
- this.minZoom = 0;
34
- this.maxZoom = Infinity;
35
- // How far you can orbit vertically, upper and lower limits.
36
- // Range is 0 to Math.PI radians.
37
- this.minPolarAngle = 0; // radians
38
- this.maxPolarAngle = Math.PI; // radians
39
- // How far you can orbit horizontally, upper and lower limits.
40
- // If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )
41
- this.minAzimuthAngle = -Infinity; // radians
42
- this.maxAzimuthAngle = Infinity; // radians
43
- // Set to true to enable damping (inertia)
44
- // If damping is enabled, you must call controls.update() in your animation loop
45
- this.enableDamping = false;
46
- this.dampingFactor = 0.05;
47
- // This option actually enables dollying in and out; left as "zoom" for backwards compatibility.
48
- // Set to false to disable zooming
49
- this.enableZoom = true;
50
- this.zoomSpeed = 1.0;
51
- // Set to false to disable rotating
52
- this.enableRotate = true;
53
- this.rotateSpeed = 1.0;
54
- // Set to false to disable panning
55
- this.enablePan = true;
56
- this.panSpeed = 1.0;
57
- this.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up
58
- this.keyPanSpeed = 7.0; // pixels moved per arrow key push
59
- // Set to true to automatically rotate around the target
60
- // If auto-rotate is enabled, you must call controls.update() in your animation loop
61
- this.autoRotate = false;
62
- this.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60
63
- // The four arrow keys
64
- this.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' };
65
- // Mouse buttons
66
- this.mouseButtons = { LEFT: three_1.MOUSE.ROTATE, MIDDLE: three_1.MOUSE.DOLLY, RIGHT: three_1.MOUSE.PAN };
67
- // Touch fingers
68
- this.touches = { ONE: three_1.TOUCH.ROTATE, TWO: three_1.TOUCH.DOLLY_PAN };
69
- // for reset
70
- this.target0 = this.target.clone();
71
- this.position0 = this.object.position.clone();
72
- this.zoom0 = this.object.zoom;
73
- // the target DOM element for key events
74
- this._domElementKeyEvents = null;
75
- //
76
- // public methods
77
- //
78
- this.getPolarAngle = function () {
79
- return spherical.phi;
80
- };
81
- this.getAzimuthalAngle = function () {
82
- return spherical.theta;
83
- };
84
- this.getDistance = function () {
85
- return this.object.position.distanceTo(this.target);
86
- };
87
- // typescript compile doesn't like this for reasons
88
- // this.listenToKeyEvents = function ( domElement ) {
89
- //
90
- // domElement.addEventListener( 'keydown', onKeyDown );
91
- // this._domElementKeyEvents = domElement;
92
- //
93
- // };
94
- this.saveState = function () {
95
- scope.target0.copy(scope.target);
96
- scope.position0.copy(scope.object.position);
97
- scope.zoom0 = scope.object.zoom;
98
- };
99
- this.reset = function () {
100
- scope.target.copy(scope.target0);
101
- scope.object.position.copy(scope.position0);
102
- scope.object.zoom = scope.zoom0;
103
- scope.object.updateProjectionMatrix();
104
- scope.dispatchEvent(_changeEvent);
105
- scope.update();
106
- state = STATE.NONE;
107
- };
108
- // this method is exposed, but perhaps it would be better if we can make it private...
109
- this.update = function () {
110
- const offset = new three_1.Vector3();
111
- // so camera.up is the orbit axis
112
- const quat = new three_1.Quaternion().setFromUnitVectors(object.up, new three_1.Vector3(0, 1, 0));
113
- const quatInverse = quat.clone().invert();
114
- const lastPosition = new three_1.Vector3();
115
- const lastQuaternion = new three_1.Quaternion();
116
- const twoPI = 2 * Math.PI;
117
- return function update() {
118
- const position = scope.object.position;
119
- offset.copy(position).sub(scope.target);
120
- // rotate offset to "y-axis-is-up" space
121
- offset.applyQuaternion(quat);
122
- // angle from z-axis around y-axis
123
- spherical.setFromVector3(offset);
124
- if (scope.autoRotate && state === STATE.NONE) {
125
- rotateLeft(getAutoRotationAngle());
126
- }
127
- if (scope.enableDamping) {
128
- spherical.theta += sphericalDelta.theta * scope.dampingFactor;
129
- spherical.phi += sphericalDelta.phi * scope.dampingFactor;
130
- }
131
- else {
132
- spherical.theta += sphericalDelta.theta;
133
- spherical.phi += sphericalDelta.phi;
134
- }
135
- // restrict theta to be between desired limits
136
- let min = scope.minAzimuthAngle;
137
- let max = scope.maxAzimuthAngle;
138
- if (isFinite(min) && isFinite(max)) {
139
- if (min < -Math.PI)
140
- min += twoPI;
141
- else if (min > Math.PI)
142
- min -= twoPI;
143
- if (max < -Math.PI)
144
- max += twoPI;
145
- else if (max > Math.PI)
146
- max -= twoPI;
147
- if (min <= max) {
148
- spherical.theta = Math.max(min, Math.min(max, spherical.theta));
149
- }
150
- else {
151
- spherical.theta = (spherical.theta > (min + max) / 2) ?
152
- Math.max(min, spherical.theta) :
153
- Math.min(max, spherical.theta);
154
- }
155
- }
156
- // restrict phi to be between desired limits
157
- spherical.phi = Math.max(scope.minPolarAngle, Math.min(scope.maxPolarAngle, spherical.phi));
158
- spherical.makeSafe();
159
- spherical.radius *= scale;
160
- // restrict radius to be between desired limits
161
- spherical.radius = Math.max(scope.minDistance, Math.min(scope.maxDistance, spherical.radius));
162
- // move target to panned location
163
- if (scope.enableDamping === true) {
164
- scope.target.addScaledVector(panOffset, scope.dampingFactor);
165
- }
166
- else {
167
- scope.target.add(panOffset);
168
- }
169
- offset.setFromSpherical(spherical);
170
- // rotate offset back to "camera-up-vector-is-up" space
171
- offset.applyQuaternion(quatInverse);
172
- position.copy(scope.target).add(offset);
173
- scope.object.lookAt(scope.target);
174
- if (scope.enableDamping === true) {
175
- sphericalDelta.theta *= (1 - scope.dampingFactor);
176
- sphericalDelta.phi *= (1 - scope.dampingFactor);
177
- panOffset.multiplyScalar(1 - scope.dampingFactor);
178
- }
179
- else {
180
- sphericalDelta.set(0, 0, 0);
181
- panOffset.set(0, 0, 0);
182
- }
183
- scale = 1;
184
- // update condition is:
185
- // min(camera displacement, camera rotation in radians)^2 > EPS
186
- // using small-angle approximation cos(x/2) = 1 - x^2 / 8
187
- if (zoomChanged ||
188
- lastPosition.distanceToSquared(scope.object.position) > EPS ||
189
- 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS) {
190
- scope.dispatchEvent(_changeEvent);
191
- lastPosition.copy(scope.object.position);
192
- lastQuaternion.copy(scope.object.quaternion);
193
- zoomChanged = false;
194
- return true;
195
- }
196
- return false;
197
- };
198
- }();
199
- this.dispose = function () {
200
- scope.domElement.removeEventListener('contextmenu', onContextMenu);
201
- scope.domElement.removeEventListener('pointerdown', onPointerDown);
202
- scope.domElement.removeEventListener('pointercancel', onPointerCancel);
203
- scope.domElement.removeEventListener('wheel', onMouseWheel);
204
- scope.domElement.removeEventListener('pointermove', onPointerMove);
205
- scope.domElement.removeEventListener('pointerup', onPointerUp);
206
- if (scope._domElementKeyEvents !== null) {
207
- scope._domElementKeyEvents.removeEventListener('keydown', onKeyDown);
208
- }
209
- //scope.dispatchEvent( { type: 'dispose' } ); // should this be added here?
210
- };
211
- //
212
- // internals
213
- //
214
- const scope = this;
215
- const STATE = {
216
- NONE: -1,
217
- ROTATE: 0,
218
- DOLLY: 1,
219
- PAN: 2,
220
- TOUCH_ROTATE: 3,
221
- TOUCH_PAN: 4,
222
- TOUCH_DOLLY_PAN: 5,
223
- TOUCH_DOLLY_ROTATE: 6
224
- };
225
- let state = STATE.NONE;
226
- const EPS = 0.000001;
227
- // current position in spherical coordinates
228
- const spherical = new three_1.Spherical();
229
- const sphericalDelta = new three_1.Spherical();
230
- let scale = 1;
231
- const panOffset = new three_1.Vector3();
232
- let zoomChanged = false;
233
- const rotateStart = new three_1.Vector2();
234
- const rotateEnd = new three_1.Vector2();
235
- const rotateDelta = new three_1.Vector2();
236
- const panStart = new three_1.Vector2();
237
- const panEnd = new three_1.Vector2();
238
- const panDelta = new three_1.Vector2();
239
- const dollyStart = new three_1.Vector2();
240
- const dollyEnd = new three_1.Vector2();
241
- const dollyDelta = new three_1.Vector2();
242
- const pointers = [];
243
- const pointerPositions = {};
244
- function getAutoRotationAngle() {
245
- return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;
246
- }
247
- function getZoomScale() {
248
- return Math.pow(0.95, scope.zoomSpeed);
249
- }
250
- function rotateLeft(angle) {
251
- sphericalDelta.theta -= angle;
252
- }
253
- function rotateUp(angle) {
254
- sphericalDelta.phi -= angle;
255
- }
256
- const panLeft = function () {
257
- const v = new three_1.Vector3();
258
- return function panLeft(distance, objectMatrix) {
259
- v.setFromMatrixColumn(objectMatrix, 0); // get X column of objectMatrix
260
- v.multiplyScalar(-distance);
261
- panOffset.add(v);
262
- };
263
- }();
264
- const panUp = function () {
265
- const v = new three_1.Vector3();
266
- return function panUp(distance, objectMatrix) {
267
- if (scope.screenSpacePanning === true) {
268
- v.setFromMatrixColumn(objectMatrix, 1);
269
- }
270
- else {
271
- v.setFromMatrixColumn(objectMatrix, 0);
272
- v.crossVectors(scope.object.up, v);
273
- }
274
- v.multiplyScalar(distance);
275
- panOffset.add(v);
276
- };
277
- }();
278
- // deltaX and deltaY are in pixels; right and down are positive
279
- const pan = function () {
280
- const offset = new three_1.Vector3();
281
- return function pan(deltaX, deltaY) {
282
- const element = scope.domElement;
283
- if (scope.object.isPerspectiveCamera) {
284
- // perspective
285
- const position = scope.object.position;
286
- offset.copy(position).sub(scope.target);
287
- let targetDistance = offset.length();
288
- // half of the fov is center to top of screen
289
- targetDistance *= Math.tan((scope.object.fov / 2) * Math.PI / 180.0);
290
- // we use only clientHeight here so aspect ratio does not distort speed
291
- panLeft(2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix);
292
- panUp(2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix);
293
- }
294
- else if (scope.object.isOrthographicCamera) {
295
- // orthographic
296
- panLeft(deltaX * (scope.object.right - scope.object.left) / scope.object.zoom / element.clientWidth, scope.object.matrix);
297
- panUp(deltaY * (scope.object.top - scope.object.bottom) / scope.object.zoom / element.clientHeight, scope.object.matrix);
298
- }
299
- else {
300
- // camera neither orthographic nor perspective
301
- console.warn('WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.');
302
- scope.enablePan = false;
303
- }
304
- };
305
- }();
306
- function dollyOut(dollyScale) {
307
- if (scope.object.isPerspectiveCamera) {
308
- scale /= dollyScale;
309
- }
310
- else if (scope.object.isOrthographicCamera) {
311
- scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom * dollyScale));
312
- scope.object.updateProjectionMatrix();
313
- zoomChanged = true;
314
- }
315
- else {
316
- console.warn('WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.');
317
- scope.enableZoom = false;
318
- }
319
- }
320
- function dollyIn(dollyScale) {
321
- if (scope.object.isPerspectiveCamera) {
322
- scale *= dollyScale;
323
- }
324
- else if (scope.object.isOrthographicCamera) {
325
- scope.object.zoom = Math.max(scope.minZoom, Math.min(scope.maxZoom, scope.object.zoom / dollyScale));
326
- scope.object.updateProjectionMatrix();
327
- zoomChanged = true;
328
- }
329
- else {
330
- console.warn('WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.');
331
- scope.enableZoom = false;
332
- }
333
- }
334
- //
335
- // event callbacks - update the object state
336
- //
337
- function handleMouseDownRotate(event) {
338
- rotateStart.set(event.clientX, event.clientY);
339
- }
340
- function handleMouseDownDolly(event) {
341
- dollyStart.set(event.clientX, event.clientY);
342
- }
343
- function handleMouseDownPan(event) {
344
- panStart.set(event.clientX, event.clientY);
345
- }
346
- function handleMouseMoveRotate(event) {
347
- rotateEnd.set(event.clientX, event.clientY);
348
- rotateDelta.subVectors(rotateEnd, rotateStart).multiplyScalar(scope.rotateSpeed);
349
- const element = scope.domElement;
350
- rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight); // yes, height
351
- rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight);
352
- rotateStart.copy(rotateEnd);
353
- scope.update();
354
- }
355
- function handleMouseMoveDolly(event) {
356
- dollyEnd.set(event.clientX, event.clientY);
357
- dollyDelta.subVectors(dollyEnd, dollyStart);
358
- if (dollyDelta.y > 0) {
359
- dollyOut(getZoomScale());
360
- }
361
- else if (dollyDelta.y < 0) {
362
- dollyIn(getZoomScale());
363
- }
364
- dollyStart.copy(dollyEnd);
365
- scope.update();
366
- }
367
- function handleMouseMovePan(event) {
368
- panEnd.set(event.clientX, event.clientY);
369
- panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed);
370
- pan(panDelta.x, panDelta.y);
371
- panStart.copy(panEnd);
372
- scope.update();
373
- }
374
- function handleMouseUp( /*event*/) {
375
- // no-op
376
- }
377
- function handleMouseWheel(event) {
378
- if (event.deltaY < 0) {
379
- dollyIn(getZoomScale());
380
- }
381
- else if (event.deltaY > 0) {
382
- dollyOut(getZoomScale());
383
- }
384
- scope.update();
385
- }
386
- function handleKeyDown(event) {
387
- let needsUpdate = false;
388
- switch (event.code) {
389
- case scope.keys.UP:
390
- pan(0, scope.keyPanSpeed);
391
- needsUpdate = true;
392
- break;
393
- case scope.keys.BOTTOM:
394
- pan(0, -scope.keyPanSpeed);
395
- needsUpdate = true;
396
- break;
397
- case scope.keys.LEFT:
398
- pan(scope.keyPanSpeed, 0);
399
- needsUpdate = true;
400
- break;
401
- case scope.keys.RIGHT:
402
- pan(-scope.keyPanSpeed, 0);
403
- needsUpdate = true;
404
- break;
405
- }
406
- if (needsUpdate) {
407
- // prevent the browser from scrolling on cursor keys
408
- event.preventDefault();
409
- scope.update();
410
- }
411
- }
412
- function handleTouchStartRotate() {
413
- if (pointers.length === 1) {
414
- rotateStart.set(pointers[0].pageX, pointers[0].pageY);
415
- }
416
- else {
417
- const x = 0.5 * (pointers[0].pageX + pointers[1].pageX);
418
- const y = 0.5 * (pointers[0].pageY + pointers[1].pageY);
419
- rotateStart.set(x, y);
420
- }
421
- }
422
- function handleTouchStartPan() {
423
- if (pointers.length === 1) {
424
- panStart.set(pointers[0].pageX, pointers[0].pageY);
425
- }
426
- else {
427
- const x = 0.5 * (pointers[0].pageX + pointers[1].pageX);
428
- const y = 0.5 * (pointers[0].pageY + pointers[1].pageY);
429
- panStart.set(x, y);
430
- }
431
- }
432
- function handleTouchStartDolly() {
433
- const dx = pointers[0].pageX - pointers[1].pageX;
434
- const dy = pointers[0].pageY - pointers[1].pageY;
435
- const distance = Math.sqrt(dx * dx + dy * dy);
436
- dollyStart.set(0, distance);
437
- }
438
- function handleTouchStartDollyPan() {
439
- if (scope.enableZoom)
440
- handleTouchStartDolly();
441
- if (scope.enablePan)
442
- handleTouchStartPan();
443
- }
444
- function handleTouchStartDollyRotate() {
445
- if (scope.enableZoom)
446
- handleTouchStartDolly();
447
- if (scope.enableRotate)
448
- handleTouchStartRotate();
449
- }
450
- function handleTouchMoveRotate(event) {
451
- if (pointers.length == 1) {
452
- rotateEnd.set(event.pageX, event.pageY);
453
- }
454
- else {
455
- const position = getSecondPointerPosition(event);
456
- const x = 0.5 * (event.pageX + position.x);
457
- const y = 0.5 * (event.pageY + position.y);
458
- rotateEnd.set(x, y);
459
- }
460
- rotateDelta.subVectors(rotateEnd, rotateStart).multiplyScalar(scope.rotateSpeed);
461
- const element = scope.domElement;
462
- rotateLeft(2 * Math.PI * rotateDelta.x / element.clientHeight); // yes, height
463
- rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight);
464
- rotateStart.copy(rotateEnd);
465
- }
466
- function handleTouchMovePan(event) {
467
- if (pointers.length === 1) {
468
- panEnd.set(event.pageX, event.pageY);
469
- }
470
- else {
471
- const position = getSecondPointerPosition(event);
472
- const x = 0.5 * (event.pageX + position.x);
473
- const y = 0.5 * (event.pageY + position.y);
474
- panEnd.set(x, y);
475
- }
476
- panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed);
477
- pan(panDelta.x, panDelta.y);
478
- panStart.copy(panEnd);
479
- }
480
- function handleTouchMoveDolly(event) {
481
- const position = getSecondPointerPosition(event);
482
- const dx = event.pageX - position.x;
483
- const dy = event.pageY - position.y;
484
- const distance = Math.sqrt(dx * dx + dy * dy);
485
- dollyEnd.set(0, distance);
486
- dollyDelta.set(0, Math.pow(dollyEnd.y / dollyStart.y, scope.zoomSpeed));
487
- dollyOut(dollyDelta.y);
488
- dollyStart.copy(dollyEnd);
489
- }
490
- function handleTouchMoveDollyPan(event) {
491
- if (scope.enableZoom)
492
- handleTouchMoveDolly(event);
493
- if (scope.enablePan)
494
- handleTouchMovePan(event);
495
- }
496
- function handleTouchMoveDollyRotate(event) {
497
- if (scope.enableZoom)
498
- handleTouchMoveDolly(event);
499
- if (scope.enableRotate)
500
- handleTouchMoveRotate(event);
501
- }
502
- function handleTouchEnd( /*event*/) {
503
- // no-op
504
- }
505
- //
506
- // event handlers - FSM: listen for events and reset state
507
- //
508
- function onPointerDown(event) {
509
- if (scope.enabled === false)
510
- return;
511
- if (pointers.length === 0) {
512
- scope.domElement.setPointerCapture(event.pointerId);
513
- scope.domElement.addEventListener('pointermove', onPointerMove);
514
- scope.domElement.addEventListener('pointerup', onPointerUp);
515
- }
516
- //
517
- addPointer(event);
518
- if (event.pointerType === 'touch') {
519
- onTouchStart(event);
520
- }
521
- else {
522
- onMouseDown(event);
523
- }
524
- }
525
- function onPointerMove(event) {
526
- if (scope.enabled === false)
527
- return;
528
- if (event.pointerType === 'touch') {
529
- onTouchMove(event);
530
- }
531
- else {
532
- onMouseMove(event);
533
- }
534
- }
535
- function onPointerUp(event) {
536
- if (scope.enabled === false)
537
- return;
538
- if (event.pointerType === 'touch') {
539
- onTouchEnd();
540
- }
541
- else {
542
- onMouseUp(event);
543
- }
544
- removePointer(event);
545
- //
546
- if (pointers.length === 0) {
547
- scope.domElement.releasePointerCapture(event.pointerId);
548
- scope.domElement.removeEventListener('pointermove', onPointerMove);
549
- scope.domElement.removeEventListener('pointerup', onPointerUp);
550
- }
551
- }
552
- function onPointerCancel(event) {
553
- removePointer(event);
554
- }
555
- function onMouseDown(event) {
556
- let mouseAction;
557
- switch (event.button) {
558
- case 0:
559
- mouseAction = scope.mouseButtons.LEFT;
560
- break;
561
- case 1:
562
- mouseAction = scope.mouseButtons.MIDDLE;
563
- break;
564
- case 2:
565
- mouseAction = scope.mouseButtons.RIGHT;
566
- break;
567
- default:
568
- mouseAction = -1;
569
- }
570
- switch (mouseAction) {
571
- case three_1.MOUSE.DOLLY:
572
- if (scope.enableZoom === false)
573
- return;
574
- handleMouseDownDolly(event);
575
- state = STATE.DOLLY;
576
- break;
577
- case three_1.MOUSE.ROTATE:
578
- if (event.ctrlKey || event.metaKey || event.shiftKey) {
579
- if (scope.enablePan === false)
580
- return;
581
- handleMouseDownPan(event);
582
- state = STATE.PAN;
583
- }
584
- else {
585
- if (scope.enableRotate === false)
586
- return;
587
- handleMouseDownRotate(event);
588
- state = STATE.ROTATE;
589
- }
590
- break;
591
- case three_1.MOUSE.PAN:
592
- if (event.ctrlKey || event.metaKey || event.shiftKey) {
593
- if (scope.enableRotate === false)
594
- return;
595
- handleMouseDownRotate(event);
596
- state = STATE.ROTATE;
597
- }
598
- else {
599
- if (scope.enablePan === false)
600
- return;
601
- handleMouseDownPan(event);
602
- state = STATE.PAN;
603
- }
604
- break;
605
- default:
606
- state = STATE.NONE;
607
- }
608
- if (state !== STATE.NONE) {
609
- scope.dispatchEvent(_startEvent);
610
- }
611
- }
612
- function onMouseMove(event) {
613
- if (scope.enabled === false)
614
- return;
615
- switch (state) {
616
- case STATE.ROTATE:
617
- if (scope.enableRotate === false)
618
- return;
619
- handleMouseMoveRotate(event);
620
- break;
621
- case STATE.DOLLY:
622
- if (scope.enableZoom === false)
623
- return;
624
- handleMouseMoveDolly(event);
625
- break;
626
- case STATE.PAN:
627
- if (scope.enablePan === false)
628
- return;
629
- handleMouseMovePan(event);
630
- break;
631
- }
632
- }
633
- function onMouseUp(event) {
634
- handleMouseUp(event);
635
- scope.dispatchEvent(_endEvent);
636
- state = STATE.NONE;
637
- }
638
- function onMouseWheel(event) {
639
- if (scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE)
640
- return;
641
- event.preventDefault();
642
- scope.dispatchEvent(_startEvent);
643
- handleMouseWheel(event);
644
- scope.dispatchEvent(_endEvent);
645
- }
646
- function onKeyDown(event) {
647
- if (scope.enabled === false || scope.enablePan === false)
648
- return;
649
- handleKeyDown(event);
650
- }
651
- function onTouchStart(event) {
652
- trackPointer(event);
653
- switch (pointers.length) {
654
- case 1:
655
- switch (scope.touches.ONE) {
656
- case three_1.TOUCH.ROTATE:
657
- if (scope.enableRotate === false)
658
- return;
659
- handleTouchStartRotate();
660
- state = STATE.TOUCH_ROTATE;
661
- break;
662
- case three_1.TOUCH.PAN:
663
- if (scope.enablePan === false)
664
- return;
665
- handleTouchStartPan();
666
- state = STATE.TOUCH_PAN;
667
- break;
668
- default:
669
- state = STATE.NONE;
670
- }
671
- break;
672
- case 2:
673
- switch (scope.touches.TWO) {
674
- case three_1.TOUCH.DOLLY_PAN:
675
- if (scope.enableZoom === false && scope.enablePan === false)
676
- return;
677
- handleTouchStartDollyPan();
678
- state = STATE.TOUCH_DOLLY_PAN;
679
- break;
680
- case three_1.TOUCH.DOLLY_ROTATE:
681
- if (scope.enableZoom === false && scope.enableRotate === false)
682
- return;
683
- handleTouchStartDollyRotate();
684
- state = STATE.TOUCH_DOLLY_ROTATE;
685
- break;
686
- default:
687
- state = STATE.NONE;
688
- }
689
- break;
690
- default:
691
- state = STATE.NONE;
692
- }
693
- if (state !== STATE.NONE) {
694
- scope.dispatchEvent(_startEvent);
695
- }
696
- }
697
- function onTouchMove(event) {
698
- trackPointer(event);
699
- switch (state) {
700
- case STATE.TOUCH_ROTATE:
701
- if (scope.enableRotate === false)
702
- return;
703
- handleTouchMoveRotate(event);
704
- scope.update();
705
- break;
706
- case STATE.TOUCH_PAN:
707
- if (scope.enablePan === false)
708
- return;
709
- handleTouchMovePan(event);
710
- scope.update();
711
- break;
712
- case STATE.TOUCH_DOLLY_PAN:
713
- if (scope.enableZoom === false && scope.enablePan === false)
714
- return;
715
- handleTouchMoveDollyPan(event);
716
- scope.update();
717
- break;
718
- case STATE.TOUCH_DOLLY_ROTATE:
719
- if (scope.enableZoom === false && scope.enableRotate === false)
720
- return;
721
- handleTouchMoveDollyRotate(event);
722
- scope.update();
723
- break;
724
- default:
725
- state = STATE.NONE;
726
- }
727
- }
728
- function onTouchEnd(event) {
729
- handleTouchEnd(event);
730
- scope.dispatchEvent(_endEvent);
731
- state = STATE.NONE;
732
- }
733
- function onContextMenu(event) {
734
- if (scope.enabled === false)
735
- return;
736
- event.preventDefault();
737
- }
738
- function addPointer(event) {
739
- pointers.push(event);
740
- }
741
- function removePointer(event) {
742
- delete pointerPositions[event.pointerId];
743
- for (let i = 0; i < pointers.length; i++) {
744
- if (pointers[i].pointerId == event.pointerId) {
745
- pointers.splice(i, 1);
746
- return;
747
- }
748
- }
749
- }
750
- function trackPointer(event) {
751
- let position = pointerPositions[event.pointerId];
752
- if (position === undefined) {
753
- position = new three_1.Vector2();
754
- pointerPositions[event.pointerId] = position;
755
- }
756
- position.set(event.pageX, event.pageY);
757
- }
758
- function getSecondPointerPosition(event) {
759
- const pointer = (event.pointerId === pointers[0].pointerId) ? pointers[1] : pointers[0];
760
- return pointerPositions[pointer.pointerId];
761
- }
762
- //
763
- scope.domElement.addEventListener('contextmenu', onContextMenu);
764
- scope.domElement.addEventListener('pointerdown', onPointerDown);
765
- scope.domElement.addEventListener('pointercancel', onPointerCancel);
766
- scope.domElement.addEventListener('wheel', onMouseWheel, { passive: false });
767
- // force an update at start
768
- this.update();
769
- }
770
- }
771
- exports.OrbitControls = OrbitControls;
772
- // This set of controls performs orbiting, dollying (zooming), and panning.
773
- // Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default).
774
- // This is very similar to OrbitControls, another set of touch behavior
775
- //
776
- // Orbit - right mouse, or left mouse + ctrl/meta/shiftKey / touch: two-finger rotate
777
- // Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
778
- // Pan - left mouse, or arrow keys / touch: one-finger move
779
- class MapControls extends OrbitControls {
780
- constructor(object, domElement) {
781
- super(object, domElement);
782
- this.screenSpacePanning = false; // pan orthogonal to world-space direction camera.up
783
- this.mouseButtons.LEFT = three_1.MOUSE.PAN;
784
- this.mouseButtons.RIGHT = three_1.MOUSE.ROTATE;
785
- this.touches.ONE = three_1.TOUCH.PAN;
786
- this.touches.TWO = three_1.TOUCH.DOLLY_ROTATE;
787
- }
788
- }
789
- exports.MapControls = MapControls;
790
- //# sourceMappingURL=OrbitControls.js.map