Index: GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vps.sh
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vps.sh	(revision 2696)
+++ GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vps.sh	(revision 2697)
@@ -37,5 +37,5 @@
 -gvs_samples_per_pass=1000000 \
 -gvs_initial_samples=16 \
--gvs_max_viewcells=20 \
+-gvs_max_viewcells=2000 \
 -gvs_min_contribution=50 \
 -gvs_per_viewcell=true \
Index: GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp	(revision 2696)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp	(revision 2697)
@@ -58,4 +58,30 @@
 
 
+void processHits (GLint hits, GLuint buffer[])
+{
+   unsigned int i, j;
+   GLuint names, *ptr;
+
+   cout << "hits = %d" << endl;;
+   ptr = (GLuint *) buffer;
+
+   for (i = 0; i < hits; i++) 
+   {
+	   /*  for each hit  */
+	   names = *ptr;
+
+	   printf (" number of names for hit = %d\n", names); ptr++;
+	   printf("  z1 is %g;", (float) *ptr/0x7fffffff); ptr++;
+	   printf(" z2 is %g\n", (float) *ptr/0x7fffffff); ptr++;
+	   printf ("   the name is ");
+
+	   for (j = 0; j < names; j++) {     /*  for each name */
+		   printf ("%d ", *ptr); ptr++;
+	   }
+	   printf ("\n");
+   }
+}
+
+
 static inline bool ilt(Intersectable *obj1, Intersectable *obj2)
 {
@@ -538,6 +564,13 @@
 	}
 
-	if (mPendingDynamicObject)
-		_RenderDynamicObject(mPendingDynamicObject);
+	// handle dynamic objects
+	dit, dit_end = mPendingDynamicObjects.end();
+
+	for (dit = mPendingDynamicObjects.begin(); dit != dit_end; ++ dit)
+	{
+		_RenderDynamicObject(*dit);
+	}
+
+	//_RenderDynamicObject(mPendingDynamicObject);
 #endif
 }
@@ -774,5 +807,5 @@
 
 			mPlacer->PlaceObject(pt);
-			mPendingDynamicObject = mPlacer->GetCurrentObject();
+			//mPendingDynamicObjects.push_back( mPlacer->GetCurrentObject());
 		}
 	}
@@ -782,8 +815,21 @@
 void QtGlRendererWidget::mouseReleaseEvent(QMouseEvent *e)
 {
-
-  if (e->modifiers() & Qt::AltModifier) 
-	if (mCurrentDynamicObjectIdx >= 0) {
-	  // preprocessor->ScheduleUpdateDynamicObjects();
+	int x = e->pos().x();
+	int y = e->pos().y();
+
+	mousePoint.x = x;
+	mousePoint.y = y;
+
+	if (e->modifiers() & Qt::AltModifier) 
+	{
+		const Vector3 pt = Unproject(x, y);
+
+		int num = FindDynamicObject(pt);
+		cout << "\n*****************\n" << "here4" << num << endl;
+		//processHits(buf);
+
+		/*if (mCurrentDynamicObjectIdx >= 0) {
+		preprocessor->ScheduleUpdateDynamicObjects();
+		}*/
 	}
 }
@@ -812,5 +858,5 @@
 		mViewPoint.x += (x-mousePoint.x)*MOVE_SENSITIVITY / 2.0;
 	}
-#if DYNAMIC_OBJECTS_HACK
+#if 0// DYNAMIC_OBJECTS_HACK
 	else if (e->modifiers() & Qt::AltModifier)
 	{
@@ -1095,5 +1141,5 @@
 	mPlacer = new ObjectPlacer();
 
-	mPendingDynamicObject = NULL;
+	//mPendingDynamicObject = NULL;
 
 	SetSceneCut(1000);
@@ -2634,5 +2680,5 @@
 	 glLoadName(1);
 
-	_RenderDynamicObject(mPendingDynamicObject);
+	_RenderDynamicObject(mPendingDynamicObjects[0]);
 
 	glMatrixMode(GL_PROJECTION); 
@@ -2661,28 +2707,4 @@
 }
 
-void processHits (GLint hits, GLuint buffer[])
-{
-   unsigned int i, j;
-   GLuint names, *ptr;
-
-   cout << "hits = %d" << endl;;
-   ptr = (GLuint *) buffer;
-
-   for (i = 0; i < hits; i++) 
-   {
-	   /*  for each hit  */
-	   names = *ptr;
-
-	   printf (" number of names for hit = %d\n", names); ptr++;
-	   printf("  z1 is %g;", (float) *ptr/0x7fffffff); ptr++;
-	   printf(" z2 is %g\n", (float) *ptr/0x7fffffff); ptr++;
-	   printf ("   the name is ");
-
-	   for (j = 0; j < names; j++) {     /*  for each name */
-		   printf ("%d ", *ptr); ptr++;
-	   }
-	   printf ("\n");
-   }
-}
-
-}
+
+}
Index: GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.h
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.h	(revision 2696)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.h	(revision 2697)
@@ -250,5 +250,5 @@
 #if DYNAMIC_OBJECTS_HACK
 
-	SceneGraphLeaf *mPendingDynamicObject;
+	DynamicObjectsContainer mPendingDynamicObjects;
 	DynamicObjectsContainer mDynamicObjects;
 
Index: GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp	(revision 2696)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.cpp	(revision 2697)
@@ -135,4 +135,7 @@
 		mViewPoint = Vector3(1199.53, 257.677, -457.145);
 		mViewDirection = Vector3(-0.71206, -0, -0.702108);
+
+		mViewPoint = Vector3(1188.22, 187.427, -381.739);
+		mViewDirection = Vector3(-0.963031, -0, -0.269365);
 	}
 
