From: Ullrich Koethe (u.koethe_at_[hidden])
Date: 2001-11-15 14:04:57
Peter Dimov wrote:
> From: "Ullrich Koethe" <u.koethe_at_[hidden]>
> > Peter Dimov wrote:
> > > The interface as presented to the user would be orthogonal:
> > >
> > > basic_image<bool, linear> // == basic_image<unsigned char, linear>
> > > basic_image<bool, packed> // == vector<bool>
> > > basic_image<bool, rle>
> > > basic_image<unsigned char, linear>
> > > basic_image<unsigned char, rle>
> > So you would specialize algorithms on storage format (linear, packed,
> > rle)? Interesting, but a lot of work (some algorithms are needed 3
> > times).
> Only where it makes sense.
> Look at it this way. The choices are:
> basic_image<T> - linear
> packed_image // always bool
> rle_image // always bool
> or  - see above.
> The difference is that in  you may choose what to specialize and what to
> leave to the generic version to handle.
Since I'm using iterators, I'll have to specialize on iterator type. So,
iterator traits must contain the storage formats of the corresponding
container. Looks workable.
> > No, I also have accessors for variable band formats (SequenceAccessor,
> > VectorAccessor and VectorBandAccessor)
> True, but having
> image<std::vector<unsigned char> >
> would be quite inefficient since the vectors won't exploit the fact that
> they are the same size. Or am I missing something.
Yes, because the accessors only require a vector _interface_. So you can
that allocates a contigous block of memory, and considers stretches of n
values as one pixel. The iterator would then return an appropriate proxy
that implements the required interface on top of this. (Which brings me
to proxies, who would warrant a discussion of their own...)
-- ________________________________________________________________ | | | Ullrich Koethe Universität Hamburg / University of Hamburg | | FB Informatik / Dept. of Computer Science | | AB Kognitive Systeme / Cognitive Systems Group | | | | Phone: +49 (0)40 42883-2573 Vogt-Koelln-Str. 30 | | Fax: +49 (0)40 42883-2572 D - 22527 Hamburg | | Email: u.koethe_at_[hidden] Germany | | koethe_at_[hidden] | | WWW: http://kogs-www.informatik.uni-hamburg.de/~koethe/ | |________________________________________________________________|
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk