import { Mesh, type BufferGeometry, Vector3 } from "three"; import { VolumeMaterial } from "./VolumeMaterial"; import { Axis, IVector3 } from "type-tls"; /** * 将几何体的原点移动包围盒的最小点处 * @param geometry */ export declare function makeOriginOnBoundingBoxMinOfGeometry(geometry: BufferGeometry): BufferGeometry; /** * 体积Mesh * @remarks * 专用用于体积材质; * * 体积材质也可以用于普通的 Mesh;但如果使用 VolumeMesh ,则可以减少很多体积材质 和 geometry 同步操作; */ export declare class VolumeMesh extends Mesh { readonly isVolumeMesh = true; constructor(material: VolumeMaterial); protected _geometry: BufferGeometry; /** * 是否自动更新材质 * @remarks * 当启动该选项后,在 VolumeMesh 监测到 geometry 变更时,会自动更新体积材质的相关选项,以适应新的 geometry * @defaultValue true */ autoUpdateMaterial: boolean; material: VolumeMaterial; protected _material: VolumeMaterial; /** * 是否自动更新几何体 * @remarks * 当启动该选项后,在 VolumeMesh 监测到 material 变更时,会自动更新 geometry 的相关选项,以适应新的 体积材质 * @defaultValue true */ autoUpdateGeometry: boolean; /** * 更新材质 * @remarks * 更新体积材质的相关选项以使其匹配 geometry */ updateMaterial(): false | undefined; /** * 更新几何体 * @remarks * 更新 geometry 的相关选项以使其匹配体积材质 */ updateGeometry(): false | undefined; /** * 自动规范化 * @remarks * 开启该选项,设置新的 geometry 时,对 geometry 自动执行规范化操作 */ autoNormalize: boolean; /** * 规范化 * @remarks * 将 geometry 的原点移动到包围盒的最小点处 */ normalize(): void; /** * 将材质空间下的坐标转为 map 空间下的坐标 * @param coord - 材质空间下的坐标 * @returns */ toMapPosition(coord: IVector3): Vector3; /** * 将世界坐标系下的深度转为 material 空间下的深度 * @param axis - 材质空间下的坐标轴 * @param depth - 深度 * @returns */ toMaterialDepth(axis: Axis, depth: number): number; /** * 将世界坐标系下的深度转为 map 空间下的深度 * @param axis - map空间下的坐标轴 * @param depth - 深度 * @returns */ toMapDepth(axis: Axis, depth: number): number; /** * 获取3D数据的切片 * @remarks * 切片就是指定轴的指定位置的垂直截面; * 轴和深度都是局部坐标系下的 * @param axis - map空间下的坐标轴 * @param depth - 世界空间下在轴方向上的坐标值 * @returns */ getData3DSlice(axis: Axis, depth: number): import("image-tls").IData2D | null; /** * 获取3D数据中指定坐标处的数据项目 * @param coord - 世界坐标系下的坐标 * @returns */ getItem(coord: IVector3): number[] | null; } //# sourceMappingURL=VolumeMesh.d.ts.map