[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