head	1.6;
access;
symbols
	bobbase:1.6
	bob:1.6.1
	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.3
	r0_9:1.3;
locks
	thoth:1.6.1.1
	thoth:1.6; strict;
comment	@// @;


1.6
date	94.07.25.17.26.39;	author thoth;	state Exp;
branches
	1.6.1.1;
next	1.5;

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

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

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

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

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

1.6.1.1
date	94.12.28.18.11.33;	author thoth;	state Exp;
branches;
next	;


desc
@Translation-invariant template declaration.
@


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

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


//
// $Log: InvariantDT.h,v $
// Revision 1.5  1994/02/22  18:47:31  thoth
// New is_a virtual method, used to determine if an object is of a
// class derived from another class.
//
// Revision 1.4  1994/02/12  19:34:43  thoth
// Using IA::Type instead of the IA_DiscreteImageType typedef.
//
// Revision 1.3  1993/11/17  18:24:44  thoth
// extensivep is now extensive.
// translated is now translate.
//
// Revision 1.2  1993/10/20  18:34:05  thoth
// repair the invariant () operation.
//
// Revision 1.1  1993/09/15  12:55:24  thoth
// Initial revision
//
// Revision 1.3  93/05/27  11:22:25  thoth
// Copyright Notices
// 
// Revision 1.2  93/04/08  13:19:13  thoth
// Templates are now separate from images.
// restriction to a pointset is now a virtual method.
// 
// Revision 1.1  93/03/18  11:05:56  thoth
// Initial revision
// 

#ifndef InvariantDT_h_
#define InvariantDT_h_

#include "BaseDT.h"

template <class I>
class IA_InvariantDT: public IA_BaseDT<I> {
  private:
    static char dummy;

  public:
    I	value;
  public:
    IA_InvariantDT(const IA_Set<IA_Point<int> > &ps, const I &v)
    :IA_BaseDT<I>(ps), value(v) {}

    int extensive() const { return 0; }

    I operator()(const IA_Point<int> &p) const {
	return value.translate(p);
    }
    ostream &print_this(ostream &) const;

    static IA::Type s_type() { return &dummy; }
    IA::Type type() const { return &dummy; }
    int is_a(IA::Type t) { return t == s_type() ; }

    IA_BaseDT<I> *restricted_to(const IA_Set<IA_Point<int> > &ps) const;
};

#endif
@


1.6.1.1
log
@translate is still a method.
@
text
@d10 1
a10 4
// $Log: InvDT.h,v $
// Revision 1.6  1994/07/25  17:26:39  thoth
// Name sanitization
//
a57 1
#if 1
a58 3
#else
	return translate(value,p);
#endif
@


1.5
log
@New is_a virtual method, used to determine if an object is of a
class derived from another class.
@
text
@d11 4
d52 1
a52 1
    IA_InvariantDT(const IA_IntPointSet &ps, const I &v)
d57 1
a57 1
    I operator()(const IA_IntPoint &p) const {
d66 1
a66 1
    IA_BaseDT<I> *restricted_to(const IA_IntPointSet &ps) const;
@


1.4
log
@Using IA::Type instead of the IA_DiscreteImageType typedef.
@
text
@d11 3
d60 1
@


1.3
log
@extensivep is now extensive.
translated is now translate.
@
text
@d11 4
d55 2
a56 2
    static IA_DiscreteImageType s_type() { return &dummy; }
    IA_DiscreteImageType type() const { return &dummy; }
@


1.2
log
@repair the invariant () operation.
@
text
@d11 3
d44 1
a44 1
    int extensivep() const { return 0; }
d47 1
a47 1
	return value.translated(p);
@


1.1
log
@Initial revision
@
text
@d10 4
a13 1
// $Log:	InvariantDT.h,v $
d43 3
a45 1
    I operator()(const IA_IntPoint &/*p*/) const { return value/*.xlate(p)*/; }
@
