[vtkusers] who 'observes' event?
Amy Henderson
amy.henderson at kitware.com
Wed Jun 2 13:11:52 EDT 2004
At 12:22 PM 6/2/2004, A J wrote:
>Thanks Amy for your patience,
>
>I guess my final question then is how do I go about making my own event
>loop.. Are there any examples of this? In the vtkXRenderWindowInteractor
>theres the following in the Start() method:
>
>do
> {
> XEvent event;
> XtAppNextEvent(vtkXRenderWindowInteractor::App, &event);
> XtDispatchEvent(&event);
> }
> while (this->BreakLoopFlag == 0);
>
>Is this something like what I'm supposed to replace the loop I posted
>earlier with?
>I'm just not familiar with XEvent and XtAppNextEvent and XtDispatchEvent,
>which libraries do they come from and is this somethign like what I should use?
I'm afraid I don't know enough about X programming either to answer your
question. Maybe someone else on the list has some advice?
- Amy
>=S
>
>thank you in advance...
>
>
>
>
>>The problem is that there has to be an event loop for events to be
>>processed. You either have to use iren->Start() or write your own event
>>loop. The problem is not in the interactor style; events are sent to the
>>interactor style from the render window interactor. From
>>vtkRenderWindowInteractor.h:
>>
>>// vtkRenderWindowInteractor provides a platform-independent interaction
>>// mechanism for mouse/key/time events. It serves as a base class for
>>// platform-dependent implementations that handle routing of mouse/key/timer
>>// messages to vtkInteractorStyle and its subclasses.
>>// vtkRenderWindowInteractor also provides controls for picking,
>>// rendering frame rate, and headlights.
>>
>>- Amy
>>
>>At 11:52 AM 6/2/2004, you wrote:
>>>So I guess this is the problem then..? How do I get around this? Now am
>>>I supposed to make my own InteractorStyle? Or is there a simpler way to
>>>go about this..?
>>>
>>>Below is the structure of my code (I am just switching between two
>>>scenes, the "AnImportantFunction()" updates/modifies data in one
>>>renderer, and the "AnotherImportantFunction" modifies data in the ohter
>>>renderer)
>>>
>>>
>>>CallbackCommand->SetCallback( MyClass::DoStuff(0 );
>>>Iren->AddObserver( vtkCommand::KeyPressEvent, CallbackCommand );
>>>
>>>int sample = 0;
>>>while(1)
>>>{
>>>
>>> if ( Flag == 0 )
>>> {
>>> AnImportantFunction( sample );
>>> Iren->Render();
>>> sample++;
>>> }
>>> else
>>> {
>>> AnotherImportantFunction( sample );
>>> sample++;
>>> Iren->Render();
>>>
>>> }
>>>
>>>}
>>>
>>>
>>>
>>>void MyClass::DoStuff( vtkObject* caller, unsigned long eid, void*
>>>clientdata, void* calldata)
>>>{
>>>
>>> cout<<Flag <<endl;
>>>
>>> Flag = !Flag;
>>>
>>>
>>>return;
>>>}
>>>
>>>_________________________________________________________________
>>>Get fast, reliable Internet access with MSN 9 Dial-up now 3 months
>>>FREE! http://join.msn.click-url.com/go/onm00200361ave/direct/01/
>>
>>
>>
>>_______________________________________________
>>This is the private VTK discussion list.
>>Please keep messages on-topic. Check the FAQ at:
>><http://public.kitware.com/cgi-bin/vtkfaq>
>>Follow this link to subscribe/unsubscribe:
>>http://www.vtk.org/mailman/listinfo/vtkusers
>
>_________________________________________________________________
>Getting married? Find great tips, tools and the latest trends at MSN Life
>Events. http://lifeevents.msn.com/category.aspx?cid=married
>
>_______________________________________________
>This is the private VTK discussion list. Please keep messages on-topic.
>Check the FAQ at: <http://public.kitware.com/cgi-bin/vtkfaq>
>Follow this link to subscribe/unsubscribe:
>http://www.vtk.org/mailman/listinfo/vtkusers
More information about the vtkusers
mailing list