[vtkusers] Extract Normals

Bill Lorensen bill.lorensen at gmail.com
Tue Oct 18 16:11:37 EDT 2011


I just downloaded the bunny dataset. I modified this wiki example:
http://vtk.org/Wiki/VTK/Examples/Cxx/PolyData/PolyDataExtractNormals to use
a vtkPLYReader.

The bunny data has no normals defined.

On Tue, Oct 18, 2011 at 2:36 PM, Bill Lorensen <bill.lorensen at gmail.com>wrote:

> After
>
> reader1->SetFileName ( inputFilename.c_str() );
> try
> reader1->Update();
>
>
> On Tue, Oct 18, 2011 at 10:40 AM, andon <antoniod987 at gmail.com> wrote:
>
>> 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.
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20111018/be0c1f7a/attachment.htm>


More information about the vtkusers mailing list