[vtkusers] Input Issue
rahul indoria
rahulindoria5 at gmail.com
Thu Jul 18 16:58:03 EDT 2013
Hi all vtk users,
*Hi,*
* I am trying to get the point data in the given example(*
http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/CurvedReformation*)
and i am modify my example something like that in main function to access
the point data. can you check it???? *
*Green color part is directly copied from the example:*
*// Verify arguments*
* if (argc < 4)*
* {*
* std::cout << "Usage: " << argv[0]*
* << " InputVolume PolyDataInput"*
* << " Resolution"*
* << std::endl;*
* return EXIT_FAILURE;*
* }*
*
*
* // Parse arguments*
* std::string volumeFileName = argv[1];*
* std::string polyDataFileName = argv[2];*
* std::stringstream ssResolution;*
* ssResolution << argv[3];*
* unsigned int resolution;*
* ssResolution >> resolution;*
*
*
* // Output arguments*
* std::cout << "InputVolume: " << volumeFileName << std::endl*
* << "PolyDataInput: " << polyDataFileName << std::endl*
* << "Resolution: " << resolution << std::endl;*
*
*
* // Read the volume data*
* vtkSmartPointer< vtkImageReader2Factory > imageFactory =*
* vtkSmartPointer< vtkImageReader2Factory >::New();*
* vtkImageReader2 *imageReader =*
* imageFactory->CreateImageReader2(volumeFileName.c_str());*
* imageReader->SetFileName(volumeFileName.c_str());*
* imageReader->Update();*
*
*
* // Read the Polyline*
* vtkSmartPointer<vtkPolyDataReader> polyLineReader =*
* vtkSmartPointer<vtkPolyDataReader>::New();*
* polyLineReader->SetFileName(polyDataFileName.c_str());*
* polyLineReader->Update();*
*
*
* vtkSmartPointer<vtkSplineFilter> spline =*
* vtkSmartPointer<vtkSplineFilter>::New();*
* spline->SetInputConnection(polyLineReader->GetOutputPort());*
* spline->SetSubdivideToSpecified();*
* spline->SetNumberOfSubdivisions(resolution);*
*
*
* // Sweep the line to form a surface*
* double direction[3];*
* direction[0] = 0.0;*
* direction[1] = 0.0;*
* direction[2] = 1.0;*
* double distance = 164;*
* spline->Update();*
* vtkSmartPointer<vtkPolyData> surface =*
* SweepLine(spline->GetOutput(),*
* direction,*
* distance,*
* atoi(argv[3]));*
*
*
* // Probe the volume with the extruded surface*
* vtkSmartPointer<vtkProbeFilter> sampleVolume =*
* vtkSmartPointer<vtkProbeFilter>::New();*
* sampleVolume->SetInputConnection(1, imageReader->GetOutputPort());*
*#if VTK_MAJOR_VERSION <= 5*
* sampleVolume->SetInput(0, surface);*
* #else*
* sampleVolume->SetInputData(0, surface);*
*#endif*
* // Compute a simple window/level based on scalar range*
* vtkSmartPointer<vtkWindowLevelLookupTable> wlLut =*
* vtkSmartPointer<vtkWindowLevelLookupTable>::New();*
* double range = imageReader->GetOutput()->GetScalarRange()[1] -*
* imageReader->GetOutput()->GetScalarRange()[0];*
* double level = (imageReader->GetOutput()->GetScalarRange()[1] +*
* imageReader->GetOutput()->GetScalarRange()[0]) / 2.0;*
* wlLut->SetWindow(range);*
* wlLut->SetLevel(level);*
* sampleVolume->Update();*
*Red color part is modified part*
*
*
* // Extract the polydata*
* vtkSmartPointer<vtkPolyData> polydata = *
* vtkSmartPointer<vtkPolyData> :: New();*
* polydata = vtkPolyData::SafeDownCast(**sampleVolume->GetOutput()); //
here the sampleVolume->GetOutput() are the points generated, as i
understand.*
*
*
* // Get the number of points in the polydata*
* vtkIdType idNumPointsInFile = polydata->GetNumberOfPoints();*
*
*
* vtkSmartPointer<vtkDoubleArray> array = vtkSmartPointer<vtkDoubleArray>
:: New();*
* array =
vtkDoubleArray::SafeDownCast(polydata->GetPointData()->GetArray("Distances"));
*
* *
* if(array)*
* {*
* for(int i = 0; i < idNumPointsInFile; i++) *
* {*
* std::cout << "Got array." << std::endl;*
* double dist;*
* dist = array->GetValue(i);*
* /**
* //if the array held arrays instead of scalars, you would use this:
*
* double location[3];*
* array->GetTupleValue(i, location);*
* std::cout << "Location: " << Location[0] << "," << Location[1] <<
"," << Location[2] << std::endl;*
* */*
* std::cout << "Distance: " << dist << std::endl;*
* }*
* }//end if(array)*
* else*
* {*
* std::cout << "no array." << std::endl;*
* }*
*
*
* system("PAUSE");*
*
*
* return EXIT_SUCCESS;*
*
*
*
*
*could you please suggest me how to get the point data in of the given
example?*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20130718/4ca70163/attachment.htm>
More information about the vtkusers
mailing list