head	1.4;
access;
symbols
	bobbase:1.4
	bob:1.4
	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.1
	r0_9:1.1;
locks; strict;
comment	@// @;


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

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

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

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


desc
@User-supplied function template declaration.
@


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

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


//
// $Log: FunctionDT.h,v $
// Revision 1.3  1994/02/22  18:46:25  thoth
// New is_a virtual method, used to determine if an object is of a
// class derived from another class.
//
// Revision 1.2  1994/02/12  19:34:43  thoth
// Using IA::Type instead of the IA_DiscreteImageType typedef.
//
// Revision 1.1  1993/09/15  12:53:28  thoth
// Initial revision
//
// Revision 1.2  93/05/27  11:22:14  thoth
// Copyright Notices
// 
// Revision 1.1  93/04/17  19:00:38  thoth
// Initial revision
// 


#ifndef FunctionDT_h_
#define FunctionDT_h_

#include "ia.h"
#include "BaseDT.h"

template <class I>
class IA_FunctionDT: public IA_BaseDT<I>{
private:
    I (*func)(const IA_Point<int>&);

    static char dummy;
public:
    IA_FunctionDT(const IA_Set<IA_Point<int> >& p, I (*fp)(const IA_Point<int>&))
    : IA_BaseDT<I>(p){
	this->func = fp;
    }

    I operator ()(const IA_Point<int>&) const;

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

    ostream& print_this(ostream&) const;
};

#endif
@


1.3
log
@New is_a virtual method, used to determine if an object is of a
class derived from another class.
@
text
@d11 4
d38 1
a38 1
    I (*func)(const IA_IntPoint&);
d42 1
a42 1
    IA_FunctionDT(const IA_IntPointSet& p, I (*fp)(const IA_IntPoint&))
d47 1
a47 1
    I operator ()(const IA_IntPoint&) const;
@


1.2
log
@Using IA::Type instead of the IA_DiscreteImageType typedef.
@
text
@d11 3
d31 2
a32 2
template <class T>
class IA_FunctionDT: public IA_BaseDT<T>{
d34 1
a34 1
    T (*func)(const IA_IntPoint&);
d38 2
a39 2
    IA_FunctionDT(const IA_IntPointSet& p, T (*fp)(const IA_IntPoint&))
    : IA_BaseDT<T>(p){
d43 1
a43 1
    T operator ()(const IA_IntPoint&) const;
d47 1
@


1.1
log
@Initial revision
@
text
@d10 4
a13 1
// $Log:	FunctionDT.h,v $
d42 2
a43 2
    static IA_DiscreteImageType s_type() { return &dummy; }
    IA_DiscreteImageType type() const { return &dummy; }
@
