#ifndef __vtkStructuredGridGenerator_h
#define __vtkStructuredGridGenerator_h

#include <vtkStructuredGridAlgorithm.h>

class vtkStructuredGridGenerator : public vtkStructuredGridAlgorithm
{
public:
    static vtkStructuredGridGenerator* New();
    vtkTypeRevisionMacro(vtkStructuredGridGenerator, vtkStructuredGridAlgorithm);
    void PrintSelf(ostream& os, vtkIndent indent);

    vtkSetVector2Macro(IRange, double);
    vtkGetVectorMacro(IRange, double, 2);

    vtkSetVector2Macro(JRange, double);
    vtkGetVectorMacro(JRange, double, 2);

    vtkSetVector2Macro(KRange, double);
    vtkGetVectorMacro(KRange, double, 2);

    vtkSetVector3Macro(Dimensions, int);
    vtkGetVectorMacro(Dimensions, int, 3);

    virtual int RequestInformation(
        vtkInformation *vtkNotUsed(request),
        vtkInformationVector **vtkNotUsed(inputVector),
        vtkInformationVector *outputVector);
    virtual int RequestData(vtkInformation*,
                            vtkInformationVector**,
                            vtkInformationVector*);
protected:
    vtkStructuredGridGenerator();
    ~vtkStructuredGridGenerator();

    double IRange[2];
    double JRange[2];
    double KRange[2];
    int Dimensions[3];

private:
    vtkStructuredGridGenerator(const vtkStructuredGridGenerator&);  // Not implemented.
    void operator=(const vtkStructuredGridGenerator&);  // Not implemented.
};

#endif
