Ignore:
Timestamp:
09/03/08 10:37:03 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SampleGenerator.cpp

    r2873 r2898  
    8787        //cout << "minDist after= " << minDist << endl; 
    8888} 
     89 
     90 
     91 
     92GaussianSampleGenerator::GaussianSampleGenerator(int numSamples, float radius): 
     93SampleGenerator(numSamples, radius) 
     94{} 
     95 
     96 
     97void GaussianSampleGenerator::Generate(Sample2 *samples) const 
     98{ 
     99        static HaltonSequence halton; 
     100        float r[2]; 
     101 
     102        const float sigma = mRadius; 
     103 
     104        const float p0 = 1.0f / (sigma * sqrt(2.0f * M_PI)); 
     105        const float p1 = 1.0f / (sigma * sqrt(2.0f * M_PI)); 
     106 
     107        for (int i = 0; i < mNumSamples; ++ i) 
     108        { 
     109                halton.GetNext(2, r); 
     110 
     111                float exp_x = -(r[0] * r[0]) / (2.0f * sigma * sigma); 
     112                float exp_y = -(r[1] * r[1]) / (2.0f * sigma * sigma); 
     113 
     114                samples[i].x = p0 * pow(M_E, exp_x); 
     115                samples[i].y = p1 * pow(M_E, exp_y); 
     116        } 
     117 
     118        //cout << "minDist after= " << minDist << endl; 
     119} 
Note: See TracChangeset for help on using the changeset viewer.