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

#ifndef __gnu_java_awt_java2d_QuadSegment__
#define __gnu_java_awt_java2d_QuadSegment__

#pragma interface

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

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

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

public:
  QuadSegment(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble);
  QuadSegment(::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *, ::java::awt::geom::Point2D *);
  QuadSegment(::java::awt::geom::QuadCurve2D *);
  virtual ::java::lang::Object * clone();
  virtual JArray< ::gnu::java::awt::java2d::Segment * > * getDisplacedSegments(jdouble);
private:
  ::gnu::java::awt::java2d::QuadSegment * offsetSubdivided(::java::awt::geom::QuadCurve2D *, jboolean);
  ::java::awt::geom::Point2D * lineIntersection(jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jdouble, jboolean);
public:
  virtual void reverse();
  virtual JArray< jdouble > * cp1();
  virtual JArray< jdouble > * cp2();
  ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::gnu::java::awt::java2d::Segment)))) cp;
  static ::java::lang::Class class$;
};

#endif // __gnu_java_awt_java2d_QuadSegment__
