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

#ifndef __gnu_java_awt_java2d_ScanlineCoverage$Iterator__
#define __gnu_java_awt_java2d_ScanlineCoverage$Iterator__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace awt
      {
        namespace java2d
        {
            class ScanlineCoverage;
            class ScanlineCoverage$Coverage;
            class ScanlineCoverage$Iterator;
            class ScanlineCoverage$Range;
        }
      }
    }
  }
}

class gnu::java::awt::java2d::ScanlineCoverage$Iterator : public ::java::lang::Object
{

public: // actually package-private
  ScanlineCoverage$Iterator(::gnu::java::awt::java2d::ScanlineCoverage *);
public:
  ::gnu::java::awt::java2d::ScanlineCoverage$Range * next();
  jboolean hasNext();
public: // actually package-private
  void reset();
private:
  ::gnu::java::awt::java2d::ScanlineCoverage$Range * __attribute__((aligned(__alignof__( ::java::lang::Object)))) range;
  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * currentItem;
  jint currentCoverage;
  jboolean handledPixelCoverage;
public: // actually package-private
  ::gnu::java::awt::java2d::ScanlineCoverage * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_awt_java2d_ScanlineCoverage$Iterator__
