easy-three-utils 0.0.31 → 0.0.32

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 (153) hide show
  1. package/package.json +1 -1
  2. package/src/common/useLoader.ts +10 -10
  3. package/src/common/useWeather.ts +3 -3
  4. package/src/core/basic/control.ts +2 -1
  5. package/src/core/main.ts +30 -4
  6. package/src/utils/index.ts +5 -0
  7. package/src/utils/useZip.ts +66 -0
  8. package/tsconfig.json +1 -1
  9. /package/src/{draco → assets/draco}/README.md +0 -0
  10. /package/src/{draco → assets/draco}/draco_decoder.js +0 -0
  11. /package/src/{draco → assets/draco}/draco_decoder.wasm +0 -0
  12. /package/src/{draco → assets/draco}/draco_encoder.js +0 -0
  13. /package/src/{draco → assets/draco}/draco_wasm_wrapper.js +0 -0
  14. /package/src/{draco → assets/draco}/gltf/draco_decoder.js +0 -0
  15. /package/src/{draco → assets/draco}/gltf/draco_decoder.wasm +0 -0
  16. /package/src/{draco → assets/draco}/gltf/draco_encoder.js +0 -0
  17. /package/src/{draco → assets/draco}/gltf/draco_wasm_wrapper.js +0 -0
  18. /package/src/{shader → assets/shader}/snow.ts +0 -0
  19. /package/src/{tileRenderer → assets/tileRenderer}/base/Tile.d.ts +0 -0
  20. /package/src/{tileRenderer → assets/tileRenderer}/base/TileBase.d.ts +0 -0
  21. /package/src/{tileRenderer → assets/tileRenderer}/base/TileInternal.d.ts +0 -0
  22. /package/src/{tileRenderer → assets/tileRenderer}/base/TilesRendererBase.d.ts +0 -0
  23. /package/src/{tileRenderer → assets/tileRenderer}/base/TilesRendererBase.js +0 -0
  24. /package/src/{tileRenderer → assets/tileRenderer}/base/Tileset.d.ts +0 -0
  25. /package/src/{tileRenderer → assets/tileRenderer}/base/constants.d.ts +0 -0
  26. /package/src/{tileRenderer → assets/tileRenderer}/base/constants.js +0 -0
  27. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/B3DMLoaderBase.d.ts +0 -0
  28. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/B3DMLoaderBase.js +0 -0
  29. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/CMPTLoaderBase.d.ts +0 -0
  30. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/CMPTLoaderBase.js +0 -0
  31. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/I3DMLoaderBase.d.ts +0 -0
  32. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/I3DMLoaderBase.js +0 -0
  33. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/LoaderBase.d.ts +0 -0
  34. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/LoaderBase.js +0 -0
  35. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/PNTSLoaderBase.d.ts +0 -0
  36. /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/PNTSLoaderBase.js +0 -0
  37. /package/src/{tileRenderer → assets/tileRenderer}/base/plugins/ImplicitTilingPlugin.js +0 -0
  38. /package/src/{tileRenderer → assets/tileRenderer}/base/traverseFunctions.js +0 -0
  39. /package/src/{tileRenderer → assets/tileRenderer}/gltf.js +0 -0
  40. /package/src/{tileRenderer → assets/tileRenderer}/index.d.ts +0 -0
  41. /package/src/{tileRenderer → assets/tileRenderer}/index.js +0 -0
  42. /package/src/{tileRenderer → assets/tileRenderer}/plugins/README.md +0 -0
  43. /package/src/{tileRenderer → assets/tileRenderer}/plugins/base/ImplicitTilingPlugin.d.ts +0 -0
  44. /package/src/{tileRenderer → assets/tileRenderer}/plugins/base/ImplicitTilingPlugin.js +0 -0
  45. /package/src/{tileRenderer → assets/tileRenderer}/plugins/base/SUBTREELoader.js +0 -0
  46. /package/src/{tileRenderer → assets/tileRenderer}/plugins/index.d.ts +0 -0
  47. /package/src/{tileRenderer → assets/tileRenderer}/plugins/index.js +0 -0
  48. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/CesiumIonAuthPlugin.d.ts +0 -0
  49. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/CesiumIonAuthPlugin.js +0 -0
  50. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/DebugTilesPlugin.d.ts +0 -0
  51. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/DebugTilesPlugin.js +0 -0
  52. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GLTFExtensionsPlugin.d.ts +0 -0
  53. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GLTFExtensionsPlugin.js +0 -0
  54. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GoogleAttributionsManager.js +0 -0
  55. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GoogleCloudAuthPlugin.d.ts +0 -0
  56. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GoogleCloudAuthPlugin.js +0 -0
  57. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/ReorientationPlugin.d.ts +0 -0
  58. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/ReorientationPlugin.js +0 -0
  59. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/TileCompressionPlugin.d.ts +0 -0
  60. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/TileCompressionPlugin.js +0 -0
  61. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/UpdateOnChangePlugin.d.ts +0 -0
  62. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/UpdateOnChangePlugin.js +0 -0
  63. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/fade/FadeManager.js +0 -0
  64. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/fade/TilesFadePlugin.d.ts +0 -0
  65. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/fade/TilesFadePlugin.js +0 -0
  66. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFCesiumRTCExtension.d.ts +0 -0
  67. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFCesiumRTCExtension.js +0 -0
  68. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFMeshFeaturesExtension.d.ts +0 -0
  69. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFMeshFeaturesExtension.js +0 -0
  70. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFStructuralMetadataExtension.d.ts +0 -0
  71. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFStructuralMetadataExtension.js +0 -0
  72. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/ClassProperty.js +0 -0
  73. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/MeshFeatures.js +0 -0
  74. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/PropertyAttributeAccessor.js +0 -0
  75. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/PropertySetAccessor.js +0 -0
  76. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/PropertyTableAccessor.js +0 -0
  77. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/PropertyTextureAccessor.js +0 -0
  78. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/StructuralMetadata.js +0 -0
  79. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/math/Matrix2.js +0 -0
  80. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/utilities/ClassPropertyHelpers.js +0 -0
  81. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/utilities/TexCoordUtilities.js +0 -0
  82. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/utilities/TextureReadUtility.js +0 -0
  83. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/objects/EllipsoidRegionHelper.js +0 -0
  84. /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/objects/SphereHelper.js +0 -0
  85. /package/src/{tileRenderer → assets/tileRenderer}/r3f/README.md +0 -0
  86. /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/CameraControls.jsx +0 -0
  87. /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/CameraTransition.jsx +0 -0
  88. /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/CanvasDOMOverlay.jsx +0 -0
  89. /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/CompassGizmo.jsx +0 -0
  90. /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/TilesAttributionOverlay.jsx +0 -0
  91. /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/TilesRenderer.jsx +0 -0
  92. /package/src/{tileRenderer → assets/tileRenderer}/r3f/index.jsx +0 -0
  93. /package/src/{tileRenderer → assets/tileRenderer}/r3f/utilities/useForceUpdate.jsx +0 -0
  94. /package/src/{tileRenderer → assets/tileRenderer}/r3f/utilities/useObjectDep.jsx +0 -0
  95. /package/src/{tileRenderer → assets/tileRenderer}/r3f/utilities/useOptions.jsx +0 -0
  96. /package/src/{tileRenderer → assets/tileRenderer}/three/DebugTilesRenderer.d.ts +0 -0
  97. /package/src/{tileRenderer → assets/tileRenderer}/three/DebugTilesRenderer.js +0 -0
  98. /package/src/{tileRenderer → assets/tileRenderer}/three/TilesGroup.d.ts +0 -0
  99. /package/src/{tileRenderer → assets/tileRenderer}/three/TilesGroup.js +0 -0
  100. /package/src/{tileRenderer → assets/tileRenderer}/three/TilesRenderer.d.ts +0 -0
  101. /package/src/{tileRenderer → assets/tileRenderer}/three/TilesRenderer.js +0 -0
  102. /package/src/{tileRenderer → assets/tileRenderer}/three/controls/CameraTransitionManager.js +0 -0
  103. /package/src/{tileRenderer → assets/tileRenderer}/three/controls/EnvironmentControls.js +0 -0
  104. /package/src/{tileRenderer → assets/tileRenderer}/three/controls/GlobeControls.js +0 -0
  105. /package/src/{tileRenderer → assets/tileRenderer}/three/controls/PivotPointMesh.js +0 -0
  106. /package/src/{tileRenderer → assets/tileRenderer}/three/controls/PointerTracker.js +0 -0
  107. /package/src/{tileRenderer → assets/tileRenderer}/three/controls/utils.js +0 -0
  108. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/B3DMLoader.d.ts +0 -0
  109. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/B3DMLoader.js +0 -0
  110. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/CMPTLoader.d.ts +0 -0
  111. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/CMPTLoader.js +0 -0
  112. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/GLTFExtensionLoader.d.ts +0 -0
  113. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/GLTFExtensionLoader.js +0 -0
  114. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/I3DMLoader.d.ts +0 -0
  115. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/I3DMLoader.js +0 -0
  116. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/PNTSLoader.d.ts +0 -0
  117. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/PNTSLoader.js +0 -0
  118. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/gltf/GLTFCesiumRTCExtension.js +0 -0
  119. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/gltf/GLTFMeshFeaturesExtension.js +0 -0
  120. /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/gltf/GLTFStructuralMetadataExtension.js +0 -0
  121. /package/src/{tileRenderer → assets/tileRenderer}/three/math/Ellipsoid.d.ts +0 -0
  122. /package/src/{tileRenderer → assets/tileRenderer}/three/math/Ellipsoid.js +0 -0
  123. /package/src/{tileRenderer → assets/tileRenderer}/three/math/EllipsoidRegion.d.ts +0 -0
  124. /package/src/{tileRenderer → assets/tileRenderer}/three/math/EllipsoidRegion.js +0 -0
  125. /package/src/{tileRenderer → assets/tileRenderer}/three/math/ExtendedFrustum.js +0 -0
  126. /package/src/{tileRenderer → assets/tileRenderer}/three/math/GeoConstants.d.ts +0 -0
  127. /package/src/{tileRenderer → assets/tileRenderer}/three/math/GeoConstants.js +0 -0
  128. /package/src/{tileRenderer → assets/tileRenderer}/three/math/GeoUtils.d.ts +0 -0
  129. /package/src/{tileRenderer → assets/tileRenderer}/three/math/GeoUtils.js +0 -0
  130. /package/src/{tileRenderer → assets/tileRenderer}/three/math/OBB.js +0 -0
  131. /package/src/{tileRenderer → assets/tileRenderer}/three/math/TileBoundingVolume.js +0 -0
  132. /package/src/{tileRenderer → assets/tileRenderer}/three/plugins/CesiumIonAuthPlugin.js +0 -0
  133. /package/src/{tileRenderer → assets/tileRenderer}/three/plugins/DebugTilesPlugin.js +0 -0
  134. /package/src/{tileRenderer → assets/tileRenderer}/three/plugins/GoogleCloudAuthPlugin.js +0 -0
  135. /package/src/{tileRenderer → assets/tileRenderer}/three/raycastTraverse.js +0 -0
  136. /package/src/{tileRenderer → assets/tileRenderer}/three/renderers/CesiumIonTilesRenderer.d.ts +0 -0
  137. /package/src/{tileRenderer → assets/tileRenderer}/three/renderers/CesiumIonTilesRenderer.js +0 -0
  138. /package/src/{tileRenderer → assets/tileRenderer}/three/renderers/GoogleTilesRenderer.d.ts +0 -0
  139. /package/src/{tileRenderer → assets/tileRenderer}/three/renderers/GoogleTilesRenderer.js +0 -0
  140. /package/src/{tileRenderer → assets/tileRenderer}/three/utilities.js +0 -0
  141. /package/src/{tileRenderer → assets/tileRenderer}/utilities/BatchTable.d.ts +0 -0
  142. /package/src/{tileRenderer → assets/tileRenderer}/utilities/BatchTable.js +0 -0
  143. /package/src/{tileRenderer → assets/tileRenderer}/utilities/BatchTableHierarchyExtension.js +0 -0
  144. /package/src/{tileRenderer → assets/tileRenderer}/utilities/FeatureTable.d.ts +0 -0
  145. /package/src/{tileRenderer → assets/tileRenderer}/utilities/FeatureTable.js +0 -0
  146. /package/src/{tileRenderer → assets/tileRenderer}/utilities/LRUCache.d.ts +0 -0
  147. /package/src/{tileRenderer → assets/tileRenderer}/utilities/LRUCache.js +0 -0
  148. /package/src/{tileRenderer → assets/tileRenderer}/utilities/PriorityQueue.d.ts +0 -0
  149. /package/src/{tileRenderer → assets/tileRenderer}/utilities/PriorityQueue.js +0 -0
  150. /package/src/{tileRenderer → assets/tileRenderer}/utilities/arrayToString.js +0 -0
  151. /package/src/{tileRenderer → assets/tileRenderer}/utilities/readMagicBytes.js +0 -0
  152. /package/src/{tileRenderer → assets/tileRenderer}/utilities/rgb565torgb.js +0 -0
  153. /package/src/{tileRenderer → assets/tileRenderer}/utilities/urlExtension.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy-three-utils",
3
- "version": "0.0.31",
3
+ "version": "0.0.32",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -5,8 +5,8 @@ import { OBJLoader } from "three/examples/jsm/loaders/OBJLoader.js"
5
5
  import { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader.js'
6
6
  import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js'
7
7
  import { TGALoader } from 'three/examples/jsm/loaders/TGALoader.js'
8
- import { TilesRenderer } from '../tileRenderer'
9
- import { GoogleCloudAuthPlugin } from '../tileRenderer/plugins';
8
+ import { TilesRenderer } from '../assets/tileRenderer'
9
+ import { GoogleCloudAuthPlugin } from '../assets/tileRenderer/plugins';
10
10
  import { enableDefaultEvent, EDefaultEvent } from '../../index'
11
11
 
12
12
  interface IThreeLoaders {
@@ -44,7 +44,9 @@ const useLoader = () => {
44
44
  }
45
45
 
46
46
  const useFBXLoader = (url: string, callback: (object: THREE.Group & Record<'mixer', THREE.AnimationMixer>) => void, xhrCallback?: (xhr: ProgressEvent<EventTarget>) => void) => {
47
- setFBXLoader()
47
+ if (!threeLoaders.FBXLoader) {
48
+ setFBXLoader()
49
+ }
48
50
 
49
51
  threeLoaders.FBXLoader!.load(url, (object) => {
50
52
  object.traverse((child) => {
@@ -66,7 +68,7 @@ const useLoader = () => {
66
68
 
67
69
  const setGLTFLoader = () => {
68
70
  threeLoaders.DRACOLoader = new DRACOLoader()
69
- threeLoaders.DRACOLoader.setDecoderPath('/draco/gltf/');
71
+ threeLoaders.DRACOLoader.setDecoderPath('../assets/draco/gltf/');
70
72
  threeLoaders.DRACOLoader.preload()
71
73
 
72
74
  threeLoaders.GLTFLoader = new GLTFLoader()
@@ -126,13 +128,11 @@ const useLoader = () => {
126
128
  tilesRenderer.registerPlugin(new GoogleCloudAuthPlugin({ url: config.url }));
127
129
  tilesRenderer.setLatLonToYUp(config.lat * THREE.MathUtils.DEG2RAD, config.lon * THREE.MathUtils.DEG2RAD);
128
130
 
129
- const dracoLoader = new DRACOLoader();
130
- dracoLoader.setDecoderPath('../draco/gltf/');
131
-
132
- const loader = new GLTFLoader(tilesRenderer.manager);
133
- loader.setDRACOLoader(dracoLoader);
131
+ if (!threeLoaders.GLTFLoader) {
132
+ setGLTFLoader()
133
+ }
134
134
 
135
- tilesRenderer.manager.addHandler(/\.gltf$/, loader);
135
+ tilesRenderer.manager.addHandler(/\.gltf$/, threeLoaders.GLTFLoader!);
136
136
 
137
137
  enableDefaultEvent(EDefaultEvent.INSERTANIMATIONS, {
138
138
  cb() {
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three'
2
- import { snowVertexShader, snowFragmentShader } from '../shader/snow'
2
+ import { snowVertexShader, snowFragmentShader } from '../assets/shader/snow'
3
3
 
4
4
  enum EWeatherType {
5
5
  NORMAL = 'normal',
@@ -52,10 +52,10 @@ const useWeather = () => {
52
52
 
53
53
  switch (type) {
54
54
  case EWeatherType.NORMAL:
55
- config.scene.remove(snowGroup)
55
+ config.scene!.remove(snowGroup)
56
56
  break;
57
57
  case EWeatherType.SNOW:
58
- config.scene.add(snowGroup)
58
+ config.scene!.add(snowGroup)
59
59
  break;
60
60
  }
61
61
  }
@@ -11,6 +11,7 @@ export type TControl = {
11
11
  },
12
12
  minDistance: number;
13
13
  maxDistance: number;
14
+ enableDamping: boolean;
14
15
  minPolarAngle?: number;
15
16
  maxPolarAngle?: number;
16
17
  }
@@ -20,7 +21,7 @@ const createControl = (options: TControl) => {
20
21
  control.target.set(options.pos.x, options.pos.y, options.pos.z)
21
22
  control.minDistance = options.minDistance
22
23
  control.maxDistance = options.maxDistance
23
- control.enableDamping = true
24
+ control.enableDamping = options.enableDamping
24
25
  control.maxPolarAngle = options.maxPolarAngle ? options.maxPolarAngle : 3 * Math.PI / 8
25
26
  control.minPolarAngle = options.minPolarAngle ? options.minPolarAngle : 0
26
27
 
package/src/core/main.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as THREE from 'three'
2
2
  // import { AxesHelper, GridHelper, Line } from 'three'
3
- // import { TransformControlsGizmo, TransformControlsPlane } from 'three/examples/jsm/controls/TransformControls'
4
3
  import {
5
4
  createScene,
6
5
  createCamera,
@@ -36,6 +35,15 @@ interface ITHREEOptions {
36
35
  light: ILight;
37
36
  renderer: Omit<TRenderer, 'element'>;
38
37
  camera: TCamera;
38
+ optimization: {
39
+ motionBlur: {
40
+ enabled: Boolean;
41
+ value: number;
42
+ };
43
+ mouseMoveEvent: {
44
+ enabled: boolean;
45
+ };
46
+ }
39
47
  }
40
48
 
41
49
  interface ITHREEAction {
@@ -54,7 +62,7 @@ type TNeedlessParamskeys<T> = {
54
62
  * todo
55
63
  * 1.雾气设置
56
64
  * 2.设置是否开启动画
57
- * 3.提高帧数(移动时释放部分模型细节,切片加载,着色器)
65
+ * *3.提高帧数(已完成)
58
66
  * 4.是否加载hepler
59
67
  * 5.设置帧数(30帧)
60
68
  * 6.图层优化
@@ -87,6 +95,8 @@ const useThree = () => {
87
95
  }
88
96
  }
89
97
 
98
+ let mouseMoveEventEnabled = false
99
+
90
100
  const loadThree = (options: ITHREEOptions, succeededCallback: (config: ITHREEConfiguration) => void) => {
91
101
  threeConfiguration.scene = createScene()
92
102
  threeConfiguration.camera = createCamera(Object.assign({}, options.camera, {
@@ -109,9 +119,21 @@ const useThree = () => {
109
119
  threeConfiguration.light.ambient = createAmbientLight(options.light.ambientLight)
110
120
  threeConfiguration.light.directional = createDirectionalLight(options.light.directionalLight)
111
121
 
122
+ mouseMoveEventEnabled = options.optimization.mouseMoveEvent.enabled
123
+
112
124
  setScene(options)
113
125
  render()
114
126
 
127
+ if (options.optimization.motionBlur.enabled) {
128
+ options.element.addEventListener('mousedown', () => {
129
+ threeConfiguration.renderer!.setPixelRatio(window.devicePixelRatio * options.optimization.motionBlur.value)
130
+ })
131
+
132
+ options.element.addEventListener('mouseup', () => {
133
+ threeConfiguration.renderer!.setPixelRatio(window.devicePixelRatio)
134
+ })
135
+ }
136
+
115
137
  window.onresize = () => {
116
138
  threeConfiguration.camera!.aspect = window.innerWidth / window.innerHeight
117
139
  threeConfiguration.camera!.updateProjectionMatrix()
@@ -127,7 +149,7 @@ const useThree = () => {
127
149
  threeConfiguration.scene?.add(threeConfiguration.light.directional.light!)
128
150
  // threeConfiguration.scene?.add(threeConfiguration.light.directional.directionalLightHelper!)
129
151
  // if (options.showShadowCameraHelper) {
130
-
152
+ //todo
131
153
  // }
132
154
  }
133
155
 
@@ -275,7 +297,9 @@ const useThree = () => {
275
297
 
276
298
  const moveHandler = (e: MouseEvent) => {
277
299
  e.stopPropagation()
278
- mouseEvent(e, threeAction.movementHandler!)
300
+ if (mouseMoveEventEnabled) {
301
+ mouseEvent(e, threeAction.movementHandler!)
302
+ }
279
303
  }
280
304
 
281
305
  const mousedownHandler = (e: MouseEvent) => {
@@ -367,6 +391,8 @@ const useThree = () => {
367
391
  threeConfiguration.stats = null;
368
392
  window.removeEventListener('click', clickHandler, false)
369
393
  window.removeEventListener('mousemove', moveHandler, false)
394
+ window.removeEventListener('mousedown', mousedownHandler, false);
395
+ window.removeEventListener('mouseup', mouseupHandler, false);
370
396
  threeAction.animation = null
371
397
  threeAction.clickHandler = null
372
398
  threeAction.movementHandler = null
@@ -0,0 +1,5 @@
1
+ import { useZip } from './useZip'
2
+
3
+ export {
4
+ useZip
5
+ }
@@ -0,0 +1,66 @@
1
+ import JSZip from 'jszip';
2
+ import crypto from 'crypto-js';
3
+
4
+ const useZip = () => {
5
+ const dataURLtoBlob = (url: string) => {
6
+ let arr = url.split(','),
7
+ mime = arr[0].match(/:(.*?);/)![1],
8
+ bstr = atob(arr[1]),
9
+ n = bstr.length,
10
+ u8arr = new Uint8Array(n);
11
+ while (n--) {
12
+ u8arr[n] = bstr.charCodeAt(n);
13
+ }
14
+ return new Blob([u8arr], { type: mime });
15
+ }
16
+
17
+ const encryptByDES = (data: string, key: string) => {
18
+ const keyHex = crypto.enc.Utf8.parse(key);
19
+ const encrypted = crypto.AES.encrypt(data, keyHex, {
20
+ mode: crypto.mode.ECB,
21
+ padding: crypto.pad.Pkcs7
22
+ });
23
+ return encrypted.toString();
24
+ }
25
+
26
+ const decryptByDES = (data: string, key: string) => {
27
+ const keyHex = crypto.enc.Utf8.parse(key);
28
+ const decrypted = crypto.AES.decrypt({
29
+ ciphertext: crypto.enc.Base64.parse(data)
30
+ }, keyHex, {
31
+ mode: crypto.mode.ECB,
32
+ padding: crypto.pad.Pkcs7
33
+ });
34
+ return decrypted.toString(crypto.enc.Utf8);
35
+ }
36
+
37
+ const encrypt = (blob: Blob, id: string, cb: (blob: Blob) => void) => {
38
+ const reader = new FileReader()
39
+ reader.readAsDataURL(blob)
40
+ reader.onload = () => {
41
+ const encrypted = encryptByDES((reader.result as string), id)
42
+ cb(new Blob([encrypted]))
43
+ }
44
+ }
45
+
46
+ const decrypt = async (blob: Blob, id: string, cb: (url: string) => void) => {
47
+ const zip = new JSZip();
48
+ const file = await zip.loadAsync(blob)
49
+ for (let key in file.files) {
50
+ zip.file(key)!.async('text').then(content => {
51
+ const data = decryptByDES(content, id)
52
+ const url = URL.createObjectURL(dataURLtoBlob(data))
53
+ cb(url)
54
+ })
55
+ }
56
+ }
57
+
58
+ return {
59
+ decrypt,
60
+ encrypt
61
+ }
62
+ }
63
+
64
+ export {
65
+ useZip
66
+ }
package/tsconfig.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "src/**/*.vue",
34
34
  "src/*.d.ts",
35
35
  "typings/*.d.ts"
36
- ],
36
+ , "../useIndexedDB.ts" ],
37
37
  "references": [
38
38
  {
39
39
  "path": "./tsconfig.node.json"
File without changes
File without changes
File without changes
File without changes
File without changes