在调试中设置输入连接时,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 (将#修改为@)