Monday, October 13, 2008

The Core Library

The core library (Tinkercell.dll, Tinkercell.so, etc.) provides a very general framework for constructing anything with nodes and connections and information associated with each node and connection.

The plug-ins are built on the core library in order to provide a more complete set of features. The files in the BasicTools category provide most of the basic GUI features. However, some of the important features, such as plotting, are provided by other plug-ins. New plug-ins can be added in the same manner.

Main classes:

MainWindow

  • provides the main window for the application
  • stores a list of all plug-ins that have been loaded
  • has a set of signals that are used to communicate with the plug-ins
  • has multiple GraphicsScenes

GraphicsScene

  • draws all the items on the screen
  • has a history stack associated with it
  • has a set of signals that are used to communicate with the MainWindow
  • has various simple functions such as moving, inserting, deleting, etc.

Graphical items:

PartGraphicsItem

  • defines how to draw a single node (basically a set of polygon shapes)
  • can be stored in xml format

ConnectionGraphicsItem

  • defines how to draw a single connection (basically a set of paths and arrow-heads)
  • can be stored in xml format

TextGraphicsItem

  • defines how to draw text

ControlPoint

  • Used by PartGraphicsItem and ConnectionGraphicsItem to provide users with a point that can be moved

Data associated with graphical items:

ItemHandle, PartHandle, ConnectionHandle

  • Each part and connection (and most of the text items) item has a handle
  • A Handle brings together an item with its data and associated tools

ItemFamily, PartFamily, ConnectionFamily

  • Each handle has an associated family
  • Family is used to identify the “type” of a node or connection

ItemFamily, PartFamily, ConnectionFamily

  • Each handle has an associated family
  • Family is used to identify the “type” of a node or connection
  • Family also contains annotation information

Plug-in support

Tool

  • A very general object that usually belongs inside the MainWindow
  • Parent class for all the plug-ins

GraphicalTool

  • A graphics item that pops up when associated items are selected
  • Used to trigger a tool’s response

LibraryThread

  • A class for running C dynamic libraries as separate threads
  • InputWindow allows you to add an interface to a C library
  • OutputWindow allows you to display output from a C library

ProcessThread

  • A class for running processes as separate threads

File reading and writing

ModelReader and ModelWriter

  • Read and write handles, respectively

PartGraphicsItemReader and PartGraphicsItemWriter

  • Read and write PartGraphicsItem, respectively

ConnectionGraphicsItemReader and ConnectionGraphicsItemWriter

  • Read and write ConnectionGraphicsItem, respectively



No comments: