[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