[vtkusers] Translating and rotating PolyData

Bryn Lloyd blloyd at vision.ee.ethz.ch
Wed Aug 5 02:19:46 EDT 2009


Or vtkTransformPolyDataFilter

http://www.vtk.org/doc/nightly/html/classvtkTransformPolyDataFilter.html


Dominik Szczerba wrote:
> take a look at vtkTransformFilter.
> 
> Dmitri Danewitz wrote:
>>
>> Hello David,
>>  
>> thanks a lot for the example, but there it looks like a new polyData 
>> is created. I read mine from a VTK file.
>>  
>> Here is an example of the VTK file. The values are already there, I 
>> just want to change the point coordinates and I managed to extract the 
>> point coordinates from the VTK and changed them. Then I put them into 
>> the polyData again but then I'm stuck, putting the polyData back into 
>> the object where I took it from. Here is an example of my code:
>>  
>>  
>> Reader[0]->SetFileName("D:/VTKzeug/room3D/temperature.vtk");
>> Reader[0]->Update();
>>
>> //Now making a 2D plane, to make a cut through the room
>> plane = vtkPlaneSource::New();
>> plane->SetResolution(((int)sqrt(tempForRes))*resolutionFactorX,((int)sqrt(tempForRes))*resolutionFactorY); 
>>
>> plane->SetOrigin(linex1, liney1, linez1);
>> plane->SetPoint1(linex2, liney2 , linez1);
>> plane->SetPoint2(linex1, liney1, linez2);
>> probe = vtkProbeFilter::New();
>> probe->SetInput(plane->GetOutput());
>> probe->SetSource(Reader->GetOutput());
>> probe->Update();
>> //Now changing the point-coordinates with own calculation
>> //(I rotate the points and translate them) The values remain the same
>> PolyDat = vtkPolyData::New();
>> PolyDat = probe->GetPolyDataOutput();
>> numberOfCells=PolyDat->GetNumberOfPoints();
>> data = vtkPolyData::New();
>> scalars = vtkFloatArray::New();
>> points = vtkPoints::New();
>> for (int i = 0; i < numberOfCells; i++)
>> {
>>  scalars->InsertTuple1(i, 
>> PolyDat->GetPointData()->GetScalars()->GetTuple(j));
>> //deleted the stuff here to calculate the new coordinate values
>>  points->InsertPoint(i, newX, nexY, newZ);
>> }
>> //I take the new point-coordinates, as well as the unchanges scalars 
>> to the vtkPolyData
>> //and now don't know how to take them into the vtkPlaneSource probe again
>> PolyDat->SetPoints(points);
>> PolyDat->GetPointData()->SetScalars(scalars);
>>  
>>  
>> ... I don't know if there is a class that provides simple translating 
>> and rotating the points of the polyData, so I did it manually. But now 
>> I can not bring the polyData back to the vtkPlaneSource plane for 
>> visualising it.
>>  
>> Greets
>> Dmitri
>>
>> --- David Doria /<daviddoria+vtk at gmail.com>/ schrieb am *Di, 4.8.2009:
>> *
>>
>>     *
>>     Von: David Doria <daviddoria+vtk at gmail.com>
>>     Betreff: Re: [vtkusers] Translating and rotating PolyData
>>     An: vtkusers at vtk.org
>>     Datum: Dienstag, 4. August 2009, 14:00
>>
>>     *
>>
>>         *
>>
>>
>>             Hello David,
>>                          I'm not sure if i explained it right. First I 
>> read a VTK
>>             file, in which is a rectilinear grid in 3D. And every point
>>             of the grid has its value (scalar) (for example, in a 3D
>>             room each value is a temperature at its coordinates)
>>                          I now want to move the values in the grid, so 
>> that for example
>>                          x = 0, y = 0, z = 0
>>             with the temperature value 30°C in that location and I move
>>             it to:
>>              x = x +100
>>             so that the new coordinates are :
>>             x = 100, y = 0, z = 0
>>             and the value has still to be 30°C
>>             this is what I want to reach.
>>             Hope I managed to explain that somehow.
>>                          Greets
>>             Dmitri
>>
>>         *
>>
>>         *
>>         *
>>
>>     *
>>     Dmitri,
>>
>>     Please reply to the list rather than an individual so everyone can
>>     benefit from the conversation.
>>
>>     Yes, that explanation is exactly what I thought you were talking
>>     about. See this example for how to attach that temperature value to
>>     your grid points:
>>
>>     
>> http://www.vtk.org/Wiki/Add_Miscellaneous_Data_to_Points_in_a_Polydata
>>     http://www.vtk.org/Wiki/Add_Miscellaneous_Data_to_Cells_in_a_Polydata
>>
>>     I'm assuming the values are already in that type of array in your
>>     vtk file? If you can't get it from here please provide the vtk file
>>     and we'll take a look.
>>
>>     Thanks,
>>
>>     David
>>     *
>>     *
>>     -----Integrierter Anhang folgt-----
>>
>>     *
>>     *_______________________________________________
>>     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
>>     *
>>
>> **
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> 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
> 
> 


-- 
-------------------------------------------------
Bryn Lloyd
Computer Vision Laboratory
ETH Zürich, Sternwartstrasse 7
CH - 8092 Zürich, Switzerland
Tel: +41 44 63 26668
Fax: +41 44 63 21199
-------------------------------------------------



More information about the vtkusers mailing list