[vtk-developers] Overlay many vtkpolydata on dicom image

bamb bamb.bakang at gmail.com
Mon May 5 17:18:33 EDT 2014


I succesfully displayed two vtkPlydata contour using this code of mine:


	vtkSmartPointer<vtkRenderer> renderer  =
vtkSmartPointer<vtkRenderer>::New();	

this->GetContourActivityWindow().GetRenderWindowBase()->AddRenderer(renderer);	
	renderer->SetBackground(1,.8,.4);
	for(int i =0 ; i < 2 ; i++){
		vtkSmartPointer<vtkPolyData> polyData =
this->mAllContoursRepresentations.at(i).at(0).second.GetRepresentation()->GetContourRepresentationAsPolyData();
	
		vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
	
		mapper->SetInputData(polyData);
	
		vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
	
		actor->SetMapper(mapper);
	
		renderer->AddActor(actor);
	
	}
	
	renderer->AddActor(Activity::GetActivity().GetSlices().at(10));
	//Each image has the same size so
	double origin[3];
	double spacing[3];
	int extent[6];
	Activity::GetActivity().GetImageData().at(0)->GetOrigin( origin );
	Activity::GetActivity().GetImageData().at(0)->GetSpacing( spacing );
	Activity::GetActivity().GetImageData().at(0)->GetExtent( extent );
 
	vtkCamera* camera = renderer->GetActiveCamera();
	camera->ParallelProjectionOn();
 
	double xc = origin[0] + 0.5*(extent[0] + extent[1])*spacing[0];
	double yc = origin[1] + 0.5*(extent[2] + extent[3])*spacing[1];		
	double yd = (extent[3] - extent[2] + 1)*spacing[1];
	double d = camera->GetDistance();
	camera->SetParallelScale(0.5*yd);
	camera->SetFocalPoint(xc,yc,0.0);
	camera->SetPosition(yc,xc,d);
	
	 vtkSmartPointer<vtkRenderWindowInteractor> iren =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
	 iren->SetRenderWindow(this->mActivityContourWindow.GetRenderWindowBase());


But I am still not able to add a vtkImageSlice (of DICOM) in the background
.
I 've got that same error each time I added it as an actor in my renderer.

"
ERROR: In ..\..\..\src\Rendering\Core\vtkImageMapper3D.cxx, line 266
vtkImageResliceMapper (035C5820): Cannot follow camera, mapper is associated
withmultiple renderers

"


Does anybody knows how to cut mappers bounds of renderers ?



--
View this message in context: http://vtk.1045678.n5.nabble.com/Overlay-many-vtkpolydata-on-dicom-image-tp5726989p5726990.html
Sent from the VTK - Dev mailing list archive at Nabble.com.



More information about the vtk-developers mailing list