orig/glare.csh
changeset 0 0aa115157c9c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/orig/glare.csh	Sat Apr 09 17:55:16 2011 +0100
@@ -0,0 +1,219 @@
+#!/bin/csh -f
+# RCSid: $Id: glare.csh,v 2.4 2003/02/22 02:07:30 greg Exp $
+#
+# Interactive program for calculating glare values
+#
+set fgargs=(-v)
+set nofile="none"
+set octree=$nofile
+set picture=$nofile
+set glarefile=$nofile
+if ($#argv >= 1) then
+	set glarefile=$argv[1]
+	if ($#argv >= 2) then
+		set picture=$argv[2]
+		if ($#argv >= 3) then
+			set octree=$argv[3]
+		endif
+	endif
+endif
+set rtargs=
+set view=
+set threshold=300
+set maxangle=0
+set stepangle=10
+
+set gndxfile="glr$$.ndx"
+set plotfile="glr$$.plt"
+set tempfiles=($gndxfile $plotfile)
+
+alias readvar 'echo -n Enter \!:1 "[$\!:1]: ";set ans="$<";if("$ans" != "")set \!:1="$ans"'
+
+onintr quit
+
+cat <<_EOF_
+This script provides a convenient interface to the glare calculation
+and analysis programs.  It works on a single output file from findglare,
+which you must either create here or have created already before.
+_EOF_
+while ( $glarefile == $nofile )
+	echo ""
+	echo "Please specify a glare file, or use ^C to exit."
+	readvar glarefile
+end
+if ( ! -f $glarefile ) then
+	echo ""
+	echo -n "The glare file '$glarefile' doesn't exist -- shall we create it? "
+	if ("$<" =~ [nN]*) exit 0
+	cat <<_EOF_
+
+A glare file can be created from a wide-angle Radiance picture (preferably
+a fisheye view), an octree, or both.  Computing glare source locations
+from a finished image is faster, but using an octree is more reliable
+since all of the scene information is there.  Whenever it is possible,
+you should use both a picture and an octree to compute the glare file.
+
+You must also have a viewpoint and direction for the glare calculation.
+If the viewpoint is not the same as the picture, an error will result.
+If no view is specified, the view parameters are taken from the picture,
+so the view specification is optional unless you are starting from an
+octree.
+
+_EOF_
+	if ( $picture == $nofile ) then
+		readvar picture
+	endif
+	if ( $octree == $nofile ) then
+		readvar octree
+	endif
+	readvar view
+	if ( $picture == $nofile && $octree == $nofile ) then
+		echo "You must specify a picture or an octree"
+		exit 1
+	endif
+	if ( $picture == $nofile && "$view" == "" ) then
+		echo "You must give a view if there is no picture"
+		exit 1
+	endif
+	if ( $picture != $nofile ) then
+		if ( ! -r $picture ) then
+			echo "Cannot read $picture"
+			exit 1
+		endif
+		set fgargs=($fgargs -p $picture)
+		if ( "$view" != "" ) then
+			set view=(-vf $picture $view)
+		endif
+	endif
+	set fgargs=($fgargs $view)
+	if ( $octree != $nofile ) then
+		if ( ! -r $octree ) then
+			echo "Cannot read $octree"
+			exit 1
+		endif
+		cat <<_EOF_
+
+With an octree, you should give the same options for -av, -ab and
+so forth as are used to render the scene.  Please enter them below.
+
+_EOF_
+		if ($picture != $nofile) then
+			echo "These are the parameters from the picture:"
+			getinfo $picture
+		endif
+		readvar rtargs
+		set fgargs=($fgargs $rtargs $octree)
+	endif
+	echo ""
+	echo -n "Do you expect glare sources in the scene to be small? "
+	if ("$<" =~ [yY]) then
+		echo -n "Very small? "
+		if ("$<" =~ [yY]) then
+			set fgargs=(-r 400 $fgargs)
+		else
+			set fgargs=(-r 250 $fgargs)
+		endif
+		echo -n "Are these sources relatively bright? "
+		if ("$<" =~ [nN]*) then
+			set fgargs=(-c $fgargs)
+		endif
+	endif
+	cat <<_EOF_
+
+Glare sources are determined by a threshold level.  Any part of the
+view that is above this threshold is considered to be part of a glare
+source.  If you do not choose a threshold value, it will be set auto-
+matically to 7 times the average field luminance (in candelas/sq.meter).
+
+_EOF_
+	echo -n "Do you wish to set the glare threshold manually? "
+	if ("$<" =~ [yY]) then
+		readvar threshold
+		set fgargs=(-t $threshold $fgargs)
+	endif
+	cat <<_EOF_
+
+It is often desirable to know how glare changes as a function of
+viewing direction.  If you like, you can compute glare for up
+to 180 degrees to the left and right of the view center.  Enter
+the maximum angle that you would like to compute below.
+
+_EOF_
+	readvar maxangle
+	if ( $maxangle >= $stepangle ) then
+		set fgargs=(-ga $stepangle-$maxangle\:$stepangle $fgargs)
+	endif
+	echo ""
+	echo "Starting calculation..."
+	echo findglare $fgargs
+	findglare $fgargs > $glarefile
+	if ($status) then
+		echo "Uh-oh.  Something went wrong with findglare\!"
+		rm $glarefile
+		exit 1
+	endif
+endif
+if ($?DISPLAY && $picture != $nofile) then
+	echo ""
+	echo "Displaying glare sources in '$picture'..."
+	xglaresrc $picture $glarefile
+endif
+set ndxnam=("Guth Visual Comfort Probability" "Guth Disability Glare Ratio" "CIE Glare Index" "BRS Glare Index" "Unified Glare Rating" "Daylight Glare Index")
+set ndxcom=("glarendx -t guth_vcp" "glarendx -t guth_dgr" "glarendx -t cie_cgi" "glarendx -t brs_gi" "glarendx -t ugr" "glarendx -t dgi")
+set bcdlvl=(50 124 18.5 18.5 18.5 21.7)
+while ( 1 )
+	echo ""
+	echo "	0.  Quit"
+	set i=1
+	while ($i <= $#ndxnam)
+		echo "	$i.  $ndxnam[$i]"
+		@ i++
+	end
+	echo ""
+	set choice=0
+	readvar choice
+	if ($choice < 1 || $choice > $#ndxcom) goto quit
+	$ndxcom[$choice] $glarefile > $gndxfile
+	echo ""
+	echo $ndxnam[$choice]
+	echo "Angle		Value"
+	getinfo - < $gndxfile
+	echo ""
+	set save_file=$nofile
+	readvar save_file
+	if ($save_file != $nofile) then
+		cp -i $gndxfile $save_file
+	endif
+	if ( `getinfo - < $gndxfile | wc -l` > 4 ) then
+		echo ""
+		echo -n "Do you want to plot this data? "
+		if ( "$<" =~ [yY]* ) then
+			set subtitle="$view"
+			if ($picture != $nofile) then
+				set subtitle="$picture $subtitle"
+			else if ($octree != $nofile) then
+				set subtitle="$subtitle $octree"
+			endif
+			if ( "$subtitle" == "" ) then
+				set subtitle="`getinfo < $glarefile | grep findglare`"
+			endif
+			cat <<_EOF_ > $plotfile
+include=line.plt
+include=polar.plt
+title="$ndxnam[$choice]"
+subtitle="$subtitle"
+Bdata=
+	0	$bcdlvl[$choice]
+	360	$bcdlvl[$choice]
+;
+Blabel="BCD level"
+Adata=
+_EOF_
+			getinfo - < $gndxfile >> $plotfile
+			igraph $plotfile
+		endif
+	endif
+end
+quit:
+rm -f $tempfiles
+exit 0