本文主要是介绍ActiViz实战:ActiViz与VTK的差异踩坑点集合(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、ActiViz中的数据类型一定要严格,不能double和float混用
1、vtkMath类中的计算,只支持float类型。传入double类型会计算结果异常,或者直接报错
2、vtkPlane类只支持double类型。使用float类型会计算结果异常,或者直接报错
二、ActiViz中的Actor在循环中最好重新New对象,否则在设置映射SetMapper或者调用GetCenter函数时,会出现不可控报错!也就是最好不要用一个对象,循环多次去设置映射SetMapper和GetCenter。
三、在ActiViz的8.0以及以下的版本,vtkDataSetMapper的对象在设置SetRelativeCoincidentTopologyPolygonOffsetParameters参数时,不会生效,vtkPolyDataMappe可以;在ActiViz的9.3版本中两者设置该参数都能生效。
四、在ActiViz中的vtkCommand观察者模式的使用,会很繁琐。继承实现了vtkCommand后,AddObserver(),会报出不可控错误:“尝试读写受保护内存!”,原因暂时不明
五、在C#版本的VTK中vtkColor3d不包含GetData()函数,因此很多用vtkNamedColors中的命名颜色时:actor.GetProperty().SetColor(colors.GetColor3d(“gold”).GetData());不可用
需要替换成以下实现:
这篇关于ActiViz实战:ActiViz与VTK的差异踩坑点集合(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!