Ignore:
Timestamp:
02/08/07 15:46:23 (17 years ago)
Author:
bittner
Message:

simple ray separated

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/Halton.cpp

    r2076 r2105  
    11#include "Halton.h" 
    22#include "PerfTimer.h" 
     3 
     4#define PREGENERATE_HALTON 0 
    35 
    46namespace GtpVisibilityPreprocessor { 
     
    2527  Halton<5> dummmyHalton5(true); 
    2628  Halton<6> dummmyHalton6(true); 
     29 
     30 
     31  int HaltonSequence::sPregeneratedDim = 0; 
     32  int HaltonSequence::sPregeneratedNumber = 0; 
     33  float *HaltonSequence::sPregeneratedValues = NULL; 
    2734   
     35#if PREGENERATE_HALTON 
     36  // pregenerate first 100k numbers for 6 dimensions 
     37  static HaltonSequence staticHalton(6, 200000); 
     38#endif 
     39   
     40  // special construtor for pregenerating static halton sequences 
     41  HaltonSequence::HaltonSequence(const int dim, 
     42                                                                 const int number) { 
     43 
     44        sPregeneratedDim = 0; 
     45        sPregeneratedNumber = 0; 
     46        sPregeneratedValues = new float[number*dim]; 
     47 
     48        float *p = sPregeneratedValues; 
     49        int i; 
     50        for (i=0; i < number; i++, p+=dim) { 
     51          GetNext(dim, p); 
     52        } 
     53         
     54        sPregeneratedDim = dim; 
     55        sPregeneratedNumber = number; 
     56  } 
     57 
    2858void 
    2959HaltonSequence::GetNext(const int dimensions, float *p) 
    3060{ 
    31   haltonTimer.Entry(); 
    32   for (int i=0; i < dimensions; i++) 
    33         p[i] = (float)GetNumber(i+1); 
     61  //  haltonTimer.Entry(); 
     62#if PREGENERATE_HALTON 
     63  if (index <= sPregeneratedNumber && dimensions <= sPregeneratedDim) { 
     64        float *pp = sPregeneratedValues + (sPregeneratedDim*(index-1)); 
     65        for (int i=0; i < dimensions; i++) 
     66          p[i] = pp[i]; 
     67  } else 
     68#endif 
     69        { 
     70          for (int i=0; i < dimensions; i++) 
     71                p[i] = (float)GetNumber(i+1); 
     72        } 
    3473  GenerateNext(); 
    35   haltonTimer.Exit(); 
     74  //  haltonTimer.Exit(); 
    3675} 
    3776 
Note: See TracChangeset for help on using the changeset viewer.