about contibuting to octave

Ben Abbott bpabbott at mac.com
Tue Mar 3 02:18:10 CST 2009


On Mar 3, 2009, at 2:22 AM, xianghang liu wrote:

> On Tue, Mar 3, 2009 at 2:13 PM, Ben Abbott <bpabbott at mac.com> wrote:
> - Show quoted text -
>
> On Mar 3, 2009, at 12:44 AM, Shai Ayal wrote:
>
> On Tue, Mar 3, 2009 at 7:17 AM, xianghang liu  
> <xianghangliu at gmail.com> wrote:
> Yes, I think I am interested in this. Would you please tell me how  
> to start
> and give me more details about this?
> Thanks.
>
> Xianghang
> On Tue, Mar 3, 2009 at 12:33 PM, Shai Ayal <shaiay at gmail.com> wrote:
>
> On Tue, Mar 3, 2009 at 4:36 AM, xianghang liu <xianghangliu at gmail.com>
> wrote:
> Hi,
> I am a C++ developer very interested in Octave and would like to
> contribute.
> I have had a look at projects listed at
> http://www.gnu.org/software/octave/projects.html. I would like to
> contribute
> numerical  and IO related projects in the list. Would you please  
> show me
> a
> more current copy of this?
> Hi,
>
> I'm not sure it's what you meant by IO related, but the graphics
> system is really in need of a c++ developer. We need someone to
> implement text objects.
> If this interests you, I'm sure Michael and I could help you start out
>
> Shai
>
>
> Great!
> I'll give you a very brief overview with which you can start, and just
> ask question as you go. It's also better if you ask on the maintainers
> list (or at least cc the list) instead of me directly for 3 reasons:
> 1. someone else might be able to answer better/before me
> 2. someone else will be able to correct me!
> 3. we will have a record of the discussion and changes that everyone  
> can see.
>
> Also, please use bottom posting as it is much easier to read later
>
> The graphics system in octave is made of two parts -
> 1. core graphics, which includes all the parts that are independent of
> the actual graphics implementation and underlaying OS (i.e. the object
> hierarchy,  setting/getting properties and more). Core graphics is
> implemented in the (very large) files:
> graphics.h.in, graphics.cc. graphics.h.in is converted to graphics.h
> by the script genprops.awk. all of these files are in the src
> directory
> 2. backends - these are in charge of the actual rendering and deal
> with the underlaying graphics system. Currently we have 2 backends,
> the gnuplot backend and the fltk backend which uses the
> opengl-renderer.
>
> The text object is very complex (probably why it is left undone) in
> that it is a core graphics object, but also has dependencies on the
> backend: As Ben noted, the text object has an "extent" property which
> should hold the text bounding box. This is dependent on the text and
> font properties. Only the backend knows the font properties, so this
> has to communicated from the backend to the core-graphics system. We
> need to decide how to do this and implement.
> Also there is the whole issue of simple TeX rendering for text.
>
> Shai
>
> Shai,
>
> Regarding the comment "Only the backend knows the font properties",  
> are font properties independent of the backend?
>
> Ben
>
> Thanks for your descriptions. I have get some rough understanding  
> about what we want to do.
> As far as I know, there is a properity called 'Extent' in Matlab  
> text object, which is the range of the text objects and is read- 
> only. I think we would like to implement something similar. To do  
> this we need to add a read-only property 'extent' to class text  
> definded in graphics.h. But this property is only known to backends  
> so we need to communication from the backends to the frontend. Any  
> mistakes?
> And would please tell me in which files backend of the graphics  
> system implemented?
>
> Thanks.
> Xianghang

The fltk backend is primarily in src/fltk_backend.cc

The gnuplot backend is primarily written as m-files. They are in  
scripts/plot (there is a lot of other files having nothing to do with  
gnuplot, in particular, there as well).

Regarding the text object's "extent"s, I've been under the assumption  
that this could/would be handled independent of the backend, and that  
all backends would rely upon a unified solution for calculating the  
extents of a text object.

Am I off in my expectation? ... if so, if anyone has a thought on how  
the extents for the gnuplot backend might be determined, please advise.

Ben








More information about the Octave-maintainers mailing list