include ${SEPINC}/SEP.top
-include ../paper/graphics.mf 
UVIEWFLAGS = -geometry 1300x1024+0+0

RESULTOLD =     bayHist mamGrad \
                galapagosHist galapagosGrad galapagosDetl \
		nseaFoltTotGrad nseaFoltTotWGrd 
RESULTSER = 	zeroFoltGrad consFoltGrad bayGrad 
RESULTSCR =     gulfFoltTotGrad gulfFoltTotWGrd 

${RESDIR}/consFoltGrad.v : ${DAT}/consFoltRaw.HH Gradient.class
	< $<     ${JX}.Gradient                                             > junk.H
	< $<     ${TMA}                                                     > junk.A 
	< junk.A ${CPLT} ${PFRAME} title="Amplitude edge volume" out=iput.v > junk.V
	< junk.H ${TPA}                                                     > junk.A 
	< junk.A ${CPLT} ${PFRAME} title="Gradient operator"     out=oput.v > junk.V
	vp_SideBySideAniso iput.v oput.v                                    > $@ 

${RESDIR}/zeroFoltGrad.v : ${DAT}/zeroFoltRaw.HH 
	< $<     ${JX}.Gradient                                      > junk.H 
	< junk.H ${TPA}                                              > junk.A
	< junk.A ${CPLT} ${PFRAME} title=" "  out=$@ > junk.V

GPLT = ${GPS}
.PRECIOUS: gulfFoltTotGrad.H nseaFoltTotGrad.H 
%TotGrad.H : ${DAT}/%TotRaw.HH 
	< $<     ${JX}.Gradient ${NSEAARG} > $@
gradtit = 'title="Gradient"'
${RESDIR}/%TotGrad.v : %TotGrad.H
	< $< ${ZPLT}  > junk.V  out=zplt.v 
	< $< ${XPLT}  > junk.V  out=xplt.v 
	< $< ${YPLT}  > junk.V  out=yplt.v 
	vppen erase=n vpstyle=n zplt.v xplt.v yplt.v > $@
	#< $< ${TRAN}                                 > tran.H
	#< tran.H ${GPA} ${TOPGREY} ${gradtit} out=$@3 > junk.V

.PRECIOUS: gulfFoltTotWGrd.H nseaFoltTotWGrd.H 
%TotWGrd.H : ${DAT}/%TotRaw.HH 
	< $<     ${JX}.Gradient weights=1.f,1.f,8.3f > $@
wgrdtit = 'title="Weighted gradient"'
${RESDIR}/%TotWGrd.v : %TotWGrd.H
	< $< ${ZPLT}  > junk.V  out=zplt.v 
	< $< ${XPLT}  > junk.V  out=xplt.v 
	< $< ${YPLT}  > junk.V  out=yplt.v 
	vppen erase=n vpstyle=n zplt.v xplt.v yplt.v > $@
	#< $< ${TRAN}                                 > tran.H
	#< tran.H ${GPA} ${TOPGREY} ${gradtit} out=$@3 > junk.V

smooth = Smooth rect1=3 rect2=3 out=stdout
windBay = Window f1=700 n1=500 f2=800 n2=1000 out=stdout
# Don't window: run on computer with large memory or out-of-core.
${RESDIR}/bayGrad.v : ${DAT}/bayRaw.HH Gradient2d.class
	<$<      ${windBay}                                     >junkw.H 
	# The topo data shows contours. To see it, avoid smoothing. 
	<junkw.H ${smooth}                                      >junks.H
	<junks.H ${JX}.Gradient2d                               >junkg.H 
	<junkw.H ${GPS}  title="Elevation map"      out=junk0.v >junk.V
	<junkg.H ${GPS}  title="Gradient magnitude" out=junk1.v >junk.V
	vp_OverUnderAniso junk0.v junk1.v                       >$@ 
	vp_Movie          junk0.v junk1.v                       >$@3

util = rsf.util
$(RESDIR)/bayHist.v : ${DAT}/bayRaw.HH
	< $<     ${windBay}                                   > junkw.H
	# The topo data shows contours. To see it, avoid smoothing. 
	<junkw.H ${smooth}                                    > junks.H
	<junks.H ${JAVAX} ${util}.RandomSelector samples=1500 > junkr.H
	<junkr.H ${JAVAX} ${util}.Histogram      n1=500       > junkh.H
	<junkh.H Graph title="Histogram" label2="Number of samples" \
						 out=$@       > junk.V

### Galapagos ###

gal = /matt/Data/maps/galapagos.HH 
gplt = Grey crowd=.85 color=IC par=galapagos.p
${RESDIR}/galapagosDetl.v : ${gal}
	< ${gal} Window n1=100 f1=1600 n2=100 f2=1250     out=stdout > detl.H
	< detl.H ${JX}.Gradient2d                                    > grad.H 
	< detl.H Grey allpos=y title="Elevation map"      out=detl.v > junk.V
	< grad.H Grey allpos=y title="Gradient magnitude" out=grad.v > junk.V
	vp_Movie           detl.v grad.v                             > $@3
	vp_OverUnderAniso  detl.v grad.v                             > $@

$(RESDIR)/galapagosHist.v : ${gal}
	< ${gal} ${JAVAX} ${util}.RandomSelector samples=1500 > rand.H
	< rand.H ${JAVAX} ${util}.Histogram n1=500            > hist.H
	< hist.H Graph label2="Number of samples"  out=hist.v > junk.V
	< ${gal} Window n1=1 min1=1500                        > wind.H 
	< wind.H Graph title="Cross section"       out=sect.v > junk.V
	vp_OverUnderAniso hist.v sect.v                       > $@ 

${RESDIR}/galapagosGrad.v: ${gal}
	< ${gal} ${JX}.Gradient2d        > grad.H 
	< ${gal} Window par=galapagos.p  > win1.H
	< grad.H Window par=galapagos.p  > win2.H
	< win1.H ${gplt} allpos=y title="Elevation map"      out=gala.v >junk.V
	< win2.H ${gplt}          title="Gradient magnitude" out=grad.v >junk.V
	vp_Movie           gala.v grad.v > $@3
	vp_OverUnderAniso  gala.v grad.v > $@

### Mamogram ### 

${RESDIR}/mamGrad.v: /matt/Data/maps/jbreast2.asci b2.HH 
	@echo "This should copy asci to binary and smooth" 
	@echo "     Asci2Binary n1=1001 n2=1501 <jbreast2.asci > junk.H"
	@echo "     <junk.H Smooth rect1=3 rect2=3 > wind.H"
	@echo "     <wind.H Window    j1=3    j2=3 > b2.H" 
	@echo "Instead I a data set preprocessed by Jon."
	< b2.HH ${JX}.Gradient2d                                   >junk.H 
	< b2.HH ${GPS}  title="Mammogram"              out=junk0.v >junk.V
	<junk.H ${GPS}  title="Gradient magnitude"     out=junk1.v >junk.V
	vp_OverUnderAniso junk0.v junk1.v                           >$@ 
	vp_Movie          junk0.v junk1.v                           >$@3

#### Below is old stuff #### 

${RESDIR}/%TotGradTop.v : %TotGrad.H
	<$<     ${TRAN}                              >tran.H
	<tran.H ${GPA} ${TOPGREY} ${gradtit} out=$@3 >junk.V
	<$<     ${ZSID} allpos=y  ${gradtit} out=$@  >junk.V

${RESDIR}/%TotGradSid.v : %TotGrad.H
	< $< ${XSID} allpos=y > junk.V  out=xplt.v 
	< $< ${YSID} allpos=y > junk.V  out=yplt.v 
	vppen erase=n vpstyle=n xplt.v yplt.v > $@

${RESDIR}/%TotGrad.v : ${DAT}/%TotRaw.HH 
	< $<     ${JX}.Gradient                      > grad.H 
	< grad.H ${TRAN}                             > tran.H
	< tran.H ${GPA}  title="Gradient" out=$@3    > junk.V
	< grad.H ${ZPLT}                  out=zplt.v > junk.V
	< grad.H ${XPLT}                  out=xplt.v > junk.V
	< grad.H ${YPLT}                  out=yplt.v > junk.V
	vppen erase=n vpstyle=n zplt.v xplt.v yplt.v > $@

${RESDIR}/%TotGradW.v : ${DAT}/%TotRaw.HH 
	< $<     ${JX}.Gradient weights=1.f,1.f,8.3f          > grad.H 
	< grad.H ${TRAN}                                      > tran.H
	< tran.H ${GPA}  title="Weighted gradient" out=$@3    > junk.V
	< grad.H ${ZPLT}                           out=zplt.v > junk.V
	< grad.H ${XPLT}                           out=xplt.v > junk.V
	< grad.H ${YPLT}                           out=yplt.v > junk.V
	vppen erase=n vpstyle=n zplt.v xplt.v yplt.v > $@

loc =     ../Data

wind11 = Window f1=9 n1=1
wind12 = Window f1=4  n1=1 
wind2  = Window f2=5 n2=1
wind3  = Window f3=5 n3=1
aplt = Taplot gainpanel=all pclip=98 > junk98.H; < junk98.H Ta2vplot titlesz=15> junk.V 
#aplt = Grey gainpanel=all pclip=98 titlesz=15 > junk.V 
cplt = Cubeplot par=plot.p   

${RESDIR}/%Norm.v %Nrm.H : ${loc}/%Raw.H makefile
	${JAVAX}  rsf.util.LapGeneral bigFilt=2,2,2 smlFilt=1,1,1 > filter.H 
	${JAVAX} ${PACKAGE}.FilterAndNorm norm=y < ${loc}/$*Raw.H filter=filter.H > $*Nrm.H
	< $*Nrm.H ${wind12} >j1.H ; <j1.H ${aplt} out=junk1.v 
	${JAVAX}  rsf.util.LapGeneral bigFilt=3,3,3 smlFilt=1,1,1 > filter.H 
	${JAVAX} ${PACKAGE}.FilterAndNorm norm=y < ${loc}/$*Raw.H filter=filter.H > $*Nrm.H 
	< $*Nrm.H ${wind12} >j1.H ; <j1.H ${aplt} out=junk2.v
	${JAVAX}  rsf.util.LapGeneral bigFilt=4,4,4 smlFilt=1,1,1 > filter.H 
	${JAVAX} ${PACKAGE}.FilterAndNorm norm=y < ${loc}/$*Raw.H filter=filter.H > $*Nrm.H 
	< $*Nrm.H ${wind12} >j1.H ; <j1.H ${aplt} out=junk3.v
	${JAVAX}  rsf.util.LapGeneral bigFilt=6,6,6 smlFilt=1,1,1 > filter.H 
	${JAVAX} ${PACKAGE}.FilterAndNorm norm=y < ${loc}/$*Raw.H filter=filter.H > $*Nrm.H 
	< $*Nrm.H ${wind12} >j1.H ; <j1.H ${aplt} out=junk4.v
	${JAVAX}  rsf.util.LapGeneral bigFilt=6,6,6 smlFilt=2,2,2 > filter.H 
	${JAVAX} ${PACKAGE}.FilterAndNorm norm=y < ${loc}/$*Raw.H filter=filter.H > $*Nrm.H 
	< $*Nrm.H ${wind12} >j1.H ; <j1.H ${aplt} out=junk5.v
	Cp                          < ${loc}/$*Raw.H 	 	     > $*Raw.H 
	< $*Raw.H ${wind11} >j1.H ; <j1.H ${aplt} out=junk0.v
	vp_SideBySideAniso junk0.v junk1.v junk2.v junk3.v junk4.v junk5.v > ${RESDIR}/$*Norm.v
	vp_Movie junk0.v junk1.v junk2.v junk3.v junk4.v junk5.v > ${RESDIR}/$*Norm.v

.PRECIOUS: texCarboNrm.H texCarboRed.H 

#${RESDIR}/%Norm.v : %Nrm.H 
stupid:
	# simple xtpen movie of time slices before, intermediate, after
	< $*Nrm.H ${wind12} >j1.H ; <j1.H ${aplt} out=junk1.v
	< $*Raw.H ${wind11} >j2.H ; <j2.H ${aplt} out=junk2.v
	vp_SideBySideAniso junk1.v junk2.v > ${RESDIR}/$*Norm.v
	vp_Movie           junk1.v junk2.v > ${RESDIR}/$*Norm.v3

%Red.H : ${loc}/%Raw.H makefile
	#${JAVAX} rsf.util.Laplacian                              > filter.H 
	${JAVAX}  rsf.util.LapGeneral bigFilt=6,6,6 smlFilt=1,1,1 > filter.H 
	${JAVAX} ${PACKAGE}.FilterAndNorm < ${loc}/$*Raw.H filter=filter.H > $*Red.H 
	Cp                          < ${loc}/$*Raw.H 	 	     > $*Raw.H 

${RESDIR}/%Time.v : %Red.H 
	# simple xtpen movie of time slices before, intermediate, after
	< $*Red.H ${wind12} >j1.H ; <j1.H ${aplt} out=junk1.v
	< $*Raw.H ${wind11} >j2.H ; <j2.H ${aplt} out=junk2.v
	vp_SideBySideAniso junk1.v junk2.v > ${RESDIR}/$*Time.v
	vp_Movie           junk1.v junk2.v > ${RESDIR}/$*Time.v3

${RESDIR}/%Cube1.v: 
	${MAKE} dat=$* cube1.v 
${RESDIR}/%Cube2.v: 
	${MAKE} dat=$* cube2.v 
${RESDIR}/%Cube3.v: 
	${MAKE} dat=$* cube3.v 

cube%.v : ${dat}Red%.H
	< ${dat}Red$*.H Transp plane=13 > j1.H ; < j1.H Transp plane=13 > j2.H 
	< j2.H Taplot gainpanel=all pclip=98 > j3.H
	< j3.H ${cplt} par=plot.p out=${RESDIR}/${dat}Cube$*.v > junk.V 

${RESDIR}/%Sect1.v :  
	${MAKE} dat=$* sect1.v 
${RESDIR}/%Sect2.v :  
	${MAKE} dat=$* sect2.v 
${RESDIR}/%Sect3.v :  
	${MAKE} dat=$* sect3.v 

sect%.v: ${dat}Red%.H
	# simple xtpen set of time, (N-S), (E-W) sections 
	<${dat}Red$*.H ${wind1} 					>jnk1.H
	<       jnk1.H ${aplt} out=j1.v title="${dat}$*: Time slice" 	>junk.V
	<${dat}Red$*.H ${wind2} 					>jnk2.H
	<       jnk2.H ${aplt} out=j2.v title="${dat}$*: West-East"  	>junk.V
	<${dat}Red$*.H ${wind3} 					>jnk3.H
	<       jnk3.H ${aplt} out=j3.v title="${dat}$*: North-South" 	>junk.V
	vp_OverUnderAniso  j2.v j3.v > j0.v 
	vp_SideBySideAniso j1.v j0.v > ${RESDIR}/${dat}Sect$*.v 


printps: ${addsuffix .printps, ${RESULTSALL}}

%.printps : FORCE
	@-\
	if ${EXIST} ${RESDIR}/$*.ps ; then	\
	   echo "update ${RESDIR}/$*.ps";  \
	   pspen label=no ${RESDIR}/$*.v ;  fi;	\

LOMO =  tent3.o lomo.o mkwallwt3.o moplan.o patch3.o null.o diag.o cgplus.o setfree.o adjnull.o icaf.o icai.o 
Lomo.x : ${LOMO}

clean : jclean

include ${SEPINC}/SEP.bottom


