head	1.8;
access;
symbols
	r2_1:1.4
	r2_0:1.4
	r1_1_beta:1.4
	r1_1_alpha:1.3
	r1_0:1.3
	r0_11:1.3
	r0_10:1.2
	r0_9:1.1;
locks; strict;
comment	@// @;


1.8
date	94.11.29.22.22.50;	author fjsoria;	state Exp;
branches;
next	1.7;

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

1.6
date	94.10.03.20.22.55;	author fjsoria;	state Exp;
branches;
next	1.5;

1.5
date	94.09.07.18.59.38;	author ljr;	state Exp;
branches;
next	1.4;

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

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

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

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


desc
@Implementation of the List point set (the valueset)
@


1.8
log
@changed iterator() so that it is not specialized`
now it is of IA_ListPS<P>::iterator() const
@
text
@// Emacs: -*- C++ -*-

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


// 
// $Log: ListFPS.c,v $
// Revision 1.7  1994/10/04  18:14:23  thoth
// Convert to new Set iterator scheme.
//
// Revision 1.6  1994/10/03  20:22:55  fjsoria
// added IA_NO_AUTOINST_OF_STATIC_DATA guard
//
// Revision 1.5  1994/09/07  18:59:38  ljr
// added #include "ListFPS.h" for BC++
//
// Revision 1.4  1994/07/25  16:58:52  thoth
// \Name sanitization
//
// Revision 1.3  1994/03/30  13:47:16  thoth
// Renamed files to BasePSIter.
//
// Revision 1.2  1994/01/31  16:38:40  thoth
// ValueSet now supports resetting of the iterator. We can do it
// in FloatPointSets now.
//
// Revision 1.1  1993/09/15  12:38:37  thoth
// Initial revision
//

#include "BasePSIter.h"
#include "../valueset/VSIter.h"
#include "ListFPS.h"

template <class P>
class IA_ListPSIter: public IA_BasePSIter<P> {
  private:
    IA_ListPSIter<P> &operator=(const IA_BasePSIter<P> &arg);
  protected:
    IA_BaseSetIter<P>	*iter;

  public:
    IA_ListPSIter(IA_ListPS<P> *ps)
    :IA_BasePSIter<P>(ps), iter(ps->points.iterator()) {
    }
    IA_ListPSIter(const IA_ListPSIter<P> &arg)
    :IA_BasePSIter<P>(arg.domain), iter(arg.iter->clone_self()) {
    }
    ~IA_ListPSIter() { delete iter; }

    IA_BasePSIter<P> *clone_self() {
	return new IA_ListPSIter<P>(*this);
    }

    int next(P&p) {
	return iter->next(p);
    }

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

#ifndef IA_NO_AUTOINST_OF_STATIC_DATA
template <class P>
char IA_ListPS<P>::dummy;
#endif



template <class P>
IA_BasePSIter<P >* IA_ListPS<P>::iterator() const
{
  //cast
  return new IA_ListPSIter<P>((IA_ListPS<P>*)this);
}
@


1.7
log
@Convert to new Set iterator scheme.
@
text
@d11 3
d75 1
a75 1
IA_BasePSIter<IA_Point<double> >* IA_ListPS<P>::iterator() const
@


1.6
log
@added IA_NO_AUTOINST_OF_STATIC_DATA guard
@
text
@d11 3
d32 1
d40 1
a40 1
    IA_ValueSetIter<P>	iter;
d44 1
a44 1
    :IA_BasePSIter<P>(ps), iter(ps->points) {
d47 1
a47 1
    :IA_BasePSIter<P>(arg.domain), iter(arg.iter) {
d49 1
d56 1
a56 1
	return iter(p);
d60 1
a60 1
	iter.reset();
@


1.5
log
@added #include "ListFPS.h" for BC++
@
text
@d11 3
d59 1
d62 3
d69 2
a70 2
    /* cast away const */
    return new IA_ListPSIter<P>((IA_ListPS<P>*)this);
@


1.4
log
@\Name sanitization
@
text
@d11 3
d26 1
@


1.3
log
@Renamed files to BasePSIter.
@
text
@d11 3
d56 1
a56 1
IA_BasePSIter<IA_FloatPoint>* IA_ListPS<P>::iterator() const
@


1.2
log
@ValueSet now supports resetting of the iterator. We can do it
in FloatPointSets now.
@
text
@d11 4
d19 1
a19 1
#include "BaseIPSIter.h"
@


1.1
log
@Initial revision
@
text
@d10 4
a13 1
// $Log:	ListFPS.h,v $
d41 1
a41 2
	/* XXX throw */
	abort();
@
