/** * @license Copyright © HatioLab Inc. All rights reserved. */ import '@operato/input/ox-input-color.js'; import '@operato/i18n/ox-i18n.js'; import './property-material3d.js'; import { Properties, Scene } from '@hatiolab/things-scene'; import { AbstractProperty } from '../abstract-property.js'; /** * Scene-level 3D settings for model-layer. * Includes 3D mode, camera, renderer, lighting, presets, and floor configuration. */ export declare class PropertyScene3D extends AbstractProperty { static styles: import("lit").CSSResult[]; value?: Properties; scene: Scene | null; render(): import("lit-html").TemplateResult<1>; /** * Camera 초기 설정 — Initial View(뷰 프리셋), FOV/Near/Far, 현재 카메라 저장 버튼. * 사용자가 씬을 3D로 돌려본 후 "이 각도가 마음에 든다" 싶으면 * Save Current View로 현재 viewport의 position을 모델에 기록 → 다음 로드 시 같은 각도로 시작. */ private _renderCamera; /** * 현재 3D viewport의 카메라 상태를 모델에 저장한다. * scene의 getCameraState를 호출하여 view/cameraX/cameraY/cameraZ를 얻어 property-change로 전파. */ private _onSaveCameraView; /** * Scene placement 모드 선택 — zPos 해석과 볼륨 origin 방향을 씬 전체에 일관 적용. * floor : zPos=바닥 높이, 볼륨이 위로 쌓임 (공장/창고/건축) * space : zPos=볼륨 중심 Y, 바닥 개념 없음 (우주/추상/전시) * inverted: zPos=천장, 볼륨이 아래로 매달림 (천장 설비, 베타) */ private _renderPlacement; private _renderMode; private _renderRenderer; /** * Environment 드롭다운 — 씬의 공간적 맥락을 정의. * 선택 시 sky 값과 함께 ENVIRONMENT_DEFAULTS의 기본 조명까지 한 번에 적용한다. * "원클릭 전체 look" — 사용자가 원하면 Light Mood/원자 컨트롤로 위에 얹어 조정. */ private _renderSky; /** * Environment 선택 핸들러 — sky 필드만 바꾸는 게 아니라 ENVIRONMENT_DEFAULTS에 * 정의된 hemi/dir 기본 조명까지 한 번의 property-change로 함께 적용한다. */ private _onEnvironmentChange; private _renderHemisphereLight; private _renderKeyLight; /** * Light Mood — Environment가 설정한 기본 조명 위에 얹는 분위기 오버라이드. * sky는 건드리지 않고 hemi/dir 값만 적용. Environment와 독립적으로 조합 가능. */ private _renderLightingPresets; private _onPresetChange; private _renderFloor; private _applyLightingPreset; private _onFloorMaterialChange; }