Merge pull request #84 from specklesystems/dev

Update `main` with changes from `dev`
This commit is contained in:
Alan Rynne 2024-11-05 11:53:21 +01:00 коммит произвёл GitHub
Родитель 6d5f638895 8edc01b7d6
Коммит 6e92c857a7
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
5 изменённых файлов: 125 добавлений и 43 удалений

Просмотреть файл

@ -63,7 +63,7 @@ let
urlType = urlType,
server = server,
id = streamId,
branch = model[name],
branch = modelId,
commit = versionId,
object = null
]

145
src/powerbi-visual/package-lock.json сгенерированный
Просмотреть файл

@ -6,6 +6,7 @@
"packages": {
"": {
"name": "@specklesystems/powerbi-visual",
"version": "2.0.0",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.21.5",
@ -14,7 +15,7 @@
"@heroicons/vue": "^2.0.12",
"@speckle/tailwind-theme": "2.14.7",
"@speckle/ui-components": "2.14.7",
"@speckle/viewer": "^2.18.14",
"@speckle/viewer": "^2.21.0",
"color-interpolate": "^1.0.5",
"core-js": "^3.30.2",
"lodash": "^4.17.21",
@ -70,8 +71,7 @@
"webpack-bundle-analyzer": "^4.8.0",
"webpack-cli": "^5.1.1",
"webpack-dev-server": "^4.15.0"
},
"version": "2.0.0"
}
},
"node_modules/@alloc/quick-lru": {
"version": "5.2.0",
@ -2659,13 +2659,15 @@
}
},
"node_modules/@speckle/objectloader": {
"version": "2.18.16",
"resolved": "https://registry.npmjs.org/@speckle/objectloader/-/objectloader-2.18.16.tgz",
"integrity": "sha512-YykdjxVkYlND+tgjHUL2I+Djaggm+w2v+UKZSIDSt7LVGIDg88JXJZ/JbO9B8ptx16i0E2oCQRuiTCntimoqZQ==",
"version": "2.21.0",
"resolved": "https://registry.npmjs.org/@speckle/objectloader/-/objectloader-2.21.0.tgz",
"integrity": "sha512-kGsQ1UKDR8sYE2m2b5poVocH3bbmRWmvPPG/ST7td0QjsYBKWRFJAX8fDmT6PSwbtN8reA9wKRtMJoO2OJvjBA==",
"dependencies": {
"@babel/core": "^7.17.9",
"@speckle/shared": "^2.18.16",
"@speckle/shared": "^2.21.0",
"core-js": "^3.21.1",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"regenerator-runtime": "^0.13.7"
},
"engines": {
@ -2673,11 +2675,11 @@
}
},
"node_modules/@speckle/shared": {
"version": "2.18.16",
"resolved": "https://registry.npmjs.org/@speckle/shared/-/shared-2.18.16.tgz",
"integrity": "sha512-I5/jmvbuOjDJYjFY04f3IsDnQ0/Rt6DQKekXWiuyfmuLUqsBvM9hbWZBsg3vPmvX2HFgfQxisZAD0bHwpNTb3A==",
"version": "2.21.0",
"resolved": "https://registry.npmjs.org/@speckle/shared/-/shared-2.21.0.tgz",
"integrity": "sha512-g9DsCeliDwQsgHLrYXKpWSaFMoTQ5yOraiEUzdQFMZGmM9IZNRztq4/74YLS+Wy5MutT79KFYsOwng60IcaB/w==",
"dependencies": {
"lodash": "^4.17.0",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"type-fest": "^3.11.1"
},
@ -2686,9 +2688,13 @@
},
"peerDependencies": {
"@tiptap/core": "^2.0.0-beta.176",
"mixpanel": "^0.17.0",
"pino": "^8.7.0",
"pino-http": "^8.0.0",
"pino-pretty": ">=8.0.0"
"pino-pretty": ">=8.0.0",
"ua-parser-js": "^1.0.38",
"znv": "^0.4.0",
"zod": "^3.22.4"
}
},
"node_modules/@speckle/tailwind-theme": {
@ -2727,15 +2733,14 @@
}
},
"node_modules/@speckle/viewer": {
"version": "2.18.16",
"resolved": "https://registry.npmjs.org/@speckle/viewer/-/viewer-2.18.16.tgz",
"integrity": "sha512-exIloJG6ZLDX5FgrxyTcbr1+7K3CXC8weKJkWc6d1nZITGiDZnPB6CG3ffEmudKEdbPirUpGuYX5QsqZvvcA5w==",
"version": "2.21.0",
"resolved": "https://registry.npmjs.org/@speckle/viewer/-/viewer-2.21.0.tgz",
"integrity": "sha512-fok7WW0RTcJpe4HsRQd1wqq+ill+3o1eIAfAnHJuzLqMqqnO7e64bNE18b42fHJWOgC3FzQCmh/xPChpNU7w7w==",
"dependencies": {
"@speckle/objectloader": "^2.18.16",
"@speckle/shared": "^2.18.16",
"@speckle/objectloader": "^2.21.0",
"@speckle/shared": "^2.21.0",
"@types/flat": "^5.0.2",
"camera-controls": "^1.33.1",
"hold-event": "^0.1.0",
"flat": "^5.0.2",
"js-logger": "1.6.1",
"lodash-es": "^4.17.21",
"string-to-color": "^2.2.2",
@ -3836,6 +3841,18 @@
"node": ">=0.4.0"
}
},
"node_modules/agent-base": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"peer": true,
"dependencies": {
"debug": "4"
},
"engines": {
"node": ">= 6.0.0"
}
},
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@ -4514,14 +4531,6 @@
"node": ">= 6"
}
},
"node_modules/camera-controls": {
"version": "1.38.2",
"resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-1.38.2.tgz",
"integrity": "sha512-EfzbovxLssyWpJVG9uKcazSDDIEcd1hUsPhPF/OWWnICsKY9WbLY/2S4UPW73HHbvnVeR/Z9wsWaQKtANy/2Yg==",
"peerDependencies": {
"three": ">=0.126.1"
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001625",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001625.tgz",
@ -6267,6 +6276,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/flat": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
"integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
"bin": {
"flat": "cli.js"
}
},
"node_modules/flat-cache": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
@ -6702,11 +6719,6 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
"node_modules/hold-event": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/hold-event/-/hold-event-0.1.0.tgz",
"integrity": "sha512-k4RvgnpTn8ZIPmFoHYnSRfyhfUTV+L2K5ruuIHT2IdgJqvNc6BCHGd/fSck9imqxW25xsxONZo9NN1DPlnbnLg=="
},
"node_modules/hpack.js": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
@ -6829,6 +6841,19 @@
"integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
"dev": true
},
"node_modules/https-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
"peer": true,
"dependencies": {
"agent-base": "6",
"debug": "4"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/human-signals": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
@ -7935,6 +7960,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/mixpanel": {
"version": "0.17.0",
"resolved": "https://registry.npmjs.org/mixpanel/-/mixpanel-0.17.0.tgz",
"integrity": "sha512-DY5WeOy/hmkPrNiiZugJpWR0iMuOwuj1a3u0bgwB2eUFRV6oIew/pIahhpawdbNjb+Bye4a8ID3gefeNPvL81g==",
"peer": true,
"dependencies": {
"https-proxy-agent": "5.0.0"
},
"engines": {
"node": ">=10.0"
}
},
"node_modules/mrmime": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
@ -12047,6 +12084,29 @@
"node": ">=12.20"
}
},
"node_modules/ua-parser-js": {
"version": "1.0.38",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz",
"integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/ua-parser-js"
},
{
"type": "paypal",
"url": "https://paypal.me/faisalman"
},
{
"type": "github",
"url": "https://github.com/sponsors/faisalman"
}
],
"peer": true,
"engines": {
"node": "*"
}
},
"node_modules/uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
@ -12963,6 +13023,27 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/znv": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/znv/-/znv-0.4.0.tgz",
"integrity": "sha512-6/pGsQhBisLzKdyC90mUCRgYDtCfQ4aQ68sDybexq3GMzqqkp662GH6qIyuCHJC1i72hJPHbWAhccTJVuZUQfA==",
"peer": true,
"dependencies": {
"colorette": "^2.0.19"
},
"peerDependencies": {
"zod": "^3.13.2"
}
},
"node_modules/zod": {
"version": "3.23.8",
"resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
"integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
"peer": true,
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

Просмотреть файл

@ -19,7 +19,7 @@
"@heroicons/vue": "^2.0.12",
"@speckle/tailwind-theme": "2.14.7",
"@speckle/ui-components": "2.14.7",
"@speckle/viewer": "^2.18.14",
"@speckle/viewer": "^2.21.0",
"color-interpolate": "^1.0.5",
"core-js": "^3.30.2",
"lodash": "^4.17.21",

Просмотреть файл

@ -6,7 +6,8 @@ import {
DefaultViewerParams,
Box3,
SpeckleView,
CameraController
CameraController,
CameraEvent
} from '@speckle/viewer'
import { pickViewableHit, projectToScreen } from '../utils/viewerUtils'
import _ from 'lodash'
@ -38,10 +39,9 @@ export default class ViewerHandler {
break
}
this.viewer.getExtension(CameraController).controls.maxPolarAngle = settings.camera
.allowCameraUnder.value
? Math.PI
: Math.PI / 2
var camController = this.viewer.getExtension(CameraController)
var angle = settings.camera.allowCameraUnder.value ? Math.PI : Math.PI / 2
camController.options = { maximumPolarAngle: angle }
// Lighting settings
const newConfig = settings.lighting.getViewerConfiguration()
@ -72,7 +72,7 @@ export default class ViewerHandler {
}
public addCameraUpdateEventListener(listener: (ev) => void) {
this.viewer.getExtension(CameraController).controls.addEventListener('update', listener)
this.viewer.getExtension(CameraController).on(CameraEvent.LateFrameUpdate, listener)
}
public constructor(parent: HTMLElement) {
@ -213,13 +213,13 @@ export default class ViewerHandler {
public getScreenPosition(worldPosition): { x: number; y: number } {
return projectToScreen(
this.viewer.getExtension(CameraController).controls.camera,
this.viewer.getExtension(CameraController).renderingCamera,
worldPosition
)
}
public dispose() {
this.viewer.getExtension(CameraController).controls.removeAllEventListeners()
this.viewer.getExtension(CameraController).dispose()
this.viewer.dispose()
this.viewer = null
}

Просмотреть файл

@ -1,6 +1,7 @@
import { FilteringState } from '@speckle/viewer'
import { OrthographicCamera, PerspectiveCamera } from 'three'
export function projectToScreen(cam, loc) {
export function projectToScreen(cam: OrthographicCamera | PerspectiveCamera, loc) {
cam.updateProjectionMatrix()
const copy = loc.clone()
copy.project(cam)