[Paraview] Controlling Render Views without Mouse

Felipe Bordeu felipe.bordeu at ec-nantes.fr
Tue May 29 05:30:06 EDT 2012


Hi,

I tried to control my paraview from my Xoom tablet, throw plugin  
successfully.  I used a plugin that opens a port and listen to python 
commands, then from my tablet I send python command to rotate zoom, pan 
clip... (so now a have a realy big pad ;) ).

for more information read:

http://www.paraview.org/pipermail/paraview/2012-January/023704.html

Felipe

On 29/05/2012 07:23, David Zemon wrote:
> Hello,
>
> *Overview*
> I am attempting to control ParaView v3.14.1 with something other than 
> a mouse and keyboard. I don't know how to do this - I've taken some 
> wild guesses and bits 'n' pieces have started to work. I could really 
> use some help from someone that knows the inner-workings though.
>
> *What I'd Like to Happen*
> I have an class, foo, with some events and callbacks of its own. Foo 
> is not related to ParaView in any way other than foo needs to make 
> ParaView do stuff as it sees fit. In the callbacks, I'd like to do 
> things like zoom, pan and rotate. Eventually I'd like foo to be able 
> add filters and such too, but that's a long way down the road.
>
> *What I've Tried*
> foo has 3 events similar to OnButtonDown, OnMouseMove, and OnButtonUp. 
> I figure, why not just call these methods (within 
> vtkPVInteractorStyle) from foo? This is what I've been trying.
> I have made foo a friend of vtkPVInteractorStyle. I've created a 
> global pointer variable, g_pInteractorStyle, which points to 
> vtkPVInteractorStyle.
> I've created a mutator and two integer variables - m_x and m_y - 
> within foo to hold mouse coordinates. Any time that 
> GetEventPosition()[0/1] is called, I save those values to local 
> variables - x and y - and pass them into foo's mutator. This way, any 
> time a real mouse is used, foo gets updated coordinates. This also now 
> gives me starting points to pass into OnMouseMove.
> From foo I first call g_pInteractorStyle->OnButtonDown(3, 0, 0). 
> Ideally, this will initiate zoom, which it seems to.
> Following that, I make a series of calls following the pattern: 
> g_pInteractorStyle->Current->OnMouseMove(m_x, m_y + /offset/, 
> g_pInteractorStyle->CurrentRenderer, g_pInteractorStyle->Interactor), 
> where /offset/ is some integer value from -49 to 49 and neither m_x or 
> m_y change during the series of calls.
> Finally, I call g_pInteractorStyle->OnButtonup(3).
>
> I have also commented out one line each from OnButonDown and 
> OnButtonUp: 
> this->InvokeEvent(vtkCommand::[Start/End]InteractionEvent). With these 
> two lines in place, OnButtonUp causes a crash. Without these lines in 
> place (when they're commented out), ParaView acts just fine. I know 
> this is NOT a good fix and I'm open to other suggestions, but it (this 
> aspect) seems to be working at the moment.
>
> I've also tried looking into the QT libraries and moving the cursor 
> via QT. Unfortunately, I've been unable to find the right cursor 
> because nothing I've done has had any effect on the cursor I'm staring 
> at (tried setPos() and setShape()).
>
> *The Problem*
> OnMouseMove() has caused problem after problem. In our current setup 
> OnButtonDown(3, 0, 0) works great. OnMouseMove() kills paraview when 
> it reaches vtkPVRenderView::Render() called from somewhere within 
> vtkPVGenericRenderWindowInteractor. In a weak attempt to "fix" the 
> problem, I tried commenting out this Render() call. Nothing too major 
> seemed to break except that I'm blind as i try to zoom until I release 
> the mouse button (tests were done using the mouse at first). In other 
> words: Everything still working, but no rendering during zoom - only 
> renders upon releasing the mouse. I now try it with foo, and it acts 
> as though OnButtonUp(3) was never called - the whole foo routine 
> finishes then I use the mouse and click somewhere to start a new 
> interaction, and it zooms to wherever it should have zoomed when it 
> finished foo's routines.
>
> So two options: I can either let it die every time it tries to render, 
> or hold off rendering until I finish "moving the mouse" and then still 
> be required to click the mouse somewhere when I'm finished.
>
> This is broken. And something tells me I'm going about this in a very 
> wrong fashion. How should I be doing this?
>
> Thanks,
> David Zemon
> Computer
>
>
> _______________________________________________
> 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 ParaView Wiki at: http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview


-- 

Felipe Bordeu Weldt
Ingénieur de Recherche
-------------------------------------
Tél. : 33 (0)2 40 37 16 57
Fax. : 33 (0)2 40 74 74 06
Felipe.Bordeu at ec-nantes.fr
Institut GeM - UMR CNRS 6183
École Centrale Nantes
1 Rue de La Noë, 44321 Nantes, FRANCE
-------------------------------------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20120529/6b2f296c/attachment-0001.htm>


More information about the ParaView mailing list