head	1.6;
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.5
	r0_9:1.5
	Eglin_alpha_1:1.3;
locks; strict;
comment	@// @;


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

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

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

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

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

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


desc
@new PredicatePS class to allow for families of comprehensive pointsets.
@


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

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


// 
// $Log: ClosurePS.h,v $
// Revision 1.5  1993/11/17  18:02:03  thoth
// extensivep() is now extensive()
//
// Revision 1.4  1993/10/20  11:47:58  thoth
// New naming scheme.  Closures are named Closure.
//
// Revision 1.3  93/05/26  16:51:44  thoth
// Copyright Notices
//
// Revision 1.2  93/02/12  16:28:00  thoth
// more IA_ prefixes.
// 
// Revision 1.1  93/01/20  11:37:06  thoth
// Initial revision
// 
//

#ifndef PredicatePS_h_
#define PredicatePS_h_

#include "BasePS.h"

template <class P>
struct IA_ClosurePS: public IA_BasePS<P> {
private:
    static char type_;
public:
    IA_ClosurePS(unsigned dim)
    : IA_BasePS<P>(dim) {}
    virtual IA_ClosurePS<P> *clone_self() const=0;

    int equal(IA_BasePS<P>*other) const {
	return other->type()==this->type() &&
	    this == (IA_ClosurePS<P>*)other;
    }
    unsigned hash_self(unsigned mod) const {
	return mod-1;
    }
    static IA::Type s_type() { return &type_; }
    virtual IA::Type type() const { return &type_; }

    // this must be defined by the user
    // int contains (const P &ip) const;

    int extensive() const { return 0; }
    void output(ostream&, unsigned=0) const;
};

#endif
@


1.5
log
@extensivep() is now extensive()
@
text
@d11 3
d49 2
a50 2
    static IA_PointSetType s_type() { return &type_; }
    virtual IA_PointSetType type() const { return &type_; }
@


1.4
log
@New naming scheme.  Closures are named Closure.
@
text
@d11 3
d47 1
a47 1
    IA_PointSetType type() const { return &type_; }
d52 1
a52 1
    int extensivep() const { return 0; }
@


1.3
log
@Copyright Notices
@
text
@d10 4
a13 1
// $Log:	PredicatePS.h,v $
d28 1
a28 1
struct IA_PSPred: public IA_BasePS<P> {
d32 1
a32 1
    IA_PSPred(unsigned dim)
d34 1
a34 1
    virtual IA_PSPred<P> *clone_self() const=0;
d38 1
a38 1
	    this == (IA_PSPred<P>*)other;
@


1.2
log
@more IA_ prefixes.
@
text
@d3 6
d11 3
@


1.1
log
@Initial revision
@
text
@d4 4
a7 1
// $Log:	LazyPS.h,v $
d31 2
a32 2
    static PointSetType s_type() { return &type_; }
    PointSetType type() const { return &type_; }
@
