<?php
/*!*******************************************************************************
*! FILE NAME  : target_circle.php
*! DESCRIPTION: Creates target of concentric circles
*! REQUIRES: tcpdf
*! Copyright (C) 2010 Elphel, Inc
*! -----------------------------------------------------------------------------**
*!
*!  This program is free software: you can redistribute it and/or modify
*!  it under the terms of the GNU General Public License as published by
*!  the Free Software Foundation, either version 3 of the License, or
*!  (at your option) any later version.
*!
*!  This program is distributed in the hope that it will be useful,
*!  but WITHOUT ANY WARRANTY; without even the implied warranty of
*!  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*!  GNU General Public License for more details.
*!
*!  You should have received a copy of the GNU General Public License
*!  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*! -----------------------------------------------------------------------------**
*/

require_once('tcpdf/config/lang/eng.php'); /// external dependency
require_once('tcpdf/tcpdf.php'); /// external dependency
$orientation=   'P'; // P/L
$unit=          'mm' ; /// pt,mm,cm,in
//$format=        array(40,20); /// width and height of current units
$unicode=       true;
$encoding=      "UTF-8";
$diskcache=     false; /// use temporary files
$margin_top=    2;
$margin_bottom= 1;
$margin_left=   1;
$margin_right=  1;
$TARGET_DIAMETER=100;
$TARGET_CIRCLES= 5;
$CENTER_WHITE=   1.0  ; //put white dot in the center

foreach ($_GET as $key=>$value) {
  switch (strtoupper($key)) {
    case 'D':  
    case 'TARGET_DIAMETER':   $TARGET_DIAMETER=$value+0;break;
    case 'C':  
    case 'N':  
    case 'TARGET_CIRCLES':    $TARGET_CIRCLES=$value+0;break;
    case 'W':  
    case 'CENTER_WHITE':    $CENTER_WHITE=$value+0;break;

  }
}


 $PAGE_WIDTH= ceil($TARGET_DIAMETER+ $margin_left+$margin_right);
 $PAGE_HEIGHT=ceil($TARGET_DIAMETER+$margin_top+ $margin_bottom);

 $format=        array($PAGE_WIDTH,$PAGE_HEIGHT); /// width and height of current units 279.4 x 215.9 (11.5x8.5)

 $pdf=new TCPDF ($orientation,
                 $unit,
                 $format,
                 $unicode,
                 $encoding,
                 $diskcache);

// set document information
 $pdf->SetCreator(PDF_CREATOR);
 $pdf->SetAuthor('Elphel');
 $pdf->SetTitle('Focusing Target');


/// set default header data
/// remove default header/footer
 $pdf->setPrintHeader(false);
 $pdf->setPrintFooter(false);

/// set default monospaced font
 $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

///set margins
 $pdf->SetMargins($margin_left, $margin_top, $margin_right);
//set auto page breaks
 $pdf->SetAutoPageBreak(FALSE, $margin_bottom);
 $pdf->AddPage();
 for ($i=$TARGET_CIRCLES*2; $i>=0; $i--) {
   $r=($i+1)*$TARGET_DIAMETER/($TARGET_CIRCLES*2+1)/2;
   
   $pdf->Circle($TARGET_DIAMETER/2,$TARGET_DIAMETER/2,$r,0,360,'FD', array(), ($i & 1)? array(255,255,255):array(BLACK));
 }
 if ($CENTER_WHITE>0) {
   $pdf->Circle($TARGET_DIAMETER/2,$TARGET_DIAMETER/2,$CENTER_WHITE/2,0,360,'FD', array(),  array(255,255,255));
 }

 $pdf->Output('target_circles_D'.$TARGET_DIAMETER.'_N'.$TARGET_CIRCLES.'.pdf', 'I');
 exit(0);

		/**
		* Draws a circle.
		* A circle is formed from n Bezier curves.
		* @param float $x0 Abscissa of center point.
		* @param float $y0 Ordinate of center point.
		* @param float $r Radius.
		* @param float $astart: Angle start of draw line. Default value: 0.
		* @param float $afinish: Angle finish of draw line. Default value: 360.
		* @param string $style Style of rendering. Possible values are:
		* <ul>
		*	 <li>D or empty string: Draw (default).</li>
		*	 <li>F: Fill.</li>
		*	 <li>DF or FD: Draw and fill.</li>
		*	 <li>C: Draw close.</li>
		*	 <li>CNZ: Clipping mode (using the even-odd rule to determine which regions lie inside the clipping path).</li>
		*	 <li>CEO: Clipping mode (using the nonzero winding number rule to determine which regions lie inside the clipping path).</li>
		* </ul>
		* @param array $line_style Line style of circle. Array like for {@link SetLineStyle SetLineStyle}. Default value: default line style (empty array).
		* @param array $fill_color Fill color. Format: array(red, green, blue). Default value: default color (empty array).
		* @param integer $nc Number of curves used in circle. Default value: 8.
		* @access public
		* @since 2.1.000 (2008-01-08)
		*/
///		public function Circle($x0, $y0, $r, $astart=0, $afinish=360, $style='', $line_style=array(), $fill_color=array(), $nc=8) {

                
?>