Changeset 341


Ignore:
Timestamp:
10/18/05 17:45:36 (19 years ago)
Author:
mattausch
Message:
 
Location:
trunk/VUT/GtpVisibilityPreprocessor/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/GtpVisibilityPreprocessor/src/Pvs.h

    r312 r341  
    3636        int Compress() {return 0;} 
    3737        int GetSize() {return (int)mEntries.size();} 
     38        bool Empty() {return mEntries.size() == 0;} 
     39        void Merge(const Pvs<T> &a); 
    3840 
    3941        PvsData<T> *Find(T sample); 
     
    4648}; 
    4749 
     50template <typename T> 
     51void Pvs<T>::Merge(const Pvs<T> &a) 
     52{ 
     53        std::map<T, PvsData<T>, LtSample<T> >::iterator it, it_end = mEntries.end(); 
     54 
     55        for (it = mEntries.begin(); it != mEntries.end(); ++ it) 
     56        { 
     57                // TODO 
     58        } 
     59} 
    4860 
    4961template <typename T> 
  • trunk/VUT/GtpVisibilityPreprocessor/src/SamplingPreprocessor.cpp

    r340 r341  
    5757 
    5858        ObjectContainer objects; 
    59          
     59        int prunedCells = 0; 
    6060        switch (BspTree::sConstructionMethod) 
    6161        { 
     
    6969                mSceneGraph->CollectObjects(&objects); 
    7070                mBspTree->Construct(objects); 
    71                 Debug << "collecting view cells" << endl; 
     71                 
    7272                mBspTree->CollectViewCells(mViewCells); 
    7373                break; 
     
    7676                mBspTree->SetGenerateViewCells(true); 
    7777                mBspTree->Construct(mSampleRays); 
    78                 Debug << "collecting view cells" << endl; 
     78//              prunedCells = mBspTree->MergeViewCells(); 
     79                 
    7980                mBspTree->CollectViewCells(mViewCells); 
     81 
     82//              Debug << "Collected " << (int)mViewCells.size() << " cells (" << prunedCells << " pruned)" << endl; 
    8083                break; 
    8184        default: 
  • trunk/VUT/GtpVisibilityPreprocessor/src/ViewCellBsp.cpp

    r339 r341  
    15791579        } 
    15801580} 
    1581  
     1581/* 
    15821582int BspTree::MergeViewCells() 
    15831583{ 
     1584        int prunedCells = 0; 
     1585 
    15841586        stack<BspNode *> nodeStack; 
     1587        stack<BspLeaf *> leafStack; 
     1588 
    15851589        nodeStack.push(mRoot); 
    15861590 
    15871591        ViewCell::NewMail(); 
    15881592 
     1593        // collect leaves 
    15891594        while (!nodeStack.empty())  
    15901595        { 
    15911596                BspNode *node = nodeStack.top(); 
     1597                 
    15921598                nodeStack.pop(); 
    15931599 
    1594                 if (node->IsLeaf())  
    1595                 { 
    1596                 } 
    1597                 else  
    1598                 { 
    1599                         BspInterior *interior = dynamic_cast<BspInterior *>(node); 
    1600  
    1601                         nodeStack.push(interior->mFront); 
    1602                         nodeStack.push(interior->mBack); 
    1603                 } 
    1604         } 
     1600                if (node->IsLeaf()) 
     1601                { 
     1602                        //if (!leafStack.empty() && leafStack.top()->mParent() == node->mParent) 
     1603                                leafStack.push(dynamic_cast<BspLeaf *>(node)); 
     1604 
     1605                } 
     1606                else 
     1607                { 
     1608                        nodeStack.push_back(node->mFront); 
     1609                        nodeStack.push_back(node->mFront); 
     1610                } 
     1611         
     1612                while (!leafStack.empty()) 
     1613                { 
     1614                        BspLeaf *leaf = leafStack.top(); 
     1615                        leafStack.pop(); 
     1616                } 
     1617 
     1618 
    16051619        return 0; 
    1606 } 
    1607  
     1620}*/ 
     1621/* 
     1622BspLeaf *BspTree::MergeNodes(BspInterior *interior) 
     1623{ 
     1624        BspNode *frontLeaf = MergeNodes(interior->mFront); 
     1625        BspNode *backLeaf = MergeNodes(interior->mBack); 
     1626 
     1627        if (frontLeaf->IsLeaf() && backLeaf->IsLeaf()) 
     1628        { 
     1629                if (!MergeNecessary(frontLeaf, backLeaf)) 
     1630                        return interior; 
     1631 
     1632                DEL_PTR(frontLeaf->mViewCell); 
     1633                DEL_PTR(interior->mFront); 
     1634                 
     1635                DEL_PTR(backLeaf->mViewCell); 
     1636                DEL_PTR(interior->mBack); 
     1637 
     1638                BspLeaf *leaf = new BspLeaf(viewCell); 
     1639                                         
     1640                // replace a link from node's parent 
     1641                if (!interior->IsRoot()) 
     1642                { 
     1643                        parent->ReplaceChildLink(interior, leaf); 
     1644                        interior->SetParent(parent); 
     1645                } 
     1646                else // new root 
     1647                { 
     1648                        mRoot = leaf; 
     1649                } 
     1650                 
     1651                return leaf; 
     1652        } 
     1653 
     1654        return interior; 
     1655} 
     1656*/ 
    16081657void BspTree::SetGenerateViewCells(int generateViewCells) 
    16091658{ 
  • trunk/VUT/GtpVisibilityPreprocessor/src/ViewCellBsp.h

    r338 r341  
    348348        int CastRay(Ray &ray); 
    349349 
    350         /** Merges view cells based on some criteria (e.g., empty view cells or 
    351                 view cells which have a very similar PVS can be merged to one larger 
    352                 view cell farther up in the BSP tree. 
     350        /** Merges view cells based on some criteria 
     351            E.g., empty view cells can pe purged, view cells which have  
     352                a very similar PVS can be merged to one larger view cell farther up  
     353                in the BSP tree. 
    353354                @returns the number of merged view cells 
    354355        */ 
    355         int MergeViewCells(); 
     356        //int MergeViewCells(); 
    356357 
    357358        /** Set to true if new view cells shall be generated in each leaf. 
Note: See TracChangeset for help on using the changeset viewer.