Index: GTP/trunk/Lib/Vis/Preprocessing/src/Halton.h
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/Halton.h	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/Halton.h	(revision 1876)
@@ -8,14 +8,15 @@
 
 inline float halton(float baseRec, float prev) {
-  float r = 1 - prev - 1e-10f;
+  //  float r = 1 - prev - 1e-10f;
+  float r = 1.0f - prev;
   if (baseRec < r)
 	return prev + baseRec;
-	float h = baseRec;
-	float hh;
-	do {
-	  hh = h;
-	  h *= baseRec;
-	} while (h >= r);
-	return prev + hh + h - 1;
+  float h = baseRec;
+  float hh;
+  do {
+	hh = h;
+	h *= baseRec;
+  } while (h >= r);
+  return prev + hh + h - 1.0f;
 }
 
@@ -131,4 +132,12 @@
   }
 
+  void
+  GetNext(const int dimensions, float *p)
+  {
+	for (int i=0; i < dimensions; i++)
+	  p[i] = GetNumber(i+1);
+	GenerateNext();
+  }
+  
   void GenerateNext() {
 	index++;
Index: GTP/trunk/Lib/Vis/Preprocessing/src/QtGlRenderer.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/QtGlRenderer.cpp	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/QtGlRenderer.cpp	(revision 1876)
@@ -17,5 +17,6 @@
 #define USE_CG 1
 
-#ifdef USE_CG
+
+#if USE_CG
 #include <Cg/cg.h>
 #include <Cg/cgGL.h>
Index: GTP/trunk/Lib/Vis/Preprocessing/src/Environment.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/Environment.cpp	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/Environment.cpp	(revision 1876)
@@ -798,4 +798,5 @@
     return;
   }
+
   char buff[256];
   envStream.getline(buff, 255);
@@ -850,5 +851,5 @@
   for (;;) {
     // read in one line
-    envStream.getline(buff, 255);
+    envStream.getline(buff, MaxStringLength-1);
     
     if (!envStream)
Index: GTP/trunk/Lib/Vis/Preprocessing/src/RssPreprocessor.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/RssPreprocessor.cpp	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/RssPreprocessor.cpp	(revision 1876)
@@ -19,8 +19,7 @@
 
 
-  const bool pruneRays = false;
-  
-
-
+  const bool pruneInvalidRays = false;
+  
+  
 #define ADD_RAYS_IN_PLACE 1
   
@@ -498,10 +497,10 @@
   
   if (1) {
-	mDistributions.push_back(new SpatialBoxBasedDistribution(*this));
-// 	//  mDistributions.push_back(new DirectionBasedDistribution(*this));
-// 	mDistributions.push_back(new ObjectDirectionBasedDistribution(*this));
-// 	//  mDistributions.push_back(new ReverseObjectBasedDistribution(*this));
-// 	mDistributions.push_back(new ObjectBasedDistribution(*this));
-// 	mDistributions.push_back(new ReverseViewSpaceBorderBasedDistribution(*this));
+	// mDistributions.push_back(new SpatialBoxBasedDistribution(*this));
+	//  mDistributions.push_back(new DirectionBasedDistribution(*this));
+	mDistributions.push_back(new ObjectDirectionBasedDistribution(*this));
+	//  mDistributions.push_back(new ReverseObjectBasedDistribution(*this));
+	mDistributions.push_back(new ObjectBasedDistribution(*this));
+	mDistributions.push_back(new ReverseViewSpaceBorderBasedDistribution(*this));
   } else {
 	mDistributions.push_back(new GlobalLinesDistribution(*this));
@@ -547,5 +546,5 @@
 	
 	cout<<"Casting initial rays..."<<endl<<flush;
-	CastRays(rays, mVssRays, true, pruneRays);
+	CastRays(rays, mVssRays, true, pruneInvalidRays);
 
 	ExportObjectRays(mVssRays, 1546);
@@ -640,5 +639,5 @@
   rssPass++;
 
-	//	mDistributions.resize(1);
+  //  mDistributions.resize(1);
 
   mRssTree = new RssTree;
@@ -671,5 +670,5 @@
 
   // keep only rss
-  mDistributions.resize(1);
+  //  mDistributions.resize(1);
 
   while (1) {
@@ -703,5 +702,5 @@
 		  rays.NormalizePdf((float)rays.size());
 		  
-		  CastRays(rays, tmpVssRays, true, pruneRays);
+		  CastRays(rays, tmpVssRays, true, pruneInvalidRays);
 		  castRays += (int)rays.size();
 
Index: GTP/trunk/Lib/Vis/Preprocessing/src/default.env
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/default.env	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/default.env	(revision 1876)
@@ -90,7 +90,7 @@
 RssPreprocessor {
 	samplesPerPass 1000
-	initialSamples 1000000
+	initialSamples 2000000
 	vssSamples 20000000
-	vssSamplesPerPass 1000000
+	vssSamplesPerPass 3000000
 	useImportanceSampling true
 
@@ -273,8 +273,10 @@
 #	filename ../scripts/viewcells_atlanta.xml
 #	filename ../scripts/viewcells_soda5-2.xml
-#	filename ../data/soda/soda5-viewcells.xml
 #	filename ../scripts/viewcells_atlanta.xml
 #	filename ../data/soda/soda-viewcells.xml.gz
 #	filename ../data/test1/test-viewcells.xml
+
+
+#	filename ../data/soda/soda5-viewcells.xml
 
 #	filename ../data/soda/soda-viewcells-1000.xml.gz
Index: GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp	(revision 1876)
@@ -32,5 +32,5 @@
 
 // $$JB HACK
-#define USE_KD_PVS 0
+#define USE_KD_PVS 1
 
 #define KD_PVS_AREA (1e-5f)
@@ -2023,7 +2023,4 @@
   
   ViewCellContainer viewcells;
-  
-
-
   
   static Ray hray;
@@ -2084,5 +2081,5 @@
 		  // for directional sampling it is important to count only contributions
 		  // made in one direction!!!
-			// the other contributions of this sample will be counted for the oposite ray!
+		  // the other contributions of this sample will be counted for the oposite ray!
 
 			if (ray.mOriginObject && 
@@ -6047,4 +6044,5 @@
 
 #define PVS_ADD_DIRTY 1
+
 float
 VspOspViewCellsManager::ComputeSampleContribution(VssRay &ray,
@@ -6060,50 +6058,44 @@
   ViewCellContainer viewcells;
   
-
-	static Ray hray;
-	hray.Init(ray);
-	//hray.mFlags |= Ray::CULL_BACKFACES;
-	//Ray hray(ray);
-
-	//	if (ray.mPdf!=1.0f)
-	//	  cout<<ray.mPdf<<" ";
-
-	float tmin = 0, tmax = 1.0;
-
-	if (!GetViewSpaceBox().GetRaySegment(hray, tmin, tmax) || (tmin > tmax))
-		return 0;
-
-	Vector3 origin = hray.Extrap(tmin);
-	Vector3 termination = hray.Extrap(tmax);
-
-	ViewCell::NewMail();
-
-	// traverse the view space subdivision
-	CastLineSegment(origin, termination, viewcells);
-
-	if (storeViewCells)
+  static Ray hray;
+  hray.Init(ray);
+
+  float tmin = 0, tmax = 1.0;
+  
+  if (!GetViewSpaceBox().GetRaySegment(hray, tmin, tmax) || (tmin > tmax))
+	return 0;
+  
+  Vector3 origin = hray.Extrap(tmin);
+  Vector3 termination = hray.Extrap(tmax);
+  
+  ViewCell::NewMail();
+  
+  // traverse the view space subdivision
+  CastLineSegment(origin, termination, viewcells);
+  
+  if (storeViewCells)
 	{	
-		// copy viewcells memory efficiently
-		ray.mViewCells.reserve(viewcells.size());
-		ray.mViewCells = viewcells;
-	}
-
-	ViewCellContainer::const_iterator it = viewcells.begin();
-
-	Intersectable *terminationObj = GetIntersectable(ray, true);
-
+	  // copy viewcells memory efficiently
+	  ray.mViewCells.reserve(viewcells.size());
+	  ray.mViewCells = viewcells;
+	}
+  
+  ViewCellContainer::const_iterator it = viewcells.begin();
+  
+  Intersectable *terminationObj = GetIntersectable(ray, true);
+  
 #if SAMPLE_ORIGIN_OBJECTS
-	Intersectable *originObj = GetIntersectable(ray, false);
+  Intersectable *originObj = GetIntersectable(ray, false);
 #endif
-
-	for (; it != viewcells.end(); ++ it) 
-	{
-		ViewCell *viewcell = *it;
-
-		if (viewcell->GetValid())
+  
+  for (; it != viewcells.end(); ++ it) 
+	{
+	  ViewCell *viewcell = *it;
+	  
+	  if (viewcell->GetValid())
 		{	// if ray not outside of view space
-			float contribution;
-
-			if (terminationObj) 
+		  float contribution;
+		  
+		  if (terminationObj) 
 			{
 			  // todo: maybe not correct for kd node pvs
@@ -6116,60 +6108,57 @@
 			  ray.mRelativePvsContribution += contribution;
 			}
-
-			////////////////
-			//-- for directional sampling it is important to count 
-			//-- only contributions made in one direction!
-			//-- the other contributions of this sample will be counted for the opposite ray!
-
+		  
+		  ////////////////
+		  //-- for directional sampling it is important to count 
+		  //-- only contributions made in one direction!
+		  //-- the other contributions of this sample will be counted for the opposite ray!
+		  
 #if SAMPLE_ORIGIN_OBJECTS
-
-			if (originObj && 
-				viewcell->GetPvs().GetSampleContribution(originObj,
-														 ray.mPdf,
-														 contribution))
+		  
+		  if (originObj && 
+			  viewcell->GetPvs().GetSampleContribution(originObj,
+													   ray.mPdf,
+													   contribution))
 			{
-				++ ray.mPvsContribution;
-				ray.mRelativePvsContribution += contribution;
+			  ++ ray.mPvsContribution;
+			  ray.mRelativePvsContribution += contribution;
 			}
 #endif
 		}
 	}
-
-	if (!addRays)
-	{
-		return ray.mRelativePvsContribution;
-	}
-
-	// sampled objects are stored in the pvs
-	for (it = viewcells.begin(); it != viewcells.end(); ++ it) 
-	{
-		ViewCell *viewCell = *it;
-
-		if (!viewCell->GetValid())
-			break;
-
-		//$$JB hack
-
+  
+  if (!addRays) {
+	return ray.mRelativePvsContribution;
+  }
+  
+  // sampled objects are stored in the pvs
+  for (it = viewcells.begin(); it != viewcells.end(); ++ it)  {
+	ViewCell *viewCell = *it;
+	
+	if (!viewCell->GetValid())
+	  break;
+	
+	//$$JB hack
+	
 #if PVS_ADD_DIRTY
-		viewCell->GetPvs().AddSampleDirtyCheck(terminationObj, ray.mPdf);
+	viewCell->GetPvs().AddSampleDirtyCheck(terminationObj, ray.mPdf);
 #else
-		viewCell->GetPvs().AddSample(terminationObj, ray.mPdf);
+	viewCell->GetPvs().AddSample(terminationObj, ray.mPdf);
 #endif
-
+	
 #if SAMPLE_ORIGIN_OBJECTS
 #if PVS_ADD_DIRTY
-		viewCell->GetPvs().AddSampleDirtyCheck(originObj, ray.mPdf);
+	viewCell->GetPvs().AddSampleDirtyCheck(originObj, ray.mPdf);
 #else
-		viewCell->GetPvs().AddSample(originObj, ray.mPdf);
+	viewCell->GetPvs().AddSample(originObj, ray.mPdf);
 #endif
 #endif
-		if (viewCell->GetPvs().RequiresResort())
-		{
-			viewCell->GetPvs().Sort();			
-		}
-	}
-
-	return ABS_CONTRIBUTION_WEIGHT*ray.mPvsContribution +
-		(1.0f - ABS_CONTRIBUTION_WEIGHT)*ray.mRelativePvsContribution;
+	if (viewCell->GetPvs().RequiresResort()) {
+	  viewCell->GetPvs().Sort();			
+	}
+  }
+  
+  return ABS_CONTRIBUTION_WEIGHT*ray.mPvsContribution +
+	(1.0f - ABS_CONTRIBUTION_WEIGHT)*ray.mRelativePvsContribution;
 }
 
Index: GTP/trunk/Lib/Vis/Preprocessing/src/Makefile
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/Makefile	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/Makefile	(revision 1876)
@@ -1,5 +1,5 @@
 #############################################################################
 # Makefile for building: preprocessor
-# Generated by qmake (2.00a) (Qt 4.1.2) on: pá 8. XII 16:33:20 2006
+# Generated by qmake (2.00a) (Qt 4.1.2) on: pá 8. XII 21:21:57 2006
 # Project:  preprocessor.pro
 # Template: app
@@ -63,5 +63,5 @@
 	$(MAKE) -f $(MAKEFILE).Debug uninstall
 
-Makefile: preprocessor.pro  C:/Qt/4.1.2/mkspecs/win32-msvc2005\qmake.conf C:/Qt/4.1.2/mkspecs/qconfig.pri \
+Makefile: preprocessor.pro  C:/Qt/4.1.2/mkspecs/win32-msvc.net\qmake.conf C:/Qt/4.1.2/mkspecs/qconfig.pri \
 		C:\Qt\4.1.2\mkspecs\features\qt_config.prf \
 		C:\Qt\4.1.2\mkspecs\features\exclusive_builds.prf \
Index: GTP/trunk/Lib/Vis/Preprocessing/src/RssTree.h
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/RssTree.h	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/RssTree.h	(revision 1876)
@@ -629,5 +629,5 @@
   
   
-  Halton<5> halton;
+  HaltonSequence mHalton;
   
 
Index: GTP/trunk/Lib/Vis/Preprocessing/src/RssTree.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/RssTree.cpp	(revision 1874)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/RssTree.cpp	(revision 1876)
@@ -1795,5 +1795,4 @@
 {
   stack<RssTreeNode *> tstack;
-  PushRoots(tstack);
 	
   float sumPvsSize = 0.0f;
@@ -1809,5 +1808,7 @@
   for (int i=0; i < mRoots.size(); i++)
 	UpdateImportance(mRoots[i]);
-  
+
+  PushRoots(tstack);
+
   while (!tstack.empty()) {
     RssTreeNode *node = tstack.top();
@@ -1882,5 +1883,4 @@
   // works only with single root now!
   node = mRoots[0];
-  
   while (!node->IsLeaf()) {
 	RssTreeInterior *in = (RssTreeInterior *)node;
@@ -1889,5 +1889,6 @@
 	//	float p = in->GetRelativePosition(); 
 	float p = in->back->GetImportance()/(in->back->GetImportance() + in->front->GetImportance());
-	
+
+	//	cout<<"p = "<<p<<endl;
 	//	cout<<"axis="<<axis<<" pos="<<pos<<endl;
 	//	cout<<GetBBox(in)<<endl;
@@ -1897,8 +1898,10 @@
 	if (params[axis] < p) {
 	  node = in->back;
-	  params[axis] = params[axis] / p;
+	  if (p > Limits::Small)
+		params[axis] = params[axis] / p;
 	} else {
 	  node = in->front;
-	  params[axis] = (params[axis] - p) / ( 1.0f - p);
+	  if (p < 1.0f - Limits::Small)
+		params[axis] = (params[axis] - p) / (1.0f - p);
 	}
   }
@@ -1907,4 +1910,6 @@
   
   GenerateLeafRay(params, rays, node->bbox, node->dirBBox);
+
+
 }
 
@@ -1914,7 +1919,4 @@
 					  SimpleRayContainer &rays)
 {
-
-  
-
 
   stack<RssTreeNode *> tstack;
@@ -2228,7 +2230,6 @@
   
   int startIndex = (int)rays.size();
-
   //  Debug<<"B"<<flush;
-
+  
   AxisAlignedBox3 box = GetBBox(leaf);
   AxisAlignedBox3 dirBox = GetDirBBox(leaf);
@@ -2270,10 +2271,12 @@
 						 float *params,
 						 SimpleRayContainer &rays,
-						 const AxisAlignedBox3 &box,
-						 const AxisAlignedBox3 &dirBBox
+						 const AxisAlignedBox3 &sbox,
+						 const AxisAlignedBox3 &sDirBBox
 						 )
 {
-  Vector3 origin = bbox.GetPoint(Vector3(params[0], params[1], params[2]));
-  Vector3 dirVector = dirBBox.GetPoint(Vector3(params[3], params[4], 0.0f));
+  Vector3 origin = sbox.GetPoint(Vector3(params[0], params[1], params[2]));
+
+  Vector3 dirVector = sDirBBox.GetPoint(Vector3(params[3], params[4], 0.0f));
+
   Vector3 direction = VssRay::GetInvDirParam(dirVector.x, dirVector.y);
   
@@ -2282,9 +2285,9 @@
   float minT, maxT;
   
-  float boxSize = Magnitude(bbox.Size());
+  float boxSize = Magnitude(sbox.Size());
   // compute interection of the ray with the box
 #if 1
-  if (bbox.ComputeMinMaxT(origin, direction, &minT, &maxT) && minT < maxT)
-	dist = (maxT + 1e-2*boxSize);
+  if (sbox.ComputeMinMaxT(origin, direction, &minT, &maxT) && minT < maxT)
+	dist = (maxT + 0.0f*boxSize);
 #else
   dist = 0.5f*boxSize;
@@ -2292,6 +2295,5 @@
   
   origin += direction*dist;
-  
-  
+
   //Debug<<"dir vector.x="<<dirVector.x<<"direction'.x="<<atan2(direction.x, direction.y)<<endl;
   rays.push_back(SimpleRay(origin, direction));
@@ -2666,12 +2668,14 @@
 {
 
-  float param[5];
-
-  for (int i=0; i < numberOfRays; i++) {
-	halton.GetNext(param);
-	GenerateRay(param, rays);
-  }
-
-  return rays.size();
+  if (1) {
+	float param[5];
+	
+	for (int i=0; i < numberOfRays; i++) {
+	  mHalton.GetNext(5, param);
+	  GenerateRay(param, rays);
+	}
+
+	return rays.size();
+  }
   
   vector<RssTreeLeaf *> leaves;
@@ -2778,5 +2782,5 @@
 // if 1.0f then weighs = 1 1/2 1/3 1/4
 //float passSampleWeightDecay = 1.0f;
-float passSampleWeightDecay = 1.0f;
+float passSampleWeightDecay = 1000.0f;
 
 float
@@ -2786,28 +2790,28 @@
   float weight;
   if (1) 
-		weight = 1.0f/(passDiff + passSampleWeightDecay);
+	weight = 1.0f/(passDiff + passSampleWeightDecay);
   else 
-		switch (passDiff) {
-	  case 0:
-			//	  weight = 1.0f;
-			//	  break;
-		default:
-			weight = 1.0f;
-			break;
+	switch (passDiff) {
+	case 0:
+	  //	  weight = 1.0f;
+	  //	  break;
+	default:
+	  weight = 1.0f;
+	  break;
 	  // 	case 1:
-// 	  weight = 0.5f;
-// 	  break;
-// 	case 2:
-// 	  weight = 0.25f;
-// 	  break;
-// 	case 3:
-// 	  weight = 0.12f;
-// 	  break;
-// 	case 4:
-// 	  weight = 0.06f;
-// 	  break;
-// 	default:
-// 	  weight = 0.03f;
-// 	  break;
+	  // 	  weight = 0.5f;
+	  // 	  break;
+	  // 	case 2:
+	  // 	  weight = 0.25f;
+	  // 	  break;
+	  // 	case 3:
+	  // 	  weight = 0.12f;
+	  // 	  break;
+	  // 	case 4:
+	  // 	  weight = 0.06f;
+	  // 	  break;
+	  // 	default:
+	  // 	  weight = 0.03f;
+	  // 	  break;
 	}
   return weight;
Index: GTP/trunk/Lib/Vis/Preprocessing/src/ObjParser.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/ObjParser.cpp	(revision 1695)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/ObjParser.cpp	(revision 1876)
@@ -197,14 +197,20 @@
 	while (fgets(str, 80, file) != NULL)
 	{
-		switch (str[0]) 
+	  switch (str[0]) 
 		{
-		case 'v': // vertex 
-			{
-				float x, y, z; //cout << "v";	
-				sscanf(str + 1, "%f %f %f", &x, &y, &z);
-				vertices.push_back(Vector3(x,y,z));
-				//cout << "vertex: " << vertices.back() << endl;
-				break;
+		case 'v': // vertex  or normal
+		  {
+			switch (str[1]) {
+			case 'n' :
+			  // normal do nothing
+			  break;
+			default:
+			  float x, y, z; //cout << "v";	
+			  sscanf(str + 1, "%f %f %f", &x, &y, &z);
+			  vertices.push_back(Vector3(x,y,z));
+			  //cout << "vertex: " << vertices.back() << endl;
 			}
+			break;
+		  }
 		case 'f': 
 			{
Index: GTP/trunk/Lib/Vis/Preprocessing/src/InternalRayCaster.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/InternalRayCaster.cpp	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/InternalRayCaster.cpp	(revision 1876)
@@ -22,14 +22,14 @@
 
 int InternalRayCaster::CastRay(const SimpleRay &simpleRay,
-															 VssRayContainer &vssRays,
-															 const AxisAlignedBox3 &box,
-															 const bool castDoubleRay,
-															 const bool pruneInvalidRays
-															 )
-{
-	if (simpleRay.mType == Ray::GLOBAL_RAY)
-	  return CastGlobalRay(simpleRay, vssRays, box, pruneInvalidRays);
-	
-	//cout << "internal ray" << endl;
+							   VssRayContainer &vssRays,
+							   const AxisAlignedBox3 &box,
+							   const bool castDoubleRay,
+							   const bool pruneInvalidRays
+							   )
+{
+  if (simpleRay.mType == Ray::GLOBAL_RAY)
+	return CastGlobalRay(simpleRay, vssRays, box, pruneInvalidRays);
+  
+  //cout << "internal ray" << endl;
   static Ray ray;
   int hits = 0;
@@ -41,7 +41,9 @@
   //  sbox.Enlarge(Vector3(-Limits::Small));
   // $$ JB moved here from Validate routine
-  if (!box.IsInside(simpleRay.mOrigin)) {
-	return 0;
-  }
+
+//   if (!box.IsInside(simpleRay.mOrigin)) {
+// 	cout<<"out of box "<<simpleRay.mOrigin<<" "<<box<<endl;
+// 	return 0;
+//   }
   
   mPreprocessor.SetupRay(ray, simpleRay.mOrigin, simpleRay.mDirection);
Index: GTP/trunk/Lib/Vis/Preprocessing/src/preprocessor.pro
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/preprocessor.pro	(revision 1867)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/preprocessor.pro	(revision 1876)
@@ -19,5 +19,6 @@
 
 CONFIG(qt) {
-win32:INCLUDEPATH += "c:/Program Files/NVIDIA Corporation/Cg/include"
+win32:INCLUDEPATH += "d:/Programs/NVIDIA Corporation/Cg/include"
+#win32:INCLUDEPATH += "c:/Program Files/NVIDIA Corporation/Cg/include"
 }
 
@@ -31,5 +32,6 @@
 
 CONFIG(qt) {
-win32:LIBPATH += "c:/Program Files/NVIDIA Corporation/Cg/lib"
+win32:LIBPATH += "d:/Programs/NVIDIA Corporation/Cg/lib"
+#win32:LIBPATH += "c:/Program Files/NVIDIA Corporation/Cg/lib"
 }
 
