Ignore:
Timestamp:
11/20/06 14:02:29 (18 years ago)
Author:
bittner
Message:

merge, preparing sampling strategy support for mixed distributions, filter changes, histogram output for preprocessor

File:
1 edited

Legend:

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

    r1769 r1771  
    3434// $$JB HACK 
    3535#define USE_KD_PVS 0 
    36 #define KD_PVS_AREA (1e-4f) 
     36#define KD_PVS_AREA (1e-5f) 
    3737 
    3838 
     
    599599 
    600600        ViewCellContainer viewCells; 
     601        // $$ JB hack - the collect best viewcells does not work? 
     602#if 1 
    601603        mViewCellsTree->CollectBestViewCellSet(viewCells, nViewCells); 
     604#else 
     605        viewCells = mViewCells; 
     606#endif 
    602607 
    603608        float maxRenderCost, minRenderCost; 
     
    823828 
    824829        ViewCellContainer viewCells; 
     830         
     831        // $$ JB hack - the collect best viewcells does not work? 
     832#if 0 
    825833        mViewCellsTree->CollectBestViewCellSet(viewCells, nViewCells); 
     834#else 
     835        viewCells = mViewCells; 
     836#endif 
     837        ViewCellContainer::iterator it = viewCells.begin(), it_end = viewCells.end();            
     838        for (; it != it_end; ++it) { 
     839          //(*it)->UpdatePvsCost(); 
     840          (*it)->SetPvsCost((*it)->GetFilteredPvsSize()); 
     841        } 
     842         
    826843 
    827844        float maxPvs, maxVal, minVal; 
    828  
     845         
    829846        // sort by pvs size 
    830847        sort(viewCells.begin(), viewCells.end(), ViewCell::SmallerPvs); 
    831848 
    832         maxPvs = mViewCellsTree->GetPvsCost(viewCells.back()); 
     849        maxPvs = viewCells.back()->GetPvsCost(); 
    833850        minVal = 0; 
    834851 
     
    863880        int smallerSum = 0; 
    864881 
    865         ViewCellContainer::const_iterator it = viewCells.begin(), it_end = viewCells.end();              
     882        it = viewCells.begin(); 
    866883         
    867884        for (int j = 0; j < intervals; ++ j) 
     
    871888 
    872889                while ((i < (int)viewCells.size()) &&  
    873                            (mViewCellsTree->GetPvsCost(viewCells[i]) < currentPvs)) 
     890                           (viewCells[i]->GetPvsCost() < currentPvs)) 
    874891                { 
    875892                        volDif += viewCells[i]->GetVolume(); 
     
    881898                } 
    882899                 
    883                 if (0 && (i < (int)viewCells.size())) 
    884                         Debug << "new pvs cost increase: " << mViewCellsTree->GetPvsCost(viewCells[i])  
    885                         << " " << currentPvs << endl; 
    886          
     900                //              if (0 && (i < (int)viewCells.size())) 
     901                //                Debug << "new pvs cost increase: " << mViewCellsTree->GetPvsCost(viewCells[i])  
     902                //                              << " " << currentPvs << endl; 
     903                 
    887904                const float volRatioDif = volDif / totalVol; 
    888905                const float volRatioSum = volSum / totalVol; 
     
    900917 
    901918        outstream.close(); 
     919 
    902920} 
    903921 
     
    18041822 
    18051823                  stat.avgFilterRadius += fstat.mAvgFilterRadius; 
    1806                   stat.avgFilterRatio += fstat.mLocalFilterCount / (float) fstat.mGlobalFilterCount; 
     1824                  int sum = fstat.mGlobalFilterCount + fstat.mLocalFilterCount; 
     1825                  if (sum) { 
     1826                        stat.avgFilterRatio += fstat.mLocalFilterCount / 
     1827                          (float) sum; 
     1828                  } 
    18071829                   
    18081830                   
     
    25782600  float samples = (float)basePvs.GetSamples(); 
    25792601   
    2580   cout<<"f #s="<<samples<<"pvs size = "<<basePvs.GetSize(); 
     2602  Debug<<"f #s="<<samples<<"pvs size = "<<basePvs.GetSize(); 
    25812603  //  cout<<"Filter size = "<<filterSize<<endl; 
    25822604  //  cout<<"vbox = "<<vbox<<endl; 
     
    26812703  } 
    26822704   
    2683   cout<<" nPvs size = "<<pvs.GetSize()<<endl; 
     2705  Debug<<" nPvs size = "<<pvs.GetSize()<<endl; 
    26842706 
    26852707#if !USE_KD_PVS 
     
    26912713  } 
    26922714#endif 
     2715  viewCell->SetFilteredPvsSize(pvs.GetSize()); 
    26932716   
    26942717  Intersectable::NewMail(); 
Note: See TracChangeset for help on using the changeset viewer.