[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