head     1.4;
branch   ;
access   ;
symbols  ;
locks    ; strict;
comment  @// @;


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

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

1.2
date     93.01.19.14.56.34;  author jnw;  state Exp;
branches ;
next     1.1;

1.1
date     92.11.13.13.53.26;  author jnw;  state Exp;
branches ;
next     ;


desc
@initial revision
@


1.4
log
@It is difficult to user-define operator= when using multiple inheritance.
@
text
@// Emacs: -*- C++ -*-

//
// $Log:	LatticeDI.m4h,v $
// Revision 1.3  93/02/08  11:31:39  thoth
// fixed typos
// 
// Revision 1.2  93/01/19  14:56:34  jnw
// Modified to support IA_ naming convention
// 
// Revision 1.1  92/11/13  13:53:26  jnw
// Initial revision
//

#ifndef LatticeDI_h_
#define LatticeDI_h_

#include "IntPointSet.h"
#include "LazyDI.h"
#include "DiscreteImage.h"

template <class T>
class IA_LatticeDI: public virtual IA_DiscreteImage<T> {
public:    
    IA_LatticeDI()
    : IA_DiscreteImage<T>() { }

    IA_LatticeDI(IA_BaseDI<T>* base)
    : IA_DiscreteImage<T>(base) { }

    int    operator <   (const IA_LatticeDI&) const;
    int    operator <=  (const IA_LatticeDI&) const;
    int    operator >   (const IA_LatticeDI&) const;
    int    operator >=  (const IA_LatticeDI&) const;
    int    operator ==  (const IA_LatticeDI&) const;
    int    operator !=  (const IA_LatticeDI&) const;
    
    int    operator <   (const T&) const;
    int    operator <=  (const T&) const;
    int    operator >   (const T&) const;
    int    operator >=  (const T&) const;
    int    operator ==  (const T&) const;
    int    operator !=  (const T&) const;

//    friend int    operator <  (const T&, const IA_LatticeDI<T>&);
//    friend int    operator <= (const T&, const IA_LatticeDI<T>&);
//    friend int    operator >  (const T&, const IA_LatticeDI<T>&);
//    friend int    operator >= (const T&, const IA_LatticeDI<T>&);
//    friend int    operator == (const T&, const IA_LatticeDI<T>&);
//    friend int    operator != (const T&, const IA_LatticeDI<T>&);
    

    IA_DiscreteImage<T>	min (const IA_DiscreteImage<T>&) const;
    IA_DiscreteImage<T>	min (const T&) const;
//    friend DiscreteImage<T>	min (const T&, const DiscreteImage<T>&);
    T			min ();

    IA_DiscreteImage<T>	max (const IA_DiscreteImage<T>&) const;
    IA_DiscreteImage<T>	max (const T&) const;
//    friend DiscreteImage<T>	max (const T&, const DiscreteImage<T>&);
    T			max ();
    
    friend int imgcmp (const IA_LatticeDI<T>&, const IA_LatticeDI<T>&);

};

#endif
@


1.3
log
@fixed typos
@
text
@d5 3
a23 8

protected:

    IA_LatticeDI& operator =(const IA_LatticeDI &l) {
	this->bdip = l.bdip;
	return *this;
    }

@


1.2
log
@Modified to support IA_ naming convention
@
text
@d3 1
d5 6
a10 2
Revision 1.1  92/11/13  13:53:26  jnw
Initial revision
a11 1

d64 1
a64 1
   IA_ DiscreteImage<T>	max (const T&) const;
d68 1
a68 1
    friend int imgcmp (const LatticeDI<T>&, const LatticeDI<T>&);
@


1.1
log
@Initial revision
@
text
@d3 3
a5 1
// $Log$
d7 1
d16 1
a16 1
class LatticeDI: public virtual DiscreteImage<T> {
d20 1
a20 1
    LatticeDI& operator =(const LatticeDI &l) {
d26 2
a27 1
    LatticeDI():DiscreteImage<T>() { }
d29 2
a30 2
    LatticeDI(BaseDI<T>* base)
    : DiscreteImage<T>(base) { }
d32 6
a37 6
    int    operator <   (const LatticeDI&) const;
    int    operator <=  (const LatticeDI&) const;
    int    operator >   (const LatticeDI&) const;
    int    operator >=  (const LatticeDI&) const;
    int    operator ==  (const LatticeDI&) const;
    int    operator !=  (const LatticeDI&) const;
d46 6
a51 6
//    friend int    operator <  (const T&, const LatticeDI<T>&);
//    friend int    operator <= (const T&, const LatticeDI<T>&);
//    friend int    operator >  (const T&, const LatticeDI<T>&);
//    friend int    operator >= (const T&, const LatticeDI<T>&);
//    friend int    operator == (const T&, const LatticeDI<T>&);
//    friend int    operator != (const T&, const LatticeDI<T>&);
d54 2
a55 2
    DiscreteImage<T>	min (const DiscreteImage<T>&) const;
    DiscreteImage<T>	min (const T&) const;
d59 2
a60 2
    DiscreteImage<T>	max (const DiscreteImage<T>&) const;
    DiscreteImage<T>	max (const T&) const;
@
