@twinmatrix/spatialverse-sdk-web 0.0.2 → 0.0.4
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/lib/cjs/index.js +9 -9
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js +213 -294
- package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js +40 -41
- package/lib/cjs/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/3DMap/MainMap.js +170 -196
- package/lib/cjs/meta-atlas-sdk/3DMap/MainMap.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js +167 -215
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js +28 -30
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js +861 -1170
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js +166 -159
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/interfaces.js +6 -6
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/interfaces.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js +6 -6
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routeLayers.js +3 -3
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routeLayers.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js +523 -610
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js +149 -154
- package/lib/cjs/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/customStyles.js +2 -2
- package/lib/cjs/meta-atlas-sdk/customStyles.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/customerLayer.js +15 -29
- package/lib/cjs/meta-atlas-sdk/customerLayer.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/customerLayerVariant.js +5 -5
- package/lib/cjs/meta-atlas-sdk/customerLayerVariant.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/meta-atlas-sdk.js +809 -1033
- package/lib/cjs/meta-atlas-sdk/meta-atlas-sdk.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/utils/helpers.js +32 -49
- package/lib/cjs/meta-atlas-sdk/utils/helpers.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/utils/local-storage.js +21 -34
- package/lib/cjs/meta-atlas-sdk/utils/local-storage.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/utils/mapobjects-store.js +6 -6
- package/lib/cjs/meta-atlas-sdk/utils/mapobjects-store.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/utils/routing-store.js +6 -6
- package/lib/cjs/meta-atlas-sdk/utils/routing-store.js.map +1 -1
- package/lib/cjs/meta-atlas-sdk/utils/routing-visualizer/index.js +363 -491
- package/lib/cjs/meta-atlas-sdk/utils/routing-visualizer/index.js.map +1 -1
- package/lib/cjs/react/MetaAtlasMap.js +127 -0
- package/lib/cjs/react/MetaAtlasMap.js.map +1 -0
- package/lib/cjs/react/hooks/useDrawing/index.js +17 -18
- package/lib/cjs/react/hooks/useDrawing/index.js.map +1 -1
- package/lib/cjs/react/hooks/useFocus/index.js +48 -55
- package/lib/cjs/react/hooks/useFocus/index.js.map +1 -1
- package/lib/cjs/react/hooks/useMapEvents/index.js +40 -47
- package/lib/cjs/react/hooks/useMapEvents/index.js.map +1 -1
- package/lib/cjs/react/hooks/useMapOverlays/index.js +20 -21
- package/lib/cjs/react/hooks/useMapOverlays/index.js.map +1 -1
- package/lib/cjs/react/hooks/useMetaAtlas/index.js +77 -95
- package/lib/cjs/react/hooks/useMetaAtlas/index.js.map +1 -1
- package/lib/cjs/react/hooks/useMetaAtlas.js +78 -96
- package/lib/cjs/react/hooks/useMetaAtlas.js.map +1 -1
- package/lib/cjs/react/hooks/useRouting/index.js +21 -20
- package/lib/cjs/react/hooks/useRouting/index.js.map +1 -1
- package/lib/cjs/react/hooks/useSearch/index.js +35 -34
- package/lib/cjs/react/hooks/useSearch/index.js.map +1 -1
- package/lib/cjs/react/hooks/useStampRally/index.js +26 -23
- package/lib/cjs/react/hooks/useStampRally/index.js.map +1 -1
- package/lib/cjs/react/hooks/useStampRally/utils.js +2 -2
- package/lib/cjs/react/hooks/useStampRally/utils.js.map +1 -1
- package/lib/cjs/react/index.js +31 -31
- package/lib/cjs/react/index.js.map +1 -1
- package/lib/cjs/react/stores/useMapDataStore.js +47 -62
- package/lib/cjs/react/stores/useMapDataStore.js.map +1 -1
- package/lib/cjs/react/stores/useMetaAtlasStore.js +27 -40
- package/lib/cjs/react/stores/useMetaAtlasStore.js.map +1 -1
- package/lib/esm/index.js +3 -7
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js +4 -3
- package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js +14 -12
- package/lib/esm/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/3DMap/MainMap.js +204 -200
- package/lib/esm/meta-atlas-sdk/3DMap/MainMap.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js +6 -6
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetch-published-json.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js +4 -3
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/fetchMapObjectsData.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js +53 -42
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/meta-atlas-sdk-core.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js +18 -16
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/index.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js +3 -3
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/mapObjectsHelper.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js +73 -79
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/routing-helpers.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js +16 -15
- package/lib/esm/meta-atlas-sdk/MetaAtlasCore/routing-core/utils.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/customerLayer.js +4 -1
- package/lib/esm/meta-atlas-sdk/customerLayer.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/meta-atlas-sdk.js +148 -124
- package/lib/esm/meta-atlas-sdk/meta-atlas-sdk.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/utils/helpers.js +4 -2
- package/lib/esm/meta-atlas-sdk/utils/helpers.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/utils/local-storage.js +6 -1
- package/lib/esm/meta-atlas-sdk/utils/local-storage.js.map +1 -1
- package/lib/esm/meta-atlas-sdk/utils/routing-visualizer/index.js +115 -109
- package/lib/esm/meta-atlas-sdk/utils/routing-visualizer/index.js.map +1 -1
- package/lib/esm/react/MetaAtlasMap.js +120 -0
- package/lib/esm/react/MetaAtlasMap.js.map +1 -0
- package/lib/esm/react/hooks/useDrawing/index.js +2 -2
- package/lib/esm/react/hooks/useDrawing/index.js.map +1 -1
- package/lib/esm/react/hooks/useFocus/index.js +4 -3
- package/lib/esm/react/hooks/useFocus/index.js.map +1 -1
- package/lib/esm/react/hooks/useMapEvents/index.js +9 -6
- package/lib/esm/react/hooks/useMapEvents/index.js.map +1 -1
- package/lib/esm/react/hooks/useMapOverlays/index.js +2 -2
- package/lib/esm/react/hooks/useMapOverlays/index.js.map +1 -1
- package/lib/esm/react/hooks/useMetaAtlas/index.js +162 -60
- package/lib/esm/react/hooks/useMetaAtlas/index.js.map +1 -1
- package/lib/esm/react/hooks/useMetaAtlas.js +162 -60
- package/lib/esm/react/hooks/useMetaAtlas.js.map +1 -1
- package/lib/esm/react/hooks/useRouting/index.js +2 -2
- package/lib/esm/react/hooks/useRouting/index.js.map +1 -1
- package/lib/esm/react/hooks/useSearch/index.js +2 -2
- package/lib/esm/react/hooks/useSearch/index.js.map +1 -1
- package/lib/esm/react/hooks/useStampRally/index.js +15 -12
- package/lib/esm/react/hooks/useStampRally/index.js.map +1 -1
- package/lib/esm/react/hooks/useStampRally/utils.js +1 -1
- package/lib/esm/react/hooks/useStampRally/utils.js.map +1 -1
- package/lib/esm/react/index.js +11 -15
- package/lib/esm/react/index.js.map +1 -1
- package/lib/esm/react/stores/useMapDataStore.js +17 -21
- package/lib/esm/react/stores/useMapDataStore.js.map +1 -1
- package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraSync.d.ts +30 -0
- package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraSync.d.ts.map +1 -0
- package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraUtils.d.ts +5 -0
- package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/CameraUtils.d.ts.map +1 -0
- package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/constants.d.ts +21 -0
- package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/constants.d.ts.map +1 -0
- package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/suncalc.d.ts +27 -0
- package/lib/types/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/suncalc.d.ts.map +1 -0
- package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/draw_marker.d.ts +18 -0
- package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/draw_marker.d.ts.map +1 -0
- package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/marker_select.d.ts +37 -0
- package/lib/types/meta-atlas-sdk/mapbox_draw_custom_modes/marker_select.d.ts.map +1 -0
- package/package.json +10 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomThreeJsWrapper.js","names":["_three","require","_constants","_interopRequireDefault","_CameraSync","_utils","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_regenerator","t","r","n","toStringTag","i","c","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_classCallCheck","_defineProperties","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","CustomThreeJSWrapper","map","scene","Scene","getCanvas","gl","getContext","isWebglSupported","console","error","renderer","WebGLRenderer","alpha","antialias","preserveDrawingBuffer","canvas","context","setPixelRatio","window","devicePixelRatio","setSize","clientWidth","clientHeight","autoClear","toneMapping","ACESFilmicToneMapping","outputColorSpace","SRGBColorSpace","fov","constants","FOV_DEGREES","h","camera","PerspectiveCamera","cameraSync","CameraSync","resize","aspect","updateProjectionMatrix","WebGLRenderingContext","document","createElement","getParameter","repaint","_clear","_callee","_this","layerId","_args","_context","undefined","reject","objects","children","forEach","object","push","obj","layers","remove","clear","_clearMeshes","_callee2","_this2","_context2","type","log","clearMeshes","filter3DObjects","whatTaxonomies","Array","isArray","visible","includes","userData","whatDimension","add","setEnvironment","dirLight","DirectionalLight","position","set","castShadow","hemiLight","HemisphereLight","ambientLight","AmbientLight","buildPoints","coords","initCoords","points","init","projectToWorld","pos","Vector2","toDecimal","x","buildGeometry","shape","settings","geometry","ExtrudeGeometry","computeBoundingBox","buildShape","Vector3","Shape","holes","Path","extrusion","opt","coordinates","geometryOptions","mesh","Mesh","materials","centerMesh","bbox","Box3","copy","boundingBox","applyMatrix4","matrixWorld","center","getCenter","dummy","Object3D","localToWorld","diff","clone","sub","translate","dispose","target","material","_isDisposed","removeFromParent","disposeObject","_this3","traverse","child","disposeMaterial","disposeGeometry","disposeTexture","requestAnimationFrame","parent","texture","update","updateMatrixWorld","resetState","render","_default","exports"],"sources":["../../../../../src/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.ts"],"sourcesContent":["import { Map } from 'maplibre-gl';\nimport {\n ACESFilmicToneMapping,\n AmbientLight,\n DataTexture,\n DirectionalLight,\n HemisphereLight,\n Mesh,\n Object3D,\n PerspectiveCamera,\n Scene,\n WebGLRenderer,\n Vector2,\n Vector3,\n Shape,\n Path,\n ExtrudeGeometry,\n Box3,\n BoxGeometry,\n MeshBasicMaterial,\n SRGBColorSpace\n} from 'three';\nimport constants from './utility/constants.js';\nimport CameraSync from './utility/CameraSync.js';\nimport { projectToWorld, toDecimal } from './utility/utils.js';\n\nclass CustomThreeJSWrapper {\n map;\n scene;\n camera;\n renderer;\n cameraSync;\n fov;\n\n constructor(map) {\n this.scene = new Scene();\n this.map = map;\n\n const c = map?.getCanvas() as HTMLCanvasElement;\n const gl = c?.getContext('webgl') || c?.getContext('webgl2');\n\n if (!gl && !this.isWebglSupported()) {\n console.error(map.getCanvas(), 'WebGL 2 is not supported in this environment');\n return;\n }\n\n // Initialize the WebGLRenderer without explicitly passing the WebGL 1 context\n this.renderer = new WebGLRenderer({\n alpha: true,\n antialias: true,\n preserveDrawingBuffer: false,\n canvas: map.getCanvas(),\n context: gl\n });\n\n this.renderer.setPixelRatio(window.devicePixelRatio);\n this.renderer.setSize(this.map.getCanvas().clientWidth, this.map.getCanvas().clientHeight);\n this.renderer.autoClear = false;\n this.renderer.toneMapping = ACESFilmicToneMapping;\n this.renderer.outputColorSpace = SRGBColorSpace;\n this.fov = constants.FOV_DEGREES;\n\n const h = this.map.getCanvas().clientHeight;\n const w = this.map.getCanvas().clientWidth;\n\n this.camera = new PerspectiveCamera(this.fov, w / h, 0.1, 1000);\n\n this.cameraSync = new CameraSync(map, this.camera, this.scene);\n }\n\n resize() {\n const w = this.map.getCanvas().clientWidth;\n const h = this.map.getCanvas().clientHeight;\n this.camera.aspect = w / h;\n this.camera.updateProjectionMatrix();\n this.renderer.setSize(w, h);\n }\n\n isWebglSupported() {\n if (window.WebGLRenderingContext) {\n const canvas = document.createElement('canvas');\n try {\n // Note that { failIfMajorPerformanceCaveat: true } can be passed as a second argument\n // to canvas.getContext(), causing the check to fail if hardware rendering is not available. See\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext\n // for more details.\n const context = canvas.getContext('webgl2') || canvas.getContext('webgl');\n if (context && typeof context.getParameter == 'function') {\n return true;\n }\n } catch (e) {\n // WebGL is supported, but disabled\n }\n return false;\n }\n // WebGL not supported\n return false;\n }\n\n repaint() {\n this.map.repaint = true;\n }\n\n async clear(layerId = null) {\n return new Promise((resolve, reject) => {\n const objects = [];\n this.scene.children.forEach(function (object) {\n objects.push(object);\n });\n for (let i = 0; i < objects.length; i++) {\n const obj = objects[i];\n //if layerId, check the layer to remove, otherwise always remove\n if (obj.layers === layerId || !layerId) {\n this.remove(obj);\n }\n }\n\n resolve('clear');\n });\n }\n\n async clearMeshes() {\n return new Promise((resolve, reject) => {\n const objects = [];\n this.scene.children.forEach(function (object) {\n if (object.type === 'Mesh') objects.push(object);\n });\n console.log('Mesh Objects:', objects);\n for (let i = 0; i < objects.length; i++) {\n this.remove(objects[i]);\n }\n\n resolve('clear');\n });\n }\n\n filter3DObjects(whatTaxonomies: string[]) {\n if (!Array.isArray(whatTaxonomies)) return;\n if (whatTaxonomies.length === 0) {\n this.scene.children.forEach(function (object) {\n object.visible = true;\n });\n } else {\n this.scene.children.forEach(function (object) {\n if (object.type === 'Mesh') {\n if (whatTaxonomies.includes(object.userData.whatDimension)) {\n object.visible = false;\n } else {\n object.visible = true;\n }\n }\n });\n }\n }\n\n add(object) {\n this.scene.add(object);\n }\n\n setEnvironment() {\n const dirLight = new DirectionalLight(0xffffff, 2);\n dirLight.position.set(10, 10, 10);\n dirLight.castShadow = true;\n const hemiLight = new HemisphereLight('white', 'white', 1.5);\n const ambientLight = new AmbientLight('white', 1);\n this.scene.add(dirLight);\n this.scene.add(hemiLight);\n this.scene.add(ambientLight);\n }\n\n buildPoints(coords, initCoords) {\n const points = [];\n const init = projectToWorld([initCoords[0][0], initCoords[0][1], 0]);\n for (let i = 0; i < coords.length; i++) {\n const pos = projectToWorld([coords[i][0], coords[i][1], 0]);\n points.push(new Vector2(toDecimal(pos.x - init.x, 9), toDecimal(pos.y - init.y, 9)));\n }\n return points;\n }\n\n buildGeometry(shape, settings) {\n const geometry = new ExtrudeGeometry(shape, settings);\n geometry.computeBoundingBox();\n return geometry;\n }\n\n buildShape(coords: any) {\n if (coords[0] instanceof (Vector2 || Vector3)) return new Shape(coords);\n let shape = new Shape();\n for (let i = 0; i < coords.length; i++) {\n if (i === 0) {\n shape = new Shape(this.buildPoints(coords[0], coords[0]));\n } else {\n shape.holes.push(new Path(this.buildPoints(coords[i], coords[0])));\n }\n }\n return shape;\n }\n\n extrusion(opt: any) {\n const shape = this.buildShape(opt.coordinates);\n const geometry = this.buildGeometry(shape, opt.geometryOptions);\n const mesh = new Mesh(geometry, opt.materials);\n\n if (!opt.visible) mesh.visible = false;\n\n return mesh;\n }\n\n centerMesh(mesh) {\n // Compute the bounding box\n const bbox = new Box3();\n mesh.geometry.computeBoundingBox();\n bbox.copy(mesh.geometry.boundingBox).applyMatrix4(mesh.matrixWorld);\n\n // Get the center of the bounding box\n let center = new Vector3();\n bbox.getCenter(center);\n\n // Create a dummy object\n const dummy = new Object3D();\n\n // Attach mesh to dummy\n dummy.add(mesh);\n\n center = mesh.localToWorld(center);\n // const geometry = new BoxGeometry( 0.25, 0.25, 0.25 );\n // const material = new MeshBasicMaterial( {color: 0xff0000} );\n // const cube = new Mesh( geometry, material );\n // cube.position.set(center.x, center.y, center.z);\n // this.add( cube );\n // // Move the mesh within the dummy\n const diff = mesh.position.clone().sub(center);\n mesh.geometry.translate(diff.x, diff.y, 0);\n\n return dummy; // Return the new parent object\n }\n\n dispose(target) {\n if (target instanceof Mesh) {\n // If the target is a Mesh\n // Dispose materials and geometry of the mesh\n if (target.material) {\n if (typeof target.material.dispose === 'function' && !target.material._isDisposed) {\n target.material.dispose();\n target.material._isDisposed = true;\n }\n target.material = null;\n }\n if (target.geometry) {\n if (typeof target.geometry.dispose === 'function' && !target.geometry._isDisposed) {\n target.geometry.dispose();\n target.geometry._isDisposed = true;\n }\n target.geometry = null;\n }\n } else if (target instanceof Object3D) {\n // If the target is an Object3D\n target.removeFromParent();\n this.disposeObject(target);\n }\n }\n\n disposeObject(object) {\n object.traverse(child => {\n if (child instanceof Mesh && child.material) {\n if (Array.isArray(child.material)) {\n child.material.forEach(material => {\n this.disposeMaterial(material);\n });\n } else {\n this.disposeMaterial(child.material);\n }\n }\n if (child instanceof Mesh && child.geometry) {\n this.disposeGeometry(child.geometry);\n }\n if (child instanceof Mesh && child.material && child.material.map) {\n this.disposeTexture(child.material.map);\n }\n requestAnimationFrame(() => (child.children.length = 0));\n });\n\n if (object.parent) {\n object.parent.remove(object);\n }\n }\n\n disposeMaterial(material) {\n if (material.dispose) {\n material.dispose();\n }\n }\n\n // to dispose of a texture\n disposeTexture(texture) {\n if (texture.dispose) {\n texture.dispose();\n }\n }\n\n // to dispose of a geometry\n disposeGeometry(geometry) {\n if (geometry.dispose) {\n geometry.dispose();\n }\n }\n\n remove(object) {\n this.scene.remove(object);\n object = null;\n }\n\n update() {\n if (this.map.repaint) this.map.repaint = false;\n this.scene.updateMatrixWorld(true);\n\n // Render the scene and repaint the map\n this.renderer.resetState(); //update threejs r126\n this.renderer.render(this.scene, this.camera);\n }\n}\n\nexport default CustomThreeJSWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CustomThreeJsWrapper.js","names":["_three","require","_constants","_interopRequireDefault","_CameraSync","_utils","e","__esModule","default","CustomThreeJSWrapper","constructor","map","scene","Scene","c","getCanvas","gl","getContext","isWebglSupported","console","error","renderer","WebGLRenderer","alpha","antialias","preserveDrawingBuffer","canvas","context","setPixelRatio","window","devicePixelRatio","setSize","clientWidth","clientHeight","autoClear","toneMapping","ACESFilmicToneMapping","outputColorSpace","SRGBColorSpace","fov","constants","FOV_DEGREES","h","w","camera","PerspectiveCamera","cameraSync","CameraSync","resize","aspect","updateProjectionMatrix","WebGLRenderingContext","document","createElement","getParameter","repaint","clear","layerId","arguments","length","undefined","Promise","resolve","reject","objects","children","forEach","object","push","i","obj","layers","remove","clearMeshes","type","log","filter3DObjects","whatTaxonomies","Array","isArray","visible","includes","userData","whatDimension","add","setEnvironment","dirLight","DirectionalLight","position","set","castShadow","hemiLight","HemisphereLight","ambientLight","AmbientLight","buildPoints","coords","initCoords","points","init","projectToWorld","pos","Vector2","toDecimal","x","y","buildGeometry","shape","settings","geometry","ExtrudeGeometry","computeBoundingBox","buildShape","Vector3","Shape","holes","Path","extrusion","opt","coordinates","geometryOptions","mesh","Mesh","materials","centerMesh","bbox","Box3","copy","boundingBox","applyMatrix4","matrixWorld","center","getCenter","dummy","Object3D","localToWorld","diff","clone","sub","translate","dispose","target","material","_isDisposed","removeFromParent","disposeObject","traverse","child","disposeMaterial","disposeGeometry","disposeTexture","requestAnimationFrame","parent","texture","update","updateMatrixWorld","resetState","render","_default","exports"],"sources":["../../../../../src/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/CustomThreeJsWrapper.ts"],"sourcesContent":["import { Map } from 'maplibre-gl';\nimport {\n ACESFilmicToneMapping,\n AmbientLight,\n DataTexture,\n DirectionalLight,\n HemisphereLight,\n Mesh,\n Object3D,\n PerspectiveCamera,\n Scene,\n WebGLRenderer,\n Vector2,\n Vector3,\n Shape,\n Path,\n ExtrudeGeometry,\n Box3,\n BoxGeometry,\n MeshBasicMaterial,\n SRGBColorSpace\n} from 'three';\nimport constants from './utility/constants.js';\nimport CameraSync from './utility/CameraSync.js';\nimport { projectToWorld, toDecimal } from './utility/utils.js';\n\nclass CustomThreeJSWrapper {\n map;\n scene;\n camera;\n renderer;\n cameraSync;\n fov;\n\n constructor(map) {\n this.scene = new Scene();\n this.map = map;\n\n const c = map?.getCanvas() as HTMLCanvasElement;\n const gl = c?.getContext('webgl') || c?.getContext('webgl2');\n\n if (!gl && !this.isWebglSupported()) {\n console.error(map.getCanvas(), 'WebGL 2 is not supported in this environment');\n return;\n }\n\n // Initialize the WebGLRenderer without explicitly passing the WebGL 1 context\n this.renderer = new WebGLRenderer({\n alpha: true,\n antialias: true,\n preserveDrawingBuffer: false,\n canvas: map.getCanvas(),\n context: gl\n });\n\n this.renderer.setPixelRatio(window.devicePixelRatio);\n this.renderer.setSize(this.map.getCanvas().clientWidth, this.map.getCanvas().clientHeight);\n this.renderer.autoClear = false;\n this.renderer.toneMapping = ACESFilmicToneMapping;\n this.renderer.outputColorSpace = SRGBColorSpace;\n this.fov = constants.FOV_DEGREES;\n\n const h = this.map.getCanvas().clientHeight;\n const w = this.map.getCanvas().clientWidth;\n\n this.camera = new PerspectiveCamera(this.fov, w / h, 0.1, 1000);\n\n this.cameraSync = new CameraSync(map, this.camera, this.scene);\n }\n\n resize() {\n const w = this.map.getCanvas().clientWidth;\n const h = this.map.getCanvas().clientHeight;\n this.camera.aspect = w / h;\n this.camera.updateProjectionMatrix();\n this.renderer.setSize(w, h);\n }\n\n isWebglSupported() {\n if (window.WebGLRenderingContext) {\n const canvas = document.createElement('canvas');\n try {\n // Note that { failIfMajorPerformanceCaveat: true } can be passed as a second argument\n // to canvas.getContext(), causing the check to fail if hardware rendering is not available. See\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext\n // for more details.\n const context = canvas.getContext('webgl2') || canvas.getContext('webgl');\n if (context && typeof context.getParameter == 'function') {\n return true;\n }\n } catch (e) {\n // WebGL is supported, but disabled\n }\n return false;\n }\n // WebGL not supported\n return false;\n }\n\n repaint() {\n this.map.repaint = true;\n }\n\n async clear(layerId = null) {\n return new Promise((resolve, reject) => {\n const objects = [];\n this.scene.children.forEach(function (object) {\n objects.push(object);\n });\n for (let i = 0; i < objects.length; i++) {\n const obj = objects[i];\n //if layerId, check the layer to remove, otherwise always remove\n if (obj.layers === layerId || !layerId) {\n this.remove(obj);\n }\n }\n\n resolve('clear');\n });\n }\n\n async clearMeshes() {\n return new Promise((resolve, reject) => {\n const objects = [];\n this.scene.children.forEach(function (object) {\n if (object.type === 'Mesh') objects.push(object);\n });\n console.log('Mesh Objects:', objects);\n for (let i = 0; i < objects.length; i++) {\n this.remove(objects[i]);\n }\n\n resolve('clear');\n });\n }\n\n filter3DObjects(whatTaxonomies: string[]) {\n if (!Array.isArray(whatTaxonomies)) return;\n if (whatTaxonomies.length === 0) {\n this.scene.children.forEach(function (object) {\n object.visible = true;\n });\n } else {\n this.scene.children.forEach(function (object) {\n if (object.type === 'Mesh') {\n if (whatTaxonomies.includes(object.userData.whatDimension)) {\n object.visible = false;\n } else {\n object.visible = true;\n }\n }\n });\n }\n }\n\n add(object) {\n this.scene.add(object);\n }\n\n setEnvironment() {\n const dirLight = new DirectionalLight(0xffffff, 2);\n dirLight.position.set(10, 10, 10);\n dirLight.castShadow = true;\n const hemiLight = new HemisphereLight('white', 'white', 1.5);\n const ambientLight = new AmbientLight('white', 1);\n this.scene.add(dirLight);\n this.scene.add(hemiLight);\n this.scene.add(ambientLight);\n }\n\n buildPoints(coords, initCoords) {\n const points = [];\n const init = projectToWorld([initCoords[0][0], initCoords[0][1], 0]);\n for (let i = 0; i < coords.length; i++) {\n const pos = projectToWorld([coords[i][0], coords[i][1], 0]);\n points.push(new Vector2(toDecimal(pos.x - init.x, 9), toDecimal(pos.y - init.y, 9)));\n }\n return points;\n }\n\n buildGeometry(shape, settings) {\n const geometry = new ExtrudeGeometry(shape, settings);\n geometry.computeBoundingBox();\n return geometry;\n }\n\n buildShape(coords: any) {\n if (coords[0] instanceof (Vector2 || Vector3)) return new Shape(coords);\n let shape = new Shape();\n for (let i = 0; i < coords.length; i++) {\n if (i === 0) {\n shape = new Shape(this.buildPoints(coords[0], coords[0]));\n } else {\n shape.holes.push(new Path(this.buildPoints(coords[i], coords[0])));\n }\n }\n return shape;\n }\n\n extrusion(opt: any) {\n const shape = this.buildShape(opt.coordinates);\n const geometry = this.buildGeometry(shape, opt.geometryOptions);\n const mesh = new Mesh(geometry, opt.materials);\n\n if (!opt.visible) mesh.visible = false;\n\n return mesh;\n }\n\n centerMesh(mesh) {\n // Compute the bounding box\n const bbox = new Box3();\n mesh.geometry.computeBoundingBox();\n bbox.copy(mesh.geometry.boundingBox).applyMatrix4(mesh.matrixWorld);\n\n // Get the center of the bounding box\n let center = new Vector3();\n bbox.getCenter(center);\n\n // Create a dummy object\n const dummy = new Object3D();\n\n // Attach mesh to dummy\n dummy.add(mesh);\n\n center = mesh.localToWorld(center);\n // const geometry = new BoxGeometry( 0.25, 0.25, 0.25 );\n // const material = new MeshBasicMaterial( {color: 0xff0000} );\n // const cube = new Mesh( geometry, material );\n // cube.position.set(center.x, center.y, center.z);\n // this.add( cube );\n // // Move the mesh within the dummy\n const diff = mesh.position.clone().sub(center);\n mesh.geometry.translate(diff.x, diff.y, 0);\n\n return dummy; // Return the new parent object\n }\n\n dispose(target) {\n if (target instanceof Mesh) {\n // If the target is a Mesh\n // Dispose materials and geometry of the mesh\n if (target.material) {\n if (typeof target.material.dispose === 'function' && !target.material._isDisposed) {\n target.material.dispose();\n target.material._isDisposed = true;\n }\n target.material = null;\n }\n if (target.geometry) {\n if (typeof target.geometry.dispose === 'function' && !target.geometry._isDisposed) {\n target.geometry.dispose();\n target.geometry._isDisposed = true;\n }\n target.geometry = null;\n }\n } else if (target instanceof Object3D) {\n // If the target is an Object3D\n target.removeFromParent();\n this.disposeObject(target);\n }\n }\n\n disposeObject(object) {\n object.traverse(child => {\n if (child instanceof Mesh && child.material) {\n if (Array.isArray(child.material)) {\n child.material.forEach(material => {\n this.disposeMaterial(material);\n });\n } else {\n this.disposeMaterial(child.material);\n }\n }\n if (child instanceof Mesh && child.geometry) {\n this.disposeGeometry(child.geometry);\n }\n if (child instanceof Mesh && child.material && child.material.map) {\n this.disposeTexture(child.material.map);\n }\n requestAnimationFrame(() => (child.children.length = 0));\n });\n\n if (object.parent) {\n object.parent.remove(object);\n }\n }\n\n disposeMaterial(material) {\n if (material.dispose) {\n material.dispose();\n }\n }\n\n // to dispose of a texture\n disposeTexture(texture) {\n if (texture.dispose) {\n texture.dispose();\n }\n }\n\n // to dispose of a geometry\n disposeGeometry(geometry) {\n if (geometry.dispose) {\n geometry.dispose();\n }\n }\n\n remove(object) {\n this.scene.remove(object);\n object = null;\n }\n\n update() {\n if (this.map.repaint) this.map.repaint = false;\n this.scene.updateMatrixWorld(true);\n\n // Render the scene and repaint the map\n this.renderer.resetState(); //update threejs r126\n this.renderer.render(this.scene, this.camera);\n }\n}\n\nexport default CustomThreeJSWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -14,13 +13,13 @@ exports.toggleModelVisibility = toggleModelVisibility;
|
|
|
14
13
|
exports.unprojectFromWorld = unprojectFromWorld;
|
|
15
14
|
var _three = _interopRequireWildcard(require("three"));
|
|
16
15
|
var THREE = _three;
|
|
17
|
-
var _constants = _interopRequireDefault(require("./constants"));
|
|
16
|
+
var _constants = _interopRequireDefault(require("./constants.js"));
|
|
18
17
|
var _gsap = _interopRequireDefault(require("gsap"));
|
|
19
18
|
var _GLTFLoader = require("three/examples/jsm/loaders/GLTFLoader");
|
|
20
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : {
|
|
21
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function
|
|
19
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
22
21
|
function projectToWorld(coords) {
|
|
23
|
-
var projected = [-_constants
|
|
22
|
+
var projected = [-_constants.default.MERCATOR_A * _constants.default.DEG2RAD * coords[0] * _constants.default.PROJECTION_WORLD_SIZE, -_constants.default.MERCATOR_A * Math.log(Math.tan(Math.PI * 0.25 + 0.5 * _constants.default.DEG2RAD * coords[1])) * _constants.default.PROJECTION_WORLD_SIZE];
|
|
24
23
|
if (!coords[2]) projected.push(0);else {
|
|
25
24
|
var pixelsPerMeter = projectedUnitsPerMeter(coords[1]);
|
|
26
25
|
projected.push(coords[2] * pixelsPerMeter);
|
|
@@ -29,10 +28,10 @@ function projectToWorld(coords) {
|
|
|
29
28
|
return result;
|
|
30
29
|
}
|
|
31
30
|
function projectedUnitsPerMeter(latitude) {
|
|
32
|
-
return Math.abs(_constants
|
|
31
|
+
return Math.abs(_constants.default.WORLD_SIZE / Math.cos(_constants.default.DEG2RAD * latitude) / _constants.default.EARTH_CIRCUMFERENCE);
|
|
33
32
|
}
|
|
34
33
|
function unprojectFromWorld(worldUnits) {
|
|
35
|
-
var unprojected = [-worldUnits.x / (_constants
|
|
34
|
+
var unprojected = [-worldUnits.x / (_constants.default.MERCATOR_A * _constants.default.DEG2RAD * _constants.default.PROJECTION_WORLD_SIZE), 2 * (Math.atan(Math.exp(worldUnits.y / (_constants.default.PROJECTION_WORLD_SIZE * -_constants.default.MERCATOR_A))) - Math.PI / 4) / _constants.default.DEG2RAD];
|
|
36
35
|
var pixelsPerMeter = projectedUnitsPerMeter(unprojected[1]);
|
|
37
36
|
|
|
38
37
|
// z dimension
|
|
@@ -46,24 +45,26 @@ function toDecimal(n, d) {
|
|
|
46
45
|
|
|
47
46
|
// RF: TO BE REMOVED. ModelLoader component can be used to load 3D models.
|
|
48
47
|
function addModelsToMap(wrapper, map, models, modelMap, onModelsLoaded) {
|
|
49
|
-
return new Promise(
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
50
49
|
try {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
50
|
+
const modelLoadPromises = models.map(_ref => {
|
|
51
|
+
let {
|
|
52
|
+
id,
|
|
53
|
+
modelUrl,
|
|
54
|
+
coords,
|
|
55
|
+
rotation,
|
|
56
|
+
scale,
|
|
57
|
+
instanced
|
|
58
|
+
} = _ref;
|
|
59
|
+
return new Promise((modelResolve, modelReject) => {
|
|
60
|
+
const loader = new _GLTFLoader.GLTFLoader();
|
|
61
|
+
loader.load(modelUrl, gltf => {
|
|
61
62
|
var _modelMap$get$visible, _modelMap$get;
|
|
62
|
-
|
|
63
|
-
model.traverse(
|
|
63
|
+
const model = gltf.scene;
|
|
64
|
+
model.traverse(child => {
|
|
64
65
|
if (child instanceof THREE.Mesh) {
|
|
65
66
|
if (Array.isArray(child.material)) {
|
|
66
|
-
child.material.forEach(
|
|
67
|
+
child.material.forEach(mat => {
|
|
67
68
|
mat.side = THREE.DoubleSide;
|
|
68
69
|
mat.needsUpdate = true;
|
|
69
70
|
});
|
|
@@ -73,7 +74,7 @@ function addModelsToMap(wrapper, map, models, modelMap, onModelsLoaded) {
|
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
});
|
|
76
|
-
|
|
77
|
+
const worldPosition = projectToWorld(coords);
|
|
77
78
|
model.position.set(worldPosition.x, worldPosition.y, 0);
|
|
78
79
|
model.up.set(0, 0, 1);
|
|
79
80
|
model.rotation.set(rotation[0], rotation[1], rotation[2]);
|
|
@@ -82,7 +83,7 @@ function addModelsToMap(wrapper, map, models, modelMap, onModelsLoaded) {
|
|
|
82
83
|
wrapper.add(model);
|
|
83
84
|
modelMap.set(id, model);
|
|
84
85
|
modelResolve(modelMap);
|
|
85
|
-
}, undefined,
|
|
86
|
+
}, undefined, error => {
|
|
86
87
|
console.error("Error loading model ".concat(id, ":"), error);
|
|
87
88
|
modelReject(error);
|
|
88
89
|
});
|
|
@@ -92,13 +93,11 @@ function addModelsToMap(wrapper, map, models, modelMap, onModelsLoaded) {
|
|
|
92
93
|
id: '3d-model-layer2',
|
|
93
94
|
type: 'custom',
|
|
94
95
|
renderingMode: '3d',
|
|
95
|
-
onAdd:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
},
|
|
101
|
-
render: function render() {}
|
|
96
|
+
onAdd: () => Promise.all(modelLoadPromises).then(res => {
|
|
97
|
+
resolve(res);
|
|
98
|
+
onModelsLoaded(true);
|
|
99
|
+
}).catch(reject),
|
|
100
|
+
render: () => {}
|
|
102
101
|
});
|
|
103
102
|
} catch (error) {
|
|
104
103
|
reject(error);
|
|
@@ -106,22 +105,22 @@ function addModelsToMap(wrapper, map, models, modelMap, onModelsLoaded) {
|
|
|
106
105
|
});
|
|
107
106
|
}
|
|
108
107
|
function toggleModelVisibility(modelMap, modelId, isVisible) {
|
|
109
|
-
|
|
108
|
+
const model = modelMap.get(modelId);
|
|
110
109
|
if (!model) return;
|
|
111
110
|
console.log('toggleModelVisibility_model', model);
|
|
112
|
-
|
|
113
|
-
model.traverse(
|
|
111
|
+
const isAnimating = {}; // Object to track animations
|
|
112
|
+
model.traverse(child => {
|
|
114
113
|
if (child.isMesh) {
|
|
115
|
-
|
|
114
|
+
const id = child.id; // Use unique child.id as the key
|
|
116
115
|
child.material.transparent = true;
|
|
117
116
|
if (!isAnimating[id]) {
|
|
118
117
|
isAnimating[id] = true; // Set animation flag
|
|
119
|
-
_gsap
|
|
118
|
+
_gsap.default.to(child.material, {
|
|
120
119
|
opacity: isVisible ? 1 : 0,
|
|
121
120
|
duration: 0.5,
|
|
122
121
|
// Smooth fade animation
|
|
123
122
|
ease: 'power2.inOut',
|
|
124
|
-
onComplete:
|
|
123
|
+
onComplete: () => {
|
|
125
124
|
isAnimating[id] = false; // Reset animation flag
|
|
126
125
|
model.visible = isVisible;
|
|
127
126
|
}
|
|
@@ -137,21 +136,21 @@ function toggleModelVisibility(modelMap, modelId, isVisible) {
|
|
|
137
136
|
}
|
|
138
137
|
function bearingToRotation(bearing) {
|
|
139
138
|
// Mapbox bearing is clockwise from north, Three.js rotation is counterclockwise from east
|
|
140
|
-
|
|
139
|
+
const threeRotation = -((bearing - 90) * Math.PI / 180);
|
|
141
140
|
return threeRotation;
|
|
142
141
|
}
|
|
143
142
|
function rotationToBearing(quaternion) {
|
|
144
|
-
|
|
143
|
+
const euler = new _three.Euler().setFromQuaternion(quaternion);
|
|
145
144
|
// Convert from radians to degrees and adjust coordinate systems
|
|
146
|
-
|
|
145
|
+
const bearing = (360 - (euler.y * 180 / Math.PI - 90)) % 360;
|
|
147
146
|
return bearing;
|
|
148
147
|
}
|
|
149
148
|
function objectDirectionToBearing(object) {
|
|
150
|
-
|
|
149
|
+
const forward = new _three.Vector3();
|
|
151
150
|
object.getWorldDirection(forward);
|
|
152
151
|
|
|
153
152
|
// Project onto the map's X-Z plane (ignore Y)
|
|
154
|
-
|
|
153
|
+
const bearing = Math.atan2(forward.x, forward.z) * (180 / Math.PI);
|
|
155
154
|
return bearing;
|
|
156
155
|
}
|
|
157
156
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_three","_interopRequireWildcard","require","THREE","_constants","_interopRequireDefault","_gsap","_GLTFLoader","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","projectToWorld","coords","projected","constants","MERCATOR_A","DEG2RAD","PROJECTION_WORLD_SIZE","Math","log","tan","PI","push","pixelsPerMeter","projectedUnitsPerMeter","result","Vector3","latitude","abs","WORLD_SIZE","cos","EARTH_CIRCUMFERENCE","unprojectFromWorld","worldUnits","unprojected","x","atan","exp","y","height","z","toDecimal","d","Number","toFixed","addModelsToMap","wrapper","map","models","modelMap","onModelsLoaded","Promise","resolve","reject","modelLoadPromises","_ref","id","modelUrl","rotation","scale","instanced","modelResolve","modelReject","loader","GLTFLoader","load","gltf","_modelMap$get$visible","_modelMap$get","model","scene","traverse","child","Mesh","Array","isArray","material","forEach","mat","side","DoubleSide","needsUpdate","worldPosition","position","up","visible","add","undefined","error","console","concat","addLayer","type","renderingMode","onAdd","all","then","res","render","toggleModelVisibility","modelId","isVisible","isAnimating","isMesh","transparent","gsap","to","opacity","duration","ease","onComplete","bearingToRotation","bearing","threeRotation","rotationToBearing","quaternion","euler","Euler","setFromQuaternion","objectDirectionToBearing","object","forward","getWorldDirection","atan2"],"sources":["../../../../../../src/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.ts"],"sourcesContent":["import * as THREE from 'three';\nimport {Quaternion, Euler, Vector3, InstancedMesh, Object3D} from 'three';\nimport constants from './constants';\nimport { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js';\nimport { LngLatLike } from 'maplibre-gl';\nimport { Position } from 'geojson';\nimport gsap from 'gsap';\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';\nimport { AmbientLight, DirectionalLight } from 'three';\nimport CustomThreeJSWrapper from '../CustomThreeJsWrapper.js';\n\nexport function projectToWorld(coords: Position) {\n var projected = [\n -constants.MERCATOR_A *\n constants.DEG2RAD *\n coords[0] *\n constants.PROJECTION_WORLD_SIZE,\n -constants.MERCATOR_A *\n Math.log(Math.tan(Math.PI * 0.25 + 0.5 * constants.DEG2RAD * coords[1])) *\n constants.PROJECTION_WORLD_SIZE,\n ];\n\n if (!coords[2]) projected.push(0);\n else {\n var pixelsPerMeter = projectedUnitsPerMeter(coords[1]);\n projected.push(coords[2] * pixelsPerMeter);\n }\n\n var result = new Vector3(projected[0], projected[1], projected[2]);\n\n return result;\n}\n\nfunction projectedUnitsPerMeter(latitude: number) {\n return Math.abs(\n constants.WORLD_SIZE /\n Math.cos(constants.DEG2RAD * latitude) /\n constants.EARTH_CIRCUMFERENCE\n );\n}\n\nexport function unprojectFromWorld(worldUnits: Vector3) {\n var unprojected = [\n -worldUnits.x /\n (constants.MERCATOR_A *\n constants.DEG2RAD *\n constants.PROJECTION_WORLD_SIZE),\n (2 *\n (Math.atan(\n Math.exp(\n worldUnits.y /\n (constants.PROJECTION_WORLD_SIZE * -constants.MERCATOR_A)\n )\n ) -\n Math.PI / 4)) /\n constants.DEG2RAD,\n ];\n\n var pixelsPerMeter = projectedUnitsPerMeter(unprojected[1]);\n\n // z dimension\n var height = worldUnits.z || 0;\n unprojected.push(height / pixelsPerMeter);\n\n return unprojected as LngLatLike;\n}\n\nexport function toDecimal (n, d) {\n return Number(n.toFixed(d));\n}\n\n// RF: TO BE REMOVED. ModelLoader component can be used to load 3D models.\nexport function addModelsToMap(wrapper, map, models, modelMap, onModelsLoaded) {\n return new Promise((resolve, reject) => {\n try {\n const modelLoadPromises = models.map(({ id, modelUrl, coords, rotation, scale, instanced }) => {\n return new Promise((modelResolve, modelReject) => {\n const loader = new GLTFLoader();\n loader.load(\n modelUrl,\n (gltf) => {\n const model = gltf.scene;\n model.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n if (Array.isArray(child.material)) {\n child.material.forEach((mat) => {\n mat.side = THREE.DoubleSide;\n mat.needsUpdate = true;\n });\n } else {\n child.material.side = THREE.DoubleSide;\n child.material.needsUpdate = true;\n }\n }\n });\n \n const worldPosition = projectToWorld(coords);\n model.position.set(worldPosition.x, worldPosition.y, 0);\n model.up.set(0, 0, 1);\n model.rotation.set(rotation[0], rotation[1], rotation[2]);\n model.scale.set(scale[0], scale[1], scale[2]);\n model.visible = modelMap.get(id)?.visible ?? true;\n wrapper.add(model);\n modelMap.set(id, model);\n modelResolve(modelMap);\n },\n undefined,\n (error) => {\n console.error(`Error loading model ${id}:`, error);\n modelReject(error);\n }\n );\n });\n });\n\n map.addLayer({\n id: '3d-model-layer2',\n type: 'custom',\n renderingMode: '3d',\n onAdd: () => Promise.all(modelLoadPromises).then((res)=>{\n resolve(res);\n onModelsLoaded(true);\n }).catch(reject),\n render: () => {},\n });\n } catch (error) {\n reject(error);\n }\n });\n}\n\nexport function toggleModelVisibility(modelMap, modelId, isVisible) {\n const model = modelMap.get(modelId);\n if (!model) return;\n console.log('toggleModelVisibility_model', model);\n const isAnimating = {}; // Object to track animations\n model.traverse((child) => {\n if (child.isMesh) {\n const id = child.id; // Use unique child.id as the key\n child.material.transparent = true;\n if (!isAnimating[id]) {\n isAnimating[id] = true; // Set animation flag\n gsap.to(child.material, {\n opacity: isVisible ? 1 : 0,\n duration: 0.5, // Smooth fade animation\n ease: 'power2.inOut',\n onComplete: () => {\n isAnimating[id] = false; // Reset animation flag\n model.visible = isVisible;\n },\n });\n } else if (child.isMesh) {\n console.error(`GSAP Animation already running for child id ${id}!`);\n }\n }\n });\n if (isVisible) {\n model.visible = true;\n }\n}\n\nexport function bearingToRotation(bearing: number) {\n // Mapbox bearing is clockwise from north, Three.js rotation is counterclockwise from east\n const threeRotation = -((bearing - 90) * Math.PI / 180);\n return threeRotation;\n}\n\nexport function rotationToBearing(quaternion: Quaternion) {\n const euler = new Euler().setFromQuaternion(quaternion);\n // Convert from radians to degrees and adjust coordinate systems\n const bearing = (360 - (euler.y * 180 / Math.PI - 90)) % 360;\n return bearing;\n}\n\nexport function objectDirectionToBearing(object) {\n const forward = new Vector3();\n object.getWorldDirection(forward);\n\n // Project onto the map's X-Z plane (ignore Y)\n const bearing = Math.atan2(forward.x, forward.z) * (180 / Math.PI);\n \n return bearing;\n}"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_three","_interopRequireWildcard","require","THREE","_constants","_interopRequireDefault","_gsap","_GLTFLoader","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","projectToWorld","coords","projected","constants","MERCATOR_A","DEG2RAD","PROJECTION_WORLD_SIZE","Math","log","tan","PI","push","pixelsPerMeter","projectedUnitsPerMeter","result","Vector3","latitude","abs","WORLD_SIZE","cos","EARTH_CIRCUMFERENCE","unprojectFromWorld","worldUnits","unprojected","x","atan","exp","y","height","z","toDecimal","d","Number","toFixed","addModelsToMap","wrapper","map","models","modelMap","onModelsLoaded","Promise","resolve","reject","modelLoadPromises","_ref","id","modelUrl","rotation","scale","instanced","modelResolve","modelReject","loader","GLTFLoader","load","gltf","_modelMap$get$visible","_modelMap$get","model","scene","traverse","child","Mesh","Array","isArray","material","forEach","mat","side","DoubleSide","needsUpdate","worldPosition","position","up","visible","add","undefined","error","console","concat","addLayer","type","renderingMode","onAdd","all","then","res","catch","render","toggleModelVisibility","modelId","isVisible","isAnimating","isMesh","transparent","gsap","to","opacity","duration","ease","onComplete","bearingToRotation","bearing","threeRotation","rotationToBearing","quaternion","euler","Euler","setFromQuaternion","objectDirectionToBearing","object","forward","getWorldDirection","atan2"],"sources":["../../../../../../src/meta-atlas-sdk/3DMap/CustomThreeJsWrapper/utility/utils.ts"],"sourcesContent":["import * as THREE from 'three';\nimport {Quaternion, Euler, Vector3, InstancedMesh, Object3D} from 'three';\nimport constants from './constants';\nimport { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js';\nimport { LngLatLike } from 'maplibre-gl';\nimport { Position } from 'geojson';\nimport gsap from 'gsap';\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';\nimport { AmbientLight, DirectionalLight } from 'three';\nimport CustomThreeJSWrapper from '../CustomThreeJsWrapper.js';\n\nexport function projectToWorld(coords: Position) {\n var projected = [\n -constants.MERCATOR_A *\n constants.DEG2RAD *\n coords[0] *\n constants.PROJECTION_WORLD_SIZE,\n -constants.MERCATOR_A *\n Math.log(Math.tan(Math.PI * 0.25 + 0.5 * constants.DEG2RAD * coords[1])) *\n constants.PROJECTION_WORLD_SIZE,\n ];\n\n if (!coords[2]) projected.push(0);\n else {\n var pixelsPerMeter = projectedUnitsPerMeter(coords[1]);\n projected.push(coords[2] * pixelsPerMeter);\n }\n\n var result = new Vector3(projected[0], projected[1], projected[2]);\n\n return result;\n}\n\nfunction projectedUnitsPerMeter(latitude: number) {\n return Math.abs(\n constants.WORLD_SIZE /\n Math.cos(constants.DEG2RAD * latitude) /\n constants.EARTH_CIRCUMFERENCE\n );\n}\n\nexport function unprojectFromWorld(worldUnits: Vector3) {\n var unprojected = [\n -worldUnits.x /\n (constants.MERCATOR_A *\n constants.DEG2RAD *\n constants.PROJECTION_WORLD_SIZE),\n (2 *\n (Math.atan(\n Math.exp(\n worldUnits.y /\n (constants.PROJECTION_WORLD_SIZE * -constants.MERCATOR_A)\n )\n ) -\n Math.PI / 4)) /\n constants.DEG2RAD,\n ];\n\n var pixelsPerMeter = projectedUnitsPerMeter(unprojected[1]);\n\n // z dimension\n var height = worldUnits.z || 0;\n unprojected.push(height / pixelsPerMeter);\n\n return unprojected as LngLatLike;\n}\n\nexport function toDecimal (n, d) {\n return Number(n.toFixed(d));\n}\n\n// RF: TO BE REMOVED. ModelLoader component can be used to load 3D models.\nexport function addModelsToMap(wrapper, map, models, modelMap, onModelsLoaded) {\n return new Promise((resolve, reject) => {\n try {\n const modelLoadPromises = models.map(({ id, modelUrl, coords, rotation, scale, instanced }) => {\n return new Promise((modelResolve, modelReject) => {\n const loader = new GLTFLoader();\n loader.load(\n modelUrl,\n (gltf) => {\n const model = gltf.scene;\n model.traverse((child) => {\n if (child instanceof THREE.Mesh) {\n if (Array.isArray(child.material)) {\n child.material.forEach((mat) => {\n mat.side = THREE.DoubleSide;\n mat.needsUpdate = true;\n });\n } else {\n child.material.side = THREE.DoubleSide;\n child.material.needsUpdate = true;\n }\n }\n });\n \n const worldPosition = projectToWorld(coords);\n model.position.set(worldPosition.x, worldPosition.y, 0);\n model.up.set(0, 0, 1);\n model.rotation.set(rotation[0], rotation[1], rotation[2]);\n model.scale.set(scale[0], scale[1], scale[2]);\n model.visible = modelMap.get(id)?.visible ?? true;\n wrapper.add(model);\n modelMap.set(id, model);\n modelResolve(modelMap);\n },\n undefined,\n (error) => {\n console.error(`Error loading model ${id}:`, error);\n modelReject(error);\n }\n );\n });\n });\n\n map.addLayer({\n id: '3d-model-layer2',\n type: 'custom',\n renderingMode: '3d',\n onAdd: () => Promise.all(modelLoadPromises).then((res)=>{\n resolve(res);\n onModelsLoaded(true);\n }).catch(reject),\n render: () => {},\n });\n } catch (error) {\n reject(error);\n }\n });\n}\n\nexport function toggleModelVisibility(modelMap, modelId, isVisible) {\n const model = modelMap.get(modelId);\n if (!model) return;\n console.log('toggleModelVisibility_model', model);\n const isAnimating = {}; // Object to track animations\n model.traverse((child) => {\n if (child.isMesh) {\n const id = child.id; // Use unique child.id as the key\n child.material.transparent = true;\n if (!isAnimating[id]) {\n isAnimating[id] = true; // Set animation flag\n gsap.to(child.material, {\n opacity: isVisible ? 1 : 0,\n duration: 0.5, // Smooth fade animation\n ease: 'power2.inOut',\n onComplete: () => {\n isAnimating[id] = false; // Reset animation flag\n model.visible = isVisible;\n },\n });\n } else if (child.isMesh) {\n console.error(`GSAP Animation already running for child id ${id}!`);\n }\n }\n });\n if (isVisible) {\n model.visible = true;\n }\n}\n\nexport function bearingToRotation(bearing: number) {\n // Mapbox bearing is clockwise from north, Three.js rotation is counterclockwise from east\n const threeRotation = -((bearing - 90) * Math.PI / 180);\n return threeRotation;\n}\n\nexport function rotationToBearing(quaternion: Quaternion) {\n const euler = new Euler().setFromQuaternion(quaternion);\n // Convert from radians to degrees and adjust coordinate systems\n const bearing = (360 - (euler.y * 180 / Math.PI - 90)) % 360;\n return bearing;\n}\n\nexport function objectDirectionToBearing(object) {\n const forward = new Vector3();\n object.getWorldDirection(forward);\n\n // Project onto the map's X-Z plane (ignore Y)\n const bearing = Math.atan2(forward.x, forward.z) * (180 / Math.PI);\n \n return bearing;\n}"],"mappings":"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","ignoreList":[]}
|