[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