Changeset 1278


Ignore:
Timestamp:
08/24/06 18:05:30 (18 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/Lib/Vis/Preprocessing/src
Files:
7 edited

Legend:

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

    r1264 r1278  
    4848 
    4949bool ObjectDirectionBasedDistribution::GenerateSample(SimpleRay &ray) const 
    50 { 
     50{        
    5151        Vector3 origin, direction;  
    5252 
     
    6666        if (c <= Limits::Small)  
    6767                return false; 
    68  
     68         
    6969        // $$ jb the pdf is yet not correct for all sampling methods! 
    7070        const float pdf = 1.0f; 
     
    7878 
    7979bool DirectionBasedDistribution::GenerateSample(SimpleRay &ray) const 
    80 { 
     80{        
    8181        Vector3 origin, direction;  
    8282        mPreprocessor.mViewCellsManager->GetViewPoint(origin); 
     
    125125{ 
    126126        Vector3 origin, direction;  
     127 
    127128        mPreprocessor.mViewCellsManager->GetViewPoint(origin); 
    128          
    129129        direction = mPreprocessor.mKdTree->GetBox().GetRandomPoint() - origin; 
    130130         
  • GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellBsp.h

    r1233 r1278  
    1313 
    1414class ViewCellLeaf; 
    15 //class BspViewCell; 
    1615class Plane3; 
    1716class BspTree;   
    1817class BspInterior; 
    19 //class Polygon3; 
    2018class AxisAlignedBox3; 
    2119class Ray; 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp

    r1264 r1278  
    2323#include "BvHierarchy.h" 
    2424 
     25 
    2526// should not count origin object for sampling because it disturbs heuristics 
    2627#define SAMPLE_ORIGIN_OBJECTS 0 
     
    355356        // shoot simple ray and add it to importance samples 
    356357        mPreprocessor->CastRays(simpleRays, passSamples); 
    357          
     358 
    358359        Debug << "cast " <<  mInitialSamples << " samples in " << TimeDiff(startTime, GetTime()) * 1e-3 << " secs" << endl; 
    359360 
     
    409410 
    410411        //-- construction rays => we use uniform samples for this 
     412 
    411413        CastPassSamples(mInitialSamples, mSamplingType, initialSamples); 
    412414         
    413415        cout << "finished in " << TimeDiff(startTime, GetTime()) * 1e-3 << " secs" << endl; 
    414  
    415416 
    416417        // construct view cells 
     
    428429        Debug << "time needed for initial construction: " 
    429430                  << TimeDiff(startTime, GetTime()) * 1e-3 << " secs" << endl; 
    430  
    431431 
    432432        // take post processing time 
     
    436436        ResetViewCells(); 
    437437        Debug << "\nView cells after initial sampling:\n" << mCurrentViewCellsStats << endl; 
    438  
    439438 
    440439        if (0) // export initial view cells 
     
    940939 
    941940                //-- construction rays => we use uniform samples for this 
     941 
    942942                cout << "casting " << samplesPerPass << " samples ... "; 
    943943                Debug << "casting " << samplesPerPass << " samples ... "; 
     
    48034803 
    48044804 
    4805 VspOspViewCellsManager::VspOspViewCellsManager(ViewCellsTree *vcTree, VspTree *vspTree, OspTree *ospTree): 
    4806 ViewCellsManager(vcTree), mVspTree(vspTree), mOspTree(ospTree) 
    4807 { 
    4808         mHierarchyManager = new HierarchyManager(*vspTree, *ospTree); 
     4805VspOspViewCellsManager::VspOspViewCellsManager(ViewCellsTree *vcTree, HierarchyManager *hm) 
     4806: ViewCellsManager(vcTree), mHierarchyManager(hm) 
     4807{ 
    48094808        Environment::GetSingleton()->GetIntValue("VspTree.Construction.samples", mInitialSamples); 
    48104809 
    4811         mVspTree->SetViewCellsManager(this); 
    4812         mOspTree->SetViewCellsManager(this); 
    4813  
    4814         mVspTree->SetViewCellsTree(mViewCellsTree); 
     4810        mHierarchyManager->SetViewCellsManager(this); 
     4811        mHierarchyManager->SetViewCellsTree(mViewCellsTree); 
    48154812} 
    48164813 
     
    48184815VspOspViewCellsManager::~VspOspViewCellsManager() 
    48194816{ 
    4820         DEL_PTR(mHierarchyManager); 
    48214817} 
    48224818 
     
    48334829        if (!ViewCellsTreeConstructed()) 
    48344830        { 
    4835                 mVspTree->CollectViewCells(mViewCells, false); 
     4831                mHierarchyManager->GetVspTree()->CollectViewCells(mViewCells, false); 
    48364832        } 
    48374833        else  
     
    48444840bool VspOspViewCellsManager::ViewCellsConstructed() const 
    48454841{ 
    4846         return mVspTree->GetRoot() != NULL; 
     4842        return mHierarchyManager->GetVspTree()->GetRoot() != NULL; 
    48474843} 
    48484844 
     
    48934889 
    48944890        // print subdivision statistics 
    4895         Debug << mVspTree->GetStatistics() << endl; 
    4896         Debug << mOspTree->GetStatistics() << endl; 
    4897  
    4898         OUT_STREAM stream("osptree.xml.zip"); 
    4899         mOspTree->Export(stream); 
     4891        Debug << mHierarchyManager->GetVspTree()->GetStatistics() << endl; 
     4892        mHierarchyManager->PrintObjectSpaceHierarchyStatistics(Debug); 
     4893 
     4894        if (0) 
     4895        { 
     4896                OUT_STREAM stream("osptree.xml.zip"); 
     4897                mHierarchyManager->ExportObjectSpaceHierarchy(stream); 
     4898        }        
    49004899 
    49014900        // print view cell statistics 
     
    49854984                 
    49864985        // compute tree by merging the nodes of the spatial hierarchy 
    4987         ViewCell *root = ConstructSpatialMergeTree(mVspTree->GetRoot()); 
     4986        ViewCell *root = ConstructSpatialMergeTree(mHierarchyManager->GetVspTree()->GetRoot()); 
    49884987        mViewCellsTree->SetRoot(root); 
    49894988 
     
    50945093                viewPoint = mViewSpaceBox.GetRandomPoint(); 
    50955094 
    5096                 if (mVspTree->ViewPointValid(viewPoint)) 
     5095                if (mHierarchyManager->GetVspTree()->ViewPointValid(viewPoint)) 
    50975096                { 
    50985097                        return true; 
     
    51245123                VspLeaf *l = vspVc->mLeaf; 
    51255124 
    5126                 const AxisAlignedBox3 box = mVspTree->GetBoundingBox(vspVc->mLeaf); 
     5125                const AxisAlignedBox3 box = mHierarchyManager->GetVspTree()->GetBoundingBox(vspVc->mLeaf); 
    51275126                 
    51285127                if (clipPlane) 
     
    52185217        } 
    52195218 
    5220         if (1 && mOspTree->GetRoot())  
    5221         {        
    5222                 //-- export final object partition 
    5223                 Exporter *exporter = Exporter::GetExporter("final_object_partition.wrl"); 
    5224                  
    5225                 if (exporter) 
    5226                 { 
    5227                         cout << "exporting object space partition ... "; 
    5228  
    5229                         if (0 && mExportGeometry) 
    5230                         { 
    5231                                 exporter->ExportGeometry(objects); 
    5232                         } 
    5233  
    5234                         // export rays 
    5235                         if (0 && mExportRays) 
    5236                         { 
    5237                                 exporter->ExportRays(visRays, RgbColor(0, 1, 0)); 
    5238                         } 
    5239  
    5240                         exporter->SetWireframe(); 
    5241          
    5242                         const int savedColorCode = mColorCode; 
    5243                         mColorCode = 0; 
    5244                         const int maxPvs = 200;//mOspTree.GetStatistics().maxPvs; 
    5245  
    5246                         exporter->ExportOspTree(*mOspTree, mColorCode == 0 ? 0 : maxPvs); 
    5247  
    5248                         mColorCode = savedColorCode; 
    5249  
    5250                         delete exporter; 
    5251  
    5252                         cout << "finished" << endl; 
    5253                 } 
    5254         } 
    5255  
     5219        mHierarchyManager->ExportObjectSpaceHierarchyForViz(objects); 
     5220         
    52565221        //-- export single view cells 
    52575222        ExportPvs(objects, visRays); 
     
    53865351                exporter->SetFilled(); 
    53875352 
    5388                 if (1) 
     5353#if 0    
     5354                //-- export pvs 
     5355 
     5356                Intersectable::NewMail(); 
     5357                KdLeaf::NewMail(); 
     5358 
     5359                vector<KdLeaf *> kdLeaves; 
     5360 
     5361                ObjectPvsMap::const_iterator oit, oit_end = pvs.mEntries.end(); 
     5362 
     5363                for (oit = pvs.mEntries.begin(); oit != oit_end; ++ oit) 
    53895364                {        
    5390                         //-- export pvs 
    5391                          
    5392                         Intersectable::NewMail(); 
    5393                         KdLeaf::NewMail(); 
    5394  
    5395                         vector<KdLeaf *> kdLeaves; 
    5396  
    5397                         ObjectPvsMap::const_iterator oit, oit_end = pvs.mEntries.end(); 
    5398  
    5399                         for (oit = pvs.mEntries.begin(); oit != oit_end; ++ oit) 
    5400                         {        
    5401                                 Intersectable *obj = (*oit).first; 
    5402  
    5403                                 if (obj->Type() == Intersectable::KD_INTERSECTABLE) 
    5404                                 { 
    5405                                         m.mDiffuseColor = RgbColor(1, 1, 1); 
    5406                                         exporter->SetForcedMaterial(m); 
    5407  
    5408                                         // export bounding box of node 
    5409                                         KdIntersectable *kdObj  = dynamic_cast<KdIntersectable *>(obj); 
    5410                                         AxisAlignedBox3 box = mOspTree->GetBoundingBox(kdObj->GetItem()); 
    5411                                          
    5412                                         exporter->SetWireframe(); 
    5413                                         exporter->ExportBox(box); 
    5414                                         exporter->SetFilled(); 
    5415                                 } 
    5416  
    5417                                 m.mDiffuseColor = RgbColor(1, 0, 0); 
     5365                        Intersectable *obj = (*oit).first; 
     5366 
     5367                        if (obj->Type() == Intersectable::KD_INTERSECTABLE) 
     5368                        { 
     5369                                m.mDiffuseColor = RgbColor(1, 1, 1); 
    54185370                                exporter->SetForcedMaterial(m); 
    54195371 
    5420                                 // export pvs entry 
    5421                                 if (!obj->Mailed()) 
    5422                                 { 
    5423                                         exporter->ExportIntersectable(obj); 
    5424                                         obj->Mail(); 
    5425                                 } 
    5426                         }                
    5427                 } 
     5372                                // export bounding box of node 
     5373                                KdIntersectable *kdObj  = dynamic_cast<KdIntersectable *>(obj); 
     5374                                AxisAlignedBox3 box = mOspTree->GetBoundingBox(kdObj->GetItem()); 
     5375 
     5376                                exporter->SetWireframe(); 
     5377                                exporter->ExportBox(box); 
     5378                                exporter->SetFilled(); 
     5379                        } 
     5380 
     5381                        m.mDiffuseColor = RgbColor(1, 0, 0); 
     5382                        exporter->SetForcedMaterial(m); 
     5383 
     5384                        // export pvs entry 
     5385                        if (!obj->Mailed()) 
     5386                        { 
     5387                                exporter->ExportIntersectable(obj); 
     5388                                obj->Mail(); 
     5389                        } 
     5390                }                
     5391#endif 
    54285392         
    54295393                DEL_PTR(exporter); 
     
    54385402                                                                                                        ViewCellContainer &viewCells) const 
    54395403{ 
    5440         return mVspTree->ComputeBoxIntersections(box, viewCells); 
     5404        return mHierarchyManager->GetVspTree()->ComputeBoxIntersections(box, viewCells); 
    54415405} 
    54425406 
     
    54465410                                                                                        ViewCellContainer &viewcells) 
    54475411{ 
    5448         return mVspTree->CastLineSegment(origin, termination, viewcells); 
     5412        return mHierarchyManager->GetVspTree()->CastLineSegment(origin, termination, viewcells); 
    54495413} 
    54505414 
     
    55035467                   << " max=\"" << mViewSpaceBox.Max().x << " " << mViewSpaceBox.Max().y << " " << mViewSpaceBox.Max().z << "\" />" << endl; 
    55045468 
    5505         mVspTree->Export(stream); 
     5469        mHierarchyManager->GetVspTree()->Export(stream); 
    55065470        stream << endl << "</ViewSpaceHierarchy>" << endl; 
    55075471 
     
    55095473        //-- export the object space partition 
    55105474         
    5511         // the type of the view cells hierarchy 
    5512         if (mHierarchyManager->GetObjectSpaceSubdivisonType() ==  
    5513                 HierarchyManager::KD_BASED_OBJ_SUBDIV) 
    5514         { 
    5515                 stream << "<ObjectSpaceHierarchy type=\"osp\">" << endl; 
    5516                 mOspTree->Export(stream); 
    5517                 stream << endl << "</ObjectSpaceHierarchy>" << endl; 
    5518         } 
    5519         else if (mHierarchyManager->GetObjectSpaceSubdivisonType() ==  
    5520                  HierarchyManager::BV_BASED_OBJ_SUBDIV) 
    5521         { 
    5522                 stream << "<ObjectSpaceHierarchy type=\"bvh\">" << endl; 
    5523                 mBvHierarchy->Export(stream); 
    5524                 stream << endl << "</ObjectSpaceHierarchy>" << endl; 
    5525         } 
    5526  
     5475        mHierarchyManager->ExportObjectSpaceHierarchy(stream); 
     5476         
    55275477        stream << "</VisibilitySolution>" << endl; 
    55285478        stream.close(); 
     
    55445494          return NULL; 
    55455495 
    5546         return mVspTree->GetViewCell(point, active); 
     5496        return mHierarchyManager->GetVspTree()->GetViewCell(point, active); 
    55475497} 
    55485498 
     
    55615511        { 
    55625512                VspLeaf *leaf = dynamic_cast<VspViewCell *>(*it)->mLeaf; 
    5563                 const AxisAlignedBox3 box = mVspTree->GetBoundingBox(leaf); 
     5513                const AxisAlignedBox3 box = mHierarchyManager->GetVspTree()->GetBoundingBox(leaf); 
    55645514 
    55655515        IncludeBoxInMesh(box, *mesh); 
     
    55925542                VspLeaf *leaf = dynamic_cast<VspViewCell *>(*it)->mLeaf; 
    55935543                 
    5594                 const AxisAlignedBox3 box = mVspTree->GetBoundingBox(leaf); 
     5544                const AxisAlignedBox3 box = mHierarchyManager->GetVspTree()->GetBoundingBox(leaf); 
    55955545 
    55965546                const float lVol = box.GetVolume(); 
     
    57205670                                                                                        float &contribution) const 
    57215671{ 
    5722         if (!obj) return false; 
    5723  
    5724         switch (mHierarchyManager->GetObjectSpaceSubdivisonType()) 
    5725     { 
    5726         case HierarchyManager::NO_OBJ_SUBDIV: 
    5727                         // potentially visible objects 
    5728                         return vc->AddPvsSample(obj, pdf, contribution); 
    5729  
    5730         case HierarchyManager::KD_BASED_OBJ_SUBDIV: 
    5731                 { 
    5732                         // potentially visible kd cells 
    5733                         KdLeaf *leaf = mOspTree->GetLeaf(hitPoint/*ray->mOriginNode*/); 
    5734                         return mOspTree->AddLeafToPvs(leaf, vc, pdf, contribution); 
    5735                 } 
    5736         case HierarchyManager::BV_BASED_OBJ_SUBDIV: 
    5737                 { 
    5738                         BvhLeaf *leaf = mBvHierarchy->GetLeaf(obj); 
    5739                         return mBvHierarchy->AddLeafToPvs(leaf, vc, pdf, contribution); 
    5740                 } 
    5741         default: 
    5742                 return false; 
    5743         } 
     5672        return mHierarchyManager->AddSampleToPvs(obj, hitPoint, vc, pdf, contribution); 
    57445673} 
    57455674 
     
    57595688        ViewCellsManager *vm =  
    57605689                ViewCellsManager::LoadViewCells(filename, objects, finalizeViewCells, bconverter); 
    5761  
     5690#if 0 
     5691        // insert scene objects in tree 
    57625692        mOspTree->InsertObjects(mOspTree->GetRoot(), *objects); 
    5763  
     5693#endif 
    57645694        return vm; 
    57655695} 
     
    58415771        } 
    58425772 
    5843         Debug << "\nhere295 " << rc / mVspTree->GetBoundingBox().GetVolume() << endl; 
     5773        Debug << "\nhere295 " << rc / mHierarchyManager->GetVspTree()->GetBoundingBox().GetVolume() << endl; 
    58445774        mViewCellsTree->ExportStats(fileName); 
    58455775        cout << "finished" << endl; 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.h

    r1264 r1278  
    974974public: 
    975975 
    976         VspOspViewCellsManager(ViewCellsTree *viewCellsTree, VspTree *tree, OspTree *ospTree); 
     976        VspOspViewCellsManager(ViewCellsTree *vcTree, HierarchyManager *hm); 
     977         
    977978        ~VspOspViewCellsManager(); 
    978979 
     
    10681069 
    10691070        /// the view space / object partition hierarchies 
    1070         VspTree *mVspTree; 
    1071         OspTree *mOspTree; 
    1072         BvHierarchy *mBvHierarchy; 
     1071        //VspTree *mVspTree; 
     1072        //OspTree *mOspTree; 
     1073        //BvHierarchy *mBvHierarchy; 
    10731074 
    10741075        HierarchyManager *mHierarchyManager; 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsParser.cpp

    r1264 r1278  
    3434#include "KdTree.h" 
    3535#include "BvHierarchy.h" 
     36#include "HierarchyManager.h" 
    3637 
    3738 
     
    9192  , mObjects(objects) 
    9293  , mBoundingBoxConverter(bconverter) 
     94  , mHierarchyManager(NULL) 
    9395{ 
    9496        std::stable_sort(mObjects->begin(), mObjects->end(), ilt); 
     
    354356        if (element == "ViewCells") 
    355357        { 
    356                 cout << "parsing view cells" << endl; 
     358                cout << "\nparsing view cells" << endl; 
    357359                 
    358360                mCurrentState = PARSE_VIEWCELLS; 
     
    372374        if (element == "ViewSpaceHierarchy") 
    373375        {                
    374                 cout << "parsing view space hierarchy" << endl; 
     376                cout << "\nparsing view space hierarchy" << endl; 
    375377                mCurrentState = PARSE_VIEWSPACE_HIERARCHY; 
    376378                StartViewSpaceHierarchy(attributes); 
     
    380382        if (element == "ObjectSpaceHierarchy") 
    381383        { 
    382                 cout << "parsing object space hierarchy" << endl; 
     384                cout << "\nparsing object space hierarchy" << endl; 
    383385                mCurrentState = PARSE_OBJECTSPACE_HIERARCHY; 
    384386                StartObjectSpaceHierarchy(attributes); 
     
    565567                if (attrName == "type") 
    566568                { 
    567                         if (strcmp(ptr, "bsp") == 0) 
     569                        if (strcmp(ptr, "osp") == 0) 
    568570                        { 
    569                                 Debug << "view space hierarchy: Bsp" << endl; 
    570                                 mViewSpaceHierarchyType = BSP; 
     571                                Debug << "object space hierarchy: Osp" << endl; 
     572                                mHierarchyManager = new HierarchyManager(mVspTree, HierarchyManager::KD_BASED_OBJ_SUBDIV); 
    571573                        } 
    572                         else if (strcmp(ptr, "vsp") == 0) 
     574                        else if (strcmp(ptr, "bvh") == 0) 
    573575                        { 
    574                                 Debug << "view space hierarchy: Vsp" << endl; 
    575                                 mViewSpaceHierarchyType = VSP; 
     576                                Debug << "object space hierarchy: Bvh" << endl; 
     577                                mHierarchyManager = new HierarchyManager(mVspTree, HierarchyManager::BV_BASED_OBJ_SUBDIV); 
    576578                        } 
    577579                } 
     
    778780 
    779781                mVspTree = new VspTree(); 
     782 
    780783                // set view space box 
    781784                mVspTree->mBoundingBox = mViewSpaceBox; 
     785 
     786                // object space hierarchy already constructed 
     787                if (mHierarchyManager) 
     788                { 
     789                        mHierarchyManager->mVspTree = mVspTree; 
     790                        mVspTree->mHierarchyManager = mHierarchyManager; 
     791                } 
    782792        } 
    783793         
    784794        cout << "\nview space box: " << mViewSpaceBox << endl; 
    785 } 
    786  
    787  
    788 void ViewCellsParseHandlers::CreateObjectSpaceHierarchy() 
    789 { 
    790         if (mViewSpaceHierarchyType == OSP) 
    791         { 
    792                 Debug << "object hierarchy type: Osp" << endl; 
    793  
    794                 mOspTree = new OspTree(); 
    795         } 
    796         else if (mViewSpaceHierarchyType == VSP)  
    797         { 
    798                 Debug << "object hierarchy type: Vsp" << endl; 
    799  
    800                 mVspTree = new VspTree(); 
    801         } 
    802795} 
    803796 
     
    814807        else if (mViewSpaceHierarchyType == VSP)  
    815808        { 
    816                 Debug << "vcreating view cells manager: VsOspp" << endl; 
     809                Debug << "creating view cells manager: VspOsp" << endl; 
    817810 
    818811                // hack 
    819                 mViewCellsManager = new VspOspViewCellsManager(mViewCellsTree, mVspTree, mOspTree); 
     812                mViewCellsManager = new VspOspViewCellsManager(mViewCellsTree, mHierarchyManager); 
    820813        } 
    821814 
     
    978971        else 
    979972        { 
    980                 mOspTree->mRoot = interior; 
     973                mHierarchyManager->mOspTree->mRoot = interior; 
    981974        } 
    982975 
     
    996989        else 
    997990        { 
    998                 mOspTree->mRoot = leaf; 
     991                mHierarchyManager->mOspTree->mRoot = leaf; 
    999992        } 
    1000993} 
     
    1002995 
    1003996void ViewCellsParseHandlers::StartBvhLeaf(AttributeList& attributes) 
    1004 { 
     997{/* 
    1005998        KdLeaf * leaf =  
    1006999                new KdLeaf(dynamic_cast<KdInterior *>(mCurrentKdNode), NULL); 
     
    10121005        else 
    10131006        { 
    1014                 mOspTree->mRoot = leaf; 
    1015         } 
     1007                mHierarchyManager->mBvHierarchy->mRoot = leaf; 
     1008        }*/ 
    10161009} 
    10171010 
    10181011 
    10191012void ViewCellsParseHandlers::StartBvhInterior(AttributeList& attributes) 
    1020 { 
     1013{/* 
    10211014        AxisAlignedPlane plane; 
    10221015        int len = attributes.getLength(); 
     
    10511044        } 
    10521045 
    1053         mCurrentKdNode = interior; 
     1046        mCurrentKdNode = interior;*/ 
    10541047} 
    10551048 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsParserXerces.h

    r1264 r1278  
    2525class VspNode; 
    2626class BvHierarchy; 
     27class HierarchyManager; 
     28 
    2729 
    2830class ViewCellsParseHandlers: public HandlerBase 
     
    7375 
    7476  VspBspTree *mVspBspTree; 
    75   VspTree *mVspTree; 
    76   OspTree *mOspTree; 
     77  HierarchyManager *mHierarchyManager; 
    7778  BvHierarchy *mBvHierarchy; 
    7879 
    7980  BspTree *mBspTree; 
    8081  ViewCellsTree *mViewCellsTree; 
     82  VspTree *mVspTree; 
    8183 
    8284  BspNode *mCurrentBspNode; 
     
    142144  void StartOspInterior(AttributeList& attributes); 
    143145 
    144   void CreateObjectSpaceHierarchy(); 
    145146  void CreateViewSpaceHierarchy(); 
    146147 
  • GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp

    r1262 r1278  
    28792879 
    28802880SubdivisionCandidate *VspTree::PrepareConstruction(const VssRayContainer &sampleRays, 
    2881                                                                         AxisAlignedBox3 *forcedViewSpace, 
    2882                                                                         RayInfoContainer &rays) 
    2883 { 
     2881                                                                                                   AxisAlignedBox3 *forcedViewSpace, 
     2882                                                                                                   RayInfoContainer &rays) 
     2883{        
    28842884        // store pointer to this tree 
    28852885        VspSubdivisionCandidate::sVspTree = this; 
Note: See TracChangeset for help on using the changeset viewer.