<?php

include ('Faisceau.php');
include ('Cavité.php');

class Paramètres
{
  var $data;
  var $twiss;
  var $énergie;

  var $champ;
  var $longueur;
};

$Paramètres = new Paramètres ();

class Control
{
  function get_post ()
    {
      global $_GET;
      global $Paramètres;

      foreach ($_GET as $cle => $value)
	{
          //echo "[{$cle}]={$value}<br>";

          $words = explode ('_', $cle);

          $n = count ($words);

          $classe = $words[0];
          $champ = '';
          if ($n > 1) $champ = str_replace ($classe . '_', '', $cle);

          if (is_array ($value))
            {
              $str = "cle=($cle) _GET[{$classe}.{$champ}]=";
            }
          else
            {
              $Paramètres->$cle = $value;
            }
	}
    }

};

class Transport
{
  function Transport ()
    {
    }

  function run ($faisceau, $cavité)
    {
      $sortie = new Faisceau ("", $faisceau->twiss, $faisceau->énergie);

      $sortie = $cavité->accélère ($sortie);

      $string = '<pspa></pspa>';

      $xml = new SimpleXMLElement($string);

      $f = $xml->addChild ("faisceau");
      $f->addAttribute ("twiss", $sortie->twiss);
      $f->addAttribute ("energie", $sortie->énergie);

      echo $xml->asXML();
    }
};

$control = new Control ();

$control->get_post ();

$xml = simplexml_load_file($Paramètres->data);

$faisceau = $xml->faisceau;
$Paramètres->twiss = (double) $faisceau['twiss'];
$Paramètres->énergie = (double) $faisceau['energie'];
$cavité = $xml->cavite;
$Paramètres->longueur = (double) $cavité['longueur'];
$Paramètres->champ = (double) $cavité['champ'];

$faisceau = new Faisceau ("", $Paramètres->twiss, $Paramètres->énergie);
$cavité = new Cavité ($Paramètres->champ, $Paramètres->longueur);

$Transport = new Transport ();

$Transport->run ($faisceau, $cavité);

?>
