Changeset 2716 for GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.cpp
- Timestamp:
- 05/27/08 11:12:02 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.cpp
r2715 r2716 1755 1755 { 1756 1756 1757 1758 1759 1757 // delete ALL dynamic stuff and rebuild using the new trafos 1758 preprocessor->mRayCaster->DeleteDynamicObjects(); 1759 1760 1760 #define MULTIPLE_OBJECTS 1 1761 1761 1762 1762 #if MULTIPLE_OBJECTS 1763 static ObjectContainer objects; 1764 1765 CLEAR_CONTAINER(objects); 1766 1767 for (size_t i = 0; i < mDynamicObjects.size(); ++ i) { 1768 SceneGraphLeaf *l = mDynamicObjects[i]; 1769 for (int j=0; j < l->mGeometry.size(); j++) { 1770 if (l->mGeometry[j]->Type() == Intersectable::TRIANGLE_INTERSECTABLE) { 1771 Triangle3 t(((TriangleIntersectable *)l->mGeometry[j])->GetItem()); 1772 t.ApplyTransformation(l->GetTransformation()); 1773 TriangleIntersectable *to = new TriangleIntersectable(t); 1774 to->SetId(l->GetIntersectable()->GetId()); 1775 1776 objects.push_back(to); 1777 } 1778 } 1779 } 1780 mRayCaster->AddDynamicObjecs(objects, IdentityMatrix()); 1763 static ObjectContainer objects; 1764 1765 CLEAR_CONTAINER(objects); 1766 1767 for (size_t i = 0; i < mDynamicObjects.size(); ++ i) 1768 { 1769 SceneGraphLeaf *l = mDynamicObjects[i]; 1770 1771 for (size_t j=0; j < l->mGeometry.size(); j++) 1772 { 1773 if (l->mGeometry[j]->Type() == Intersectable::TRIANGLE_INTERSECTABLE) 1774 { 1775 Triangle3 t(((TriangleIntersectable *)l->mGeometry[j])->GetItem()); 1776 t.ApplyTransformation(l->GetTransformation()); 1777 TriangleIntersectable *to = new TriangleIntersectable(t); 1778 to->SetId(l->GetIntersectable()->GetId()); 1779 objects.push_back(to); 1780 } 1781 } 1782 } 1783 1784 mRayCaster->AddDynamicObjecs(objects, IdentityMatrix()); 1781 1785 #endif 1782 1786 1783 1784 1785 1786 1787 1787 SceneGraphLeaf *toUpdate = NULL; 1788 1789 for (size_t i = 0; i < mDynamicObjects.size(); ++ i) 1790 { 1791 SceneGraphLeaf *l = mDynamicObjects[i]; 1788 1792 1789 1793 #if !MULTIPLE_OBJECTS 1790 1794 PrepareObjectsForRayCaster(l); 1791 1795 #endif 1792 1796 1793 if (l->HasChanged()) 1794 { 1795 cout<<"Updating affected PVSs..."<<endl; 1796 preprocessor->ObjectMoved(l); 1797 cout<<"done."<<endl; 1798 l->SetHasChanged(false); 1799 } 1800 } 1801 1802 mUpdateDynamicObjects = false; 1803 1797 if (l->HasChanged()) 1798 { 1799 cout<<"Updating affected PVSs..."<<endl; 1800 preprocessor->ObjectMoved(l); 1801 cout<<"done."<<endl; 1802 l->SetHasChanged(false); 1803 } 1804 } 1805 1806 mUpdateDynamicObjects = false; 1804 1807 } 1805 1808 }
Note: See TracChangeset
for help on using the changeset viewer.