
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_awt_geom_Line2D$Double__
#define __java_awt_geom_Line2D$Double__

#pragma interface

#include <java/awt/geom/Line2D.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace geom
      {
          class Line2D$Double;
          class Point2D;
          class Rectangle2D;
      }
    }
  }
}

class java::awt::geom::Line2D$Double : public ::java::awt::geom::Line2D
{

public:
  Line2D$Double();
  Line2D$Double(jdouble, jdouble, jdouble, jdouble);
  Line2D$Double(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
  virtual jdouble getX1();
  virtual jdouble getY1();
  virtual ::java::awt::geom::Point2D * getP1();
  virtual jdouble getX2();
  virtual jdouble getY2();
  virtual ::java::awt::geom::Point2D * getP2();
  virtual void setLine(jdouble, jdouble, jdouble, jdouble);
  virtual ::java::awt::geom::Rectangle2D * getBounds2D();
  jdouble __attribute__((aligned(__alignof__( ::java::awt::geom::Line2D)))) x1;
  jdouble y1;
  jdouble x2;
  jdouble y2;
  static ::java::lang::Class class$;
};

#endif // __java_awt_geom_Line2D$Double__
