From 751392c640fa3476a615a091f8c3290fd94a4712 Mon Sep 17 00:00:00 2001 From: Wassim SAMAD Date: Wed, 17 Jun 2026 15:27:40 -0400 Subject: [PATCH] feat(paint-slots): default roof shingle surface to catalog finish Replace the flat #e5e5e5 placeholder on the roof shingle surface (material index 3) with the catalog roof-weatheredshingles finish via resolveSlotDefaultMaterial. Wall/trim, deck, and interior surfaces and the textures-off role array are unchanged. Roof keeps its existing per-segment role material system (no node.slots migration). Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/nodes/src/roof/roof-materials.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/nodes/src/roof/roof-materials.ts b/packages/nodes/src/roof/roof-materials.ts index b05cca1c..665d155d 100644 --- a/packages/nodes/src/roof/roof-materials.ts +++ b/packages/nodes/src/roof/roof-materials.ts @@ -2,6 +2,7 @@ import { type ColorPreset, createDefaultMaterial, createSurfaceRoleMaterial, + resolveSlotDefaultMaterial, type RenderShading, } from '@pascal-app/viewer' import * as THREE from 'three' @@ -24,7 +25,7 @@ export function getRoofMaterials( createDefaultMaterial('white', 1, shading, THREE.DoubleSide), // 0: Wall/Trim createDefaultMaterial('#e5e5e5', 1, shading, THREE.FrontSide), // 1: Deck createDefaultMaterial('white', 1, shading, THREE.DoubleSide), // 2: Interior - createDefaultMaterial('#e5e5e5', 0.9, shading, THREE.FrontSide), // 3: Shingle + resolveSlotDefaultMaterial('library:roof-weatheredshingles', shading), // 3: Shingle ] : [ createSurfaceRoleMaterial('roof', colorPreset),