Changeset 884 for GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp
- Timestamp:
- 05/03/06 11:35:39 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp
r878 r884 44 44 #endif 45 45 46 bool useFilter = false;47 46 48 47 GlRenderer::GlRenderer(SceneGraph *sceneGraph, … … 848 847 PrVs prvs; 849 848 850 if (! useFilter) {851 viewcell = mViewCellsManager->GetViewCell(mViewPoint );849 if (!mUseFilter) { 850 viewcell = mViewCellsManager->GetViewCell(mViewPoint, true); 852 851 } else { 853 852 // mViewCellsManager->SetMaxFilterSize(1); … … 857 856 858 857 if (viewcell) { 859 ObjectPvs &pvs = viewcell->GetPvs(); 860 858 // copy the pvs so that it can be filtered... 859 ObjectPvs pvs = viewcell->GetPvs(); 860 861 if (mUseSpatialFilter) { 862 mViewCellsManager->ApplySpatialFilter(mKdTree, 863 mSpatialFilterSize* 864 Magnitude(mViewCellsManager->GetViewSpaceBox().Size()), 865 // mViewCellsManager->GetFilterWidth()/2, 866 pvs); 867 } 868 869 861 870 // read back the texture 862 871 std::map<Intersectable *, … … 881 890 } 882 891 883 if ( useFilter)892 if (mUseFilter) 884 893 mViewCellsManager->DeleteLocalMergeTree(viewcell); 885 894 } else { … … 924 933 ViewCell *viewcell; 925 934 926 PrVs prvs;927 // mViewCellsManager->SetMaxFilterSize(1);928 929 930 if (!useFilter)931 viewcell = mViewCellsManager->GetViewCell(mViewPoint);932 else {933 mViewCellsManager->GetPrVS(mViewPoint, prvs);934 viewcell = prvs.mViewCell;935 }936 937 935 QImage im1, im2; 938 936 QImage diff; … … 942 940 im1 = grabFrameBuffer(true); 943 941 944 SetupCamera(); 945 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 946 947 std::map<Intersectable *, 948 PvsData<Intersectable *>, 949 LtSample<Intersectable *> >::const_iterator it = viewcell->GetPvs().mEntries.begin(); 950 951 mPvsSize = viewcell->GetPvs().mEntries.size(); 952 953 for (; it != viewcell->GetPvs().mEntries.end(); ++ it) { 954 Intersectable *object = (*it).first; 955 RenderIntersectable(object); 956 } 942 RenderPvs(); 957 943 958 944 // read back the texture … … 978 964 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 979 965 mUseFalseColors = false; 980 966 981 967 oi = mObjects.begin(); 982 968 for (; oi != mObjects.end(); oi++) … … 1033 1019 1034 1020 glDisable(GL_CLIP_PLANE0); 1035 1036 if (useFilter && viewcell)1037 mViewCellsManager->DeleteLocalMergeTree(viewcell);1038 1021 1039 1022 mRenderError = pErrorPixels; … … 1317 1300 1318 1301 1302 label = new QLabel("Spatial Filter size"); 1303 vbox->layout()->addWidget(label); 1304 1305 slider = new QSlider(Qt::Horizontal, vbox); 1306 vbox->layout()->addWidget(slider); 1307 slider->show(); 1308 slider->setRange(1, 100); 1309 slider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); 1310 slider->setValue(10); 1311 1312 connect(slider, SIGNAL(valueChanged(int)), SIGNAL(SetSpatialFilterSize(int))); 1313 1314 1319 1315 1320 1316 QWidget *hbox = new QWidget(vbox); … … 1363 1359 connect(cb, SIGNAL(toggled(bool)), SIGNAL(SetRenderErrors(bool))); 1364 1360 1361 cb = new QCheckBox("Use filter", vbox); 1362 vbox->layout()->addWidget(cb); 1363 cb->setChecked(true); 1364 connect(cb, SIGNAL(toggled(bool)), SIGNAL(SetUseFilter(bool))); 1365 1366 cb = new QCheckBox("Use spatial filter", vbox); 1367 vbox->layout()->addWidget(cb); 1368 cb->setChecked(true); 1369 connect(cb, SIGNAL(toggled(bool)), SIGNAL(SetUseSpatialFilter(bool))); 1370 1365 1371 cb = new QCheckBox("Render filter", vbox); 1366 1372 vbox->layout()->addWidget(cb); 1367 1373 cb->setChecked(true); 1368 1374 connect(cb, SIGNAL(toggled(bool)), SIGNAL(SetRenderFilter(bool))); 1375 1369 1376 1370 1377 cb = new QCheckBox("Cut view cells", vbox); … … 1457 1464 mRenderErrors = false; 1458 1465 mRenderFilter = true; 1466 mUseFilter = true; 1467 mUseSpatialFilter = true; 1459 1468 mShowRenderCost = false; 1460 1469 mShowPvsSizes = false; 1461 1470 mSpatialFilterSize = 0.01; 1462 1471 mPvsSize = 0; 1463 1472 mRenderError = 0.0f; … … 1469 1478 1470 1479 connect(mControlWidget, SIGNAL(SetVisibilityFilterSize(int)), this, SLOT(SetVisibilityFilterSize(int))); 1480 connect(mControlWidget, SIGNAL(SetSpatialFilterSize(int)), this, SLOT(SetSpatialFilterSize(int))); 1471 1481 1472 1482 connect(mControlWidget, SIGNAL(SetShowViewCells(bool)), this, SLOT(SetShowViewCells(bool))); … … 1478 1488 connect(mControlWidget, SIGNAL(SetRenderErrors(bool)), this, SLOT(SetRenderErrors(bool))); 1479 1489 connect(mControlWidget, SIGNAL(SetRenderFilter(bool)), this, SLOT(SetRenderFilter(bool))); 1490 connect(mControlWidget, SIGNAL(SetUseFilter(bool)), this, SLOT(SetUseFilter(bool))); 1491 connect(mControlWidget, SIGNAL(SetUseSpatialFilter(bool)), 1492 this, SLOT(SetUseSpatialFilter(bool))); 1480 1493 1481 1494 … … 1489 1502 // mViewCellsManager->SetMaxFilterSize(number); 1490 1503 mViewCellsManager->CollectViewCells(number); 1504 1491 1505 updateGL(); 1492 1506 } … … 1497 1511 if (mViewCellsManager) 1498 1512 mViewCellsManager->SetMaxFilterSize(number); 1513 updateGL(); 1514 } 1515 1516 void 1517 GlRendererWidget::SetSpatialFilterSize(int number) 1518 { 1519 mSpatialFilterSize = 1e-3*number; 1499 1520 updateGL(); 1500 1521 }
Note: See TracChangeset
for help on using the changeset viewer.