cmgui development notes
Flags and defines
- In CMGUI there are a number of flags and #defines, this explains what is
- intended by some of these.
Runtime framework
UNIX Uses the POSIX runtime for C headers and runtime
WIN32_SYSTEM Uses the native winapi for C headers and runtime Would be better to rename this WINAPI now that the WIN32 api is
available in 64bit now too.
User interface
- MOTIF
- WIN32_USER_INTERFACE
- GTK_USER_INTERFACE
- WX_USER_INTERFACE
Source code directories
This list summarises the status and intention of different source code sections in cmgui.
- api : Contains interfaces that are intended to stablise and present public access.
- cell : Code for a 3D graphical view of a cell - Deprecated but may be revitalised as a separate application
- choose : Implements motif chooser widgets that select objects from LISTS and MANAGERS
- colour : A motif colour chooser widget and a motif value chooser widget : very old
- comfile : comfiles are the scripts used by cmgui.
- command : Implements the native commands of cmgui. Usually a perl interpreter is integrated into the parsing so that cmgui and perl commands can be intermingled.
- computed_field : Field operators. An object orientated interface is implemented entirely in C.
- computed_variable : Contains several redevelopments of the concepts in computed_field. Written in C++ these redevelopments include differential calculations.
- curve : Uses 1D finite elements to implement user editable curves, used by the emoter and can be used by computed fields.
- data : Deprecated code for digitising data.
- database : Skeleton idea never implemented.
- dof3 : Motif widgets for editing 3D positions and Euler rotations
- element : Operations on element objects, including selection, viewing dialog and element_points (embedded grid or collocation point). Does not include loading, saving or implementation of element operations which is in finite_element instead.
- emoter : A tool for scriptable and interactive control of nodes in a mesh using SVD(Singular Value Decomposition)/PCA(Principal Component Analysis).
- finite_element : Implements nodes and elements for cmgui, including reading, writing and evaluation of basis functions. Also contains routines which generate graphical objects from finite_elements.
- general : Macros and functions used throughout the program, such as memory allocation, lists, managers (lists with observers), matrix operations and an image interface.
- graphics : Graphical representations and their conversions into OpenGL.
- gtk : gtk based graphics window and scene viewer.
- help : Deprecated help window
- image_processing : Computed field operators implementing a large number of image processing operations.
- interaction : Provides an abstraction for interactive events selecting and interacting with a 3D scene.
- io_devices : Connects to input devices such as the Faro Arm, Polhemus and Phantom
- icon : Stores the icons(.bmp, .xpm & .icon) used in cmgui-wx.
- link : Deprecated code for connecting to the cm parts of cmiss.
- material : The graphical materials used for rendering objects.
- matlab : An initial start at exporting object interfaces from the api directory into matlab
- matrix : Matrix routines
- motif : Motif specific image routines
- node : Operations on node objects, including selection and viewing dialog. Does not include loading, saving or implementation of element operations which is in finite_element instead.
- perl : Export of object interfaces in api directory to perl
- projection : Deprecated files for coordinate projections
- prompt : Deprecated code implements a dialog to support prompts from the cm link interface.
- python : An initial start at exporting object interfaces from the api directory into matlab
- region : Regions define a domain in which fields are defined. Different regions provide groupings of elements and name spaces for nodes and elements.
- select : Motif widgets that enable the selection of an object from a list. Used for materials and spectrums.
- selection : Maintains a concept of a selected graphical object, such as a node or element.
- three_d_drawing : Implements the underlying graphics contexts to support 3D rendering.
- time : Defines a concept of time and managers which interact with this time and notify objects when the time changes.
- transformation : A 3D position editor
- user_interface : Implements the main loops and event callbacks to enable a application to function.
- utilities : various utility programs.
- view : utilites related to coordinate transformations