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

#ifndef __gnu_java_awt_java2d_CubicSegment__
#define __gnu_java_awt_java2d_CubicSegment__

#pragma interface

#include <gnu/java/awt/java2d/Segment.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace awt
      {
        namespace java2d
        {
            class CubicSegment;
            class Segment;
        }
      }
    }
  }
  namespace java
  {
    namespace awt
    {
      namespace geom
      {
          class Point2D;
      }
    }
  }
}

class gnu::java::awt::java2d::CubicSegment : public ::gnu::java::awt::java2d::Segment
{

public:
  CubicSegment(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
  CubicSegment(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
  virtual ::java::lang::Object * clone();
  virtual JArray< ::gnu::java::awt::java2d::Segment * > * getDisplacedSegments(jdouble);
  virtual void reverse();
  virtual JArray< jdouble > * cp1();
  virtual JArray< jdouble > * cp2();
  ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::gnu::java::awt::java2d::Segment)))) cp1__;
  ::java::awt::geom::Point2D * cp2__;
  static ::java::lang::Class class$;
};

#endif // __gnu_java_awt_java2d_CubicSegment__
