diff --git a/src/assets/SpeckleViewer2.vue b/src/assets/SpeckleViewer2.vue new file mode 100644 index 0000000..5e5d0ae --- /dev/null +++ b/src/assets/SpeckleViewer2.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/components/ControlPanel.vue b/src/components/ControlPanel.vue index cbf2555..a8d42b5 100644 --- a/src/components/ControlPanel.vue +++ b/src/components/ControlPanel.vue @@ -15,7 +15,12 @@

Control Panel

+ + +
+ +
@@ -23,15 +28,17 @@ diff --git a/src/composables/viewer/actions.ts b/src/composables/viewer/actions.ts index 50ff07a..23f10de 100644 --- a/src/composables/viewer/actions.ts +++ b/src/composables/viewer/actions.ts @@ -1,16 +1,16 @@ import useViewer from '@/composables/viewer/viewer' import { Catalogue, type CatalogueOptions } from '@/extensions/Catalogue' import { FilteringExtension } from '@speckle/viewer' +import { viewer } from '@/composables/viewer/viewer' export default function useViewerActions() { - const { viewer } = useViewer() - /** * Get the properties of the objects in the viewer * The exact properties returned depends on the objects in the viewer * @returns - List of properties in the viewer */ const getObjectProperties = async () => { + console.log(viewer) if (!viewer) return return await viewer.getObjectProperties() } diff --git a/src/composables/viewer/viewer.ts b/src/composables/viewer/viewer.ts index d9ce943..bc9ef1a 100644 --- a/src/composables/viewer/viewer.ts +++ b/src/composables/viewer/viewer.ts @@ -5,11 +5,12 @@ import { FilteringExtension, SpeckleLoader, UrlHelper, - Viewer + Viewer, + ViewerEvent } from '@speckle/viewer' import { Catalogue } from '@/extensions/Catalogue' -let viewer: Viewer | undefined = undefined +export let viewer: Viewer | undefined = undefined export default function useViewer() { /** @@ -25,6 +26,14 @@ export default function useViewer() { viewer = new Viewer(element, params) await viewer.init() + + viewer.on(ViewerEvent.LoadComplete, async() => { + const properties = await viewer.getObjectProperties() + console.log('properties', properties) + + // material.value = properties.find(property => property.key === 'renderMaterial.name') + // console.log('material', material.value) + }) } /** @@ -56,7 +65,6 @@ export default function useViewer() { return { init, - viewer, loadModelFromUrl, addExtensions }