Index: /GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjReader.vcproj
===================================================================
--- /GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjReader.vcproj	(revision 2183)
+++ /GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/src/ObjReader.vcproj	(revision 2199)
@@ -4,5 +4,5 @@
 	Version="7.10"
 	Name="ObjReader"
-	ProjectGUID="{7319E499-473D-4CE5-9983-725D6E68A55D}"
+	ProjectGUID="{5776B40B-5FCE-46D5-8F7C-3912E24E0638}"
 	Keyword="Win32Proj">
 	<Platforms>
Index: /GTP/trunk/Lib/Vis/Preprocessing/scripts/preprocess_visibility_internal.sh
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/scripts/preprocess_visibility_internal.sh	(revision 2162)
+++ /GTP/trunk/Lib/Vis/Preprocessing/scripts/preprocess_visibility_internal.sh	(revision 2199)
@@ -13,6 +13,6 @@
 export PATH=$PATH:../bin
 
-#NUM_SAMPLE_RAYS=1000000000
-NUM_SAMPLE_RAYS=20000000
+NUM_SAMPLE_RAYS=200000000
+#NUM_SAMPLE_RAYS=50000000
 
 $PREPROCESSOR -total_samples=$NUM_SAMPLE_RAYS \
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj	(revision 2199)
@@ -247,6 +247,6 @@
 		<Configuration
 			Name="release_noqt|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
 			ConfigurationType="1"
 			CharacterSet="2">
@@ -281,5 +281,5 @@
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="..\src\GL;..\lib\release;..\..\Preprocessing\lib\release;..\..\..\..\..\..\NonGTP\Boost\lib;..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;..\..\..\..\..\..\NonGTP\Zlib\lib;..\..\..\..\..\..\NonGTP\Devil\lib;..\MultiLevelRayTracing\RTScene\Release;..\MultiLevelRayTracing\RTWorld\Release"
-				GenerateDebugInformation="TRUE"
+				GenerateDebugInformation="FALSE"
 				SubSystem="1"
 				LargeAddressAware="0"
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.icproj
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.icproj	(revision 1292)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.icproj	(revision 2199)
@@ -22,6 +22,6 @@
 				Name="CppCmplrTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost"
-				PreprocessorDefinitions="WIN32;_DEBUG;_LIB;"
+				AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;Timer;..\src\sparsehash\src;..\src\sparsehash\src\windows;..\src\sparsehash\src\google;..\src\sparsehash\src\google\sparsehash"
+				PreprocessorDefinitions="WIN32;_DEBUG;_LIB;NO_QT"
 				MinimalRebuild="1"
 				BasicRuntimeChecks="3"
@@ -29,4 +29,5 @@
 				RuntimeTypeInfo="1"
 				UsePrecompiledHeader="0"
+				BrowseInformation="1"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="1"
@@ -66,16 +67,22 @@
 			<Tool 
 				Name="CppCmplrTool"
-				Optimization="0"
-				InlineFunctionExpansion="0"
-				FavorSizeOrSpeed="0"
+				Optimization="3"
+				GlobalOptimizations="1"
+				InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="1"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="1"
+				EnableFiberSafeOptimizations="1"
+				OptimizeForProcessor="0"
 				OptimizeForWindowsApplication="1"
-				AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost"
-				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+				AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;Timer"
+				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;USE_VERBOSE_PVS"
 				ExceptionHandling="1"
 				RuntimeLibrary="2"
 				DisableLanguageExtensions="0"
 				ForceConformanceInForLoopScope="0"
-				RuntimeTypeInfo="1"
+				RuntimeTypeInfo="0"
 				UsePrecompiledHeader="0"
+				BrowseInformation="1"
 				WarningLevel="2"
 				Detect64BitPortabilityProblems="1"
@@ -211,4 +218,119 @@
 			<Tool 
 				Name="GeneralTool"
+				OutputDirectory="Release"
+				IntermediateDirectory="Release"
+				ConfigurationType="4"
+				CharacterSet="2"/>
+			<Tool 
+				Name="DebugTool"/>
+			<Tool 
+				Name="CppCmplrTool"
+				Optimization="3"
+				GlobalOptimizations="1"
+				InlineFunctionExpansion="0"
+				EnableIntrinsicFunctions="1"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="1"
+				EnableFiberSafeOptimizations="1"
+				OptimizeForProcessor="3"
+				OptimizeForWindowsApplication="1"
+				AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(CG_INC_PATH)&quot;;Timer;..\src\sparsehash\src\google\sparsehash;..\src\sparsehash\src\windows;..\src\sparsehash\src\google;..\src\sparsehash\src;..\src\ootl\;..\src\ootl\src\;..\src\ootl\src\cpp;..\src\ootl\src\cpp\include\;..\src\ootl\src\include\ootl;..\src\ootl\src\include\ootl\sandbox;..\src\ootl\src\cpp\include\ootl\mswin"
+				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;USE_QT;USE_HASH_PVS"
+				ExceptionHandling="1"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				DisableLanguageExtensions="0"
+				ForceConformanceInForLoopScope="0"
+				RuntimeTypeInfo="0"
+				UsePrecompiledHeader="0"
+				BrowseInformation="1"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="1"
+				DebugInformationFormat="3"/>
+			<Tool 
+				Name="LinkerTool"
+				DelayImpLib=""/>
+			<Tool 
+				Name="LibrarianTool"
+				OutputFile="../lib/Release/$(ProjectName).lib"/>
+			<Tool 
+				Name="ResCmplrTool"/>
+			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="BscMakeTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="CustomTool"/>
+			<Tool 
+				Name="CustomNodeTool"/>
+		</Configuration>
+		<Configuration 
+			Name="release_noqt|Win32">
+			<Tool 
+				Name="GeneralTool"
+				OutputDirectory="$(ConfigurationName)"
+				IntermediateDirectory="$(ConfigurationName)"
+				ConfigurationType="4"
+				CharacterSet="2"/>
+			<Tool 
+				Name="DebugTool"/>
+			<Tool 
+				Name="CppCmplrTool"
+				Optimization="3"
+				GlobalOptimizations="1"
+				InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="1"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="1"
+				EnableFiberSafeOptimizations="1"
+				OptimizeForProcessor="0"
+				OptimizeForWindowsApplication="1"
+				AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing;Timer"
+				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;NO_QT"
+				StringPooling="1"
+				ExceptionHandling="1"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				DisableLanguageExtensions="0"
+				ForceConformanceInForLoopScope="0"
+				RuntimeTypeInfo="0"
+				UsePrecompiledHeader="0"
+				BrowseInformation="1"
+				WarningLevel="2"
+				Detect64BitPortabilityProblems="1"
+				DebugInformationFormat="3"/>
+			<Tool 
+				Name="LinkerTool"
+				DelayImpLib=""/>
+			<Tool 
+				Name="LibrarianTool"
+				OutputFile="../lib/Release/$(ProjectName).lib"/>
+			<Tool 
+				Name="ResCmplrTool"/>
+			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="BscMakeTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="CustomTool"/>
+			<Tool 
+				Name="CustomNodeTool"/>
+		</Configuration>
+		<Configuration 
+			Name="Release_Qt|Win32">
+			<Tool 
+				Name="GeneralTool"
 				OutputDirectory="$(ConfigurationName)"
 				IntermediateDirectory="$(ConfigurationName)"
@@ -224,6 +346,6 @@
 				OptimizeForProcessor="3"
 				OptimizeForWindowsApplication="1"
-				AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing"
-				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL"
+				AdditionalIncludeDirectories="..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\MultiLevelRayTracing;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(CG_INC_PATH)&quot;;Timer"
+				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;USE_QT;ATI"
 				ExceptionHandling="1"
 				RuntimeLibrary="2"
@@ -232,4 +354,5 @@
 				RuntimeTypeInfo="1"
 				UsePrecompiledHeader="0"
+				BrowseInformation="1"
 				WarningLevel="2"
 				Detect64BitPortabilityProblems="1"
@@ -269,4 +392,10 @@
 			RelativePath=".\Beam.h"/>
 		<File 
+			RelativePath=".\Timer\BenchTimer.cpp"/>
+		<File 
+			RelativePath=".\Timer\BenchTimer.h"/>
+		<File 
+			RelativePath=".\BitVectorPvs.h"/>
+		<File 
 			RelativePath=".\BoostPreprocessorThread.cpp"/>
 		<File 
@@ -283,4 +412,8 @@
 			RelativePath=".\Camera.h"/>
 		<File 
+			RelativePath=".\CombinedPreprocessor.cpp"/>
+		<File 
+			RelativePath=".\CombinedPreprocessor.h"/>
+		<File 
 			RelativePath=".\common.cpp"/>
 		<File 
@@ -289,4 +422,6 @@
 			RelativePath=".\Containers.h"/>
 		<File 
+			RelativePath=".\DefaultPvs.h"/>
+		<File 
 			RelativePath=".\dual_depth.cg"/>
 		<File 
@@ -307,4 +442,12 @@
 			RelativePath=".\glInterface.h"/>
 		<File 
+			RelativePath=".\GlobalLinesRenderer.cpp"/>
+		<File 
+			RelativePath=".\GlobalLinesRenderer.h"/>
+		<File 
+			RelativePath=".\GvsPreprocessor.cpp"/>
+		<File 
+			RelativePath=".\GvsPreprocessor.h"/>
+		<File 
 			RelativePath=".\GzBinFileInputStream.cpp"/>
 		<File 
@@ -323,13 +466,29 @@
 			RelativePath=".\Halton.h"/>
 		<File 
+			RelativePath=".\HashPvs.h"/>
+		<File 
 			RelativePath=".\HierarchyManager.cpp"/>
 		<File 
 			RelativePath=".\HierarchyManager.h"/>
 		<File 
+			RelativePath=".\IntelRayCaster.cpp"/>
+		<File 
+			RelativePath=".\IntelRayCaster.h"/>
+		<File 
+			RelativePath=".\InternalRayCaster.cpp"/>
+		<File 
+			RelativePath=".\InternalRayCaster.h"/>
+		<File 
+			RelativePath=".\Intersectable.cpp"/>
+		<File 
 			RelativePath=".\Intersectable.h"/>
 		<File 
-			RelativePath=".\KdIntersectable.cpp"/>
-		<File 
-			RelativePath=".\KdIntersectable.h"/>
+			RelativePath=".\IntersectableWrapper.cpp"/>
+		<File 
+			RelativePath=".\IntersectableWrapper.h"/>
+		<File 
+			RelativePath=".\IntersectionBoundingBoxConverter.cpp"/>
+		<File 
+			RelativePath=".\IntersectionBoundingBoxConverter.h"/>
 		<File 
 			RelativePath=".\KdTree.cpp"/>
@@ -349,4 +508,8 @@
 			RelativePath=".\Matrix4x4.h"/>
 		<File 
+			RelativePath=".\Timer\merror.cpp"/>
+		<File 
+			RelativePath=".\Timer\merror.h"/>
+		<File 
 			RelativePath=".\Mesh.cpp"/>
 		<File 
@@ -357,8 +520,26 @@
 			RelativePath=".\MeshKdTree.h"/>
 		<File 
+			RelativePath=".\Timer\mstring.h"/>
+		<File 
+			RelativePath=".\Mutation.cpp"/>
+		<File 
+			RelativePath=".\Mutation.h"/>
+		<File 
 			RelativePath=".\MutualVisibility.cpp"/>
 		<File 
 			RelativePath=".\MutualVisibility.h"/>
 		<File 
+			RelativePath=".\ObjectPvs.cpp"/>
+		<File 
+			RelativePath=".\ObjectPvs.h"/>
+		<File 
+			RelativePath=".\ObjectsParser.cpp"/>
+		<File 
+			RelativePath=".\ObjectsParser.h"/>
+		<File 
+			RelativePath=".\ObjExporter.cpp"/>
+		<File 
+			RelativePath=".\ObjExporter.h"/>
+		<File 
 			RelativePath=".\ObjParser.cpp"/>
 		<File 
@@ -375,4 +556,8 @@
 			RelativePath=".\Parser.h"/>
 		<File 
+			RelativePath=".\Timer\PerfTimer.h"/>
+		<File 
+			RelativePath=".\Timer\PerfTimerSkeleton.h"/>
+		<File 
 			RelativePath=".\Plane3.cpp"/>
 		<File 
@@ -430,6 +615,26 @@
 					Outputs=""/>
 			</FileConfiguration>
+			<FileConfiguration 
+				Name="release_noqt|Win32">
+				<Tool 
+					Name="CustomTool"
+					Description=""
+					CommandLine=""
+					Outputs=""/>
+			</FileConfiguration>
+			<FileConfiguration 
+				Name="Release_Qt|Win32">
+				<Tool 
+					Name="CustomTool"
+					Description=""
+					CommandLine=""
+					Outputs=""/>
+			</FileConfiguration>
 		</File>
 		<File 
+			RelativePath=".\PreprocessorFactory.cpp"/>
+		<File 
+			RelativePath=".\PreprocessorFactory.h"/>
+		<File 
 			RelativePath=".\PreprocessorThread.cpp"/>
 		<File 
@@ -467,18 +672,44 @@
 					Outputs=""/>
 			</FileConfiguration>
+			<FileConfiguration 
+				Name="release_noqt|Win32">
+				<Tool 
+					Name="CustomTool"
+					Description=""
+					CommandLine=""
+					Outputs=""/>
+			</FileConfiguration>
+			<FileConfiguration 
+				Name="Release_Qt|Win32">
+				<Tool 
+					Name="CustomTool"
+					Description=""
+					CommandLine=""
+					Outputs=""/>
+			</FileConfiguration>
 		</File>
 		<File 
-			RelativePath=".\Pvs.cpp"/>
-		<File 
 			RelativePath=".\Pvs.h"/>
 		<File 
+			RelativePath=".\PvsBase.h"/>
+		<File 
+			RelativePath=".\PvsDefinitions.h"/>
+		<File 
 			RelativePath=".\Ray.cpp"/>
 		<File 
 			RelativePath=".\Ray.h"/>
 		<File 
+			RelativePath=".\RayCaster.cpp"/>
+		<File 
+			RelativePath=".\RayCaster.h"/>
+		<File 
 			RelativePath=".\RayInfo.cpp"/>
 		<File 
 			RelativePath=".\RayInfo.h"/>
 		<File 
+			RelativePath=".\Timer\RDTSCTimer.cpp"/>
+		<File 
+			RelativePath=".\Timer\RDTSCTimer.h"/>
+		<File 
 			RelativePath=".\Rectangle3.cpp"/>
 		<File 
@@ -493,4 +724,8 @@
 			RelativePath=".\RenderSimulator.h"/>
 		<File 
+			RelativePath=".\RenderTexture.cpp"/>
+		<File 
+			RelativePath=".\RenderTexture.h"/>
+		<File 
 			RelativePath=".\ResourceManager.h"/>
 		<File 
@@ -517,4 +752,6 @@
 			RelativePath=".\Statistics.h"/>
 		<File 
+			RelativePath=".\SubdivisionCandidate.cpp"/>
+		<File 
 			RelativePath=".\SubdivisionCandidate.h"/>
 		<File 
@@ -523,4 +760,12 @@
 			RelativePath=".\Tetrahedron3.h"/>
 		<File 
+			RelativePath=".\Trackball.cpp"/>
+		<File 
+			RelativePath=".\Trackball.h"/>
+		<File 
+			RelativePath=".\TraversalTree.cpp"/>
+		<File 
+			RelativePath=".\TraversalTree.h"/>
+		<File 
 			RelativePath=".\Triangle3.cpp"/>
 		<File 
@@ -585,28 +830,28 @@
 			RelativePath=".\X3dParser.h"/>
 		<File 
+			RelativePath="..\include\AxisAlignedBox3.h"/>
+		<File 
+			RelativePath="..\include\Containers.h"/>
+		<File 
+			RelativePath="..\include\ExactPreprocessor.h"/>
+		<File 
+			RelativePath="..\include\KdTree.h"/>
+		<File 
+			RelativePath="..\include\Mesh.h"/>
+		<File 
+			RelativePath="..\include\Plane3.h"/>
+		<File 
+			RelativePath="..\include\Preprocessor.h"/>
+		<File 
+			RelativePath="..\include\SamplingPreprocessor.h"/>
+		<File 
+			RelativePath="..\include\SceneGraph.h"/>
+		<File 
+			RelativePath="..\include\Vector3.h"/>
+		<File 
+			RelativePath="..\include\ViewCell.h"/>
+		<File 
 			RelativePath=".\X3dParserXerces.h"/>
 		<File 
-			RelativePath="..\include\AxisAlignedBox3.h"/>
-		<File 
-			RelativePath="..\include\Containers.h"/>
-		<File 
-			RelativePath="..\include\ExactPreprocessor.h"/>
-		<File 
-			RelativePath="..\include\KdTree.h"/>
-		<File 
-			RelativePath="..\include\Mesh.h"/>
-		<File 
-			RelativePath="..\include\Plane3.h"/>
-		<File 
-			RelativePath="..\include\Preprocessor.h"/>
-		<File 
-			RelativePath="..\include\SamplingPreprocessor.h"/>
-		<File 
-			RelativePath="..\include\SceneGraph.h"/>
-		<File 
-			RelativePath="..\include\Vector3.h"/>
-		<File 
-			RelativePath="..\include\ViewCell.h"/>
-		<File 
 			RelativePath=".\GlRenderer.cpp"/>
 		<File 
@@ -617,5 +862,91 @@
 			RelativePath=".\Renderer.h"/>
 		<File 
-			RelativePath=".\vtune\Preprocessor.vpj"/>
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_adapters.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_benchmark.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_bool_stack.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_dictionary.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_fft.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_fft_test.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_functions.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_generators.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_hash.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_iterable.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_iterators.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_list.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_map.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_misc.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\mswin\ootl_mswin.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\mswin\ootl_mswin_console.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\mswin\ootl_mswin_gdi.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\mswin\ootl_mswin_simple_win.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_object.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_output.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_polar.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_predicate.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_procedure.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_ptr.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_stack.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_string.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_string_utils.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_tester.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_timer.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\sandbox\ootl_valarray.hpp"/>
+		<File 
+			RelativePath=".\ootl\src\include\ootl\ootl_vlist.hpp"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\sparsehash\config.h"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\dense_hash_map"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\dense_hash_set"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\sparsehash\densehashtable.h"/>
+		<File 
+			RelativePath=".\sparsehash\src\windows\hash_fun.h"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\sparsehash\hash_fun.h"/>
+		<File 
+			RelativePath=".\sparsehash\src\windows\hash_map.h"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\sparse_hash_map"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\sparse_hash_set"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\sparsehash\sparsehashtable.h"/>
+		<File 
+			RelativePath=".\sparsehash\src\google\sparsetable"/>
+		<File 
+			RelativePath=".\sparsehash\src\windows\stl_hash_fun.h"/>
+		<File 
+			RelativePath=".\VTune\Preprocessor.vpj"/>
 	</Files>
 </VisualStudioProject>
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.h	(revision 2176)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.h	(revision 2199)
@@ -623,4 +623,6 @@
 								  const float width) const;
 
+
+
 	//////////////////////////////////////////////////////////////////
 
@@ -704,6 +706,6 @@
 						VssRayContainer &vssRays) const;
 
-	int CastPassSamples2(const int samplesPerPass, 
-						 VssRayContainer &passSamples) const;
+	int CastEvaluationSamples(const int samplesPerPass, 
+							  VssRayContainer &passSamples);// const;
 
 	/** Parse the options from the environment file.
@@ -797,4 +799,5 @@
 
 
+	ofstream mStats;
 	Preprocessor *mPreprocessor;
 	
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/HashPvs.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/HashPvs.h	(revision 2176)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/HashPvs.h	(revision 2199)
@@ -13,5 +13,5 @@
 
 
-template<typename T>
+/*template<typename T>
 struct my_hash_compare
 {
@@ -32,5 +32,5 @@
       return a < b;
    }
-};
+};*/
 
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj	(revision 2187)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj	(revision 2199)
@@ -260,6 +260,6 @@
 		<Configuration
 			Name="release_noqt|Win32"
-			OutputDirectory="$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
 			ConfigurationType="4"
 			CharacterSet="2">
@@ -268,5 +268,5 @@
 				Optimization="3"
 				GlobalOptimizations="TRUE"
-				InlineFunctionExpansion="0"
+				InlineFunctionExpansion="2"
 				EnableIntrinsicFunctions="TRUE"
 				FavorSizeOrSpeed="1"
@@ -495,7 +495,4 @@
 			<File
 				RelativePath=".\HashPvs.h">
-			</File>
-			<File
-				RelativePath=".\HashPvs2.h">
 			</File>
 			<File
@@ -1166,8 +1163,8 @@
 			</File>
 			<File
+				RelativePath=".\sparsehash\src\windows\hash_fun.h">
+			</File>
+			<File
 				RelativePath=".\sparsehash\src\google\sparsehash\hash_fun.h">
-			</File>
-			<File
-				RelativePath=".\sparsehash\src\windows\hash_fun.h">
 			</File>
 			<File
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.cpp	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.cpp	(revision 2199)
@@ -143,5 +143,6 @@
 VssPreprocessor::ExportRays(const char *filename,
 							const VssRayContainer &vssRays,
-							const int number
+							const int number,
+							const bool exportScene
 							)
 {
@@ -422,5 +423,6 @@
 
 				mViewCellsManager->GetViewPoint(viewpoint);
-				const Vector3 direction = GetDirection(viewpoint, &mViewCellsManager->GetViewSpaceBox());
+				AxisAlignedBox3 vspBox = mViewCellsManager->GetViewSpaceBox();
+				const Vector3 direction = GetDirection(viewpoint, &vspBox);
 
 				const SimpleRay sray(viewpoint, direction,
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.h	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.h	(revision 2199)
@@ -897,22 +897,22 @@
 		@param rightPvs updates the right pvs
 	*/
-	void EvalHeuristics(const SortableEntry &ve, float &pvsLeft, float &pvsRight) const;
+	inline void EvalHeuristics(const SortableEntry &ve, float &pvsLeft, float &pvsRight) const;
 
 	/** Evaluates contribution of min event to pvs
 	*/
-	int EvalMinEventContribution(
+	inline int EvalMinEventContribution(
 		const VssRay &ray, const bool isTermination) const;
 
 	/** Evaluates contribution of max event to pvs
 	*/
-	int EvalMaxEventContribution(
+	inline int EvalMaxEventContribution(
 		const VssRay &ray, const bool isTermination) const;
 
 	/** Evaluates contribution of kd leaf when encountering a min event
 	*/
-	int EvalMinEventContribution(KdLeaf *leaf) const;
+	inline int EvalMinEventContribution(KdLeaf *leaf) const;
 	/**  Evaluates contribution of kd leaf when encountering a max event
 	*/
-	int EvalMaxEventContribution(KdLeaf *leaf) const;
+	inline int EvalMaxEventContribution(KdLeaf *leaf) const;
 
 	/** Prepares objects for the heuristics.
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.cpp	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.cpp	(revision 2199)
@@ -27,5 +27,6 @@
 #define USE_VOLUMES_FOR_HEURISTICS 1
 #define TEST_POWERPLANT 0
-  
+#define USE_BETTER_RENDERCOST_EST 0
+
 //int BvhNode::sMailId = 10000;
 //int BvhNode::sReservedMailboxes = 1;
@@ -172,4 +173,6 @@
 	}
 }
+
+
 
 /******************************************************************/
@@ -673,5 +676,5 @@
 	// high avg ray contri, the result is influenced by undersampling
 	splitCandidate.SetAvgRayContribution(avgRayContri);
-	const float viewSpaceVol =  GetViewSpaceVolume();
+	const float viewSpaceVol = GetViewSpaceVolume();
 
 	const float oldVolume = EvalViewCellsVolume(leaf->mObjects) / viewSpaceVol;
@@ -1046,9 +1049,18 @@
 		Intersectable *obj = (*cit).mObject;
 
-		const float renderCost = mViewCellsManager->EvalRenderCost(obj);
+#if USE_BETTER_RENDERCOST_EST
+		const float renderCost = ViewCellsManager::EvalRenderCost(obj);
 		
 		objectsLeft += renderCost;
 		objectsRight -= renderCost;
 
+		const bool noValidSplit = ((objectsLeft <= Limits::Small) || (objectsRight <= Limits::Small));
+
+#else
+		++ objectsLeft;
+		-- objectsRight;
+
+		const bool noValidSplit = !objectsLeft || !objectsRight;
+#endif
 		const AxisAlignedBox3 obox = obj->GetBox();
 
@@ -1070,5 +1082,4 @@
 		ar = rbox.SurfaceArea();
 
-		const bool noValidSplit = ((objectsLeft <= Limits::Small) || (objectsRight <= Limits::Small));
 		const float sum = noValidSplit ? 1e25f : objectsLeft * al + objectsRight * ar;
       
@@ -1317,7 +1328,13 @@
 	float volRight = totalVol;
 	
+#if USE_BETTER_RENDERCOST_EST
 	const float nTotalObjects = EvalAbsCost(tData.mNode->mObjects);
 	float nObjectsLeft = 0;
 	float nObjectsRight = nTotalObjects;
+#else
+	const int nTotalObjects = (int)EvalAbsCost(tData.mNode->mObjects);
+	int nObjectsLeft = 0;
+	int nObjectsRight = (int)nTotalObjects;
+#endif
 
 	const float viewSpaceVol = 
@@ -1362,6 +1379,8 @@
 		EvalHeuristicsContribution(object, volLeft, volRight);
 
-		const float rc = mViewCellsManager->EvalRenderCost(object);
-
+#if USE_BETTER_RENDERCOST_EST
+
+		const float rc = ViewCellsManager::EvalRenderCost(object);
+		
 		nObjectsLeft += rc;
 		nObjectsRight -= rc;
@@ -1370,5 +1389,13 @@
 		const bool noValidSplit = ((nObjectsLeft <= Limits::Small) || 
 								   (nObjectsRight <= Limits::Small));
-
+#else
+		++ nObjectsLeft;
+		-- nObjectsRight;
+
+		// split is only valid if #objects on left and right is not zero
+		const bool noValidSplit = !nObjectsLeft || !nObjectsRight;
+
+#endif
+		
 		// the heuristics
 	    const float sum = noValidSplit ? 
@@ -1378,5 +1405,6 @@
 		if (printStats)
 		{
-			PrintHeuristics(nObjectsRight, sum, volLeft, volRight, viewSpaceVol,
+			PrintHeuristics(nObjectsRight, sum, volLeft, 
+							volRight, viewSpaceVol,
 							sumStats, vollStats, volrStats);
 		}
@@ -1432,5 +1460,7 @@
 void BvHierarchy::PrepareLocalSubdivisionCandidates(const BvhTraversalData &tData,
 													const int axis)											
-{mSort2Timer.Entry();
+{
+	mSortTimer.Entry();
+	
 	//-- insert object queries
 	ObjectContainer *objects = mUseGlobalSorting ? 
@@ -1438,5 +1468,6 @@
 
 	CreateLocalSubdivisionCandidates(*objects, &mSubdivisionCandidates, !mUseGlobalSorting, axis);
-		mSort2Timer.Exit();
+	
+	mSortTimer.Exit();
 }
 
@@ -1466,9 +1497,5 @@
 	for (oit = objects.begin(); oit < oit_end; ++ oit)
 	{
-		Intersectable *object = *oit;
-		const AxisAlignedBox3 &box = object->GetBox();
-		const float midPt = (box.Min(axis) + box.Max(axis)) * 0.5f;
-
-		(*subdivisionCandidates)->push_back(SortableEntry(object, midPt));
+		(*subdivisionCandidates)->push_back(SortableEntry(*oit, (*oit)->GetBox().Center(axis)));
 	}
 
@@ -1502,12 +1529,12 @@
 	const bool onlyUnmailed = true;
 
-	const int numRays = CollectViewCells(tData.mNode->mObjects, 
-										 viewCells, 
-										 setCounter, 
-										 onlyUnmailed);
-
-	//cout << "number of rays: " << numRays << endl;
+	
+	CollectViewCells(tData.mNode->mObjects, 
+					 viewCells, 
+					 setCounter, 
+					 onlyUnmailed);
 
 	ViewCellContainer::const_iterator vit, vit_end = viewCells.end();
+
 	for (vit = viewCells.begin(); vit != vit_end; ++ vit)
 	{
@@ -1520,5 +1547,5 @@
 	}
 
-	// we will mail view cells switching to the back side
+	// mail view cells that go from front node to back node
 	ViewCell::NewMail();
 	
@@ -1536,7 +1563,10 @@
 	// (also multiple times, if they are pierced by several rays)
 	ViewCellContainer viewCells;
+
 	const bool useMailboxing = false;
-
-	CollectViewCells(obj, viewCells, useMailboxing, false, true);
+	const bool setCounter = false;
+	const bool onlyUnmailedRays = true;
+
+	CollectViewCells(obj, viewCells, useMailboxing, setCounter, onlyUnmailedRays);
 
 	// classify view cells and compute volume contri accordingly
@@ -1551,4 +1581,5 @@
 		// view cells can also be seen from left child node
 		ViewCell *viewCell = *vit;
+
 #if USE_VOLUMES_FOR_HEURISTICS
 		const float vol = viewCell->GetVolume();
@@ -2248,5 +2279,5 @@
 	int nViewCells = 0;
 
-	//ViewCell::NewMail();
+	ViewCell::NewMail();
 	ObjectContainer::const_iterator oit, oit_end = objects.end();
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.h	(revision 2176)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.h	(revision 2199)
@@ -52,10 +52,11 @@
 			   );
 	
-
-  bool
-  ExportRays(const char *filename,
-			 const VssRayContainer &vssRays,
-			 const int number
-			 );
+virtual bool
+	ExportRays(const char *filename,
+			   const VssRayContainer &vssRays,
+			   const int number,
+			   const bool exportScene = false
+			   );
+ 
 
   int
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp	(revision 2199)
@@ -83,34 +83,59 @@
 	mViewCellsTree->SetViewCellsManager(this);
 	mSamplesStat.Reset();
-}
-
-
-int ViewCellsManager::CastPassSamples2(const int samplesPerPass, 
-									   VssRayContainer &passSamples) const
-{
+	mStats.open("mystats.log");
+}
+
+
+int ViewCellsManager::CastEvaluationSamples(const int samplesPerPass,
+											VssRayContainer &passSamples)
+{
+	static int pass = 0;
+	static int totalRays = 0;
+
+	SimpleRayContainer rays;
+	rays.reserve(samplesPerPass);
+	passSamples.reserve(samplesPerPass * 2);
+  
 	long startTime = GetTime();
 
-	SimpleRayContainer simpleRays;
-	
-	simpleRays.reserve(samplesPerPass);
-	passSamples.reserve(samplesPerPass * 2); // always creates double rays
-
-	// create one third of each type
-	int castRays = 0;
-
-	mMixtureDistribution->GenerateSamples(mSamplesPerPass, simpleRays);
-
-	cout << "generated " << (int)simpleRays.size() << " samples in " 
-		 << TimeDiff(startTime, GetTime()) * 1e-3 << " secs" << endl;
-
-	startTime = GetTime();
-
-	// shoot simple ray and add it to importance samples
-	mPreprocessor->CastRays(simpleRays, passSamples, true);
-
-    cout << "cast " <<  samplesPerPass << " samples in " 
-		 << TimeDiff(startTime, GetTime()) * 1e-3 << " secs" << endl;
+  	//cout<<"Progress :"<<i/1e6f<<"M rays, "<<(100.0f*i)/mTotalSamples<<"%"<<endl;
+	
+	//rays.clear();
+	//passSamples.clear();
+	
+	mMixtureDistribution->GenerateSamples(samplesPerPass, rays);
+	
+	bool doubleRays = true;
+	bool pruneInvalidRays = true;
+	mPreprocessor->CastRays(rays, passSamples, doubleRays, pruneInvalidRays);
 
 	mMixtureDistribution->ComputeContributions(passSamples);
+	mMixtureDistribution->UpdateDistributions(passSamples);
+	
+	Real time = TimeDiff(startTime, GetTime());
+	PrintPvsStatistics(mStats);
+	
+	mStats <<
+		"#Pass\n" << pass ++ <<endl<<
+		"#Time\n" << time <<endl<<
+		"#TotalSamples\n" <<totalRays<<endl;
+
+	float last = 0.0f;
+
+	for (int k=0; k < 6; ++ k) 
+	{
+		float ratio = 0.0f;
+
+		if (k < mMixtureDistribution->mDistributions.size()) 
+		{
+			ratio = mMixtureDistribution->mDistributions[k]->mRatio-last;
+			last = mMixtureDistribution->mDistributions[k]->mRatio;
+		}
+
+		mStats <<  "#Distribution"<<k<<endl<< ratio<<endl;
+	}
+	
+
+	totalRays += samplesPerPass;
 
 	return (int)passSamples.size();
@@ -173,12 +198,4 @@
 		Debug << mStrategies[i] << " ";
 	Debug << endl;
-
-	// now decode distribution string
-	char buff[1024];
-	Environment::GetSingleton()->GetStringValue("RssPreprocessor.distributions", buff);
-
-	mMixtureDistribution = new MixtureDistribution(*mPreprocessor);
-	mMixtureDistribution->Construct(buff);
-
 
 	// sampling type for view cells construction samples
@@ -301,4 +318,5 @@
 	Debug << "export pvs for view cells: " << mExportPvs << endl;
 	Debug << "use kd pvs " << mUseKdPvs << endl;
+
 	Debug << endl;
 }
@@ -805,4 +823,11 @@
 	mPreprocessor = preprocessor;
 	
+	// now decode distribution string
+	char mix[1024];
+	Environment::GetSingleton()->GetStringValue("RssPreprocessor.distributions", mix);
+	Debug << "using mixture distributions: " << mix << endl;
+
+	mMixtureDistribution = new MixtureDistribution(*mPreprocessor);
+	mMixtureDistribution->Construct(mix);
 
 	///////////////////////////////////////////////////////
@@ -6873,13 +6898,9 @@
 		Debug << "casting " << samplesPerPass << " samples ... ";
 	
-		if (1)
-		{
+		if (0)
 			CastPassSamples(samplesPerPass, evalStrats, evaluationSamples);
-		}
 		else
-		{
 			// use mixed distributions
-			CastPassSamples2(samplesPerPass, evaluationSamples);
-		}
+			CastEvaluationSamples(samplesPerPass, evaluationSamples);
 
 		castSamples += samplesPerPass;
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCell.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCell.cpp	(revision 2164)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCell.cpp	(revision 2199)
@@ -167,31 +167,7 @@
 
 
-float ViewCell::GetVolume() const
-{
-	return mVolume;
-}
-
-
-void ViewCell::SetVolume(float volume) 
-{
-	mVolume = volume;
-}
-
-
 void ViewCell::SetMesh(Mesh *mesh)
 {
 	mMesh = mesh;
-}
-
-
-float ViewCell::GetArea() const
-{
-	return mArea;
-}
-
-
-void ViewCell::SetArea(float area) 
-{
-	mArea = area;
 }
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.h	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.h	(revision 2199)
@@ -660,5 +660,5 @@
 	PerfTimer mSplitTimer;
 	PerfTimer mPlaneTimer;
-	PerfTimer mSort2Timer;
+	PerfTimer mSortTimer;
 	PerfTimer mCollectTimer;
 
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/Pvs.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/Pvs.h	(revision 2176)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/Pvs.h	(revision 2199)
@@ -515,5 +515,5 @@
 
 
-template <typename T, typename S> void VerbosePvs<T, S>::Clear(const bool trim = true)
+template <typename T, typename S> void VerbosePvs<T, S>::Clear(const bool trim)
 {
 	mEntries.clear();
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCell.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCell.h	(revision 2176)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/ViewCell.h	(revision 2199)
@@ -173,5 +173,5 @@
 	*/
 	void SetPvs(const ObjectPvs &pvs);
-	/** Type of view cells.
+	/** Type of view cell.
 	*/
 	int Type() const;
@@ -181,14 +181,26 @@
 	/** Returns volume of the view cell.
 	*/
-	float GetVolume() const;
+	inline float GetVolume() const
+	{
+		return mVolume;
+	}
+	/** Sets the volume of the view cell.
+	*/
+	inline void SetVolume(float volume)
+	{
+		mVolume = volume;
+	}
 	/** Returns area of the view cell.
 	*/
-	float GetArea() const;
-	/** Sets the volume of the view cell.
-	*/
-	void SetVolume(float volume);
+	inline float GetArea() const
+	{
+		return mArea;
+	}
 	/** Sets the area of the view cell.
 	*/
-	void SetArea(float area);
+	void SetArea(float area)
+	{
+		mArea = area;
+	}
 	/** if this view cell is the root of a view cell hierarchy
 	*/
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp	(revision 2199)
@@ -996,14 +996,4 @@
 	interior->mTimeStamp = mHierarchyManager->mTimeStamp ++;
 
-#if WORK_WITH_VIEWCELL_PVS
-	// create front and back view cell
-	// add front and back view cell to 
-	// "potentially visible view cells" 
-	// of the objects in front and back pvs
-
-	AddViewCellReferences(frontLeaf->GetViewCell());
-	AddViewCellReferences(backLeaf->GetViewCell());
-#endif
-
 	mNodeTimer.Exit();
 
@@ -2931,16 +2921,4 @@
 	VspTraversalData vData(leaf, 0, &rays, pvsCost, prop, mBoundingBox);
 
-#if WORK_WITH_VIEWCELL_PVS
-	// add first view cell to all the objects view cell pvs
-	ObjectPvsEntries::const_iterator oit, 
-		oit_end = leaf->GetViewCell()->GetPvs().mEntries.end();
-
-	for (oit = leaf->GetViewCell()->GetPvs().mEntries.begin(); oit != oit_end; ++ oit)
-	{
-		Intersectable *obj = (*oit).first;
-		obj->mViewCellPvs.AddSample(leaf->GetViewCell(), 1);
-	}
-#endif
-
 	mTotalCost = vData.mCorrectedRenderCost = vData.mRenderCost = pvsCost;
 	mPvsEntries = EvalPvsEntriesSize(rays);
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/Intersectable.h
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/Intersectable.h	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/Intersectable.h	(revision 2199)
@@ -6,5 +6,5 @@
 #include "Mailable.h"
 
-#define STORE_VIEWCELLS_WITH_BVH 0
+#define STORE_VIEWCELLS_WITH_BVH 1
 
 namespace GtpVisibilityPreprocessor {
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.icproj
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.icproj	(revision 1292)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.icproj	(revision 2199)
@@ -22,10 +22,11 @@
 				Name="CppCmplrTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+				AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\src\sparsehash\src\"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;NO_QT"
 				MinimalRebuild="1"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
 				UsePrecompiledHeader="0"
+				BrowseInformation="1"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="1"
@@ -73,10 +74,20 @@
 			<Tool 
 				Name="CppCmplrTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\MultiLevelRayTracing"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				RuntimeLibrary="2"
-				RuntimeTypeInfo="1"
-				UsePrecompiledHeader="0"
+				Optimization="3"
+				GlobalOptimizations="1"
+				InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="1"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="1"
+				EnableFiberSafeOptimizations="1"
+				OptimizeForProcessor="0"
+				OptimizeForWindowsApplication="1"
+				AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\MultiLevelRayTracing;Timer"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;NO_QT;USE_VERBOSE_PVS"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				RuntimeTypeInfo="0"
+				UsePrecompiledHeader="0"
+				BrowseInformation="1"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="1"
@@ -184,8 +195,84 @@
 				Name="CppCmplrTool"
 				Optimization="3"
-				AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL"
-				RuntimeLibrary="2"
-				RuntimeTypeInfo="1"
+				GlobalOptimizations="1"
+				InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="1"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="1"
+				EnableFiberSafeOptimizations="1"
+				OptimizeForProcessor="3"
+				OptimizeForWindowsApplication="1"
+				AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(QTDIR)\include\Qt&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include&quot;;QtInterface;..\src\sparsehash\src\;..\src\ootl\src\include\ootl;..\src\ootl\src\include\ootl\sandbox;$(NOINHERIT)"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL;USE_QT;USE_CG;USE_HASH_PVS"
+				ExceptionHandling="1"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				RuntimeTypeInfo="0"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="1"
+				DebugInformationFormat="3"/>
+			<Tool 
+				Name="LinkerTool"
+				DelayImpLib=""
+				AdditionalDependencies="xerces-c_2.lib glew32.lib zdll.lib zziplib.lib devil.lib glut32.lib OpenGL32.Lib glu32.lib Preprocessor.lib RTScene.lib RTWorld.lib QtCore4.lib qtmain.lib cg.lib cgGL.lib QtOpenGL4.lib Qt3Support4.lib QtTest4.lib QtGui4.lib QtInterface.lib"
+				OutputFile="../bin/release/Preprocessor.exe"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="..\src\GL;..\lib\release;..\..\Preprocessing\lib\release;..\..\..\..\..\..\NonGTP\Boost\lib;..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;..\..\..\..\..\..\NonGTP\Zlib\lib;..\..\..\..\..\..\NonGTP\Devil\lib;..\MultiLevelRayTracing\RTScene\Release;..\MultiLevelRayTracing\RTWorld\Release;&quot;$(QTDIR)\lib&quot;;.\QtInterface\Release;&quot;$(CG_LIB_PATH)&quot;"
+				GenerateDebugInformation="0"
+				SubSystem="1"
+				LargeAddressAware="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				OptimizeForWindows98="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool 
+				Name="LibrarianTool"/>
+			<Tool 
+				Name="ResCmplrTool"/>
+			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="BscMakeTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="CustomTool"/>
+			<Tool 
+				Name="CustomNodeTool"/>
+		</Configuration>
+		<Configuration 
+			Name="release_noqt|Win32">
+			<Tool 
+				Name="GeneralTool"
+				OutputDirectory="$(ConfigurationName)"
+				IntermediateDirectory="$(ConfigurationName)"
+				ConfigurationType="1"
+				CharacterSet="2"/>
+			<Tool 
+				Name="DebugTool"/>
+			<Tool 
+				Name="CppCmplrTool"
+				Optimization="3"
+				GlobalOptimizations="1"
+				InlineFunctionExpansion="2"
+				EnableIntrinsicFunctions="1"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="1"
+				EnableFiberSafeOptimizations="1"
+				OptimizeForProcessor="0"
+				OptimizeForWindowsApplication="1"
+				AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(QTDIR)\include\Qt&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include&quot;"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;GTP_INTERNAL;NO_QT"
+				StringPooling="1"
+				MinimalRebuild="0"
+				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
+				RuntimeTypeInfo="0"
 				UsePrecompiledHeader="0"
 				WarningLevel="3"
@@ -199,4 +286,65 @@
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="..\src\GL;..\lib\release;..\..\Preprocessing\lib\release;..\..\..\..\..\..\NonGTP\Boost\lib;..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;..\..\..\..\..\..\NonGTP\Zlib\lib;..\..\..\..\..\..\NonGTP\Devil\lib;..\MultiLevelRayTracing\RTScene\Release;..\MultiLevelRayTracing\RTWorld\Release"
+				GenerateDebugInformation="0"
+				SubSystem="1"
+				LargeAddressAware="0"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				OptimizeForWindows98="1"
+				TargetMachine="1"
+				FixedBaseAddress="1"/>
+			<Tool 
+				Name="LibrarianTool"/>
+			<Tool 
+				Name="ResCmplrTool"/>
+			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="BscMakeTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="CustomTool"/>
+			<Tool 
+				Name="CustomNodeTool"/>
+		</Configuration>
+		<Configuration 
+			Name="Release_Qt|Win32">
+			<Tool 
+				Name="GeneralTool"
+				OutputDirectory="$(ConfigurationName)"
+				IntermediateDirectory="$(ConfigurationName)"
+				ConfigurationType="1"
+				CharacterSet="2"/>
+			<Tool 
+				Name="DebugTool"/>
+			<Tool 
+				Name="CppCmplrTool"
+				Optimization="3"
+				GlobalOptimizations="1"
+				InlineFunctionExpansion="2"
+				FavorSizeOrSpeed="1"
+				EnableFiberSafeOptimizations="1"
+				OptimizeForProcessor="3"
+				OptimizeForWindowsApplication="1"
+				AdditionalIncludeDirectories="..\include;..\..\..\..\..\..\NonGTP\Boost;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(QTDIR)\include\QtOpenGl&quot;;&quot;$(QTDIR)\include\Qt&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include&quot;;QtInterface"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;USE_QT"
+				RuntimeLibrary="2"
+				RuntimeTypeInfo="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="1"
+				DebugInformationFormat="3"/>
+			<Tool 
+				Name="LinkerTool"
+				DelayImpLib=""
+				AdditionalDependencies="xerces-c_2.lib glew32.lib zdll.lib zziplib.lib devil.lib glut32.lib OpenGL32.Lib glu32.lib Preprocessor.lib QtCore4.lib qtmain.lib cg.lib cgGL.lib QtOpenGL4.lib Qt3Support4.lib QtTest4.lib QtGui4.lib QtInterface.lib"
+				OutputFile="../bin/release/Preprocessor.exe"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories="..\src\GL;..\lib\release;..\..\Preprocessing\lib\release;..\..\..\..\..\..\NonGTP\Boost\lib;..\..\..\..\..\..\NonGTP\Xerces\xercesc\lib;..\..\..\..\..\..\NonGTP\Zlib\lib;..\..\..\..\..\..\NonGTP\Devil\lib;..\MultiLevelRayTracing\RTScene\Release;..\MultiLevelRayTracing\RTWorld\Release;&quot;$(QTDIR)\lib&quot;;.\QtInterface\Release;&quot;$(CG_LIB_PATH)&quot;"
 				GenerateDebugInformation="0"
 				SubSystem="1"
@@ -229,5 +377,5 @@
 			RelativePath=".\main.cpp"/>
 		<File 
-			RelativePath=".\vtune\TestPreprocessor.vpj"/>
+			RelativePath=".\VTune\TestPreprocessor.vpj"/>
 	</Files>
 </VisualStudioProject>
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp	(revision 2198)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp	(revision 2199)
@@ -163,7 +163,4 @@
 		"Hierarchy.useTraversalTree", mUseTraversalTree);
 
-	// for comparing it with byte - value
-	mTermMaxMemory *= (1024.0f * 1024.0f);
-
 	Debug << "******** Hierarchy Manager Options ***********" << endl;
 	Debug << "max leaves: " << mTermMaxLeaves << endl;
@@ -182,4 +179,6 @@
 	Debug << "max avg ray contribution: " << mMaxAvgRayContri << endl;
 
+	// for comparing it with byte - value
+	mTermMaxMemory *= (1024.0f * 1024.0f);
 
 	switch (mConstructionType)
@@ -415,5 +414,5 @@
 	double sortTime, evalTime, nodeTime, splitTime, subdTime, planeTime, collectTime, viewCellsTime;
 
-	sortTime = mBvHierarchy->mSort2Timer.TotalTime();
+	sortTime = mBvHierarchy->mSortTimer.TotalTime();
 	evalTime = mBvHierarchy->mEvalTimer.TotalTime();
 	nodeTime = mBvHierarchy->mNodeTimer.TotalTime();
@@ -534,9 +533,11 @@
 	cout << "\n" << ospSteps << " object space partition steps taken" << endl;
 
-	// create view space
+	PrintTimings(true);
+
+	///////////////
+	//-- create view space
 	PrepareViewSpaceSubdivision(viewSpaceQueue, sampleRays, objects);
 
 	dirtyList.clear();
-
 	// view space subdivision started
 	mViewSpaceSubdivisionType = mSavedViewSpaceSubdivisionType;
@@ -554,4 +555,5 @@
 
 		dirtyList.clear();
+		PrintTimings(false);
 	}
 	else
@@ -1175,5 +1177,4 @@
 			mHierarchyStats.mTotalCost = mBvHierarchy->mTotalCost;
 			
-
 			//mHierarchyStats.mPvsEntries -= mBvHierarchy->mPvsEntries + 1;
 			mHierarchyStats.mPvsEntries = mBvHierarchy->CountViewCells(objects);
Index: /GTP/trunk/Lib/Vis/Preprocessing/src/SamplingStrategy.cpp
===================================================================
--- /GTP/trunk/Lib/Vis/Preprocessing/src/SamplingStrategy.cpp	(revision 2187)
+++ /GTP/trunk/Lib/Vis/Preprocessing/src/SamplingStrategy.cpp	(revision 2199)
@@ -211,4 +211,5 @@
 	float r[6];
 	sHalton.GetNext(6, r);
+	
 	mPreprocessor.mViewCellsManager->GetViewPoint(origin, Vector3(r[0],
 																  r[1],
@@ -219,5 +220,5 @@
 																	   r[5])
 																	   ) - origin;
-	//cout << "z";
+	
 	const float c = Magnitude(direction);
 
@@ -478,8 +479,8 @@
   int i;
   // pickup a distribution
-  for (i=0; i < mDistributions.size()-1; i++)
+  for (i=0; i < (int)mDistributions.size()-1; i++)
 	if (r < mDistributions[i]->mRatio)
 	  break;
-
+ 
   bool result = mDistributions[i]->GenerateSample(ray);
 
@@ -632,4 +633,5 @@
 	  } else
 		if (strcmp(curr, "spatial")==0) {
+			Debug << "here4 spatialbox" << endl;
 		  mDistributions.push_back(new SpatialBoxBasedDistribution(mPreprocessor));
 		} else
Index: /GTP/trunk/Lib/Vis/GtpVisibility.sln
===================================================================
--- /GTP/trunk/Lib/Vis/GtpVisibility.sln	(revision 2130)
+++ /GTP/trunk/Lib/Vis/GtpVisibility.sln	(revision 2199)
@@ -8,5 +8,5 @@
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IVReader", "OnlineCullingCHC\IVReader\src\IVReader.vcproj", "{7319E499-473D-4CE5-9983-725D6E68A55D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IVReader", "OnlineCullingCHC\IVReader\src\IVReader.vcproj", "{5776B40B-5FCE-46D5-8F7C-3912E24E0638}"
 	ProjectSection(ProjectDependencies) = postProject
 	EndProjectSection
@@ -14,34 +14,34 @@
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_VisibilitySceneManager", "OnlineCullingCHC\OGRE\src\Plugin_VisibilitySceneManager.vcproj", "{80DECC17-BDDD-4412-8CF8-F7C1C17A7436}"
 	ProjectSection(ProjectDependencies) = postProject
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638} = {5776B40B-5FCE-46D5-8F7C-3912E24E0638}
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638} = {5776B40B-5FCE-46D5-8F7C-3912E24E0638}
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638} = {5776B40B-5FCE-46D5-8F7C-3912E24E0638}
+		{EABCE292-D598-4600-A1C9-2591E7D62FDA} = {EABCE292-D598-4600-A1C9-2591E7D62FDA}
 		{101A7691-74F3-48B4-96A3-CF35578F5900} = {101A7691-74F3-48B4-96A3-CF35578F5900}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Preprocessor", "Preprocessing\src\Preprocessor.vcproj", "{EABCE292-D598-4600-A1C9-2591E7D62FDA}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestPreprocessor", "Preprocessing\src\TestPreprocessor.vcproj", "{69BC58F0-C7EB-4B43-B782-B6F047EF0528}"
+	ProjectSection(ProjectDependencies) = postProject
 		{EABCE292-D598-4600-A1C9-2591E7D62FDA} = {EABCE292-D598-4600-A1C9-2591E7D62FDA}
-		{7319E499-473D-4CE5-9983-725D6E68A55D} = {7319E499-473D-4CE5-9983-725D6E68A55D}
-		{7319E499-473D-4CE5-9983-725D6E68A55D} = {7319E499-473D-4CE5-9983-725D6E68A55D}
-		{7319E499-473D-4CE5-9983-725D6E68A55D} = {7319E499-473D-4CE5-9983-725D6E68A55D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Preprocessor", "Preprocessing\src\Preprocessor.vcproj", "{EABCE292-D598-4600-A1C9-2591E7D62FDA}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestPreprocessor", "Preprocessing\src\TestPreprocessor.vcproj", "{69BC58F0-C7EB-4B43-B782-B6F047EF0528}"
-	ProjectSection(ProjectDependencies) = postProject
-		{EABCE292-D598-4600-A1C9-2591E7D62FDA} = {EABCE292-D598-4600-A1C9-2591E7D62FDA}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestCullingTerrain", "..\..\App\Demos\Vis\HillyTerrain\OGRE\TestCullingTerrain.vcproj", "{248F19A6-2FE0-4F5D-8928-E0EA10609887}"
 	ProjectSection(ProjectDependencies) = postProject
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638} = {5776B40B-5FCE-46D5-8F7C-3912E24E0638}
 		{80DECC17-BDDD-4412-8CF8-F7C1C17A7436} = {80DECC17-BDDD-4412-8CF8-F7C1C17A7436}
 		{101A7691-74F3-48B4-96A3-CF35578F5900} = {101A7691-74F3-48B4-96A3-CF35578F5900}
-		{7319E499-473D-4CE5-9983-725D6E68A55D} = {7319E499-473D-4CE5-9983-725D6E68A55D}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestKdTree", "..\..\App\Demos\Vis\KdTreeDemo\OGRE\scripts\TestKdTree.vcproj", "{17F2C6F9-6101-430E-ABF4-71383868EF24}"
 	ProjectSection(ProjectDependencies) = postProject
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638} = {5776B40B-5FCE-46D5-8F7C-3912E24E0638}
 		{80DECC17-BDDD-4412-8CF8-F7C1C17A7436} = {80DECC17-BDDD-4412-8CF8-F7C1C17A7436}
-		{7319E499-473D-4CE5-9983-725D6E68A55D} = {7319E499-473D-4CE5-9983-725D6E68A55D}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ObjReader", "OnlineCullingCHC\ObjReader\src\ObjReader.vcproj", "{7319E499-473D-4CE5-9983-725D6E68A55D}"
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ObjReader", "OnlineCullingCHC\ObjReader\src\ObjReader.vcproj", "{5776B40B-5FCE-46D5-8F7C-3912E24E0638}"
 	ProjectSection(ProjectDependencies) = postProject
 	EndProjectSection
@@ -166,50 +166,50 @@
 		{101A7691-74F3-48B4-96A3-CF35578F5900}.Universal Unicode Release.ActiveCfg = Release|Win32
 		{101A7691-74F3-48B4-96A3-CF35578F5900}.Universal Unicode Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Debug Static.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Debug Static.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Unicode Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Unicode Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Unicode Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Unicode Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Unicode Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Unicode Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Unicode Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Unicode Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.mlrt.ActiveCfg = mlrt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.mlrt.Build.0 = mlrt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release Internal.ActiveCfg = Release Internal|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release Internal.Build.0 = Release Internal|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release Static.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release Static.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release_Internal.ActiveCfg = Release_Internal|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release_Internal.Build.0 = Release_Internal|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.release_noqt.ActiveCfg = Release_qt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.release_noqt.Build.0 = Release_qt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release_qt.ActiveCfg = Release_qt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release_qt.Build.0 = Release_qt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Unicode Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Unicode Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Unicode Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Unicode Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Unicode Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Unicode Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Unicode Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Unicode Release.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Debug.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Debug.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Debug Static.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Debug Static.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Debug.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Debug.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Release.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Release.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Unicode Debug.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Unicode Debug.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Unicode Release.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Unicode Release.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Universal Debug.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Universal Debug.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Universal Release.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Universal Release.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Universal Unicode Debug.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Universal Unicode Debug.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Universal Unicode Release.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.DLL Universal Unicode Release.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.mlrt.ActiveCfg = mlrt|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.mlrt.Build.0 = mlrt|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release Internal.ActiveCfg = Release Internal|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release Internal.Build.0 = Release Internal|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release Static.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release Static.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release_Internal.ActiveCfg = Release_Internal|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release_Internal.Build.0 = Release_Internal|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.release_noqt.ActiveCfg = Release_qt|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.release_noqt.Build.0 = Release_qt|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release_qt.ActiveCfg = Release_qt|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Release_qt.Build.0 = Release_qt|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Unicode Debug.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Unicode Debug.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Unicode Release.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Unicode Release.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Universal Debug.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Universal Debug.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Universal Release.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Universal Release.Build.0 = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Universal Unicode Debug.ActiveCfg = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Universal Unicode Debug.Build.0 = Debug|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Universal Unicode Release.ActiveCfg = Release|Win32
+		{5776B40B-5FCE-46D5-8F7C-3912E24E0638}.Universal Unicode Release.Build.0 = Release|Win32
 		{80DECC17-BDDD-4412-8CF8-F7C1C17A7436}.Debug.ActiveCfg = Debug|Win32
 		{80DECC17-BDDD-4412-8CF8-F7C1C17A7436}.Debug.Build.0 = Debug|Win32
@@ -442,50 +442,4 @@
 		{17F2C6F9-6101-430E-ABF4-71383868EF24}.Universal Unicode Release.ActiveCfg = Release|Win32
 		{17F2C6F9-6101-430E-ABF4-71383868EF24}.Universal Unicode Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Debug Static.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Debug Static.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Unicode Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Unicode Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Unicode Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Unicode Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Unicode Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Unicode Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Unicode Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.DLL Universal Unicode Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.mlrt.ActiveCfg = mlrt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.mlrt.Build.0 = mlrt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release Internal.ActiveCfg = Release Internal|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release Internal.Build.0 = Release Internal|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release Static.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release Static.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release_Internal.ActiveCfg = Release_Internal|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release_Internal.Build.0 = Release_Internal|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.release_noqt.ActiveCfg = Release_qt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.release_noqt.Build.0 = Release_qt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release_qt.ActiveCfg = Release_qt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Release_qt.Build.0 = Release_qt|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Unicode Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Unicode Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Unicode Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Unicode Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Release.Build.0 = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Unicode Debug.ActiveCfg = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Unicode Debug.Build.0 = Debug|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Unicode Release.ActiveCfg = Release|Win32
-		{7319E499-473D-4CE5-9983-725D6E68A55D}.Universal Unicode Release.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
