head	1.12;
access;
symbols
	bobbase:1.12
	bob:1.12.1
	r2_1:1.12
	r2_0:1.12
	r1_1_beta:1.11
	r1_1_alpha:1.10
	r1_0:1.10
	r0_11:1.10
	r0_10:1.6
	r0_9:1.3;
locks
	thoth:1.12.1.2
	thoth:1.12; strict;
comment	@// @;


1.12
date	94.08.22.15.25.59;	author thoth;	state Exp;
branches
	1.12.1.1;
next	1.11;

1.11
date	94.07.25.17.26.39;	author thoth;	state Exp;
branches;
next	1.10;

1.10
date	94.04.26.18.22.00;	author thoth;	state Exp;
branches;
next	1.9;

1.9
date	94.03.15.14.24.18;	author thoth;	state Exp;
branches;
next	1.8;

1.8
date	94.03.03.22.54.19;	author jnw;	state Exp;
branches;
next	1.7;

1.7
date	94.03.02.15.40.18;	author jnw;	state Exp;
branches;
next	1.6;

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

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

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

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

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

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

1.12.1.1
date	94.12.28.18.10.03;	author thoth;	state Exp;
branches;
next	1.12.1.2;

1.12.1.2
date	95.01.09.18.20.14;	author thoth;	state Exp;
branches;
next	;


desc
@template symbols that are defined in other modules must be
provided to ptlink.
@


1.12
log
@special pointsets were reworked.  Change in placebo.
@
text
@// Emacs: -*- C++ -*-

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


//
// $Log: placebos2.c,v $
// Revision 1.11  1994/07/25  17:26:39  thoth
// Name sanitization
//
// Revision 1.10  1994/04/26  18:22:00  thoth
// White and Black Hole have been renamed to universal and empty _pset
//
// Revision 1.9  1994/03/15  14:24:18  thoth
// ValueSet has been relpaced by container class Set.
//
// Revision 1.8  1994/03/03  22:54:19  jnw
// Added placebo for RGB
//
// Revision 1.7  1994/03/02  15:40:18  jnw
// Added ValueSetStuff for IA_RGB
//
// Revision 1.6  1994/01/31  16:05:16  thoth
// new pointset functions we use.
//
// Revision 1.5  1994/01/07  15:12:35  thoth
// Image class is now CoreImage and named image types are
// Image<P,T>.
//
// Revision 1.4  1993/12/29  17:31:13  thoth
// New Bit ValueSet stuff.
//
// Revision 1.3  1993/11/17  18:42:47  thoth
// placebos for Complex images and templates.
// IPSIter is now PSIter<IntPoint>.
// make_iter declarations were driving a CFront error.
//
// Revision 1.2  1993/10/05  19:33:08  thoth
// Move to new Closure naming convention.
//
// Revision 1.1  1993/09/15  12:58:48  thoth
// Initial revision
//

#include <iostream.h>
#include <complex.h>

#include "Point.h"
#include "Bit.h"
#include "RGB.h"

// The place ClosurePS is included seems to affect how
// badly CFront will lose its mind.
#include "ClosurePS.h"

#include "Set.h"
#include "SetStructure.h"
#include "PSIter.h"
#include "CoreImage.h"
#include "ImageIter.h"

//
// Now we pacify the ptlink which doesn't know the meaning of -k
//



// FloatPointSet
IA_Set<IA_Point<double> >::IA_Set(const IA_Set<IA_Point<double> >&) {
    cout << "something\n";
}
IA_Set<IA_Point<double> >::IA_Set(unsigned, const IA_Point<double>*, unsigned) { }
IA_Set<IA_Point<double> >::IA_Set(const IA_ClosurePS<IA_Point<double> >&) { }
IA_Set<IA_Point<double> >::IA_Set() { }
IA_Set<IA_Point<double> >::~IA_Set() { }
IA_Set<IA_Point<double> >& IA_Set<IA_Point<double> >::operator=(const IA_Set<IA_Point<double> >&) { return *this; }
int IA_Set<IA_Point<double> >::operator==(const IA_Set<IA_Point<double> >&) const { return 0; }
IA_Set<IA_Point<double> > operator&(const IA_Set<IA_Point<double> >&,const IA_Set<IA_Point<double> >&rhs) { return rhs; }
IA_Set<IA_Point<double> > operator+(const IA_Set<IA_Point<double> >&lhs,const IA_Point<double>&) { return lhs; }
IA_Set<IA_Point<double> > intersect_with_structure(const IA_Set<IA_Point<double> >&lhs,const IA_Set<IA_Point<double> >&,IA_SetStructure*) { return lhs; }
IA_Set<IA_Point<double> > union_with_structure(const IA_Set<IA_Point<double> >&lhs,const IA_Set<IA_Point<double> >&,IA_SetStructure*) { return lhs; }

IA_Set<IA_Point<int> > IA_Set<IA_Point<int> >::universal_pset(unsigned) { return IA_Set<IA_Point<int> >(); }

// IntPointSet
IA_Set<IA_Point<int> >::IA_Set() { }
IA_Set<IA_Point<int> >::IA_Set(unsigned, const IA_Point<int>*, unsigned) { }
IA_Set<IA_Point<int> >::IA_Set(const IA_Point<int>&, const IA_Point<int>&) { }
IA_Set<IA_Point<int> >::IA_Set(const IA_ClosurePS<IA_Point<int> >&) { }
IA_Set<IA_Point<int> >::~IA_Set() { }
IA_Set<IA_Point<int> >& IA_Set<IA_Point<int> >::operator=(const IA_Set<IA_Point<int> >&) { return *this; }
IA_Set<IA_Point<int> > operator&(const IA_Set<IA_Point<int> >&,const IA_Set<IA_Point<int> >&rhs) { return rhs; }
IA_Set<IA_Point<int> > intersect_with_structure(const IA_Set<IA_Point<int> >&lhs,const IA_Set<IA_Point<int> >&,IA_SetStructure*) { return lhs; }
IA_Set<IA_Point<int> > union_with_structure(const IA_Set<IA_Point<int> >&lhs,const IA_Set<IA_Point<int> >&,IA_SetStructure*) { return lhs; }
IA_Set<IA_Point<int> > operator+(const IA_Set<IA_Point<int> >&lhs,const IA_Point<int>&) { return lhs; }

IA_Set<IA_Point<int> > operator&(const IA_Set<IA_Point<int> >&lhs,const IA_Set<IA_Point<double> >&) { return lhs; }

IA_Set<IA_Point<int> > intersect_with_dualstruct(const IA_Set<IA_Point<int> >&lhs,const IA_Set<IA_Point<int> >&,IA_SetStructure*) { return lhs; }

int IA_Set<IA_Point<int> >::boxy() const { return 0; }

IA_Set<IA_Point<int> > transpose(const IA_Set<IA_Point<int> > &arg) { return arg; }
#if 1
#define SetStuff(T) \
IA_Set<T>::IA_Set() { } \
IA_Set<T>::IA_Set(T) { } \
IA_Set<T>::IA_Set(const T*,unsigned int) { } \
IA_Set<T>& IA_Set<T>::operator=(const IA_Set<T>&) { return *this; } \
IA_Set<T>::~IA_Set() { }

SetStuff(complex)
SetStuff(double)
SetStuff(float)
SetStuff(int)
SetStuff(unsigned char)
SetStuff(IA_Bit)
SetStuff(IA_RGB)
#else
#define ValueSetStuff(T) \
IA_ValueSet<T>::IA_ValueSet(T) { } \
IA_ValueSet<T>::IA_ValueSet(const T*,unsigned int) { } \
IA_ValueSet<T>& IA_ValueSet<T>::operator=(const IA_ValueSet<T>&) { return *this; } \
int IA_ValueSet<T>::contains(T) const { return 0; }


ValueSetStuff(complex)
ValueSetStuff(double)
ValueSetStuff(float)
ValueSetStuff(int)
ValueSetStuff(unsigned char)
ValueSetStuff(IA_Bit)
ValueSetStuff(IA_RGB)
#endif

// Set Structure
IA_ss_interval IA_SetStructure::retrieve_interval(unsigned int) const { return IA_ss_interval(); }
IA_SetStructure::IA_SetStructure(void) { }
IA_SetStructure::~IA_SetStructure(void) { } 
unsigned IA_SetStructure::nintervals(void) const  { return 0; }
const IA_SetStructure IA_SetStructure::BOTH;
const IA_SetStructure IA_SetStructure::FIRST_ONLY;
const IA_SetStructure IA_SetStructure::SECOND_ONLY;

#define BasePSStuff(P) \
P IA_BasePS<P>::choice(void) const { return P(); } \
unsigned IA_BasePS<P >::index(const P&) const { return 0; } \
P IA_BasePS<P>::index(unsigned int) const { return P(); } \
P IA_BasePS<P>::inf(void) const{ return P(); } \
P IA_BasePS<P>::max(void) const{ return P(); } \
P IA_BasePS<P>::min(void) const{ return P(); } \
P IA_BasePS<P>::sup(void) const{ return P(); }

BasePSStuff(IA_Point<int>)
BasePSStuff(IA_Point<double>)

#define ClosurePSStuff(P) \
char IA_ClosurePS<P>::type_; \
void IA_ClosurePS<P>::output(ostream&,unsigned int) const { return; }

ClosurePSStuff(IA_Point<int>)
ClosurePSStuff(IA_Point<double>)
@


1.12.1.1
log
@Didn't need image include files.
need pointset reflection.
need hash_managed_delete().
@
text
@d10 1
a10 4
// $Log: placebo2.c,v $
// Revision 1.12  1994/08/22  15:25:59  thoth
// special pointsets were reworked.  Change in placebo.
//
d62 2
d71 1
a71 1
// DblPointSet
a82 1
//IA_Set<IA_Point<double> > IA_Set<IA_Point<double> > ::operator-() const { return *this; }
a85 2
void hash_managed_delete(IA_BasePS<IA_Point<double> >*) { }

a98 1
IA_Set<IA_Point<int> > IA_Set<IA_Point<int> > ::operator-() const { return *this; }
a106 4
void hash_managed_delete(IA_BasePS<IA_Point<int> >*) { }



d155 1
a155 2
P IA_BasePS<P>::sup(void) const{ return P(); } \
IA_BasePS<P> * IA_BasePS<P>::reflect_through_origin() const { return 0; }
@


1.12.1.2
log
@Boxy pointset constructor replaced by function.
@
text
@a10 5
// Revision 1.12.1.1  1994/12/28  18:10:03  thoth
// Didn't need image include files.
// need pointset reflection.
// need hash_managed_delete().
//
d95 1
a95 2
//IA_Set<IA_Point<int> >::IA_Set(const IA_Point<int>&, const IA_Point<int>&) { }
IA_Set<IA_Point<int> > IA_boxy_pset(IA_Point<int>, IA_Point<int>) { return IA_Set<IA_Point<int> >(); }
@


1.11
log
@Name sanitization
@
text
@d11 3
d86 1
a86 1
IA_Set<IA_Point<int> > IA_universal_ipset(unsigned) { return IA_Set<IA_Point<int> >(); }
@


1.10
log
@White and Black Hole have been renamed to universal and empty _pset
@
text
@d11 3
d154 2
a155 2
BasePSStuff(IA_IntPoint)
BasePSStuff(IA_FloatPoint)
d161 2
a162 2
ClosurePSStuff(IA_IntPoint)
ClosurePSStuff(IA_FloatPoint)
@


1.9
log
@ValueSet has been relpaced by container class Set.
@
text
@d11 3
d80 1
a80 1
IA_Set<IA_Point<int> > IA_WhiteHole(unsigned) { return IA_Set<IA_Point<int> >(); }
@


1.8
log
@Added placebo for RGB
@
text
@d11 3
a49 1
#include "ValueSet.h"
d98 16
a113 1

d128 1
a128 1

@


1.7
log
@Added ValueSetStuff for IA_RGB
@
text
@d11 3
d41 1
@


1.6
log
@new pointset functions we use.
@
text
@d11 3
d106 1
a106 1

@


1.5
log
@Image class is now CoreImage and named image types are
Image<P,T>.
@
text
@d11 4
d86 3
@


1.4
log
@New Bit ValueSet stuff.
@
text
@d11 3
d40 1
a40 1
#include "Image.h"
@


1.3
log
@placebos for Complex images and templates.
IPSIter is now PSIter<IntPoint>.
make_iter declarations were driving a CFront error.
@
text
@d11 5
d27 1
d92 1
@


1.2
log
@Move to new Closure naming convention.
@
text
@d11 3
d19 1
d29 2
a30 1
#include "IPSIter.h"
d81 1
a86 5

// PSIter
IA_BasePSIter<IA_Point<double> > *IA_PSIter<IA_Point<double> >::make_iter(const IA_Set<IA_Point<double> >&) { return 0; }

IA_BasePSIter<IA_Point<int> > *IA_PSIter<IA_Point<int> >::make_iter(const IA_Set<IA_Point<int> >&) { return 0; }
@


1.1
log
@Initial revision
@
text
@d10 4
a13 1
// $Log:	Image.c,v $
d19 1
a19 1
// The place PredicatePS is included seems to affect how
d21 1
a21 1
#include "PredicatePS.h"
d40 1
a40 1
IA_Set<IA_Point<double> >::IA_Set(const IA_PSPred<IA_Point<double> >&) { }
d56 1
a56 1
IA_Set<IA_Point<int> >::IA_Set(const IA_PSPred<IA_Point<int> >&) { }
d109 3
a111 3
#define PSPredStuff(P) \
char IA_PSPred<P>::type_; \
void IA_PSPred<P>::output(ostream&,unsigned int) const { return; }
d113 2
a114 2
PSPredStuff(IA_IntPoint)
PSPredStuff(IA_FloatPoint)
@
