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


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

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

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

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

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

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

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


desc
@A sorted list of points.
@


1.7
log
@Prevent double-declaration in the defmap.
@
text
@// Emacs: -*- C++ -*-

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


// 
// $Log: ListFPS.h,v $
// Revision 1.6  1994/07/25  16:58:52  thoth
// \Name sanitization
//
// Revision 1.5  1994/03/14  15:38:56  thoth
// ValueSet is no longer public to world.
//
// Revision 1.4  1993/11/17  18:02:03  thoth
// extensivep() is now extensive()
//
// Revision 1.3  1993/08/08  13:19:44  thoth
// added the iterator method.
// Data array can now be const (valueset is fixed)
//
// Revision 1.2  93/05/26  16:55:45  thoth
// Copyright Notices
// 
// Revision 1.1  93/05/10  08:33:56  thoth
// Initial revision
// 

#ifndef ListFPS_h_
#define ListFPS_h_

#include "BasePS.h"
#include "BaseSet.h"	// prevent double-declaration in ptrepository/defmap
#include "../valueset/ValueSet.h"

template <class P> class IA_ListPSIter;

template <class T>
class IA_ListPS: public IA_BasePS<T> {
    static char	dummy;

    IA_ValueSet<T>	points;
  public:
    IA_ListPS(const T &p)
    :IA_BasePS<T>(p.dim()), points(p) {}
    IA_ListPS(unsigned dim, const T *afp, unsigned count)
    :IA_BasePS<T>(dim), points(afp, count) {}

    int equal(IA_BasePS<T>*) const { return 0; }
    unsigned hash_self(unsigned) const { return 0; }

    static IA::Type s_type() { return &dummy; }
    IA::Type type() const { return &dummy; }

    int contains(const T &p) const {
	return points.contains(p);
    }
    int extensive() const { return 1; }
    virtual IA_BasePSIter<T> *iterator() const;
    void output(ostream&o, unsigned=0) const {
	o << "List FPS\n" << points;
    }

    friend class IA_ListPSIter<T>;
};

#endif
@


1.6
log
@\Name sanitization
@
text
@d11 3
d35 1
@


1.5
log
@ValueSet is no longer public to world.
@
text
@d11 3
d50 2
a51 2
    static IA_PointSetType s_type() { return &dummy; }
    IA_PointSetType type() const { return &dummy; }
@


1.4
log
@extensivep() is now extensive()
@
text
@d11 3
d29 1
a29 1
#include "ValueSet.h"
@


1.3
log
@added the iterator method.
Data array can now be const (valueset is fixed)
@
text
@d10 5
a14 1
// $Log:	ListFPS.h,v $
d50 1
a50 1
    int extensivep() const { return 0; }
@


1.2
log
@Copyright Notices
@
text
@d11 3
d24 2
d34 1
a34 1
    IA_ListPS(unsigned dim, /*const*/ T *afp, unsigned count)
d47 1
d51 2
a53 3

template <class P>
char IA_ListPS<P>::dummy;
@


1.1
log
@Initial revision
@
text
@d3 6
d10 4
a13 1
// $Log:	IntPointSet.h,v $
@
