[vtkusers] Extract Normals

andon antoniod987 at gmail.com
Tue Oct 18 10:40:07 EDT 2011


Well, the code is quite standard:

-
-
-
 std::string inputFilename = "../data/bunny.ply";
	
   vtkSmartPointer<vtkPLYReader> reader1 =
    vtkSmartPointer<vtkPLYReader>::New();
  reader1->SetFileName ( inputFilename.c_str() );
  
  // Visualize
  vtkSmartPointer<vtkPolyDataMapper> mapper1 =
    vtkSmartPointer<vtkPolyDataMapper>::New();
  mapper1->SetInputConnection(reader1->GetOutputPort());

  vtkSmartPointer<vtkPolyData> polydata =
vtkSmartPointer<vtkPolyData>::New();
    polydata->DeepCopy(reader1->GetOutput());

vtkDoubleArray* normalDataDouble = 
vtkDoubleArray::SafeDownCast(polydata->GetPointData()->GetArray("Normals"));

  vtkSmartPointer<vtkActor> actor1 =
    vtkSmartPointer<vtkActor>::New();
  actor1->SetMapper(mapper1);
 //bunny2
   std::string inputFilename2 = "../data/bunny.ply";
 
  vtkSmartPointer<vtkPLYReader> reader2 =
    vtkSmartPointer<vtkPLYReader>::New();
  reader2->SetFileName ( inputFilename2.c_str() );
 
  // Visualize
  vtkSmartPointer<vtkPolyDataMapper> mapper2 =
    vtkSmartPointer<vtkPolyDataMapper>::New();
  mapper2->SetInputConnection(reader2->GetOutputPort());
 
  vtkSmartPointer<vtkActor> actor2 =
    vtkSmartPointer<vtkActor>::New();
  actor2->SetMapper(mapper2);
 
  // A renderer and render window
  vtkSmartPointer<vtkRenderer> renderer = 
    vtkSmartPointer<vtkRenderer>::New();
  vtkSmartPointer<vtkRenderWindow> renderWindow = 
    vtkSmartPointer<vtkRenderWindow>::New();
  renderWindow->AddRenderer(renderer);
 
  

   // An interactor
  vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = 
    vtkSmartPointer<vtkRenderWindowInteractor>::New();
  
  renderWindowInteractor->SetRenderWindow(renderWindow);
  actor1->SetPosition(1,0,0);
  actor2->SetPosition(1.2,0,0);
  renderer->AddActor(actor1);
  renderer->AddActor(actor2);
  renderer->SetBackground(1,1,1);

  vtkSmartPointer<vtkInteractorStyleSwitch> style =
vtkSmartPointer<vtkInteractorStyleSwitch>::New();
  renderWindowInteractor->SetInteractorStyle(style);
-
-
-
The rest of the code is not necessary....I'm trying than I'm using some ply
files from here: http://graphics.im.ntu.edu.tw/~robin/courses/cg03/model/

and i need to extract normals from the actor that i create from the ply
file, in particular in relation with some cells (that i will pick from
cellpicker) , because i have to make some consideration about cells
orientation.....can you help me??? i try to use "polydata" for extract
normals but the array normalsDataDouble that i obtain is not
initialized...if i try to use this array i throw in an exception....

--
View this message in context: http://vtk.1045678.n5.nabble.com/Extract-Normals-tp4905504p4913930.html
Sent from the VTK - Users mailing list archive at Nabble.com.



More information about the vtkusers mailing list