Hi Sajith, ok, so you want to implement a teleconferencing mechanism in MITK.
>From your code I see, that you write down the address of the BaseRenderer >(c_Sender) but read in a string. Is this an issue, because the address won't be the same on a different computer. Can you read German? Because then you should read the technical report I mentioned before. Best Regards, Ingmar Von: Sajith Rabel [mailto:[email protected]] Gesendet: Donnerstag, 27. Mai 2010 10:46 An: [email protected] Betreff: Re: [mitk-users] Need Help on mitkEventMapper.cpp Hi, First of all thank you to Wegner Ingmar and Sascha Zelzer for your valuable help on my previous question on mitkEventMapper.cpp. Now i have a different problem. I did modify the EventMapper class and was able to log the event data to a file in the following order. eventID , base renderer* c_Sender, c_Type, c_Button, c_ButtonState, c_Key, c_WorldPosition[0], c_WorldPosition[1], c_WorldPosition[2], c_DisplayPosition[0], c_DisplayPosition[1] in mitkbaserenderer.cpp i added a new function called remoteclientevent() so that the function reads the file with above order and then call the mapevent function of conferenceeventmapper class. the function i wrote is as follows. { ifstream OpenFile("eventua.txt"); std::string line; int id; std::string sndr; int type; int button; int bstate; int key; float threed1; float threed2; float threed3; float twod1; float twod2; // code for assigning values goes here mitk::ConferenceEventMapper::MapEvent(id,sender,type,button,bstate,key,threed1,threed2,threed3,twod1,twod2); } i cannot get the result as i expected and i think i need to do something more on qmitkrenderwindow class and etc. I would be very grateful if you could give me some guidance to this. As i mentioned earlier what i need to do is capture all events and synchronously do them on a remote machine. Thank you, On Tue, May 25, 2010 at 8:17 PM, Sascha Zelzer <[email protected]<mailto:[email protected]>> wrote: Hi, if you are using Qt, another approach could be to use the native Qt event filtering. Just install a global event filter and either record or directly stream the event data (using for example QTcpSocket) to the other machine. The "client" then creates QEvent instances and uses QCoreApplication::postEvent(...). - Sascha On 05/22/2010 07:47 AM, Sajith Rabel wrote: Hello, I'm pretty new to MITK and and for a project i'm involved i need to capture the mouse events and key events perfomed in gui. For this purpose i modified the mapEvent function of mitkEventMapper.cpp as following. bool mitk::EventMapper::MapEvent(Event* event, int mitkPostedEventID ) { int eventID = mitkPostedEventID; if( mitkPostedEventID == 0 ) { //search the event in the list of event descriptions, if found, then take the number and produce a stateevent EventDescriptionVecIter iter; for (iter = m_EventDescriptions.begin(); iter!=m_EventDescriptions.end();iter++) { if (*iter == *event) break; } if (iter == m_EventDescriptions.end())//not found return false; eventID = (*iter).GetId(); } //***************************************** the edited code ************************************ mitk::BaseRenderer * c_Sender = event->GetSender(); int c_Type = event->GetType(); int c_Button = event->GetButton(); int c_ButtonState = event->GetButtonState(); int c_Key = event->GetKey(); mitk::Point2D c_DisplayPosition = dynamic_cast<const mitk::PositionEvent*>(event) ->GetDisplayPosition() ; mitk::Point3D c_WorldPosition = dynamic_cast<const mitk::PositionEvent*>(event) ->GetWorldPosition() ; std::ofstream eventfile; eventfile.open("eventua.txt"); eventfile << eventID; eventfile.close(); //***************************************************************************** //set the Menger_Var m_StateEvent and send to StateMachine, which does everything further! m_StateEvent.Set( eventID, event ); /* Group and Object EventId: then EventMapper has the power to decide which operations hang together; each event causes n (n e N) operations (e.g. StateChanges, data-operations...). Undo must recall all these coherent operations, so all of the same objectId. But Undo has also the power to recall more operationsets, for example a set for building up a new object, so that a newly build up object is deleted after a Undo and not only the latest set point. The StateMachines::ExecuteAction have the power to descide weather a new GroupID has to be calculated (by example after the editing of a new object) A user interaction with the mouse is started by a mousePressEvent, continues with a MouseMove and finishes with a MouseReleaseEvent */ switch (event->GetType()) { case mitk::Type_MouseButtonPress://Increase mitk::OperationEvent::IncCurrObjectEventId(); break; case mitk::Type_MouseMove://same break; case mitk::Type_MouseButtonRelease://same break; case mitk::Type_User://same break; case mitk::Type_KeyPress://Increase mitk::OperationEvent::IncCurrObjectEventId(); break; default://increase mitk::OperationEvent::IncCurrObjectEventId(); } #ifdef MBI_INTERNAL_CONFERENCE //Conference - pass local events through if ( mitkPostedEventID == 0 ) { mitk::CoreObjectFactory::GetInstance()->MapEvent(event,eventID); } #endif //MBI_INTERNAL_CONFERENCE mitk::OperationEvent::ExecuteIncrement(); return mitk::GlobalInteraction::GetInstance()->HandleEvent(&m_StateEvent); } when i add the lines the project builds without errors. mitk::Point2D c_DisplayPosition = dynamic_cast<const mitk::PositionEvent*>(event) ->GetDisplayPosition() ; mitk::Point3D c_WorldPosition = dynamic_cast<const mitk::PositionEvent*>(event) ->GetWorldPosition() ; i get a runtime error when running step5. (step5.exe crashes.) what i need to do in my project is capture mouse events from one machine and make them happen in a remote computer. (using a log of captured events) I'm hoping to use mitkconferenceeventmapper.cpp to achieve this. I would be very grateful if anyone could tell me wats wrong with the above lines. Any alternatives to get my task done would be very helpful. Thanks in advance. Best Regards, -- Sajith Rabel ------------------------------------------------------------------------------ _______________________________________________ mitk-users mailing list [email protected]<mailto:[email protected]> https://lists.sourceforge.net/lists/listinfo/mitk-users -- Sajith Rabel
------------------------------------------------------------------------------
_______________________________________________ mitk-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mitk-users
