import { ColorRepresentation } from 'three/webgpu'; import { MeshComponent } from '../MeshComponent.ts'; /** * The ground plane. * * Extends {@link MeshComponent} to reuse the mesh and material handling, but * sits on {@link FLOOR_LAYER_MASK} rather than the product layer. That single * difference is what keeps a 1000x1000 plane out of every bounding box, out of * scene exports and out of picking, while still rendering and receiving shadows. * * @module */ export declare class FloorComponent extends MeshComponent { readonly isFloorComponent: true; constructor(); /** Whether the floor is drawn. */ get visible(): boolean; /** * On the plane, which is what three reads when it draws. There is nothing * else to set: a component carries no visibility of its own. * * @param visible - Whether the floor is drawn. */ setVisibility(visible: boolean): void; /** * @param color - The floor colour. */ setColor(color: ColorRepresentation): void; /** * The floor's own material never comes from {@link setMaterial}, so the base * copies nothing: colour and visibility have to be carried over here. * * @param source - The component to copy from. */ copy(source: this): this; }