Personal tools
You are here: Home cmgui Wiki Fields Owned By Region
Views
FrontPage >> Richard's notes >>

Fields Owned By Region

last edited 4 years ago by rchristie

Proposal: Fields Owned By Each Region

NOTE This proposal replaces my previous Single Field List proposal, which I now view as inelegant and limiting.

I propose that there be a computed field manager in each region, instead of the current single global manager we have now; this will be inexorably linked to the FE_region over which its finite element fields are defined in that region. We can consider Computed fields as the true fields in Cmgui and relegate FE_fields to being an implementation detail. A region thus becomes a container for field definitions of any type.

Note that groups will continue to exist as subsets of the FE_region sharing the same field manager. In future I also anticipate allowing multiple instances of field representations (field manager + FE_region) in separate Cmiss_regions.

Implementation Issues

Plenty to sort out here, but want to get the proposal on the page.

  • Computed field package in each region requires some global information for defining certain field types, e.g. graphics_window_manager, curve_manager, time_keeper. Current APIs for creating Cmiss_regions do not pass any arguments in, so need mechanism to get such data into new child regions, possibly the "viral" spread of objects I have separately proposed for selections and graphics.
  • Many issues with data encapsulation. For example, only FE-related fields should know about FE_region.

Migration Steps

  • Graphical Element Editor field choosers need to work with the computed field manager for the current region. Similarly for their commands.
  • Migrate "gfx define field ..." to "gfx region PATH define field ...". Existing "gfx define field ..." commands can work with a default region stored in the command data, initially "/" but changeable by the user.

Benefits

Other Issues

  • Will leave for later linking of equivalent fields up and down the hierarchy.
  • Embedding.

Your input is welcome.

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.