// Emacs: -*- C++ -*-

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

static char copyright[] = "Copyright 1993, Center for Computer Vision and Visualization,\nUniversity of Florida.  All rights reserved.\n";

// Emacs -*- C++ -*-

static char IntDDTempl_rcsid[] = "$Id: IntDDTempl.c,v 1.5 1994/01/07 15:10:00 thoth Exp $";

//
// $Log: IntDDTempl.c,v $
// Revision 1.5  1994/01/07  15:10:00  thoth
// Image class is now CoreImage and named image types are
// Image<P,T>.
//
// Revision 1.4  1993/11/17  18:22:03  thoth
// IPSIter is now PSIter<IntPoint>.
// sample template reduction operation is no longer needed.
// urk was causing problems through name conflicts.
//
// Revision 1.3  1993/10/05  19:33:08  thoth
// Move to new Closure naming convention.
//
// Revision 1.2  1993/09/27  15:51:21  thoth
// Prototype template reduction operation.
//
// Revision 1.1  93/09/15  12:54:32  thoth
// Initial revision
// 
// Revision 1.5  93/05/27  11:36:26  thoth
// Copyright Notices
// 
// Revision 1.4  93/05/26  17:01:14  thoth
// constructors that specify pointsets aren't supported right now.
// 
// Revision 1.3  93/04/29  11:20:11  thoth
// Convolutions now know about VectorDIs.
// 
// Revision 1.2  93/04/08  13:13:18  thoth
// *** empty log message ***
// 
// Revision 1.1  93/03/18  11:03:44  thoth
// Initial revision
// 

#include <limits.h>
#include <values.h>

#include "PSIter.h"

#include "InvariantDT.h"
#include "ClosureDT.h"
#include "IntDDTempl.h"

#include "VectorI.h"
#include "ImageIter.h"

#include "IntConvolutions.c"


class urk: public IA_ClosureDT<IA_Image<IA_IntPoint,int> > {
  public:
    urk()
    :IA_ClosureDT<IA_Image<IA_IntPoint,int> >(IA_IntPointSet()) {}
    IA_Image<IA_IntPoint,int> operator()(const IA_IntPoint&) const { return IA_Image<IA_IntPoint,int>(); }
    IA_ClosureDT<IA_Image<IA_IntPoint,int> > *clone_self() const { return 0; }
    IA_BaseDT<IA_Image<IA_IntPoint,int> > *restricted_to(const IA_IntPointSet &) const { return new urk(); }
};

typedef IA_Image<IA_IntPoint,int> (*IDIfunc)(const IA_IntPoint&);

static void dummy1()
{
    IA_IntPointSet	ps;
    IA_Image<IA_IntPoint,int>	im;
    IA_IntDDTemplate	//t1(ps, im),
	t2(0,im),
//	t3(ps,(IA_Image<IA_IntPoint,int>(*)(const IA_IntPoint&))0),
#if 0
	t4(0,(IA_Image<IA_IntPoint,int>
	      (*)
	      (const IA_IntPoint&)
	      )0),
#else
	t4(0,(IDIfunc)0),
#endif
	t5(*(IA_ClosureDT<IA_Image<IA_IntPoint,int> >*)0);
}
