import { default as React } from '../../../node_modules/react'; import { THREE, AssetLibraryManager, MaterialConfig } from '@easytwin/runtime'; import { MaterialEditorConfig } from './type'; export interface TextureOption { key: string; label: React.ReactNode; type: 'original' | 'scene'; img?: string; } export interface TextureUVConfig { wrapS: number; wrapT: number; repeat: { x: number; y: number; }; offset: { x: number; y: number; }; rotation: number; offsetSpeed: { x: number; y: number; }; } /** * 材质配置构建器,用于材质配置项构建为UI层使用的配置 */ export declare class MaterialConfigBuilder { private material; private assetLibrary; constructor({ material, assetLibrary, }: { material: THREE.Material; assetLibrary: AssetLibraryManager; }); /** * 构建材质编辑器的配置项 * @param material * @returns */ buildMaterialEditorConfig(material: THREE.Material, type: 'SceneMaterial' | 'ModelMaterial'): MaterialEditorConfig; /** * 构建材质配置,将编辑器配置转换为材质配置,用于后端存储 * @param editorConfig * @returns */ buildMaterialConfig(editorConfig: MaterialEditorConfig): MaterialConfig; private getTextureOptions; private getTextureUVConfig; }