[vtkusers] I have some problems when deal with key press callback
Xianliang.Zeng
xjtuzxl at 163.com
Fri Nov 21 01:49:29 EST 2014
Try ren->ResetCamera() in you callback function just before Render().
At 2014-11-17 23:25:57, "zhq" <15891495523 at 126.com> wrote:
>Deal all :
>
> What I want to do is : make a transform on a cone when a key
>(whatever) is pressed .
>
> the problem I met is : the cone will disappear in the window when a
>transform happen .
>
> My code is :
>
>#include <vtkRenderWindow.h>
>#include <vtkRenderWindowInteractor.h>
>#include <vtkRenderer.h>
>#include <vtkJPEGReader.h>
>#include <vtkImageData.h>
>#include <vtkSmartPointer.h>
>#include <vtkImageViewer2.h>
>#include <vtkImageBlend.h>
>#include <string>
>#include <vtkSTLReader.h>
>#include <vtkInteractorStyleTrackballCamera.h>
>#include <vtkPolyDataMapper.h>
>#include "vtkActor.h"
>#include <vtkCallbackCommand.h>
>#include <vtkTransform.h>
>#include <vtkTransformPolyDataFilter.h>
>#include <vtkSphereSource.h>
>#include <vtkConeSource.h>
>vtkSmartPointer<vtkConeSource> cone = vtkSmartPointer<vtkConeSource>::New();
>
>vtkSmartPointer<vtkRenderWindowInteractor> iren =
>vtkSmartPointer<vtkRenderWindowInteractor>::New();
>vtkSmartPointer<vtkTransform> trans = vtkSmartPointer<vtkTransform>::New();
>vtkSmartPointer<vtkActor> actor1 = vtkSmartPointer<vtkActor>::New();
>vtkSmartPointer<vtkActor> actor2 = vtkSmartPointer<vtkActor>::New();
>vtkSmartPointer<vtkPolyDataMapper> mapper1 =
>vtkSmartPointer<vtkPolyDataMapper>::New();
>vtkSmartPointer<vtkPolyDataMapper> mapper2 =
>vtkSmartPointer<vtkPolyDataMapper>::New();
>
>int x=0,y=0,z=0;
>
>void MyCallbackFunc(vtkObject * , unsigned long eid , void * clientdata ,
>void * calldata)
>{
>
> x++;
>
> trans->Translate(x,y,z) ;
> trans->Scale(2, 3, 1);
> trans->RotateX(0);
>
> vtkSmartPointer<vtkTransformPolyDataFilter> transformFilter =
> vtkSmartPointer<vtkTransformPolyDataFilter>::New();
> transformFilter->SetInputConnection(cone->GetOutputPort());
> transformFilter->SetTransform(trans);
> transformFilter->Update();
> mapper1->SetInputConnection(transformFilter->GetOutputPort());
> iren->Render();
>}
>
>void main()
>{
>
> vtkSmartPointer<vtkRenderWindow> renWin =
>vtkSmartPointer<vtkRenderWindow>::New();
>
> vtkSmartPointer<vtkSphereSource> sphereSource =
> vtkSmartPointer<vtkSphereSource>::New();
> sphereSource->Update();
>
> cone->Update();
>
>
>
> mapper1->SetInputConnection(sphereSource->GetOutputPort());
> mapper1->Update();
>
>
> mapper2->SetInputConnection(cone->GetOutputPort());
> mapper2->Update();
>
>
> actor1->SetMapper(mapper1);
>
> actor2->SetMapper(mapper2);
>
> vtkSmartPointer<vtkRenderer> ren = vtkSmartPointer<vtkRenderer>::New();
> ren->AddActor(actor1);
> ren->AddActor(actor2);
>
>
>
> vtkSmartPointer<vtkInteractorStyleTrackballCamera> style =
>vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
>
> iren->SetInteractorStyle(style);
> renWin->AddRenderer(ren);
> renWin->SetInteractor(iren);
>
>
> ren->SetBackground(0.3,0.6,0.3);
>
> vtkSmartPointer<vtkCallbackCommand> KeyPressCallback =
>vtkSmartPointer<vtkCallbackCommand>::New();
> KeyPressCallback->SetCallback(&MyCallbackFunc);
>
>
> iren->AddObserver(vtkCommand::KeyPressEvent,KeyPressCallback);
>
>
> renWin->Render();
> iren->Initialize();
> iren->Start();
>}
>
> Thanks in advance !
>
>Zhq
>
>
>
>--
>View this message in context: http://vtk.1045678.n5.nabble.com/I-have-some-problems-when-deal-with-key-press-callback-tp5729478.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://public.kitware.com/mailman/listinfo/vtkusers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20141121/62ce3cf3/attachment.html>
More information about the vtkusers
mailing list