Ignore:
Timestamp:
02/15/07 13:19:17 (17 years ago)
Author:
mattausch
Message:

implemented bit pvs (warnin: only worjs for preprocessing)

File:
1 edited

Legend:

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

    r2100 r2117  
    6565        while (pit.HasMoreEntries()) 
    6666        { 
    67                 ObjectPvsEntry entry = pit.Next(); 
    68  
    69                 if (!entry.mObject->Mailed()) 
    70                 { 
    71                         entry.mObject->Mail(); 
     67                Intersectable *obj = pit.Next(); 
     68 
     69                if (!obj->Mailed()) 
     70                { 
     71                        obj->Mail(); 
    7272                        ++ count; 
    7373                } 
     
    9292        while (pit.HasMoreEntries()) 
    9393        { 
    94                 ObjectPvsEntry entry = pit.Next(); 
    95                 entry.mObject->Mail(); 
     94                pit.Next()->Mail(); 
    9695        } 
    9796 
     
    10099        while (pit.HasMoreEntries()) 
    101100        { 
    102                 ObjectPvsEntry entry = pit.Next(); 
    103  
    104                 Intersectable *obj = entry.mObject; 
    105                 if (!obj->Mailed()) 
     101                if (!pit.Next()->Mailed()) 
    106102                        ++ pvs; 
    107103        } 
     
    847843        while (pit.HasMoreEntries()) 
    848844        { 
    849                 ObjectPvsEntry entry = pit.Next(); 
    850  
    851                 Intersectable *obj = entry.mObject; 
     845                Intersectable *obj = pit.Next(); 
    852846 
    853847                obj->Mail(); 
     
    859853        while (pit2.HasMoreEntries()) 
    860854        { 
    861                 ObjectPvsEntry entry = pit2.Next(); 
    862                 Intersectable *obj = entry.mObject; 
    863  
     855                Intersectable *obj = pit2.Next(); 
     856                 
    864857                // test if object already considered     
    865858                if (!obj->Mailed()) 
     
    16811674                while (pit.HasMoreEntries()) 
    16821675                {                
    1683                         const ObjectPvsEntry &entry = pit.Next(); 
    1684                         Intersectable *obj = entry.mObject; 
    1685                         obj->Mail(); 
     1676                        pit.Next()->Mail(); 
    16861677                } 
    16871678        } 
     
    16951686                while (pit.HasMoreEntries()) 
    16961687                {                
    1697                         const ObjectPvsEntry &entry = pit.Next(); 
    1698                         Intersectable *obj = entry.mObject; 
    1699  
    1700                         obj->IncMail(); 
     1688                        pit.Next()->IncMail(); 
    17011689                } 
    17021690        } 
     
    17051693    interior->GetPvs().Clear(false); 
    17061694                 
     1695        PvsData pvsData; 
     1696 
    17071697        // only the objects which are present in all leaf pvs  
    17081698        // should remain in the parent pvs 
     
    17161706                while (pit.HasMoreEntries()) 
    17171707                {                
    1718                         ObjectPvsEntry entry = pit.Next(); 
    1719  
    1720                         if (entry.mObject->Mailed(mail)) 
     1708                        Intersectable *obj = pit.Next(pvsData); 
     1709 
     1710                        if (obj->Mailed(mail)) 
    17211711                        {        
    1722                                 interior->GetPvs().AddSample(entry.mObject, entry.mData.mSumPdf); 
     1712                                interior->GetPvs().AddSample(obj, pvsData.mSumPdf); 
    17231713                        } 
    17241714                } 
     
    17331723 
    17341724                ObjectPvs newPvs; 
    1735  
     1725                 
    17361726                while (pit.HasMoreEntries()) 
    17371727                {                
    1738                         const ObjectPvsEntry &entry = pit.Next(); 
    1739                         Intersectable *obj = entry.mObject; 
    1740  
    1741                         /*if (obj->Mailed(mail)) 
    1742                         { 
    1743                                 vc->GetPvs().RemoveSample(entry.mObject, Limits::Infinity)) 
    1744                         }*/ 
     1728                        Intersectable *obj = pit.Next(pvsData); 
     1729 
    17451730                        if (!obj->Mailed(mail)) 
    17461731                        { 
    1747                                 newPvs.AddSampleDirty(obj, entry.mData.mSumPdf); 
     1732                                newPvs.AddSampleDirty(obj, pvsData.mSumPdf); 
    17481733                        } 
    17491734                } 
     
    18721857                while (oit.HasMoreEntries()) 
    18731858                { 
    1874                         ObjectPvsEntry entry = oit.Next(); 
    1875                         Intersectable *intersect = entry.mObject; 
     1859                        Intersectable *intersect = oit.Next(); 
    18761860 
    18771861                        if (!intersect->Mailed()) 
     
    23902374        while (it.HasMoreEntries()) 
    23912375        { 
    2392                 ObjectPvsEntry entry = it.Next(); 
    2393                 Intersectable *obj = entry.mObject; 
     2376                Intersectable *obj = it.Next(); 
    23942377 
    23952378                // hack: just output full pvs 
     
    24082391                else 
    24092392                { 
    2410                         stream << entry.mObject->GetId() << " "; 
     2393                        stream << obj->GetId() << " "; 
    24112394                } 
    24122395        } 
Note: See TracChangeset for help on using the changeset viewer.