微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在调试中设置输入连接时,VTK 给出错误“矢量下标超出范围”

如何解决在调试中设置输入连接时,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 举报,一经查实,本站将立刻删除。