如何解决在调试中设置输入连接时,VTK 给出错误“矢量下标超出范围”
我正在尝试使用 VTK 渲染 OpenCascade 形状,并且在 VTK 中设置到 Mapper 的输入连接时,我遇到了矢量下标越界错误。但是,此错误仅在调试模式下发生,在发布模式下不会发生。断言在文件 vtkCommonExecutionModel-9.0d.dll 中触发。代码如下:
#include <BRepPrimAPI_MakeBox.hxx>
#include <IVtkTools_ShapeDataSource.hxx>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include<vtkInteractorStyletrackballCamera.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkAutoInit.h>
#include <vtkpolyDataMapper.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)
int main()
{
BRepPrimAPI_MakeBox mkBox(1.,2.,3.);
const TopoDS_Shape& Shape = mkBox.Shape();
vtkNew<vtkRenderWindow> Win;
vtkNew<vtkRenderer> Render;
Win->AddRenderer(Render);
vtkNew<vtkInteractorStyletrackballCamera> IStyle;
vtkNew<vtkRenderWindowInteractor> IRender;
IRender->SetRenderWindow(Win);
IRender->SetInteractorStyle(IStyle);
//Domain Data (TopoDS_Shape) to vtkpolyData
vtkNew<IVtkTools_ShapeDataSource> OCCSource;
OCCSource->SetShape(new IVtkOCC_Shape(Shape));
//vtkMapper -> vtkActor
vtkNew<vtkpolyDataMapper> Mapper;
Mapper->SetInputConnection(OCCSource->GetoutputPort());
vtkNew<vtkActor> Actor;
Actor->SetMapper(Mapper);
Render->AddActor(Actor);
Win->Render();
IRender->Start();
return 0;
}
请帮我改正。我使用的是 OpenCascade v7.5.0 和 VTK v9.0.3。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。