#ifndef __SAMPLEGENERATOR_H #define __SAMPLEGENERATOR_H /** Class that generates samples on a circle */ struct Sample2 { float x; float y; }; class SampleGenerator { public: SampleGenerator(int numSamples, float radius); virtual void Generate(Sample2 *samples) const = 0; protected: SampleGenerator() {}; int mNumSamples; float mRadius; }; class PoissonDiscSampleGenerator: public SampleGenerator { public: PoissonDiscSampleGenerator(int numSamples, float radius); virtual void Generate(Sample2 *samples) const; }; #endif