head	1.9;
access;
symbols
	r2_1:1.9
	r2_0:1.9
	r1_1_beta:1.9
	r1_1_alpha:1.8
	r1_0:1.8
	r0_11:1.8
	r0_10:1.7
	r0_9:1.7
	Eglin_alpha_1:1.5;
locks; strict;
comment	@// @;


1.9
date	94.07.25.16.58.52;	author thoth;	state Exp;
branches;
next	1.8;

1.8
date	94.03.30.13.47.16;	author thoth;	state Exp;
branches;
next	1.7;

1.7
date	93.11.17.18.07.29;	author thoth;	state Exp;
branches;
next	1.6;

1.6
date	93.07.15.11.40.23;	author thoth;	state Exp;
branches;
next	1.5;

1.5
date	93.05.26.16.51.49;	author thoth;	state Exp;
branches;
next	1.4;

1.4
date	92.12.16.14.48.30;	author thoth;	state Exp;
branches;
next	1.3;

1.3
date	92.08.23.13.30.23;	author thoth;	state Exp;
branches;
next	1.2;

1.2
date	92.08.14.15.48.09;	author thoth;	state Exp;
branches;
next	1.1;

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


desc
@interface to the Yoder point set iterator
@


1.9
log
@\Name sanitization
@
text
@// Emacs: -*- C++ -*-

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


// 
// $Log: YoderIPSIter.h,v $
// Revision 1.8  1994/03/30  13:47:16  thoth
// Renamed files to BasePSIter.
//
// Revision 1.7  1993/11/17  18:07:29  thoth
// IPSIter is now PSIter<IntPoint>
//
// Revision 1.6  1993/07/15  11:40:23  thoth
// new BasePSIter implementation.
//
// Revision 1.5  93/05/26  16:51:49  thoth
// Copyright Notices
// 
// Revision 1.4  92/12/16  14:48:30  thoth
// conversion to IA_ mostly complete
// 
// Revision 1.3  92/08/23  13:30:23  thoth
// CFrontified version
// 
// 

#ifndef YoderIPSIter_h_
#define YoderIPSIter_h_

#ifdef IA_PRII
#pragma interface
#endif

#include "BasePSIter.h"
#include "PSIter.h"
#include "YoderIPS.h"

class IA_YoderIPSIter: public IA_BasePSIter<IA_Point<int> > {
protected:
    IA_YoderIPS* yoder() const {
	return (IA_YoderIPS*) domain;
    }

    // the first coordinate of the point we are currently on
    int		curr;
    // the index of the shadow cylinder that curr is from
    unsigned	sliceidx;
    // the iterator over the current shadow
    IA_PSIter<IA_Point<int> >	*subiter;
public:
    IA_YoderIPSIter(IA_YoderIPS *);
    IA_YoderIPSIter(const IA_YoderIPSIter &);
    ~IA_YoderIPSIter() { if (this->subiter) delete this->subiter; }

    IA_BasePSIter<IA_Point<int> > *clone_self() { return new IA_YoderIPSIter(*this); }
    int next(IA_Point<int>&);
    void reset() {
	this->curr = yoder()->lastbefore+1;
	this->sliceidx = 0;
	if (this->subiter) {
	    delete this->subiter;
	    this->subiter=0;
	}
    }
};

#endif
@


1.8
log
@Renamed files to BasePSIter.
@
text
@d11 3
d42 1
a42 1
class IA_YoderIPSIter: public IA_BaseIPSIter {
d53 1
a53 1
    IA_PSIter<IA_IntPoint>	*subiter;
d59 2
a60 2
    IA_BaseIPSIter *clone_self() { return new IA_YoderIPSIter(*this); }
    int next(IA_IntPoint&);
@


1.7
log
@IPSIter is now PSIter<IntPoint>
@
text
@d11 3
d35 1
a35 1
#include "BaseIPSIter.h"
@


1.6
log
@new BasePSIter implementation.
@
text
@d10 4
a13 1
// $Log:	YoderIPSIter.h,v $
d33 1
a33 1
#include "IPSIter.h"
d47 1
a47 1
    IA_IPSIter	*subiter;
@


1.5
log
@Copyright Notices
@
text
@d11 3
d30 1
d35 3
a37 2
    // a cache to access the point set member data
    IA_YoderIPS	*yoder;
d46 1
a46 1
    IA_YoderIPSIter(const IA_IntPointSet&, IA_YoderIPS *);
d53 1
a53 1
	this->curr = yoder->lastbefore+1;
@


1.4
log
@conversion to IA_ mostly complete
@
text
@d3 6
d11 3
@


1.3
log
@CFrontified version
@
text
@d5 2
d8 1
d20 1
a20 1
class YoderIPSIter: public BaseIPSIter {
d23 1
a23 1
    YoderIPS	*yoder;
d30 1
a30 1
    IPSIter	*subiter;
d32 3
a34 3
    YoderIPSIter(const IntPointSet&, YoderIPS *);
    YoderIPSIter(const YoderIPSIter &);
    ~YoderIPSIter() { if (this->subiter) delete this->subiter; }
d36 2
a37 2
    BaseIPSIter *clone_self() { return new YoderIPSIter(*this); }
    int next(IntPoint&);
@


1.2
log
@Iterators no longer use multiple inheritance.  They now use
IntPointSets (and the hashing that implies).
@
text
@a4 2
// Revision 1.1  92/07/26  16:48:45  thoth
// Initial revision
a5 1
// 
d10 1
d12 1
@


1.1
log
@Initial revision
@
text
@d4 3
a6 1
// $Log$
d8 1
d18 6
a23 1
class YoderIPSIter: public BaseIPSIter, public YoderIPS {
d25 1
d27 1
d30 2
a31 1
    YoderIPSIter(const YoderIPS&);
d33 2
a34 1
    
d37 1
a37 1
	this->curr = this->lastbefore+1;
@
