事件被mitk::dispathcer接收後,又被分發給乙個mitk::datainteractor,由它決定是否能夠處理該事件。在高層上講,這由mitk::eventstatemachine完成。首先,該狀態機會問所收事件是否在configuration裡。如果在,返回variant name。然後狀態機檢查目前狀態下是否存在能夠被該 event variant觸發的transition。這些條件都滿足後,與該transition相關的所有行為都會被查詢和執行。這些行為則執行在mitk::datainteractor層。整個過程如下圖所示:
每個mitk::baserender建立乙個mitk::binddispatcherinteractor(封裝了mitk::datastorage和mitk::dispatcher之間的聯絡)物件,因此允許 mitk::datainteractor在只知道mitk::datanode的情況下向mitk::dispatcher登記。
mitk::binddispatcherinteractor為mitk::datanode在mitk::datastorage裡建立乙個新的mitk::dispatcher物件和註冊器。adddatainteractor()和removedatainteractor() 是誰的?
這樣,只要是在mitk::baserenderer裡顯示的datanodes,所有變化都能通知到mitk::dispatcher。當乙個node增加、刪除或被修改時,mitk::dispatcher會檢查mitk::datainterator是否已被設定,以便從internal list中增加或刪除這個mitk::datainterator
mitk::baserenderer範圍內生成的事件會送到相對應的mitk::dispatcher進行分發。
event distribution
乙個mitk::dispatcher可以有不同的,處理模式(決定如何選擇接收到事件的interactor)。這些模式的設定和管理由 mitk::dispatcher自己完成。
矩形面積交
時間限制 1.0s 記憶體限制 512.0mb 問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個...
矩形面積交
問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出格式 輸出僅...
矩形面積交
問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出格式 輸出僅...