00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "regularsurfacesampler.h"
00024 #include "context.h"
00025
00026 #include <cassert>
00027
00028 using namespace sheep;
00029 using namespace toxic;
00030
00031 RegularSurfaceSampler::RegularSurfaceSampler(int w, int h) :
00032 ISurfaceSampler(w * h),
00033 m_w(w), m_h(h),
00034 m_inv_w(1.0 / w),
00035 m_inv_h(1.0 / h)
00036 {
00037 assert(m_w > 0);
00038 assert(m_h > 0);
00039 }
00040
00041 void RegularSurfaceSampler::GenerateNewSamples(const Context &context) {
00042 m_samples.clear();
00043
00044 for(int j = 0; j < m_h; ++j) {
00045 for(int i = 0; i < m_w; ++i) {
00046 const Real xi1 = (i + 0.5) * m_inv_w;
00047 const Real xi2 = (j + 0.5) * m_inv_h;
00048
00049 m_samples.push_back(Point2(xi1, xi2));
00050 }
00051 }
00052 }