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.
- package/package.json +1 -1
- package/src/common/useLoader.ts +10 -10
- package/src/common/useWeather.ts +3 -3
- package/src/core/basic/control.ts +2 -1
- package/src/core/main.ts +30 -4
- package/src/utils/index.ts +5 -0
- package/src/utils/useZip.ts +66 -0
- package/tsconfig.json +1 -1
- /package/src/{draco → assets/draco}/README.md +0 -0
- /package/src/{draco → assets/draco}/draco_decoder.js +0 -0
- /package/src/{draco → assets/draco}/draco_decoder.wasm +0 -0
- /package/src/{draco → assets/draco}/draco_encoder.js +0 -0
- /package/src/{draco → assets/draco}/draco_wasm_wrapper.js +0 -0
- /package/src/{draco → assets/draco}/gltf/draco_decoder.js +0 -0
- /package/src/{draco → assets/draco}/gltf/draco_decoder.wasm +0 -0
- /package/src/{draco → assets/draco}/gltf/draco_encoder.js +0 -0
- /package/src/{draco → assets/draco}/gltf/draco_wasm_wrapper.js +0 -0
- /package/src/{shader → assets/shader}/snow.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/Tile.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/TileBase.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/TileInternal.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/TilesRendererBase.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/TilesRendererBase.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/Tileset.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/constants.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/constants.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/B3DMLoaderBase.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/B3DMLoaderBase.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/CMPTLoaderBase.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/CMPTLoaderBase.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/I3DMLoaderBase.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/I3DMLoaderBase.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/LoaderBase.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/LoaderBase.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/PNTSLoaderBase.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/loaders/PNTSLoaderBase.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/plugins/ImplicitTilingPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/base/traverseFunctions.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/gltf.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/index.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/index.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/README.md +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/base/ImplicitTilingPlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/base/ImplicitTilingPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/base/SUBTREELoader.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/index.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/index.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/CesiumIonAuthPlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/CesiumIonAuthPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/DebugTilesPlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/DebugTilesPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GLTFExtensionsPlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GLTFExtensionsPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GoogleAttributionsManager.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GoogleCloudAuthPlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GoogleCloudAuthPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/ReorientationPlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/ReorientationPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/TileCompressionPlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/TileCompressionPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/UpdateOnChangePlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/UpdateOnChangePlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/fade/FadeManager.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/fade/TilesFadePlugin.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/fade/TilesFadePlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFCesiumRTCExtension.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFCesiumRTCExtension.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFMeshFeaturesExtension.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFMeshFeaturesExtension.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFStructuralMetadataExtension.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFStructuralMetadataExtension.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/ClassProperty.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/MeshFeatures.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/PropertyAttributeAccessor.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/PropertySetAccessor.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/PropertyTableAccessor.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/PropertyTextureAccessor.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/classes/StructuralMetadata.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/math/Matrix2.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/utilities/ClassPropertyHelpers.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/utilities/TexCoordUtilities.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/utilities/TextureReadUtility.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/objects/EllipsoidRegionHelper.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/plugins/three/objects/SphereHelper.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/README.md +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/CameraControls.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/CameraTransition.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/CanvasDOMOverlay.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/CompassGizmo.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/TilesAttributionOverlay.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/components/TilesRenderer.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/index.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/utilities/useForceUpdate.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/utilities/useObjectDep.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/r3f/utilities/useOptions.jsx +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/DebugTilesRenderer.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/DebugTilesRenderer.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/TilesGroup.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/TilesGroup.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/TilesRenderer.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/TilesRenderer.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/controls/CameraTransitionManager.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/controls/EnvironmentControls.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/controls/GlobeControls.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/controls/PivotPointMesh.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/controls/PointerTracker.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/controls/utils.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/B3DMLoader.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/B3DMLoader.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/CMPTLoader.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/CMPTLoader.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/GLTFExtensionLoader.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/GLTFExtensionLoader.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/I3DMLoader.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/I3DMLoader.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/PNTSLoader.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/PNTSLoader.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/gltf/GLTFCesiumRTCExtension.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/gltf/GLTFMeshFeaturesExtension.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/loaders/gltf/GLTFStructuralMetadataExtension.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/Ellipsoid.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/Ellipsoid.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/EllipsoidRegion.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/EllipsoidRegion.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/ExtendedFrustum.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/GeoConstants.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/GeoConstants.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/GeoUtils.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/GeoUtils.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/OBB.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/math/TileBoundingVolume.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/plugins/CesiumIonAuthPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/plugins/DebugTilesPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/plugins/GoogleCloudAuthPlugin.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/raycastTraverse.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/renderers/CesiumIonTilesRenderer.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/renderers/CesiumIonTilesRenderer.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/renderers/GoogleTilesRenderer.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/renderers/GoogleTilesRenderer.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/three/utilities.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/BatchTable.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/BatchTable.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/BatchTableHierarchyExtension.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/FeatureTable.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/FeatureTable.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/LRUCache.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/LRUCache.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/PriorityQueue.d.ts +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/PriorityQueue.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/arrayToString.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/readMagicBytes.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/rgb565torgb.js +0 -0
- /package/src/{tileRenderer → assets/tileRenderer}/utilities/urlExtension.js +0 -0
package/package.json
CHANGED
package/src/common/useLoader.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
130
|
-
|
|
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$/,
|
|
135
|
+
tilesRenderer.manager.addHandler(/\.gltf$/, threeLoaders.GLTFLoader!);
|
|
136
136
|
|
|
137
137
|
enableDefaultEvent(EDefaultEvent.INSERTANIMATIONS, {
|
|
138
138
|
cb() {
|
package/src/common/useWeather.ts
CHANGED
|
@@ -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
|
|
55
|
+
config.scene!.remove(snowGroup)
|
|
56
56
|
break;
|
|
57
57
|
case EWeatherType.SNOW:
|
|
58
|
-
config.scene
|
|
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 =
|
|
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
|
-
*
|
|
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
|
-
|
|
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,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
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/plugins/three/GoogleAttributionsManager.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFCesiumRTCExtension.d.ts
RENAMED
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFCesiumRTCExtension.js
RENAMED
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFMeshFeaturesExtension.d.ts
RENAMED
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/GLTFMeshFeaturesExtension.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/plugins/three/gltf/metadata/math/Matrix2.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/plugins/three/objects/EllipsoidRegionHelper.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/r3f/components/TilesAttributionOverlay.jsx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/three/loaders/gltf/GLTFCesiumRTCExtension.js
RENAMED
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/three/loaders/gltf/GLTFMeshFeaturesExtension.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/{tileRenderer → assets/tileRenderer}/three/renderers/CesiumIonTilesRenderer.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|