Personal tools
You are here: Home cmgui Wiki cmgui development notes
Views
cmgui development notes copied.
FrontPage >>

cmgui development notes

last edited 4 months ago by blackett

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

Contributing to this site

Please add to the wiki any relevant information that you think might be useful to other users of this website. For example, you might like to contribute your experiences, questions and answers.

You are encouraged to contribute to this site regardless of your level of experience. Contributions are welcomed from new and regular visitors.

If you ask a question and receive an answer from a developer you should record it in the wiki. This information is extremely useful and can help other users overcome the same problem.

See how to add and edit pages for more information.