SampleGeneratorThread.cpp
Go to the documentation of this file.00001 /**<!--------------------------------------------------------------------> 00002 @file SampleGeneratorThread.cpp 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 #include "SampleGeneratorThread.h" 00016 #include "generators.h" 00017 00018 #include <PointSampleRenderer.h> 00019 #include <QtCore> 00020 00021 SampleGeneratorThread::~SampleGeneratorThread() { 00022 ASSERT(m_renderer); 00023 00024 m_renderer->removeProducer(); 00025 } 00026 00027 void SampleGeneratorThread::run() { 00028 PointSampleList dummyList; 00029 ASSERT(m_renderer); 00030 00031 generate(dummyList, m_viewport); 00032 } 00033 00034 void SampleGeneratorThread::_addSample(const PointSample &s, 00035 PointSampleList &/* unused */) 00036 { 00037 m_renderer->addSharedSample(s); 00038 } 00039 00040 void SampleGeneratorThread::setRenderer(PointSampleRenderer *renderer) { 00041 ASSERT(renderer); 00042 00043 m_renderer = renderer; 00044 m_renderer->addProducer(); 00045 } 00046 00047 SampleGeneratorThread *SampleGeneratorThread::create(const std::string &type) { 00048 if (type == "uniform") { 00049 return new UniformSampleGeneratorThread(); 00050 } else if (type == "stochastic") { 00051 return new StochasticSampleGeneratorThread(); 00052 } else if (type == "jittered") { 00053 return new JitteredSampleGeneratorThread(); 00054 } else if (type == "dissolve") { 00055 return new DissolveSampleGeneratorThread(); 00056 } else if (type == "hilbert") { 00057 return new HilbertSampleGeneratorThread(); 00058 } else if (type == "super" || type == "default") { 00059 return new SuperSampleGeneratorThread("jittered"); 00060 } else { 00061 ASSERT(0 && "encountered unknown sample type\n"); 00062 } 00063 00064 return NULL; 00065 } 00066
Generated on 28 Feb 2009 for Milton by
1.5.6