几何加载器
本节介绍 Cornerstone Core 中的几何加载器。
如果你读过分割渲染那一节, 就会知道一份分割既可以渲染成体数据(标签图),也可以渲染成轮廓或曲面。
TIP
类似的关系结构也被一些主流医学影像软件采用, 例如 3D Slicer 配合 polymorph segmentation。
几何加载器的作用,总体上就是从文件或 URL 加载并缓存几何数据。
注册网格加载器
你可以用
registerGeometryLoader
把一个外部网格加载器接入 cornerstone 库。该函数接受一个 scheme,
表示第二个参数那个网格加载器函数负责处理的 scheme。
import {
geometryLoader,
cornerstoneMeshLoader,
Enums,
Types,
} from '@cornerstonejs/core';
geometryLoader.registerGeometryLoader('mesh', cornerstoneMeshLoader);
CornerstoneMeshLoader
cornerstoneMeshLoader 的示例代码可以在
这里
查看。
const mesh1 = await geometryLoader.loadAndCacheGeometry(
'mesh:https://example.com/mesh.ply',
{
type: Enums.GeometryType.MESH,
geometryData: {
id: 'mesh1',
format: Enums.MeshType.PLY,
} as Types.MeshData,
}
);
const mesh2 = await geometryLoader.loadAndCacheGeometry(
'mesh:https://example.com/mesh.obj',
{
type: Enums.GeometryType.MESH,
geometryData: {
id: 'mesh2',
format: Enums.MeshType.OBJ,
materialUrl: 'https://example.com/material.mtl',
} as Types.MeshData,
}
);
viewport.setActors([
{ uid: mesh1.id, actor: (mesh1.data as Types.IMesh).actor },
{ uid: mesh2.id, actor: (mesh2.data as Types.IMesh).actor },
]);
支持的网格格式
cornerstoneMeshLoader 支持的网格格式有:
- PLY
- OBJ
- STL
- VTP
支持的材质格式
cornerstoneMeshLoader 支持的材质格式有:
- MTL
- JPG
- PNG
- JPEG