Boost logo

Boost :

From: Andy Little (andy_at_[hidden])
Date: 2006-10-06 17:03:09

"Lubomir Bourdev" <lbourdev_at_[hidden]> wrote in message
Andy Little wrote:
>"Lubomir Bourdev" <lbourdev_at_[hidden]> wrote:
>> Any large library has some concepts that could stand on their own or be
>> reused in other contexts. Sometimes it makes sense to do so, but
>> sometimes (as I believe is the case with GIL) those other contexts are
>> quite nebulous and doing so would be somewhat extreme.
>? "Those other contexts are quite nebulous"? You lost me..

Again, lets take your example of extracting the 2D-navigation aspect of GIL
(what you call Display Matrix) into a stand-alone library that you could use for
purposes other than imaging. Your example is manipulating text characters in a
rectangular grid.

I claim this is a nebulous example, because the moment you start getting down to
business of writing this text-processing-display system, you will realize that
the above DisplayMatrix is the wrong abstraction for your job. For one thing,
most fonts have variable width, which means you have different number of
characters per line. It is hard to accomodate the vertical random-access
navigation. There is no longer a global "width" parameter, but width per line.
You need a different model of a different concept.

Let's say you constrain yourself to fixed width fonts and rectangular grid (a
severe constraint in my opinion). Still, the set of operations GIL provides make
no sense for you. The operations you need for text manipulation are very much
one-dimensional (insert/delete characters). It would be inefficient to keep your
characters in a 2D grid. Navigating vertically has very little use. Operations
meaningful for images, like copying a rectangular subgrid or displaying it
90-degree rotated make no sense for you.

Finally, if you want to constrain yourself to rectangular grid of characters and
you feel those image-like operations could be meaningful for you, then you can
interpret what you have as an 8-bit grayscale image (gil::gray8_view_t) whose
pixel channel is the ASCII code of your character.


Fair enough, but it was only one example...

Lets look at your image and view concepts.
AFAICS the image is some sequence(s) of more or less raw data
The view turns the raw data into a 2D matrix.

Is that correct so far?

Andy Little


> _______________________________________________
> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at