Learning vtkjs之MultiSliceImageMapper
多个图片切片
介绍
vtkImageMapper 为 vtk 提供了 2D 图像显示支持。
它可以与 vtkImageSlice 对象关联,并将其放置在渲染器中。
这个类使用与 vtkMapper 相同的方法解决重合拓扑问题。
效果
核心代码
主要流程
const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({background: [0, 0, 0],rootContainer: vtkContainerRef.current,});const renderer = fullScreenRenderer.getRenderer();const renderWindow = fullScreenRenderer.getRenderWindow();const imageActorI = vtkImageSlice.newInstance();const imageActorJ = vtkImageSlice.newInstance();const imageActorK = vtkImageSlice.newInstance();renderer.addActor(imageActorK);renderer.addActor(imageActorJ);renderer.addActor(imageActorI);const reader = vtkHttpDataSetReader.newInstance({fetchGzip: true,});reader.setUrl(BaseUrlPross("data/volume/headsq.vti"), { loadData: true }).then(() => {const data = reader.getOutputData();const dataRange = data.getPointData().getScalars().getRange();// const extent = data.getExtent();const imageMapperK = vtkImageMapper.newInstance();imageMapperK.setInputData(data);imageMapperK.setKSlice(30);imageActorK.setMapper(imageMapperK);const imageMapperJ = vtkImageMapper.newInstance();imageMapperJ.setInputData(data);imageMapperJ.setJSlice(30);imageActorJ.setMapper(imageMapperJ);const imageMapperI = vtkImageMapper.newInstance();imageMapperI.setInputData(data);imageMapperI.setISlice(30);imageActorI.setMapper(imageMapperI);renderer.resetCamera();renderer.resetCameraClippingRange();renderWindow.render();updateColorLevel(imageActorI, (dataRange[0] + dataRange[1]) / 3);updateColorWindow(imageActorK, dataRange[1]);});
全部代码都放到github上了
新坑_Learning vtkjs_git地址
关注我,我持续更新vtkjs的example学习案例
也欢迎各位给我提意见,技术交流~
大鸿
WeChat : HugeYen
WeChat Public Account : BIM树洞
做一个静谧的树洞君
用建筑的语言描述IT事物;
用IT的思维解决建筑问题;
共建BIM桥梁,聚合团队。
本学习分享资料不得用于商业用途,仅做学习交流!!如有侵权立即删除!!