diff --git a/packages/viewer-sandbox/src/main.ts b/packages/viewer-sandbox/src/main.ts index e140d2e07..6d8a2e9d8 100644 --- a/packages/viewer-sandbox/src/main.ts +++ b/packages/viewer-sandbox/src/main.ts @@ -286,7 +286,9 @@ const getStream = () => { // 'https://speckle.xyz/streams/46caea9b53/commits/71938adcd1' // 'https://speckle.xyz/streams/2f9f2f3021/commits/75bd13f513' // 'https://speckle.xyz/streams/25d8a162af/commits/6c842a713c' - 'https://speckle.xyz/streams/76e3acde68/commits/0ea3d47e6c' + // 'https://speckle.xyz/streams/76e3acde68/commits/0ea3d47e6c' + // Point cloud + 'https://speckle.xyz/streams/b920636274/commits/8df6496749' ) } diff --git a/packages/viewer/src/modules/materials/Materials.ts b/packages/viewer/src/modules/materials/Materials.ts index 3e5b69b19..b7cac9f89 100644 --- a/packages/viewer/src/modules/materials/Materials.ts +++ b/packages/viewer/src/modules/materials/Materials.ts @@ -67,20 +67,24 @@ export default class Materials { private defaultGradientTextureData: ImageData = null - public static renderMaterialFromNode(node: TreeNode): RenderMaterial { - if (!node) return null + public static renderMaterialFromNode( + materialNode: TreeNode, + geometryNode: TreeNode + ): RenderMaterial { + if (!materialNode) return null let renderMaterial: RenderMaterial = null - if (node.model.raw.renderMaterial) { + if (materialNode.model.raw.renderMaterial) { renderMaterial = { - id: node.model.raw.renderMaterial.id, - color: node.model.raw.renderMaterial.diffuse, + id: materialNode.model.raw.renderMaterial.id, + color: materialNode.model.raw.renderMaterial.diffuse, opacity: - node.model.raw.renderMaterial.opacity !== undefined - ? node.model.raw.renderMaterial.opacity + materialNode.model.raw.renderMaterial.opacity !== undefined + ? materialNode.model.raw.renderMaterial.opacity : 1, - roughness: node.model.raw.renderMaterial.roughness, - metalness: node.model.raw.renderMaterial.metalness, - vertexColors: node.model.raw.colors && node.model.raw.colors.length > 0 + roughness: materialNode.model.raw.renderMaterial.roughness, + metalness: materialNode.model.raw.renderMaterial.metalness, + vertexColors: + geometryNode.model.raw.colors && geometryNode.model.raw.colors.length > 0 } } return renderMaterial diff --git a/packages/viewer/src/modules/tree/RenderTree.ts b/packages/viewer/src/modules/tree/RenderTree.ts index ea9586774..f103c515a 100644 --- a/packages/viewer/src/modules/tree/RenderTree.ts +++ b/packages/viewer/src/modules/tree/RenderTree.ts @@ -82,7 +82,8 @@ export class RenderTree { speckleType: GeometryConverter.getSpeckleType(node.model), geometry: geometryData, renderMaterial: Materials.renderMaterialFromNode( - renderMaterialNode || displayStyleNode + renderMaterialNode || displayStyleNode, + node ), /** Line-type geometry can also use a renderMaterial*/ displayStyle: Materials.displayStyleFromNode(