Ignore:
Timestamp:
05/27/08 10:57:05 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

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

    r2714 r2715  
    15991599        } 
    16001600 
    1601         cout << "\**************\n******* new object has id " << currentId << endl; 
     1601        cout << "new object registered with id " << currentId << endl; 
    16021602 
    16031603        ++ sCurrentDynamicId; 
     
    16051605        // tell ray caster to update 
    16061606        ScheduleUpdateDynamicObjects(); 
    1607  
    1608         if (0)  
    1609         { 
    1610                 // add to scene graph 
    1611                 mSceneGraph->GetRoot()->mChildren.push_back(leaf); 
    1612                 // add to ray caster 
    1613                 if (mRayCaster) 
    1614                         mRayCaster->AddDynamicObjecs(leaf->mGeometry, leaf->GetTransformation()); 
    1615         } 
    1616         // $$ JB in order to compile 
    1617         //return leaf; 
    16181607} 
    16191608 
     
    17691758          preprocessor->mRayCaster->DeleteDynamicObjects(); 
    17701759           
    1771 #define MULTIPLE_OBJECTS 0 
    1772 #define CREATE_TRANSF_COPIES_OF_DYN_OBJECTS      1 
     1760#define MULTIPLE_OBJECTS 1 
    17731761 
    17741762#if MULTIPLE_OBJECTS  
    1775 #if CREATE_TRANSF_COPIES_OF_DYN_OBJECTS  
    17761763          static ObjectContainer objects; 
    17771764           
    1778           if (objects.size()) { 
    1779                 for (size_t i = 0; i < objects.size(); ++ i) { 
    1780                   delete objects[i]; 
    1781                 } 
    1782                 objects.clear(); 
    1783           } 
     1765          CLEAR_CONTAINER(objects); 
    17841766           
    17851767          for (size_t i = 0; i < mDynamicObjects.size(); ++ i) { 
     
    17891771                        Triangle3 t(((TriangleIntersectable *)l->mGeometry[j])->GetItem()); 
    17901772                        t.ApplyTransformation(l->GetTransformation()); 
    1791                         objects.push_back(new TriangleIntersectable(t)); 
     1773                        TriangleIntersectable *to = new TriangleIntersectable(t); 
     1774                        to->SetId(l->GetIntersectable()->GetId()); 
     1775 
     1776                        objects.push_back(to); 
    17921777                  } 
    17931778                } 
    17941779          } 
    17951780          mRayCaster->AddDynamicObjecs(objects, IdentityMatrix()); 
    1796 #else 
    1797           mRayCaster->AddDynamicObjecs(objects, IdentityMatrix()); 
    1798 #endif 
    17991781#endif     
    18001782 
     
    18021784           
    18031785          for (size_t i = 0; i < mDynamicObjects.size(); ++ i)  
    1804                 { 
     1786          { 
    18051787                  SceneGraphLeaf *l = mDynamicObjects[i]; 
    18061788 
    18071789#if  !MULTIPLE_OBJECTS 
    1808                   UpdateObjectInRayCaster(l); 
     1790                  PrepareObjectsForRayCaster(l); 
    18091791#endif 
    18101792 
    18111793                  if (l->HasChanged()) 
    1812                         { 
    1813                            
     1794                  { 
    18141795                          cout<<"Updating affected PVSs..."<<endl; 
    18151796                          preprocessor->ObjectMoved(l); 
    18161797                          cout<<"done."<<endl;   
    18171798                          l->SetHasChanged(false); 
    1818                         } 
    1819                 } 
    1820  
     1799                  } 
     1800          } 
    18211801 
    18221802          mUpdateDynamicObjects = false; 
     
    18321812 
    18331813 
    1834 void Preprocessor::UpdateObjectInRayCaster(SceneGraphLeaf *l) 
     1814void Preprocessor::PrepareObjectsForRayCaster(SceneGraphLeaf *l) 
    18351815{ 
    18361816        cout<<"Updating dynamic objects in ray caster..."<<endl; 
Note: See TracChangeset for help on using the changeset viewer.