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

#ifndef __java_awt_geom_RoundRectangle2D$Float__
#define __java_awt_geom_RoundRectangle2D$Float__

#pragma interface

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

class java::awt::geom::RoundRectangle2D$Float : public ::java::awt::geom::RoundRectangle2D
{

public:
  RoundRectangle2D$Float();
  RoundRectangle2D$Float(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
  virtual jdouble getArcHeight();
  virtual jdouble getArcWidth();
  virtual ::java::awt::geom::Rectangle2D * getBounds2D();
  virtual jdouble getX();
  virtual jdouble getY();
  virtual jdouble getWidth();
  virtual jdouble getHeight();
  virtual jboolean isEmpty();
  virtual void setRoundRect(jfloat, jfloat, jfloat, jfloat, jfloat, jfloat);
  virtual void setRoundRect(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
  jfloat __attribute__((aligned(__alignof__( ::java::awt::geom::RoundRectangle2D)))) archeight;
  jfloat arcwidth;
  jfloat x;
  jfloat y;
  jfloat width;
  jfloat height;
  static ::java::lang::Class class$;
};

#endif // __java_awt_geom_RoundRectangle2D$Float__
