Ignore:
Timestamp:
02/21/08 18:10:24 (16 years ago)
Author:
mattausch
Message:

compiling under release internal

Location:
GTP/trunk/Lib/Vis/Preprocessing
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/scripts/demo1.env

    r2633 r2643  
    170170 
    171171KdTree { 
    172         pvsArea   3e-5 
     172        pvsArea   1e-5 
    173173        sahUseFaces false 
    174174        Termination { 
  • GTP/trunk/Lib/Vis/Preprocessing/scripts/gvs.env

    r2625 r2643  
    9595 
    9696KdTree { 
     97        pvsArea   1e-5 
    9798        sahUseFaces true 
    9899 
  • GTP/trunk/Lib/Vis/Preprocessing/src/BoundingBoxConverter.h

    r2111 r2643  
    11#ifndef _BoundingBoxConverter_H__ 
    22#define _BoundingBoxConverter_H__ 
     3 
     4 
    35#include <vector> 
    46#include "AxisAlignedBox3.h" 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Camera.h

    r2629 r2643  
    44#include "Vector3.h" 
    55#include "AxisAlignedBox3.h" 
    6 #include "ktbconf.h" 
     6 
    77 
    88namespace GtpVisibilityPreprocessor { 
  • GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp

    r2638 r2643  
    8585//mUseVbos(true), 
    8686mUseVbos(false), 
     87mComputeGVS(false), 
    8788mCurrentFrame(-1) 
    8889{ 
     
    101102          //    mViewDirection = Vector3(0.433884, 0, -0.900969); 
    102103         
     104        //mViewPoint = Vector3(1213.85, 176.988, -437.364); 
     105        //mViewDirection = Vector3(0.433884, 0, -0.900969); 
     106 
     107        mViewPoint = Vector3(32.8596, 9.86079, -1023.79); 
     108        mViewDirection = Vector3(-0.92196, 0, 0.387286); 
     109 
    103110        //mViewPoint = Vector3(1099.9,183.0,-387); 
    104111        //mViewDirection = Vector3(-0.6,0,-0.8); 
     112 
     113        // inside 
     114        mViewPoint = Vector3(14.1254, 10.9818, -1032.75); 
     115        mViewDirection = Vector3(-0.604798, 0, 0.796379); 
     116 
     117        // outside 
     118        mViewPoint = Vector3(35.092, 17.7078, -857.966); 
     119        mViewDirection = Vector3(-0.411287, 0, -0.911506); 
     120 
    105121#endif 
    106122        mFrame = 0; 
     
    17211737 
    17221738                // check if already rendered 
    1723                 if (!obj->Mailed()) 
     1739                if (!obj->Mailed2()) 
    17241740                        bufferSize += 3; 
    17251741                //else cout << obj->mMailbox << " " << obj->sMailId << " "; 
     
    17361752 
    17371753                // check if already rendered 
    1738                 if (obj->Mailed()) 
     1754                if (obj->Mailed2()) 
    17391755                        continue; 
    17401756 
    1741                 obj->Mail(); 
     1757                obj->Mail2(); 
    17421758 
    17431759                Triangle3 tri = obj->GetItem(); 
     
    17891805        int indexBufferSize = 0; 
    17901806         
    1791         KdNode::NewMail(); 
     1807        KdNode::NewMail2(); 
    17921808                 
    17931809        ObjectPvsIterator it = pvs.GetIterator(); 
     
    18131829void GlRenderer::_UpdatePvsIndices(KdNode *node, int &indexBufferSize) 
    18141830{ 
    1815         if (node->Mailed()) 
     1831        if (node->Mailed2()) 
    18161832                return; 
    18171833 
    1818         node->Mail(); 
     1834        node->Mail2(); 
    18191835 
    18201836        // if (mObjects.size() * 3 < indexBufferSize) cerr << "problem: " << mObjects.size() * 3 << " < " << indexBufferSize << endl; 
     
    18511867                leaf->mIndexBufferSize = indexBufferSize - leaf->mIndexBufferStart; 
    18521868        } 
    1853  
    1854         //cout << "id: " << indexBufferSize << endl; 
    18551869} 
    18561870 
  • GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.h

    r2625 r2643  
    6363struct PvsCache  
    6464{ 
    65  
    6665        PvsCache():mViewCell(NULL), mUnfilteredPvsSize(0) {} 
    6766 
    6867        void Reset() 
    6968        {  
    70                 mViewCell = NULL; mPvs.Clear();  
     69                mViewCell = NULL;  
     70                mPvs.Clear();  
    7171                filteredBoxes.clear();  
    7272                mUnfilteredPvsSize = 0; 
     
    229229 
    230230        vector<PvsErrorEntry> mPvsErrorBuffer; 
     231        bool mComputeGVS; 
    231232 
    232233protected: 
  • GTP/trunk/Lib/Vis/Preprocessing/src/GtpVisibility05.vcproj

    r2568 r2643  
    115115                        <Tool 
    116116                                Name="VCCLCompilerTool" 
    117                                 AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;Timer" 
     117                                AdditionalIncludeDirectories="..\includ;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;Timer;..\src\havran" 
    118118                                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;NO_QT;USE_VERBOSE_PVS" 
    119119                                RuntimeLibrary="2" 
     
    232232                        </File> 
    233233                        <File 
     234                                RelativePath=".\HavranDynRayCaster.cpp" 
     235                                > 
     236                        </File> 
     237                        <File 
     238                                RelativePath=".\HavranRayCaster.cpp" 
     239                                > 
     240                        </File> 
     241                        <File 
    234242                                RelativePath=".\HierarchyManager.cpp" 
    235243                                > 
     
    348356                        </File> 
    349357                        <File 
     358                                RelativePath=".\RandomViewCellsHandler.cpp" 
     359                                > 
     360                        </File> 
     361                        <File 
    350362                                RelativePath=".\Ray.cpp" 
    351363                                > 
     
    409421                        <File 
    410422                                RelativePath=".\Tetrahedron3.cpp" 
     423                                > 
     424                        </File> 
     425                        <File 
     426                                RelativePath=".\havran\timer.cpp" 
    411427                                > 
    412428                        </File> 
     
    526542                        </File> 
    527543                        <File 
     544                                RelativePath=".\havran\configh.h" 
     545                                > 
     546                        </File> 
     547                        <File 
    528548                                RelativePath=".\Containers.h" 
    529549                                > 
     
    546566                        </File> 
    547567                        <File 
     568                                RelativePath=".\FilterBasedDistribution.cpp" 
     569                                > 
     570                        </File> 
     571                        <File 
     572                                RelativePath=".\FilterBasedDistribution.h" 
     573                                > 
     574                        </File> 
     575                        <File 
    548576                                RelativePath=".\FlexibleHeap.h" 
    549577                                > 
     
    586614                        </File> 
    587615                        <File 
     616                                RelativePath=".\HavranRayCaster.h" 
     617                                > 
     618                        </File> 
     619                        <File 
    588620                                RelativePath=".\HierarchyManager.h" 
    589621                                > 
     
    722754                        </File> 
    723755                        <File 
     756                                RelativePath=".\RandomViewCellsHandler.h" 
     757                                > 
     758                        </File> 
     759                        <File 
    724760                                RelativePath=".\Ray.h" 
    725761                                > 
     
    734770                        </File> 
    735771                        <File 
     772                                RelativePath=".\havran\raypack.h" 
     773                                > 
     774                        </File> 
     775                        <File 
    736776                                RelativePath=".\Rectangle3.h" 
    737777                                > 
     
    799839                        <File 
    800840                                RelativePath=".\Tetrahedron3.h" 
     841                                > 
     842                        </File> 
     843                        <File 
     844                                RelativePath=".\havran\timer.h" 
    801845                                > 
    802846                        </File> 
     
    888932                        > 
    889933                </Filter> 
     934                <Filter 
     935                        Name="havran" 
     936                        > 
     937                        <File 
     938                                RelativePath=".\havran\allocgo2.cpp" 
     939                                > 
     940                        </File> 
     941                        <File 
     942                                RelativePath=".\havran\allocgo2.h" 
     943                                > 
     944                        </File> 
     945                        <File 
     946                                RelativePath=".\havran\ktb.cpp" 
     947                                > 
     948                        </File> 
     949                        <File 
     950                                RelativePath=".\havran\ktb.h" 
     951                                > 
     952                        </File> 
     953                        <File 
     954                                RelativePath=".\havran\ktb8b.cpp" 
     955                                > 
     956                        </File> 
     957                        <File 
     958                                RelativePath=".\havran\ktb8b.h" 
     959                                > 
     960                        </File> 
     961                        <File 
     962                                RelativePath=".\havran\ktbai.cpp" 
     963                                > 
     964                        </File> 
     965                        <File 
     966                                RelativePath=".\havran\ktbai.h" 
     967                                > 
     968                        </File> 
     969                        <File 
     970                                RelativePath=".\havran\ktball.cpp" 
     971                                > 
     972                        </File> 
     973                        <File 
     974                                RelativePath=".\havran\ktball.h" 
     975                                > 
     976                        </File> 
     977                        <File 
     978                                RelativePath=".\havran\ktbconf.h" 
     979                                > 
     980                        </File> 
     981                        <File 
     982                                RelativePath=".\havran\ktbf2trv.cpp" 
     983                                > 
     984                        </File> 
     985                        <File 
     986                                RelativePath=".\havran\ktbftrav.cpp" 
     987                                > 
     988                        </File> 
     989                        <File 
     990                                RelativePath=".\havran\ktbs.cpp" 
     991                                > 
     992                        </File> 
     993                        <File 
     994                                RelativePath=".\havran\ktbs.h" 
     995                                > 
     996                        </File> 
     997                        <File 
     998                                RelativePath=".\havran\ktbtrav.cpp" 
     999                                > 
     1000                        </File> 
     1001                        <File 
     1002                                RelativePath=".\havran\ktbtrav.h" 
     1003                                > 
     1004                        </File> 
     1005                        <File 
     1006                                RelativePath=".\havran\sbbox.cpp" 
     1007                                > 
     1008                        </File> 
     1009                        <File 
     1010                                RelativePath=".\havran\sbbox.h" 
     1011                                > 
     1012                        </File> 
     1013                        <File 
     1014                                RelativePath=".\havran\subdivm.h" 
     1015                                > 
     1016                        </File> 
     1017                        <File 
     1018                                RelativePath=".\havran\testrt.cpp" 
     1019                                > 
     1020                        </File> 
     1021                        <File 
     1022                                RelativePath=".\havran\testrt.h" 
     1023                                > 
     1024                        </File> 
     1025                </Filter> 
    8901026        </Files> 
    8911027        <Globals> 
  • GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.cpp

    r2633 r2643  
    1212#include "BvHierarchy.h" 
    1313#include "Polygon3.h" 
     14#include "IntersectableWrapper.h" 
     15 
    1416 
    1517 
     
    1820   
    1921#define GVS_DEBUG 0 
     22static ObjectContainer myobjects; 
    2023 
    2124struct VizStruct 
     
    3740mCurrentViewCell(NULL), 
    3841mCurrentViewPoint(Vector3(0.0f, 0.0f, 0.0f)) 
    39 //,mGenericStats(0) 
    4042{ 
    4143        Environment::GetSingleton()->GetIntValue("GvsPreprocessor.totalSamples", mTotalSamples); 
     
    7577 
    7678        mGvsStats.Reset(); 
     79 
     80        mGenericStats = 0; 
     81        mGenericStats2 = 0; 
    7782} 
    7883 
     
    184189                Intersectable *obj = ray.mTerminationObject; 
    185190 
    186                 if (!obj->mCounter) 
     191                if (obj->mCounter < 2) 
    187192                { 
    188                         obj->mCounter = 1; 
     193                        obj->mCounter += 2; 
    189194                        mTrianglePvs.push_back(obj); 
    190195                 
     196                        mGenericStats = mTrianglePvs.size(); 
     197 
    191198                        // if using kd pvs, exchange the triangle with the node in the pvs 
    192199                        if (mUseKdPvs) 
     
    199206                                        KdIntersectable *kdInt = mKdTree->GetOrCreateKdIntersectable(node); 
    200207                                        mCurrentViewCell->GetPvs().AddSampleDirty(kdInt, 1.0f); 
     208                                        //mCurrentViewCell->GetPvs().AddSampleDirtyCheck(kdInt, 1.0f); 
     209                                         
    201210                                        mViewCellsManager->UpdateStatsForViewCell(mCurrentViewCell, kdInt); 
     211                                        myobjects.clear(); 
     212                                        mKdTree->CollectObjects(node, myobjects); 
     213 
     214                                        // account for kd object pvs 
     215                                        ObjectContainer::const_iterator oit, oit_end = myobjects.end(); 
     216 
     217                                        for (oit = myobjects.begin(); oit != oit_end; ++ oit) 
     218                                        { 
     219                                                TriangleIntersectable *triObj = static_cast<TriangleIntersectable *>(*oit); 
     220 
     221                                                if ((triObj->mCounter != 1) && (triObj->mCounter != 3)) 
     222                                                { 
     223                                                        ++ triObj->mCounter; 
     224                                                        ++ mGenericStats2; 
     225                                                } 
     226                                        } 
    202227                                }                        
    203228                        } 
    204                          
     229 
    205230                        result = true; 
    206231                } 
     
    755780 
    756781        mGvsStats.mPerViewCellSamples = 0; 
     782 
    757783        int oldContribution = mGvsStats.mTotalContribution; 
    758784        int passSamples = 0; 
    759  
    760785        mGenericStats = 0; 
     786        mGenericStats2 = 0; 
    761787 
    762788        //while (mGvsStats.mPerViewCellSamples < mTotalSamples)  
    763         while (1)  
     789        while (1) 
    764790        { 
    765791                mRayCaster->InitPass(); 
     
    788814                        cout << "contribution=" << mGvsStats.mPassContribution << " (of " << mMinContribution << ")" << endl; 
    789815 
    790                         //mGenericStats = GvsStats.mGvsStats.mPassContribution; 
     816                        //mGenericStats = mGvsStats.mPassContribution; 
    791817 
    792818                        // termination criterium 
     
    865891        AxisAlignedBox3 box = mCurrentViewCell->GetMesh()->mBox; 
    866892         
    867         vector<KdLeaf *> leaves; 
    868         mKdTree->GetBoxIntersections(box, leaves); 
    869  
    870         vector<KdLeaf *>::const_iterator lit, lit_end = leaves.end(); 
    871  
    872         for (lit = leaves.begin(); lit != leaves.end(); ++ lit) 
    873         { 
    874         KdLeaf *leaf = *lit; 
     893        //vector<KdLeaf *> leaves; 
     894        //mKdTree->GetBoxIntersections(box, leaves); 
     895 
     896        ObjectContainer kdobjects; 
     897        mKdTree->CollectKdObjects(box, kdobjects); 
     898        //vector<KdLeaf *>::const_iterator lit, lit_end = leaves.end(); 
     899        //for (lit = leaves.begin(); lit != lit_end; ++ lit) 
     900        ObjectContainer::const_iterator oit, oit_end = kdobjects.end(); 
     901        for (oit = kdobjects.begin(); oit != oit_end; ++ oit) 
     902        { 
     903        // add to kdnode pvs 
     904                KdIntersectable *kdInt = static_cast<KdIntersectable *>(*oit); 
    875905                 
    876                 // add to kdnode pvs 
    877                 if (mUseKdPvs) 
    878                 { 
    879                         leaf->Mail(); 
    880                         KdIntersectable *kdInt = mKdTree->GetOrCreateKdIntersectable(leaf); 
    881                         mCurrentViewCell->GetPvs().AddSampleDirty(kdInt, 1.0f); 
    882          
    883                         mViewCellsManager->UpdateStatsForViewCell(mCurrentViewCell, kdInt); 
    884                 } 
    885  
    886                 ObjectContainer::const_iterator oit, oit_end = leaf->mObjects.end(); 
    887  
    888                 for (oit = leaf->mObjects.begin(); oit != oit_end; ++ oit) 
     906                //mCurrentViewCell->GetPvs().AddSampleDirty(kdInt, 1.0f); 
     907                mCurrentViewCell->GetPvs().AddSampleDirtyCheck(kdInt, 1.0f); 
     908                mViewCellsManager->UpdateStatsForViewCell(mCurrentViewCell, kdInt); 
     909 
     910                myobjects.clear(); 
     911                mKdTree->CollectObjects(kdInt->GetItem(), myobjects); 
     912 
     913                // account for kd object pvs 
     914                ObjectContainer::const_iterator oit, oit_end = myobjects.end(); 
     915 
     916                for (oit = myobjects.begin(); oit != oit_end; ++ oit) 
    889917                { 
    890918                        TriangleIntersectable *triObj = static_cast<TriangleIntersectable *>(*oit); 
    891  
     919             
     920                        // account for the overall pvs 
     921                        if ((triObj->mCounter != 1) && (triObj->mCounter != 3)) 
     922                        { 
     923                                ++ triObj->mCounter; 
     924                                ++ mGenericStats2; 
     925                        } 
     926             
     927                        // the triangle itself intersects 
    892928                        if (box.Intersects(triObj->GetItem())) 
    893929                        { 
    894                                 if (!triObj->mCounter) 
     930                                if ((triObj->mCounter < 2)) 
    895931                                { 
    896                                         triObj->mCounter = 1; 
     932                                        triObj->mCounter += 2; 
     933 
    897934                                        mTrianglePvs.push_back(triObj); 
     935                                        mGenericStats = mTrianglePvs.size(); 
    898936                                } 
    899                         } 
     937                        }                        
    900938                } 
    901939        } 
    902940} 
     941 
    903942 
    904943 
     
    929968                        continue; 
    930969 
    931         //ViewCell *vc = mViewCellsManager->GetViewCell(mCurrentViewPoint); 
    932970        ViewCell *vc = mViewCellsManager->GetViewCell(mRendererWidget->GetViewPoint()); 
    933971 
    934                 //cout << "v " << mRendererWidget->GetViewPoint() << " "; 
    935  
    936972                // no valid view cell or view cell already computed 
    937                 if (!vc || !vc->GetPvs().Empty()) 
     973                if (!vc || !vc->GetPvs().Empty() || !mRendererWidget->mComputeGVS) 
    938974                        continue; 
    939975 
    940                 //cout << "computing new view cell: " << vc->GetId() << endl; 
    941  
     976                mRendererWidget->mComputeGVS = false; 
    942977                // hack: reset counters 
    943978                ObjectContainer::const_iterator oit, oit_end = mObjects.end(); 
     
    950985        } 
    951986} 
    952  
    953  
    954987 
    955988 
     
    9991032 
    10001033        BvhLeaf::NewMail(); 
    1001         //KdNode::NewMail(); 
    10021034 
    10031035        ObjectContainer::const_iterator oit, oit_end = mTrianglePvs.end(); 
     
    12091241{ 
    12101242        mCurrentViewCell = vc; 
    1211  
    1212         if (mUseKdPvs) 
    1213         { 
    1214                 KdNode::NewMail(); 
    1215                 //mKdPvs.clear(); 
    1216         } 
     1243        KdNode::NewMail(); 
    12171244 
    12181245        long startTime = GetTime(); 
    12191246        cout << "\n***********************\n"  
    1220                 << "processing view cell " << mProcessedViewCells  
     1247                << "computing view cell " << mProcessedViewCells  
    12211248                << " (id: " << mCurrentViewCell->GetId() << ")" << endl; 
    12221249 
     
    12561283                        mCurrentViewCell->GetPvs().AddSampleDirty(*it, 1.0f); 
    12571284                */ 
    1258                 mGvsStats.mPerViewCellPvs = mCurrentViewCell->GetPvs().GetSize();; 
     1285                mGvsStats.mPerViewCellPvs = mCurrentViewCell->GetPvs().GetSize(); 
     1286 
     1287                cout << "pvs cost: " << mCurrentViewCell->GetPvs().EvalPvsCost() << " pvs tri: " << mGenericStats2 << endl; 
    12591288        } 
    12601289 
     
    12791308 
    12801309        mTrianglePvs.clear(); 
    1281 #if 0 
    1282         if (GVS_DEBUG) 
    1283         { 
    1284                 //VisualizeViewCell(mCurrentViewCell); 
    1285                 VisualizeViewCell(objectPvs); 
    1286                 CLEAR_CONTAINER(mVssRays); 
    1287         } 
    1288         cout << "finished" << endl; 
    1289  
    1290         if (mEvaluatePixelError || mExportVisibility) 
    1291         { 
    1292                 StorePvs(objectPvs); 
    1293         } 
    1294 #endif 
    1295 } 
    1296  
    1297 } 
     1310} 
     1311 
     1312} 
  • GTP/trunk/Lib/Vis/Preprocessing/src/HavranRayCaster.h

    r2629 r2643  
    11#ifndef _HavranRayCaster_H__ 
    22#define _HavranRayCaster_H__ 
     3 
     4#ifdef USE_HAVRAN_RAYCASTER 
    35 
    46#include "RayCaster.h" 
     
    208210} // namespace 
    209211 
     212#endif 
     213 
    210214#endif // _HavranRayCaster_H__ 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Intersectable.cpp

    r2582 r2643  
    1717namespace GtpVisibilityPreprocessor { 
    1818 
     19 
     20int Intersectable::sMailId = 10000;//2147483647; 
     21int Intersectable::sReservedMailboxes = 1; 
     22 
     23int Intersectable::sMailId2 = 10000;//2147483647; 
     24int Intersectable::sReservedMailboxes2 = 1; 
    1925 
    2026// This is the result of computing intersection 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Intersectable.h

    r2615 r2643  
    8484        int mMailbox; 
    8585 
     86        static void NewMail2(const int reserve = 1)  
     87        { 
     88                sMailId2 += sReservedMailboxes2; 
     89                sReservedMailboxes2 = reserve; 
     90        } 
     91 
     92        //////////// 
     93        void Mail2() { mMailbox2 = sMailId2; } 
     94        bool Mailed2() const { return mMailbox2 == sMailId2; } 
     95 
     96        void Mail2(const int mailbox) { mMailbox2 = sMailId2 + mailbox; } 
     97        bool Mailed2(const int mailbox) const { return mMailbox2 == sMailId2 + mailbox; } 
     98 
     99        int IncMail2() { return ++ mMailbox2 - sMailId2; } 
     100 
     101        // last mail id -> warning not thread safe! 
     102        // both mailId and mailbox should be unique for each thread!!! 
     103        static int sMailId2; 
     104        static int sReservedMailboxes2; 
     105 
     106        /// Mailbox used for traversals 
     107        int mMailbox2; 
     108 
     109        //////////// 
    86110 
    87111        //////////////// 
  • GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.cpp

    r2638 r2643  
    2323int KdNode::sMailId = 1; 
    2424int KdNode::sReservedMailboxes = 1; 
     25int KdNode::sMailId2 = 1; 
     26int KdNode::sReservedMailboxes2 = 1; 
    2527 
    2628 
     
    3234 
    3335KdNode::KdNode(KdInterior *parent): 
    34 mParent(parent), mMailbox(0), mIntersectable(NULL) 
     36mParent(parent), mMailbox(0), mIntersectable(NULL), mMailbox2(0) 
    3537{ 
    3638  if (parent) 
     
    11521154} 
    11531155 
     1156 
     1157void KdTree::CollectObjectsWithoutMail(KdNode *n, ObjectContainer &objects) 
     1158{ 
     1159        stack<KdNode *> nodeStack; 
     1160 
     1161        nodeStack.push(n); 
     1162 
     1163        while (!nodeStack.empty())  
     1164        { 
     1165                KdNode *node = nodeStack.top(); 
     1166                nodeStack.pop(); 
     1167 
     1168                if (node->IsLeaf())  
     1169                { 
     1170                        KdLeaf *leaf = (KdLeaf *)node; 
     1171                        for (int j=0; j < leaf->mObjects.size(); j++)  
     1172                        { 
     1173                                Intersectable *object = leaf->mObjects[j]; 
     1174                                objects.push_back(object); 
     1175                        } 
     1176                } 
     1177                else  
     1178                { 
     1179                        KdInterior *interior = (KdInterior *)node; 
     1180 
     1181                        nodeStack.push(interior->mFront); 
     1182                        nodeStack.push(interior->mBack); 
     1183                } 
     1184        } 
     1185} 
     1186 
     1187 
    11541188void 
    11551189KdTree::CollectObjects(KdNode *n, ObjectContainer &objects) 
  • GTP/trunk/Lib/Vis/Preprocessing/src/KdTree.h

    r2618 r2643  
    102102  int mMailbox; 
    103103 
     104  static int sMailId2; 
     105  static int sReservedMailboxes2; 
     106  int mMailbox2; 
     107 
    104108  KdIntersectable *mIntersectable; 
    105109   
     
    114118  void Mail(const int mailbox) { mMailbox = sMailId + mailbox; } 
    115119  bool Mailed(const int mailbox) const { return mMailbox == sMailId + mailbox; } 
     120 
     121 
     122  static void NewMail2(const int reserve = 1) { 
     123    sMailId2 += sReservedMailboxes; 
     124    sReservedMailboxes2 = reserve; 
     125  } 
     126 
     127  void Mail2() { mMailbox2 = sMailId2; } 
     128  bool Mailed2() const { return mMailbox2 == sMailId2; } 
     129  
     130  void Mail2(const int mailbox) { mMailbox2 = sMailId2 + mailbox; } 
     131  bool Mailed2(const int mailbox) const { return mMailbox2 == sMailId2 + mailbox; } 
     132 
    116133 
    117134  virtual ~KdNode(){}; 
     
    372389  void 
    373390  CollectObjects(KdNode *n, ObjectContainer &objects); 
    374  
    375   void 
    376   CollectObjects(const AxisAlignedBox3 &box, 
    377                 ObjectContainer &objects); 
     391void 
     392CollectObjectsWithoutMail(KdNode *n, ObjectContainer &objects); 
     393  void 
     394  CollectObjects(const AxisAlignedBox3 &box, ObjectContainer &objects); 
    378395 
    379396  void 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ObjectPvs.cpp

    r2635 r2643  
    1616namespace GtpVisibilityPreprocessor { 
    1717 
     18static ObjectPvs dummyPvs; 
    1819 
    1920/** the pvs is the number of different objects in the node leaves 
     
    3334 
    3435                // already processed node (=> objects already in pvs)? 
    35                 if (!node->Mailed()) 
     36                if (1)//!node->Mailed()) 
    3637                { 
    37                         node->Mail(); 
    38  
     38                        //node->Mail(); 
    3939                        if (node->IsLeaf()) 
    4040                        { 
     
    5050                                for (oit = leaf->mMultipleObjects.begin(); oit != oit_end; ++ oit) 
    5151                                { 
    52                                         Intersectable *object = *oit;                                            
     52                                        Intersectable *obj = *oit;                                               
    5353                             
    54                                         if (!object->Mailed()) 
     54                                        if (1)//!obj->Mailed()) 
    5555                                        { 
    56                                                 object->Mail(); 
    57                                                 ++ pvs; 
     56                                                //obj->Mail(); 
     57                                                if (dummyPvs.AddSample(obj)) 
     58                                                        ++ pvs; 
    5859                                        } 
    5960                                } 
     
    6667                                for (oit = leaf->mObjects.begin(); oit != oit_end; ++ oit) 
    6768                                  { 
    68                                         Intersectable *object = *oit;                                            
     69                                        Intersectable *obj = *oit;                                               
    6970                                         
    70                                         if (!object->Mailed()) 
     71                                        if (!obj->Mailed2()) 
    7172                                          { 
    72                                                 object->Mail(); 
    73                                                 ++ pvs; 
     73                                                  //if (dummyPvs.AddSample(obj, 1.0f))++ pvs; 
     74                                                  obj->Mail2(); 
     75                                                  ++pvs; 
    7476                                          } 
    7577                                  } 
     
    7880                        } 
    7981                        else // traverse tree 
    80                           { 
     82                        { 
    8183                                KdInterior *interior = static_cast<KdInterior *>(node); 
    8284 
     
    8789        } 
    8890 
     91        ///return dummyPvs.Size(); 
    8992        return pvs; 
    9093} 
     
    152155 
    153156 
     157 
    154158float ObjectPvs::EvalPvsCost() const 
    155159{ 
    156160        float pvs = 0; 
    157161 
    158         Intersectable::NewMail(); 
    159         KdNode::NewMail(); 
     162        Intersectable::NewMail2(); 
     163        //KdNode::NewMail(); 
     164        dummyPvs.Clear(); 
    160165 
    161166        ObjectPvsIterator pit = GetIterator(); 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.cpp

    r2638 r2643  
    10451045        GetIntValue("Preprocessor.rayCastMethod", rayCastMethod); 
    10461046 
    1047   if ((rayCastMethod == 2) || (rayCastMethod == 3)) { 
    1048     HavranRayCaster *hr = 0; 
    1049     if (rayCastMethod == 3) 
    1050       hr = reinterpret_cast<HavranDynRayCaster*>(mRayCaster); 
    1051     else 
    1052       hr = reinterpret_cast<HavranRayCaster*>(mRayCaster); 
    1053  
    1054     string ktbFilename = internKdTree; 
    1055     int l = ktbFilename.length(); 
    1056     ktbFilename[l-1] = 't'; 
    1057     ktbFilename[l-2] = 'b'; 
    1058     ktbFilename[l-3] = 'k'; 
    1059                  
    1060     cout << "Trying to load tree from file " << ktbFilename << endl; 
    1061     if (hr->ImportBinTree(ktbFilename, this->mObjects)) { 
    1062       cout << "Loading failed - building kd-tree" << endl; 
    1063       hr->Build(this->mObjects); 
    1064       cout << "Exporting kd-tree to file " << ktbFilename << endl; 
    1065       hr->ExportBinTree(ktbFilename); 
    1066     } 
    1067     else 
    1068       cout << " done." << endl; 
     1047#ifdef USE_HAVRAN_RAYCASTER 
     1048 
     1049  if ((rayCastMethod == 2) || (rayCastMethod == 3))  
     1050  { 
     1051          HavranRayCaster *hr = 0; 
     1052 
     1053          if (rayCastMethod == 3) 
     1054                  hr = reinterpret_cast<HavranDynRayCaster*>(mRayCaster); 
     1055          else 
     1056                  hr = reinterpret_cast<HavranRayCaster*>(mRayCaster); 
     1057 
     1058          string ktbFilename = internKdTree; 
     1059          int l = ktbFilename.length(); 
     1060          ktbFilename[l-1] = 't'; 
     1061          ktbFilename[l-2] = 'b'; 
     1062          ktbFilename[l-3] = 'k'; 
     1063 
     1064          cout << "Trying to load tree from file " << ktbFilename << endl; 
     1065          if (hr->ImportBinTree(ktbFilename, this->mObjects)) { 
     1066                  cout << "Loading failed - building kd-tree" << endl; 
     1067                  hr->Build(this->mObjects); 
     1068                  cout << "Exporting kd-tree to file " << ktbFilename << endl; 
     1069                  hr->ExportBinTree(ktbFilename); 
     1070          } 
     1071          else 
     1072                  cout << " done." << endl; 
    10691073  } 
    1070    
    1071    
     1074#endif 
     1075 
     1076 
    10721077  if (!mUseKdTree) { 
    10731078        // create just a dummy KdTree 
     
    11341139        if (rayCastMethod == 2)  
    11351140        { 
     1141#ifdef USE_HAVRAN_RAYCASTER 
    11361142          cout << "ray cast method: havran" << endl <<flush; 
    11371143          mRayCaster = new GALIGN16 HavranRayCaster(*this); 
     1144#endif 
    11381145        } 
    11391146        if (rayCastMethod == 3)  
    11401147        { 
     1148#ifdef USE_HAVRAN_RAYCASTER 
    11411149          cout << "ray cast method: havran - dyn" << endl <<flush; 
    11421150          mRayCaster = new GALIGN16 HavranDynRayCaster(*this); 
     1151#endif 
    11431152        } 
    11441153 
     
    17591768                cout<<leaf->GetBox(); 
    17601769                mDynamicObjects.push_back(leaf); 
    1761                 //        leaf->RebuildKtbTree(); 
     1770                //leaf->RebuildKtbTree(); 
    17621771                mSceneGraph->GetRoot()->mChildren.push_back(leaf); 
    17631772                 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.h

    r2636 r2643  
    274274 
    275275  int mGenericStats; 
     276        int mGenericStats2; 
    276277 
    277278  void ScheduleUpdateDynamicObjects() { 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj

    r2633 r2643  
    126126                                OptimizeForWindowsApplication="TRUE" 
    127127                                AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(CG_INC_PATH)&quot;;Timer;..\src\sparsehash\src\google\sparsehash;..\src\sparsehash\src\windows;..\src\sparsehash\src\google;..\src\sparsehash\src;..\src\ootl\;..\src\ootl\src\;..\src\ootl\src\cpp;..\src\ootl\src\cpp\include\;..\src\ootl\src\include\ootl;..\src\ootl\src\include\ootl\sandbox;..\src\ootl\src\cpp\include\ootl\mswin;..\src\havran" 
    128                                 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;USE_QT;USE_HASH_PVS;USE_CG" 
     128                                PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;USE_QT;USE_VERBOSE_PVS;USE_CG" 
    129129                                StringPooling="TRUE" 
    130130                                MinimalRebuild="TRUE" 
     
    417417                        <File 
    418418                                RelativePath=".\HashPvs.h"> 
     419                        </File> 
     420                        <File 
     421                                RelativePath=".\HavranDynRayCaster.cpp"> 
    419422                        </File> 
    420423                        <File 
     
    11441147                        </File> 
    11451148                        <File 
     1149                                RelativePath=".\havran\ktbs.cpp"> 
     1150                        </File> 
     1151                        <File 
     1152                                RelativePath=".\havran\ktbs.h"> 
     1153                        </File> 
     1154                        <File 
    11461155                                RelativePath=".\havran\ktbtrav.cpp"> 
    11471156                        </File> 
  • GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp

    r2638 r2643  
    307307        GlRenderer::InitGL(); 
    308308 
     309        //glEnable(GL_FOG); 
     310        //glFogi(GL_FOG_MODE, GL_EXP); 
     311        glFogi(GL_FOG_MODE, GL_LINEAR); 
     312 
     313//      glFogf(GL_FOG_DENSITY, .2f); 
     314        glFogf(GL_FOG_START, 50.f); 
     315        glFogf(GL_FOG_END, 500.f); 
     316 
    309317        GLfloat light_ambient[] = {0.3, 0.3, 0.3, 1.0}; 
    310318    GLfloat light_diffuse[] = {0.6, 0.6, 0.6, 1.0}; 
     
    440448        int indexBufferSize = 0; 
    441449         
    442         KdNode::NewMail(); 
     450        KdNode::NewMail2(); 
    443451        //Intersectable::NewMail(); 
    444452 
     
    506514        if (viewcell)  
    507515        { 
    508 #if 1 
     516#if 0 
    509517                // copy the pvs so that it can be filtered ... 
    510518                if (PvsChanged(viewcell))  
     
    518526                                //mMutex.lock(); 
    519527                                // mSpatialFilter size is in range 0.001 - 0.1 
    520                           mViewCellsManager->ApplyFilter2(viewcell, 
    521                                                                     mUseFilter, 
    522                                                                     100.0f * mSpatialFilterSize, 
    523                                                                     //pvs, 
    524                                                                                                 mPvsCache.mPvs,          
    525                                                                     &mPvsCache.filteredBoxes); 
     528                                mViewCellsManager->ApplyFilter2(viewcell, 
     529                                        mUseFilter, 
     530                                        100.0f * mSpatialFilterSize, 
     531                                        mPvsCache.mPvs,          
     532                                        &mPvsCache.filteredBoxes); 
    526533                                //mPvsCache.mPvs = pvs; 
    527534                                //mMutex.unlock(); 
     
    535542                        // update the indices for rendering 
    536543                        PreparePvs2(mPvsCache.mPvs); 
    537                          
    538544                        emit PvsUpdated(); 
     545                        mCurrentPvsCost = mPvsCache.mPvs.EvalPvsCost(); 
    539546                } 
    540547#else 
     548         
    541549                PreparePvs2(viewcell->GetPvs()); 
    542550                emit PvsUpdated(); 
     551 
    543552#endif 
    544553 
     
    577586                        mWireFrame = false; 
    578587                } 
     588                mCurrentPvsCost = viewcell->GetPvs().EvalPvsCost(); 
    579589        }  
    580590        else  
     
    585595                RenderScene(); 
    586596        } 
     597 
     598        //cout << "vp: " << mViewPoint << " vd: " << mViewDirection << endl; 
    587599} 
    588600 
     
    794806                } 
    795807 
    796                 if (1 && mShowRays)  
     808                if (mShowRays)  
    797809                { 
    798810                        RenderRays(mViewCellsManager->mVizBuffer.GetRays(), mRayVisualizationMethod, mShowDistribution, 1); 
     
    937949        //mRenderVisibilityEstimates = true; 
    938950 
     951        mComputeGVS = false; 
    939952        mUseRandomColorPerPvsObject = false; 
    940953 
     
    980993        mShowRays = false; 
    981994 
    982         SetSceneCut(0); 
     995        SetSceneCut(1000); 
    983996        mControlWidget = new QtRendererControlWidget(NULL); 
    984997 
     
    9911004        connect(mControlWidget, SIGNAL(SetRandomViewPoint()), this,     SLOT(SetRandomViewPoint())); 
    9921005        connect(mControlWidget, SIGNAL(StoreStatistics(void)), this, SLOT(StoreStatistics(void))); 
     1006        connect(mControlWidget, SIGNAL(ComputeGVS(void)), this, SLOT(ComputeGVS(void))); 
    9931007        connect(mControlWidget, SIGNAL(LoadObject(void)), this, SLOT(LoadObject(void))); 
    9941008 
     
    12701284#if 0 
    12711285        QFont font40; font40.setPointSize(30); 
    1272         s.sprintf("PVS: %04d", mPvsSize); 
    1273         renderText(20, 40, s, font40); 
     1286        //s.sprintf("PVS: %04d", mPvsSize); 
     1287        //renderText(20, 40, s, font40); 
    12741288#endif 
    12751289         
    1276 /*      QFont font40; font40.setPointSize(30); 
    1277         s.sprintf("New triangles: %04d", 100); 
    1278         renderText(200, 40, s, font40);*/ 
     1290        //s.sprintf("RAW TRI: %07d", mViewCellsManager->GetPreprocessor()->mGenericStats); 
     1291        //renderText(290, 40, s, font40); 
     1292        //s.sprintf("PVS TRI: %07d", mViewCellsManager->GetPreprocessor()->mGenericStats2); 
     1293        //renderText(290, 70, s, font40); 
     1294 
     1295        s.sprintf("PVS TRI: %07d", (int)mCurrentPvsCost); 
     1296        renderText(290, 70, s, font40); 
     1297        //renderText(290, 70, s, font40); 
     1298 
    12791299} 
    12801300 
     
    12831303QtGlRendererWidget::SetViewCellGranularity(int number) 
    12841304{ 
    1285         if (mViewCellsManager) { 
    1286                 //      mViewCellsManager->SetMaxFilterSize(number); 
     1305        if (mViewCellsManager) 
     1306        { 
     1307                //      mViewCellsManager->SetMaxFilterSize(number); 
    12871308 
    12881309                // $$ tmp off 
     
    13011322        if (mViewCellsManager)  
    13021323                mViewCellsManager->SetMaxFilterSize(number); 
     1324 
    13031325        mPvsCache.Reset(); 
    13041326        updateGL(); 
     
    13241346                AxisAlignedBox3 box = mViewCellsManager->GetViewSpaceBox(); 
    13251347                Vector3 p = (1.0f - f) * box.Min() + f * box.Max(); 
    1326                 mSceneCutPlane.mNormal = Vector3(0,-1,0); 
     1348                mSceneCutPlane.mNormal = Vector3(0, -1, 0); 
    13271349                mSceneCutPlane.mD = -DotProd(mSceneCutPlane.mNormal, p); 
    13281350 
     
    19962018        QGroupBox *groupBox = CreateVisualizationPanel(hbox); 
    19972019        vh->addWidget(groupBox, 0, 0); 
     2020 
    19982021#if REMOVE_TEMPORARY 
    19992022        QGroupBox *groupBox2 = CreateRenderCostPanel(hbox); 
    20002023        vh->addWidget(groupBox2, 0, 0); 
    2001 #endif 
     2024         
    20022025        QGroupBox *groupBox3 = CreateRayVisualizationPanel(hbox); 
    20032026        vh->addWidget(groupBox3, 0, 0); 
     
    20052028        QGroupBox *groupBox4 = CreateTrafoPanel(hbox); 
    20062029        vh->addWidget(groupBox4, 0, 0); 
     2030#endif 
    20072031 
    20082032        ////////////////////////////////// 
    20092033 
    2010  
    2011         /*cb = new QRadiobox("Top View", vbox); 
    2012         vl->addWidget(cb); 
    2013         cb->setChecked(false); 
    2014         connect(cb, SIGNAL(toggled(bool)), SIGNAL(SetTopView(bool))); 
    2015 */ 
    20162034 
    20172035        //vbox->resize(800,150); 
     
    21682186#endif 
    21692187 
     2188        button = new QPushButton("Compute GVS", vbox); 
     2189        vbox->layout()->addWidget(button); 
     2190        connect(button, SIGNAL(clicked()), SIGNAL(ComputeGVS())); 
     2191 
    21702192#if DYNAMIC_OBJECTS_HACK 
    21712193 
     
    22022224         
    22032225        //connect(button, SIGNAL(clicked(void)), SLOT(StoreStatistics(void))); 
    2204         //mHidingCost = 0.1f; 
    2205 ////////////////////////////////////////// 
     2226         
     2227        ////////////////////////////////////////// 
    22062228 
    22072229        label = new QLabel("Spatial Filter size"); 
  • GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.h

    r2636 r2643  
    9999 
    100100  void FocusNextPvsErrorFrame(); 
    101   void UpdatePvsErrorItem(int i, 
    102                                                   GlRendererBuffer::PvsErrorEntry &); 
     101  void UpdatePvsErrorItem(int i, GlRendererBuffer::PvsErrorEntry &); 
    103102 
    104103   
     
    113112  void SetRandomViewPoint(); 
    114113  void StoreStatistics(); 
     114  void ComputeGVS(); 
    115115  void LoadObject(); 
    116116  void UpdateAllPvs(); 
     
    231231        ViewCellInfoContainer mCompareInfo; 
    232232 
     233        int mCurrentPvsCost; 
     234 
    233235        vector<RgbColor> mColors; 
    234236 
     
    316318        void SetRandomViewPoint(); 
    317319        void StoreStatistics(); 
     320         
    318321        void LoadObject(); 
    319322 
    320323        void SetRenderErrors(bool b) { 
    321324                mRenderErrors = b; 
     325                updateGL(); 
     326        } 
     327 
     328        void ComputeGVS() { 
     329                mComputeGVS = true; 
    322330                updateGL(); 
    323331        } 
  • GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtInterface.vcproj

    r2633 r2643  
    165165                        <Tool 
    166166                                Name="VCCLCompilerTool" 
    167                                 AdditionalIncludeDirectories="..\..\src;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\..\..\..\..\..\..\NonGTP\Zlib\include;&quot;$(CG_INC_PATH)&quot;;..\..\src\sparsehash\src;..\..\src\sparsehash\src\google;..\..\src\sparsehash\src\windows;..\..\src\sparsehash\src\google\sparsehash" 
    168                                 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;QTGLRENDERER_EXPORTS;USE_HASH_PVS;USE_QT;USE_CG;GTP_INTERNAL" 
     167                                AdditionalIncludeDirectories="..\..\src;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\..\..\..\..\..\..\NonGTP\Zlib\include;&quot;$(CG_INC_PATH)&quot;;..\..\src\sparsehash\src;..\..\src\sparsehash\src\google;..\..\src\sparsehash\src\windows;..\..\src\sparsehash\src\google\sparsehash;..\src\havran" 
     168                                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;QTGLRENDERER_EXPORTS;USE_VERBOSE_PVS;USE_QT;USE_CG;GTP_INTERNAL" 
    169169                                RuntimeLibrary="2" 
    170170                                UsePrecompiledHeader="0" 
  • GTP/trunk/Lib/Vis/Preprocessing/src/SceneGraph.cpp

    r2621 r2643  
    66#include "Intersectable.h" 
    77#include "IntersectableWrapper.h" 
    8 #include "ktball.h" 
     8//#include "ktball.h" 
    99 
    1010 
     
    279279 
    280280SceneGraphLeaf::SceneGraphLeaf(): mIsDynamic(false) 
    281 #if DYNAMIC_OBJECTS_HACK 
    282 , mKtbTree(NULL) 
    283 #endif 
    284281{ 
    285282        mTrafo = IdentityMatrix(); 
     
    292289 
    293290SceneGraphLeaf::SceneGraphLeaf(bool isDynamic): mIsDynamic(isDynamic) 
    294 #if DYNAMIC_OBJECTS_HACK 
    295 , mKtbTree(NULL) 
    296 #endif 
    297291{ 
    298292    mTrafo = IdentityMatrix(); 
     
    324318 
    325319 
    326 #if DYNAMIC_OBJECTS_HACK 
    327  
    328  
    329 void SceneGraphLeaf::RebuildKtbTree() 
    330 { 
    331         if (mKtbTree) 
    332                 delete mKtbTree; 
    333  
    334         mKtbTree = new CKTB(); 
    335         mKtbTree->BuildUp(mGeometry); 
    336 } 
    337  
    338 #endif 
    339  
    340  
    341 } 
     320 
     321} 
  • GTP/trunk/Lib/Vis/Preprocessing/src/SceneGraph.h

    r2636 r2643  
    7272 
    7373#if DYNAMIC_OBJECTS_HACK 
    74         void RebuildKtbTree(); 
    7574        SceneGraphLeafIntersectable *GetIntersectable() { return mIntersectable; } 
    7675#endif 
  • GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj

    r2633 r2643  
    145145                                OptimizeForWindowsApplication="TRUE" 
    146146                                AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(QTDIR)\include\Qt&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include&quot;;QtInterface;..\src\sparsehash\src\;..\src\ootl\src\include\ootl;..\src\ootl\src\include\ootl\sandbox;$(NOINHERIT)" 
    147                                 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL;USE_QT;USE_CG;USE_HASH_PVS;QT_OPENGL_LIB;QT_DLL" 
     147                                PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL;USE_QT;USE_CG;USE_VERBOSE_PVS;QT_OPENGL_LIB;QT_DLL" 
    148148                                StringPooling="TRUE" 
    149149                                MinimalRebuild="TRUE" 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ViewCell.cpp

    r2588 r2643  
    4949                       myless<vector<ViewCell *>::value_type> > TraversalQueue; 
    5050 
    51 int Intersectable::sMailId = 10000;//2147483647; 
    52 int Intersectable::sReservedMailboxes = 1; 
    5351 
    5452float MergeCandidate::sRenderCostWeight = 0; 
  • GTP/trunk/Lib/Vis/Preprocessing/src/main.cpp

    r2634 r2643  
    2828#include "ViewCellsManager.h" 
    2929 
    30 #include "testrt.h" 
     30//#include "testrt.h" 
    3131 
    3232 
Note: See TracChangeset for help on using the changeset viewer.