SampleGeneratorThread.h
Go to the documentation of this file.00001 /**<!--------------------------------------------------------------------> 00002 @class SampleGeneratorThread 00003 @author Travis Fischer (fisch0920@gmail.com) 00004 @date Fall 2008 00005 00006 @brief 00007 Threaded PointSample generation over the 2D unit interval [0,1]^2 00008 (represents the 'producer' in the classic producer/consumer problem) 00009 00010 @see Viewport 00011 @see SampleGenerator 00012 @see SampleConsumer 00013 <!-------------------------------------------------------------------->**/ 00014 00015 #ifndef SAMPLE_GENERATOR_THREAD_H_ 00016 #define SAMPLE_GENERATOR_THREAD_H_ 00017 00018 #include <renderers/generators/SampleGenerator.h> 00019 #include <QThread> 00020 00021 class PointSampleRenderer; 00022 00023 class SampleGeneratorThread : public SampleGenerator, public QThread { 00024 00025 public: 00026 ///@name Constructors 00027 //@{----------------------------------------------------------------- 00028 00029 inline SampleGeneratorThread(PointSampleRenderer *renderer = NULL) 00030 : SampleGenerator(), QThread(), 00031 m_renderer(renderer) 00032 { } 00033 00034 virtual ~SampleGeneratorThread(); 00035 00036 00037 //@}----------------------------------------------------------------- 00038 ///@name Static factory 00039 //@{----------------------------------------------------------------- 00040 00041 static SampleGeneratorThread *create(const std::string &type); 00042 00043 00044 //@}----------------------------------------------------------------- 00045 ///@name Main usage interface 00046 //@{----------------------------------------------------------------- 00047 00048 /** 00049 * Generates samples over the unit domain in a new thread ('producer') 00050 */ 00051 virtual void run(); 00052 00053 00054 //@}----------------------------------------------------------------- 00055 ///@name Accessors / Mutators 00056 //@{----------------------------------------------------------------- 00057 00058 inline PointSampleRenderer *getRenderer() { 00059 return m_renderer; 00060 } 00061 00062 void setRenderer(PointSampleRenderer *renderer); 00063 00064 inline const Viewport &getViewport() const { 00065 return m_viewport; 00066 } 00067 00068 inline void setViewport(const Viewport &v) { 00069 m_viewport = v; 00070 } 00071 00072 00073 //@}----------------------------------------------------------------- 00074 00075 protected: 00076 virtual void _addSample(const PointSample &s, PointSampleList &samples); 00077 00078 protected: 00079 Viewport m_viewport; 00080 PointSampleRenderer *m_renderer; 00081 }; 00082 00083 #endif // SAMPLE_GENERATOR_THREAD_H_ 00084
Generated on 28 Feb 2009 for Milton by
1.5.6