head	1.2;
access;
symbols
	bobbase:1.2
	bob:1.2.1
	r2_1:1.2
	r2_0:1.2
	r1_1_beta:1.2
	r1_1_alpha:1.2
	r1_0:1.2
	r0_11:1.2
	r0_10:1.2
	r0_9:1.1;
locks
	thoth:1.2.1.1; strict;
comment	@// @;


1.2
date	94.01.07.15.12.35;	author thoth;	state Exp;
branches
	1.2.1.1;
next	1.1;

1.1
date	93.09.15.12.54.26;	author thoth;	state Exp;
branches;
next	;

1.2.1.1
date	95.01.13.19.58.04;	author thoth;	state Exp;
branches;
next	;


desc
@Image iterator handle class declaration
@


1.2
log
@Image class is now CoreImage and named image types are
Image<P,T>.
@
text
@// Emacs: -*- C++ -*-

//
//	Copyright 1993, Center for Computer Vision and Visualization,
//	University of Florida.  All rights reserved.
//


// $Log: ImageIter.h,v $
// Revision 1.1  1993/09/15  12:54:26  thoth
// Initial revision
//

#ifndef ImageIter_h_
#define ImageIter_h_

#ifdef IA_PRII
#pragma interface
#endif

#include "BaseImageIter.h"
#include "CoreImage.h"

template <class P, class T>
class IA_IVIter {
protected:
    IA_BaseIVIter<P,T> *iter;
public:
    IA_IVIter();
    IA_IVIter(const IA_CoreImage<P,T> &image)
     { iter = image.bip->value_iterator(); }

    IA_IVIter(const IA_IVIter &x) { this->iter = x.iter->clone_self(); }
    ~IA_IVIter() { delete iter; }
    
    IA_IVIter& operator=(const IA_CoreImage<P,T> &);
    IA_IVIter& operator=(const IA_IVIter &);
    
    IA_CoreImage<P,T> domain() { return iter->domain_(); }
    
    int operator() (T& pixel_value) {
	return this->iter->next(pixel_value);
    }

    void reset() { iter->reset(); }
};

template <class P, class T>
class IA_IPIter {
protected:
    IA_BaseIPIter<P,T> *iter;
    
public:
    IA_IPIter();
    IA_IPIter(const IA_CoreImage<P,T> &image)
    { iter = image.bip->pixel_iterator(); }

    IA_IPIter(const IA_IPIter &x) { this->iter = x.iter->clone_self(); }
    ~IA_IPIter() { if (iter) delete iter; }
    
    IA_IPIter& operator=(const IA_CoreImage<P,T> &);
    IA_IPIter& operator=(const IA_IPIter &);
    
    IA_CoreImage<P,T> domain() { return iter->domain_(); }
    
    int operator() (P& pixel_location, T& pixel_value) {
	return this->iter->next(pixel_location, pixel_value);
    }
    void reset() { iter->reset(); }
};

#endif
@


1.2.1.1
log
@CoreImage has been re-merged with Image.  All special stuff should be
friends of FBI now.
@
text
@a9 4
// Revision 1.2  1994/01/07  15:12:35  thoth
// Image class is now CoreImage and named image types are
// Image<P,T>.
//
d22 1
a22 1
#include "Image.h"
d30 1
a30 1
    IA_IVIter(const IA_Image<P,T> &image)
d36 1
a36 1
    IA_IVIter& operator=(const IA_Image<P,T> &);
d39 1
a39 1
    IA_Image<P,T> domain() { return iter->domain_(); }
d55 1
a55 1
    IA_IPIter(const IA_Image<P,T> &image)
d61 1
a61 1
    IA_IPIter& operator=(const IA_Image<P,T> &);
d64 1
a64 1
    IA_Image<P,T> domain() { return iter->domain_(); }
@


1.1
log
@Initial revision
@
text
@d9 4
a12 1
// $Log:	DIVIter.h,v $
d22 1
a22 1
#include "Image.h"
d30 1
a30 1
    IA_IVIter(const IA_Image<P,T> &image)
d36 1
a36 1
    IA_IVIter& operator=(const IA_Image<P,T> &);
d39 1
a39 1
    IA_Image<P,T> domain() { return iter->domain_(); }
d55 1
a55 1
    IA_IPIter(const IA_Image<P,T> &image)
d61 1
a61 1
    IA_IPIter& operator=(const IA_Image<P,T> &);
d64 1
a64 1
    IA_Image<P,T> domain() { return iter->domain_(); }
@
