Date
18 March 2014 (comments added 20 March by Alan)
Attendees
John Clyne, Alan Norton, Scott
Agenda
- Review params changes
- Discuss next steps
Notes
Discussed changes in the ArrowParams, Params, and Box classes:
ArrowParams::
- Can/should isOpaque() be moved to RenderParams class and made pure virtual? Alan will explore - Yes, this has been done.
- Creation of GetBox() inside of ArrowParams (and various other places) appears to be a memory leak. Alan believes that memory is freed by ParamsBase, but will confirm. If true, will add documentation inside ArrowParams.h that indicates that ownership of memory created by ArrowParms is being passed to ParamsBase. Alan: There were some problems with deletion of ParamsBase instances, and also the creation of the Box in the GetBox method was not necessary. These changes have been made in the latest check-in. I added a discussion of Params and ParamsBase classes in the wiki at Params and ParamsBase classes for 3.0 which hopefullly will clarify how this is intended to work with 3.0.
- Discussion on why static CreateDefaultInstance() method - essentially an object factory - is needed, and whether a true object factor method should be supplied instead, and defined as a pure virtual method on ParamsBase. Alan will explore: The createDefaultInstance() method is used to simplify extensibility, enabling third-party developers to identify and link in new Params and ParamsBase classes that are not present in the VAPOR code base. There is a discussion of how the Params and ParamsBase classes should operate in the VAPOR wiki at: Params and ParamsBase classes for 3.0
- calcDataAlignment and calcDefaultScale() should probably be private methods. Alan: These need to be accessed by Renderer and GUI classes so remain public. Documentation added.
AnimationParams::
This class is not ready for review and should be removed from Doxgyen build. Alan: The portion of this that has doxygen is OK. Maybe John was using an older source.
Params::
Validate() methods needs more documentation to clarify purpose of setdefaults flag. Alan: Done.
Box::
- Box implementation still uses old API (GetRootNode(), etc). Need to explore using public API to be consistent with Params classes. Alan: Done.
TODO items
Discussed list of things that need to be addressed in 3.0, with the goal of producing a working, scaled down prototype of vaporgui to serve as template for migration of remaining components:
Items that can be addressed without further discussion:
- migrate trackball to GUI - Done.
- redesign of manipulators - separation between GUI and rest of code - In progress
- implement load and save sessions
- GUI cleanup - vizwin, vizmanager, eventrouters
- implement viz features as a params class
- DataMgr 3.0 (and Data Status)
Items in need of discussion:
- OpenGL management - renderer and visualizer classes
- Error handling
- Event routers
Action Items
Address params issues discussed above - Alan - Done.
Proceed with work on independent TODO items - Alan