diff --git a/packages/viewer/src/components/renderers/zone/zone-renderer.tsx b/packages/viewer/src/components/renderers/zone/zone-renderer.tsx
index 4bebc85b..a0556c32 100644
--- a/packages/viewer/src/components/renderers/zone/zone-renderer.tsx
+++ b/packages/viewer/src/components/renderers/zone/zone-renderer.tsx
@@ -239,6 +239,7 @@ export const ZoneRenderer = ({ node }: { node: ZoneNode }) => {
rotation={[-Math.PI / 2, 0, 0]}
material={floorMaterial}
name="floor"
+ layers={2}
>
diff --git a/packages/viewer/src/components/viewer/ground-occluder.tsx b/packages/viewer/src/components/viewer/ground-occluder.tsx
index 41a54b67..4df8726b 100644
--- a/packages/viewer/src/components/viewer/ground-occluder.tsx
+++ b/packages/viewer/src/components/viewer/ground-occluder.tsx
@@ -1,13 +1,13 @@
import { useScene } from '@pascal-app/core'
+import polygonClipping from 'polygon-clipping'
import { useMemo } from 'react'
import * as THREE from 'three'
import useViewer from '../../store/use-viewer'
-import polygonClipping from 'polygon-clipping'
export const GroundOccluder = () => {
const theme = useViewer((state) => state.theme)
const bgColor = theme === 'dark' ? '#1f2433' : '#fafafa'
-
+
const nodes = useScene((state) => state.nodes)
const shape = useMemo(() => {
@@ -22,17 +22,17 @@ export const GroundOccluder = () => {
// Collect all polygons for slabs and zones
const polygons: [number, number][][] = []
-
+
Object.values(nodes).forEach((node) => {
- if ((node.type === 'slab' || node.type === 'zone') && node.polygon && node.polygon.length >= 3) {
+ if (node.type === 'slab' && node.polygon && node.polygon.length >= 3) {
polygons.push(node.polygon as [number, number][])
}
})
if (polygons.length > 0) {
// Format for polygon-clipping: [[[x, y], [x, y], ...]]
- const multiPolygons = polygons.map(pts => {
- const ring = pts.map(p => [p[0], -p[1]] as [number, number]) // Negate Y (which was Z)
+ const multiPolygons = polygons.map((pts) => {
+ const ring = pts.map((p) => [p[0], -p[1]] as [number, number]) // Negate Y (which was Z)
return [ring]
})
@@ -45,7 +45,7 @@ export const GroundOccluder = () => {
if (geom.length > 0) {
const ring = geom[0]!
const hole = new THREE.Path()
-
+
if (ring.length > 0) {
hole.moveTo(ring[0]![0], ring[0]![1])
for (let i = 1; i < ring.length; i++) {
@@ -64,8 +64,8 @@ export const GroundOccluder = () => {
return (
-