[vtkusers] Box widget clip VOI

Massinissa Bandou Massinissa.Bandou at USherbrooke.ca
Mon Aug 5 13:05:22 EDT 2013


Hi Jose,

I suggest you to create a boxwidget with a cube inside and store its bounds
in a vector. Then use setVOI() from vtkExtractVOI to extract the volume of
interest

for example 


std::vector<double> vec;
std::vector<std::vector&lt;double>> vector;

	vtkSmartPointer<vtkCubeSource> cube =
vtkSmartPointer<vtkCubeSource>::New();
	cube->SetBounds(-10,10,-10,10,-10,10);
	vtkSmartPointer<vtkPolyDataMapper> cubeMapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
	cubeMapper->SetInput(cube->GetOutput());
	vtkSmartPointer<vtkActor> cubeActor = vtkSmartPointer<vtkActor>::New();
	cubeActor->SetMapper(cubeMapper);
	cubeActor->GetProperty()->SetColor(0.0,0.0,1.0);
	cubeActor->GetProperty()->SetOpacity(0.5);

                        vtkBoxWidget* boxWidget = vtkBoxWidget::New();
			boxWidget->SetInteractor(this->Interactor);
			boxWidget->SetPlaceFactor(1.25);
			boxWidget->SetProp3D(cubeActor);
			boxWidget->PlaceWidget();
                        boxWidget->On();

        vtkTransform *t = vtkTransform::New();
	vtkBoxWidget *widget = reinterpret_cast<vtkBoxWidget*>(caller);
	widget->GetTransform(t);
	widget->GetProp3D()->SetUserTransform(t);
	//get the cube bounds
	double bounds[6];
	widget->GetProp3D()->GetBounds(bounds);
 
	for(unsigned int i=0; i<6; i++){
		vec.push_back(bounds[i]);
	}
	vector.push_back(vec);

then use vector to extract the volume of interest (setVOI(vector)).




--
View this message in context: http://vtk.1045678.n5.nabble.com/Box-widget-clip-VOI-tp5722486p5722487.html
Sent from the VTK - Users mailing list archive at Nabble.com.



More information about the vtkusers mailing list