XTK - 将标量字段添加到vtk网格

时间:2013-09-18 14:29:59

标签: vtk scalar xtk

我们正在尝试将标量值与从文件读取的VTK网格中的单元格/点相关联。我们知道可以做一些事情,比如使用FreeSurfer不同的曲率文件 - CRV(如例12所示 - http://lessons.goxtk.com/12/

我们的问题是如何设置vtk文件中的标量值(块PointData和CellData)?如果这不可能,有没有办法直接将标量数组设置为X.mesh(任何例子)?

感谢并抱歉英语不好: - )

圣保罗

2 个答案:

答案 0 :(得分:0)

尝试使用VtkProbeFiler。使用此过滤器,您可以将标量值与点相关联。

答案 1 :(得分:0)

我设法在XTK第12课的j15的L15中添加了一些标量。 类似的东西:

var mesh = new X.mesh();
mesh.file = 'mesh.vtk';
renderer.onShowtime = function () {
    var scalarsArray = new Float32Array(mesh.points.length);
    // fill array...
    mesh.scalars.array = scalarsArray ;
    mesh.scalars.lowerThreshold = min;
    mesh.scalars.upperThreshold = max;
}

标量数组存储3倍的值以匹配点(参见parserCRV.js#L213)。

现在看来渲染网格时不会重新计算标量最小值/最大值,所以我在X \ visualization \ renderer3D.js的L1152上添加了以下代码:

var scalarsMin = Infinity;
var scalarsMax = -Infinity;
var value = 0;
for ( var i = 0; i < scalarsArray.length; ++i ) {
    value = scalarsArray[i];
    if ( !isNaN(value) ) {
        scalarsMin = Math.min(scalarsMin, value);
        scalarsMax = Math.max(scalarsMax, value);
    }
}
scalars._min = scalarsMin;
scalars._max = scalarsMax;

我不确定,有人可以确认吗?