Summer of Code - Getting Started: Difference between revisions

m
no edit summary
mNo edit summary
Line 462: Line 462:
: Carnë Draug
: Carnë Draug


=== GUI Variable Editor and Property Inspector ===


Octave has a preliminary implementation of a Variable Editor: a spreadsheet-like tool for quickly editing and visualizing variables.  The initial phase of the project will be learning how the implementation was done, and then finishing off the remaining action items listed in the Bug Tracker (principally a reasonable display of cell arrays and a concise display of strings).


With the knowledge gained, the second part of the project will be to implement a Property Inspector.  This is a spreadsheet like interface to the many, many graphics properties that exist and are different on a per-object basis.  The goal would be not only the concise-display of the existing properties, but a reasonable user interface to change them.  As examples, boolean properties should be able to be toggled with a double-click; Radio properties should have a drop-down list of only the supported options; Other properties that can be modified should have the constraints built-in (for example, Linewidth must be a scalar, while Position must be a 1x4 vector).  It would also be important to have easy access to the documentation of a property.


* '''Minimum requirements'''
: Ability to read and write C++ code.  Experience with Qt toolkit and GUI programming is optional, but desirable.
* '''Difficulty'''
: Medium.
* '''Mentor'''
:


=== SPQR Interface ===
Octave implements QR factorization for sparse matrices, but it does so with an older library.  This has caused fundamental issues, including segfaults as recorded here (https://savannah.gnu.org/bugs/?func=detailitem&item_id=51950).  The goal of this project is to program an interface to the API for the SQPR library (http://faculty.cse.tamu.edu/davis/suitesparse.html).  This is the same library that Matlab uses for this purpose.
* '''Minimum requirements'''
: Ability to read and write C++ code.
* '''Difficulty'''
: Medium.
* '''Mentor'''
:
=== PolarAxes and Plotting Improvements ===
Octave currently provides supports for polar axes by using a Cartesian 2-D axes and adding a significant number of properties and callback listerners to get things to work.  What is needed is a first class implementation of a "polaraxes" object in C++.  This will require creating a new fundamental graphics object type, and programming in C++/OpenGL to render the object.  When "polaraxes" exist as an object type then m-files will be written to access them including polaraxes.m, polarplot.m, rticks.m, rticklabels.m, thetaticks, thetaticklabels.m, rlim.m, thetalim.m
* '''Minimum requirements'''
: Ability to read and write C++ code.  Ability to read and write Octave code.  Experience with OpenGL programming is optional.
* '''Difficulty'''
: Medium.
* '''Mentor'''
: Rik


<noinclude>
<noinclude>
1,072

edits