[vtkusers] Display Coordinates Doesn't Change After Translation
Wenlong Wang
scc.wwl at gmail.com
Mon Oct 31 08:47:13 EDT 2011
Hi, David,
Thank you for your help.
Here is the code shows the problem I encountered.
*vtkSphereSource* s = vtkSphereSource::New();
s->Update();
vtkTransform* trans = vtkTransform::New();
trans->Translate(1, 1, 0);
vtkTransformPolyDataFilter* tf = vtkTransformPolyDataFilter::New();
tf->SetInputConnection(s->GetOutputPort());
tf->SetTransform(trans);
tf->Update();
vtkPolyDataMapper* originalMapper = vtkPolyDataMapper::New();
originalMapper->SetInputConnection(s->GetOutputPort());
vtkActor* originalActor = vtkActor::New();
originalActor->SetMapper(originalMapper);
originalActor->GetProperty()->SetColor(1, 0, 0);
vtkPolyDataMapper* transformedMapper = vtkPolyDataMapper::New();
transformedMapper->SetInputConnection(tf->GetOutputPort());
vtkActor* transdformedActor = vtkActor::New();
transdformedActor->SetMapper(transformedMapper);
transdformedActor->GetProperty()->SetColor(0 ,1, 0);
vtkCamera* camera = vtkCamera::New();
camera->SetPosition(0, 0, 5);
camera->SetViewUp(0, 1, 0);
vtkRenderer* ren = vtkRenderer::New();
ren->AddActor(originalActor);
ren->AddActor(transdformedActor);
ren->SetActiveCamera(camera);
vtkRenderWindow* renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren);
vtkRenderWindowInteractor* iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
//------------------Start to convert the world coordinates to display
coordinates--------------
vtkPoints* points = vtkPoints::New();
vtkPolyData* polydata = vtkPolyData::New();
polydata = tf->GetOutput();
points = polydata->GetPoints();
double p[3], r[3];
for (int i = 0; i< 50; i++)
{
points->GetPoint(i, p);
ren->SetWorldPoint(p);
ren->WorldToDisplay();
ren->GetDisplayPoint(r);
}**
renWin->Render();
iren->Start();*
On the screen, the sphere did translate to another place. However, when I
check the display coordinates store in point *r*, I found the X and Y are
not changed, only Z has slight difference.
Thank you again for your time.
Wenlong
2011/10/30 David Doria <daviddoria at gmail.com>
> On Sat, Oct 29, 2011 at 1:47 PM, Wenlong Wang <scc.wwl at gmail.com> wrote:
>
>> Hi David,
>>
>> I tried the example about vtkTransformPolyDataFilter and applied it to my
>> actor. But seems the coordinates didn't change in the way I discribed in my
>> earlier mail.
>>
>> So is that because I didn't use it right? Or I should use other methods
>> to get access to the new dataset generated by vtkTransformPolyDataFilter?
>>
>> Thank you very much.
>>
>> Long
>
>
> I suggest you send the smallest possible compilable code that you can to
> demonstrate the problem. Something like simply display a vtkSphereSource.
> Describe the behavior the code produces, and the behavior that you are
> aiming for.
>
> David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20111031/819a4184/attachment.htm>
More information about the vtkusers
mailing list