[vtkusers] Error T vtkStreamingDemandDrivenPipeline why?!

Ali Habib ali.mahmoud.habib at gmail.com
Fri Sep 17 18:16:12 EDT 2010


Hi All,

I want to Read dicom data series (761 file) and surround it by VTKboxwidget
but the code crash at the reading , and give the following error


*ERROR: In
m:\dev\cur\vtkdotnet\branch\50\Filtering\vtkStreamingDemandDrivenPipeline.cxx,
line 628*
*vtkStreamingDemandDrivenPipeline (070B2110): The update extent specified in
the information for output port 0 on algorithm vtkTrivialProducer(070AA4B0)
is 0 1 0 1 0 1, which is outside the whole extent 0 -1 0 -1 0 -1.*
*
*
*ERROR: In m:\dev\cur\vtkdotnet\branch\50\Filtering\vtkImageData.cxx, line
1450*
*vtkImageData (070A6710): GetScalarPointer: Pixel (0, 0, 0) not in memory.*
* Current extent= (0, -1, 0, -1, 0, -1)*

the code is:

            vtk.vtkDICOMImageReader VDR = new vtk.vtkDICOMImageReader();
            VDR.SetDirectoryName(@"E:\Master Degree\test
DataSet\Asmaa_pre\08151449"); //E:\Master
Degree\DataSet\case2\DICOM\PA1\ST1\SE2
           // VDR.SetDataOrigin(0, 0, 0);
            VDR.Update();

            vtkImageData d = new vtkImageData();
            d.DeepCopy(VDR.GetOutput());

           int t =  d.GetMaxCellSize();

            // decrease the dataset data for large data preprocessing

            vtkImageShrink3D VIS = new vtkImageShrink3D();
            VIS.SetShrinkFactors(2, 2, 2);
            VIS.SetInput (d);
            VIS.Update();

            vtkImageThreshold VIT = new vtkImageThreshold();
            VIT.ThresholdBetween(200, 2000);
            VIT.SetInputConnection(VIS.GetOutputPort());
            VIT.Update();

            ///// Start the creation of volume rendering


            // Render the skin - Soft tissue
            double isovalue = 500;


            vtkContourFilter skinExtractor = new vtkContourFilter();
            skinExtractor.SetInputConnection(VIT.GetOutputPort());
            skinExtractor.SetValue(0, isovalue);
            skinExtractor.ComputeGradientsOn();
            skinExtractor.Update();

            gpd = new vtkPolyData();
            gpd.DeepCopy(skinExtractor.GetOutput());


            int x = gpd.GetNumberOfCells();
            int y = gpd.GetNumberOfPoints();



            vtk.vtkPolyDataMapper coneMapper = new vtk.vtkPolyDataMapper();
            coneMapper.SetInput(gpd);
            coneMapper.ScalarVisibilityOff();

            maceActor = new vtkLODActor();
            maceActor.SetMapper(coneMapper);
            maceActor.GetProperty().SetColor(1,0,0);
            //////////////////////// Selection Part
/////////////////////////
            planes = new vtkPlanes();

            clipper = new vtkClipPolyData();
            clipper.SetInput(gpd);
            clipper.SetClipFunction(planes);
            clipper.InsideOutOn();
            clipper.Modified();
            vtkPolyDataMapper selectMapper = new vtkPolyDataMapper();
            selectMapper.SetInput(clipper.GetOutput());
            selectMapper.ScalarVisibilityOff();

            selectActor = new vtkLODActor();
            selectActor.SetMapper(selectMapper);
            selectActor.GetProperty().SetColor(0, 1, 0);
            selectActor.VisibilityOff();
            selectActor.SetScale(1.01, 1.01, 1.01);

            /////////////////////// End of selection
part////////////////////

            //////////////////////////// Cutting part
/////////////////////////////////


            clipper_cutting = new vtkClipPolyData();
            clipper_cutting.SetInput(gpd);
            clipper_cutting.SetClipFunction(planes);
            clipper_cutting.InsideOutOff();
            clipper_cutting.GenerateClippedOutputOff();
            clipper_cutting.Modified();
            vtkPolyDataMapper selectMapper_cutting = new
vtkPolyDataMapper();
            selectMapper_cutting.SetInput(clipper_cutting.GetOutput());
            selectMapper_cutting.ScalarVisibilityOff();

            selectActor_cutting = new vtkLODActor();
            selectActor_cutting.SetMapper(selectMapper_cutting);
            selectActor_cutting.GetProperty().SetColor(1, 0, 0);
            selectActor_cutting.VisibilityOff();
            selectActor_cutting.SetScale(1.01, 1.01, 1.01);

            //////////////////////////// End Cutting part
//////////////////////////////////////
            vtk.vtkRenderer ren1 = new vtk.vtkRenderer();

            renWin.AddRenderer(ren1);
            //ren1.SetBackground(0.0f, 0.0f, 0.0f);

            vtkRenderWindowInteractor iren = new
vtkRenderWindowInteractor();
            iren.SetRenderWindow(renWin);



            //The SetInteractor method is how 3D widgets are associated with
the
            //render window interactor.  Internally, SetInteractor sets up a
bunch
            //of callbacks using the Command/Observer mechanism
(AddObserver()).
            vtkBoxWidget boxWidget = new vtkBoxWidget();
            boxWidget.SetInteractor(iren);
            boxWidget.SetPlaceFactor(1.25);
            boxWidget.TranslationEnabledOn();



            ren1.AddActor(maceActor);
            ren1.AddActor(selectActor);
            ren1.AddActor(selectActor_cutting);

            boxWidget.SetInput(gpd);
            boxWidget.Modified();
            boxWidget.PlaceWidget();

            boxWidget.AddObserver((uint)vtk.EventIds.StartInteractionEvent,
new vtk.vtkDotNetCallback(StartInteractionEvent));
            boxWidget.AddObserver((uint)vtk.EventIds.InteractionEvent, new
vtk.vtkDotNetCallback(InteractionEvent));
            boxWidget.AddObserver((uint)vtk.EventIds.EndInteractionEvent,
new vtk.vtkDotNetCallback(EndInteractionEvent));


            boxWidget.On();


            renWin.AddRenderer(ren1);

            GC.Collect();
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100918/5e0ae515/attachment.htm>


More information about the vtkusers mailing list