1. 看vtkMapper,其中有一个:GetColorModeAsString(void)方法,猜测是当用标量值来计算颜色的时候获取标量值的方法;GetColorModeAsString(void)猜测是对颜色模式的影响,但是修改之后颜色还是正确的;
2. 猜测:4.1版本使用默认的方式为模型添加颜色,并不涉及模式,因此修改模式之后不会影响颜色,这一部分也不会被调用,那么4.2版本的有没有调用?结果是没有被调用,也许函数找的不对;
3. 尝试运行编译的pvw,没找到方法,没有成功,暂时放弃;尝试找ScalarVisibilityoff方法,没有找到,应该是没有使用,暂时放弃;
4. 猜测:4.1版本使用的是LookUpTable以及Scalars为模型添加颜色,查看lookuptable,调用过程中没有找到咱们查看这个表中的内容;
5. vtkGlyph3DRepresentation.cxx文件中SetMapScalars(int val)函数调用了vtkGeometryRepresentation.cxx文件中的SetMapScalars(int val)函数,
void vtkGeometryRepresentation::SetMapScalars(int val)
{
this->Mapper->SetColorMode(val);
this->LODMapper->SetColorMode(val);
}
而
vtkGlyph3DRepresentation.cxx是paraview的函数,感觉这里是paraview调用vtk的位置;调试过程中val为0,强制修改,将val值设置为1,模型颜色变成了与4.2版本相同的颜色,也就是与Web版本相同的颜色。