我正在尝试使用@kitware/vtk.js 18.1.2
和自定义源在 react ts 应用程序中显示网格。首先,我创建了一个带有锥形源的工作场景
(...)
const coneSource = vtkConeSource.newInstance();
const mapper = vtkMapper.newInstance();
// @ts-ignore
mapper.setInputConnection(coneSource.getOutputPort());
(...)
它可以按预期工作,尽管没有声明类似的功能setInputConnection
(getOutputPort
这就是我使用 的原因@ts-ignore
)。现在我试图通过创建自定义来显示我自己的数据vtkPolyData
。
vtk.js 的文档中有教程,
示例用法vtkPolyData
如下:
const polyData = vtkPolyData.newInstance()
Const vertices = new Float32Array(<xyz coords>)
Const polys = new Uint32Array(<poly definitions>)
polyData.getPoints().setData(vertices, 3)
polyData.getPolys().setData(polys);
它不起作用,因为 API 似乎已更改(?)所以尝试这样做:
const polyData = vtkPolyData.newInstance();
polyData.setVerts(vertices);
polyData.setPolys(polys);
Where vertices
is Float32Array
in format of [x1, y1, z1, x2, y2, z2, ...]
and polys
is Uint32Array
in format of [4, p1, p2, p3, p4, ...]
(我的网格只使用四边形)。
然后我将它连接到映射器:
// @ts-ignore
mapper.setInputData(meshSource);
再次setInputData
没有声明,但无论如何都编译了所有内容,并且控制台中没有错误。不幸的是,我看到的只是渲染器的背景。如何显示我的自定义数据?我是否朝着正确的方向前进?我是VTK的新手。