import { ShaderMaterial, ShaderMaterialParameters, Vector2 } from "three"; import type { IUniform } from "three"; import { Axis } from "type-tls"; import type { Texture3D } from "@three3d/tools"; /** * 切片材质的 uniforms */ export interface SliceMaterialUniforms { map: IUniform; opacity: IUniform; axis: IUniform; depth: IUniform; } /** * 切片材质的选项 */ export interface SliceMaterialOptions extends Omit { /** * 三维的纹理 */ map?: Texture3D | null; /** * 透明度 * @remarks * 决定整体的透明度 * @defaultValue 1 */ opacity?: number | null; /** * 轴 * @remarks * 切片就是垂直于该轴的截面 * * @defaultValue Axis.z */ axis?: Axis | null; /** * 轴上的坐标值 * @remarks * 会在轴的该位置处获取切片 * @defaultValue 0 */ depth?: number | null; } /** * 切片材质 * @remarks * 用于呈现3D图像的在指定轴上指定位置处的截面 */ export declare class SliceMaterial extends ShaderMaterial { readonly isSliceMaterial = true; constructor(options?: SliceMaterialOptions); uniforms: SliceMaterialUniforms; /** * 三维的纹理 */ get map(): Texture3D | null; set map(value: Texture3D | null); /** * 透明度 * @remarks * 决定整体的透明度 * @defaultValue 1 */ get opacity(): number; set opacity(value: number); /** * 轴 * @remarks * 切片就是垂直于该轴的截面 * * @defaultValue Axis.z */ get axis(): Axis; set axis(value: Axis); /** * 轴上的坐标值 * @remarks * 会在轴的该位置处获取切片 * @defaultValue 0 */ get depth(): number; set depth(value: number); /** * 切片的尺寸 * @remarks * 不同轴上的切片的尺寸一般不一样 */ get sliceSize(): Vector2; protected _sliceSize?: Vector2 | null; } //# sourceMappingURL=SliceMaterial.d.ts.map