Ignore:
Timestamp:
11/09/06 19:41:31 (18 years ago)
Author:
bittner
Message:

visibility filter updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/Pvs.h

    r1736 r1737  
    298298template <typename T, typename S> void Pvs<T, S>::Merge(const Pvs<T, S> &a) 
    299299{ 
    300         std::map<T, S, LtSample<T> >::const_iterator it; 
    301  
    302         for (it = a.mEntries.begin(); it != a.mEntries.end(); ++ it) 
    303         { 
    304                 AddSample((*it).first, (*it).second.mSumPdf); 
    305         } 
     300   
     301  std::map<T, S, LtSample<T> >::const_iterator it; 
     302  int samples = mSamples + a.mSamples; 
     303 
     304  for (it = a.mEntries.begin(); it != a.mEntries.end(); ++ it) 
     305        { 
     306          AddSample((*it).first, (*it).second.mSumPdf); 
     307        } 
     308  mSamples = samples; 
    306309} 
    307310 
     
    446449int Pvs<T, S>::AddPvs(const Pvs<T, S> &pvs) 
    447450{ 
    448   mSamples += pvs.mSamples; 
     451  int samples = mSamples + pvs.mSamples; 
    449452  std::map<T, S, LtSample<T> >:: 
    450453        const_iterator it, it_end = pvs.mEntries.end(); 
     
    456459          AddSample((*it).first, (*it).second.mSumPdf, contri); 
    457460  } 
    458    
     461 
     462  mSamples = samples; 
     463 
    459464  return GetSize(); 
    460465} 
     
    463468int Pvs<T, S>::SubtractPvs(const Pvs<T, S> &pvs) 
    464469{ 
    465   mSamples -= pvs.mSamples; 
     470   
     471  int samples = mSamples - pvs.mSamples; 
    466472  std::map<T, S, LtSample<T> >:: 
    467473        const_iterator it, it_end = pvs.mEntries.end(); 
     
    470476  for (it = pvs.mEntries.begin(); it != it_end; ++ it)  
    471477        RemoveSample((*it).first, (*it).second.mSumPdf); 
    472    
     478 
     479  mSamples = samples; 
    473480  return GetSize(); 
    474481} 
Note: See TracChangeset for help on using the changeset viewer.