Atamai is an intermediate platform for computer-aided medical care, especially surgical navigation, based entirely on VTK and the Scripting Language Python. The position of atamai in the medical system framework is as follows:
The atamai class hierarchy is as follows:
Atamai focuses on events and events. eventhandler is the root class of all classes. The three core classes are actorfactory, renderpane, and paneframe. Their Relationships with VTK are as follows:
Atamai architecture:
(1) eventhandler Parsing
The main function is to define the event class and eventhandler class. Define the eventmodifier/eventtype constant of the eventhandler class; 2. Define the bindevent () method for binding events of the eventhandler class, resolve the event eventdescriptor to type-modifier-keysym and the event processing function func to form a key-value pair, which is recorded in its self. _ eventdict; 3. Event Processing handleevent (), accepting an event object, parsing it as type-modifier-keysym, and finding the corresponding callback function from _ eventdict, and call it. Defining event uses the concept of dynamic attributes of Python objects. Records events hierarchically with type-modifier-keysym to accelerate the event search process.
(2) actorfactory Parsing
Actorfactory represents the entire process from vtksource to vtkactor in the pipeline structure of VTK. actorfactory and vtkactor form a one-to-multiple relationship, that is, multiple vtkactors in an actorfactory can correspond to them. To implement an actorfactory that can be displayed in multiple renderpane, create a new set of actor copies for each renderpane using the addtorender () function (using this method _ makeactors to create a new actor copy ). If the actorfactory's actor information is updated, notify actorfactory's render () method by setting the modified () method, and re-draw the method.
(3) renderpane Parsing
Renderpane is at the core of atamai and corresponds to vtkrenderer. The main functions of renderpane are as follows: first, to handle most events, bindmodetobutton (), handeleevent (), do ...... () and other functions. The second is to simulate functions such as cursor: connectcursor (), handeleevent (), dosmartpick (), and so on. The process of picking is dosmartpick (), dopickactor (), and doactorinteraction () and other functions.
(4) paneframe Parsing
Paneframe is the event hub. paneframe corresponds to vtkrenderwindow one by one. It also includes vtkrenderwindowindowinteractor. Paneframe has the following main functions: Obtain VTK events: Through _ bindinteractor (), _ on ...... (), Handleevent () and other functions; GUI event acquisition, related to the specific gui (wxwindow/tk ). Its function is to translate events obtained from VTK and GUI into event classes defined by atamin, and pass them to the current renderpane.