// @(#)root/graf:$Id$
// Author: Rene Brun   16/10/95

 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *

#include "Riostream.h"
#include "TROOT.h"
#include "TArc.h"
#include "TVirtualPad.h"


//  An arc is specified with the position of its centre, its radius
//  a minimum and maximum angle.
//  The attributes of the outline line are given via TAttLine
//  The attributes of the fill area are given via TAttFill

TArc::TArc(): TEllipse()
  // Arc  default constructor.

TArc::TArc(Double_t x1, Double_t y1,Double_t r1,Double_t phimin,Double_t phimax)
   // Arc  normal constructor.
   //  x1,y1  : coordinates of centre of arc
   //  r1     : arc radius
   //  phimin : min and max angle in degrees (default is 0-->360)
   //  phimax :
   //  When a circle sector only is drawn, the lines connecting the center
   //  of the arc to the edges are drawn by default. One can specify
   //  the drawing option "only" to not draw these lines.

TArc::TArc(const TArc &arc) : TEllipse(arc)
   // Copy constructor.


   // Arc default destructor.

void TArc::Copy(TObject &arc) const
   // Copy this arc to arc.


void TArc::DrawArc(Double_t x1, Double_t y1,Double_t r1,Double_t phimin,Double_t phimax,Option_t *option)
   // Draw this arc with new coordinates.

   TArc *newarc = new TArc(x1, y1, r1, phimin, phimax);

void TArc::SavePrimitive(std::ostream &out, Option_t * /*= ""*/)
   // Save primitive as a C++ statement(s) on output stream out

   out<<"   "<<std::endl;
   if (gROOT->ClassSaved(TArc::Class())) {
      out<<"   ";
   } else {
      out<<"   TArc *";
   out<<"arc = new TArc("<<fX1<<","<<fY1<<","<<fR1


   if (GetNoEdges()) out<<"   arc->SetNoEdges();"<<std::endl;

   out<<"   arc->Draw();"<<std::endl;