Index: GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj	(revision 2232)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/TestPreprocessor.vcproj	(revision 2233)
@@ -215,5 +215,5 @@
 				Name="VCLinkerTool"
 				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/Preprocessor2.exe"
+				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;"
Index: GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.icproj
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.icproj	(revision 2232)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.icproj	(revision 2233)
@@ -18,40 +18,41 @@
 				CharacterSet="2"/>
 			<Tool 
-				Name="DebugTool"/>
-			<Tool 
 				Name="CppCmplrTool"
 				Optimization="0"
 				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"
+				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
-				RuntimeTypeInfo="1"
+				RuntimeTypeInfo="TRUE"
 				UsePrecompiledHeader="0"
 				BrowseInformation="1"
 				WarningLevel="3"
-				Detect64BitPortabilityProblems="1"
+				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="3"/>
 			<Tool 
-				Name="LinkerTool"
-				DelayImpLib=""/>
+				Name="CustomTool"/>
 			<Tool 
 				Name="LibrarianTool"/>
 			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
 				Name="ResCmplrTool"/>
 			<Tool 
-				Name="MidlCmplrTool"/>
-			<Tool 
-				Name="BscMakeTool"/>
-			<Tool 
-				Name="PreBuildEventTool"/>
-			<Tool 
-				Name="PreLinkEventTool"/>
-			<Tool 
-				Name="PostBuildEventTool"/>
-			<Tool 
-				Name="CustomTool"/>
-			<Tool 
-				Name="CustomNodeTool"/>
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool 
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool 
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="DebugTool"/>
 		</Configuration>
 		<Configuration 
@@ -64,49 +65,50 @@
 				CharacterSet="2"/>
 			<Tool 
-				Name="DebugTool"/>
-			<Tool 
 				Name="CppCmplrTool"
 				Optimization="3"
-				GlobalOptimizations="1"
+				GlobalOptimizations="TRUE"
 				InlineFunctionExpansion="2"
-				EnableIntrinsicFunctions="1"
+				EnableIntrinsicFunctions="TRUE"
 				FavorSizeOrSpeed="1"
-				OmitFramePointers="1"
-				EnableFiberSafeOptimizations="1"
+				OmitFramePointers="TRUE"
+				EnableFiberSafeOptimizations="TRUE"
 				OptimizeForProcessor="0"
-				OptimizeForWindowsApplication="1"
+				OptimizeForWindowsApplication="TRUE"
 				AdditionalIncludeDirectories="..\include;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;Timer"
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;USE_VERBOSE_PVS"
-				ExceptionHandling="1"
+				ExceptionHandling="TRUE"
 				RuntimeLibrary="2"
-				DisableLanguageExtensions="0"
-				ForceConformanceInForLoopScope="0"
-				RuntimeTypeInfo="0"
+				DisableLanguageExtensions="FALSE"
+				ForceConformanceInForLoopScope="FALSE"
+				RuntimeTypeInfo="FALSE"
 				UsePrecompiledHeader="0"
 				BrowseInformation="1"
 				WarningLevel="2"
-				Detect64BitPortabilityProblems="1"
+				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="3"/>
 			<Tool 
-				Name="LinkerTool"
-				DelayImpLib=""/>
+				Name="CustomTool"/>
 			<Tool 
 				Name="LibrarianTool"/>
 			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
 				Name="ResCmplrTool"/>
 			<Tool 
-				Name="MidlCmplrTool"/>
-			<Tool 
-				Name="BscMakeTool"/>
-			<Tool 
-				Name="PreBuildEventTool"/>
-			<Tool 
-				Name="PreLinkEventTool"/>
-			<Tool 
-				Name="PostBuildEventTool"/>
-			<Tool 
-				Name="CustomTool"/>
-			<Tool 
-				Name="CustomNodeTool"/>
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool 
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool 
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="DebugTool"/>
 		</Configuration>
 		<Configuration 
@@ -119,49 +121,50 @@
 				CharacterSet="2"/>
 			<Tool 
-				Name="DebugTool"/>
-			<Tool 
 				Name="CppCmplrTool"
 				Optimization="2"
-				GlobalOptimizations="0"
+				GlobalOptimizations="FALSE"
 				InlineFunctionExpansion="0"
-				EnableIntrinsicFunctions="0"
+				EnableIntrinsicFunctions="FALSE"
 				FavorSizeOrSpeed="1"
-				OmitFramePointers="0"
-				EnableFiberSafeOptimizations="0"
+				OmitFramePointers="FALSE"
+				EnableFiberSafeOptimizations="FALSE"
 				OptimizeForProcessor="3"
-				OptimizeForWindowsApplication="1"
+				OptimizeForWindowsApplication="TRUE"
 				AdditionalIncludeDirectories="..\include;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;..\..\..\..\..\..\NonGTP\Boost;..\..\Preprocessing\MultiLevelRayTracing"
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL"
-				MinimalRebuild="1"
-				ExceptionHandling="1"
+				MinimalRebuild="TRUE"
+				ExceptionHandling="TRUE"
 				RuntimeLibrary="2"
-				DisableLanguageExtensions="0"
-				ForceConformanceInForLoopScope="0"
-				RuntimeTypeInfo="1"
+				DisableLanguageExtensions="FALSE"
+				ForceConformanceInForLoopScope="FALSE"
+				RuntimeTypeInfo="TRUE"
 				UsePrecompiledHeader="0"
 				WarningLevel="2"
-				Detect64BitPortabilityProblems="1"
+				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="3"/>
 			<Tool 
-				Name="LinkerTool"
-				DelayImpLib=""/>
+				Name="CustomTool"/>
 			<Tool 
 				Name="LibrarianTool"/>
 			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
 				Name="ResCmplrTool"/>
 			<Tool 
-				Name="MidlCmplrTool"/>
-			<Tool 
-				Name="BscMakeTool"/>
-			<Tool 
-				Name="PreBuildEventTool"/>
-			<Tool 
-				Name="PreLinkEventTool"/>
-			<Tool 
-				Name="PostBuildEventTool"/>
-			<Tool 
-				Name="CustomTool"/>
-			<Tool 
-				Name="CustomNodeTool"/>
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool 
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool 
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="DebugTool"/>
 		</Configuration>
 		<Configuration 
@@ -174,43 +177,44 @@
 				CharacterSet="2"/>
 			<Tool 
-				Name="DebugTool"/>
-			<Tool 
 				Name="CppCmplrTool"
 				Optimization="0"
 				InlineFunctionExpansion="0"
 				FavorSizeOrSpeed="0"
-				OptimizeForWindowsApplication="1"
+				OptimizeForWindowsApplication="TRUE"
 				AdditionalIncludeDirectories="..\include;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtGui&quot;;&quot;$(QTDIR)\include&quot;;&quot;$(QTDIR)\include\QtOpenGl&quot;;..\src;&quot;$(CG_INC_PATH)&quot;;..\..\..\..\..\..\NonGTP\Devil\include;..\..\..\..\..\..\NonGTP\Zlib\include;..\..\..\..\..\..\NonGTP\Xerces;&quot;$(BOOST_INCLUDE)&quot;;..\..\Preprocessing\MultiLevelRayTracing"
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
-				ExceptionHandling="1"
+				ExceptionHandling="TRUE"
 				RuntimeLibrary="2"
-				DisableLanguageExtensions="0"
-				ForceConformanceInForLoopScope="0"
-				RuntimeTypeInfo="1"
+				DisableLanguageExtensions="FALSE"
+				ForceConformanceInForLoopScope="FALSE"
+				RuntimeTypeInfo="TRUE"
 				UsePrecompiledHeader="0"
 				WarningLevel="2"
-				Detect64BitPortabilityProblems="1"
+				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="3"/>
 			<Tool 
-				Name="LinkerTool"
-				DelayImpLib=""/>
+				Name="CustomTool"/>
 			<Tool 
 				Name="LibrarianTool"/>
 			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
 				Name="ResCmplrTool"/>
 			<Tool 
-				Name="MidlCmplrTool"/>
-			<Tool 
-				Name="BscMakeTool"/>
-			<Tool 
-				Name="PreBuildEventTool"/>
-			<Tool 
-				Name="PreLinkEventTool"/>
-			<Tool 
-				Name="PostBuildEventTool"/>
-			<Tool 
-				Name="CustomTool"/>
-			<Tool 
-				Name="CustomNodeTool"/>
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool 
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool 
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="DebugTool"/>
 		</Configuration>
 		<Configuration 
@@ -223,51 +227,52 @@
 				CharacterSet="2"/>
 			<Tool 
-				Name="DebugTool"/>
-			<Tool 
 				Name="CppCmplrTool"
 				Optimization="3"
-				GlobalOptimizations="1"
+				GlobalOptimizations="TRUE"
 				InlineFunctionExpansion="0"
-				EnableIntrinsicFunctions="1"
+				EnableIntrinsicFunctions="TRUE"
 				FavorSizeOrSpeed="1"
-				OmitFramePointers="1"
-				EnableFiberSafeOptimizations="1"
+				OmitFramePointers="TRUE"
+				EnableFiberSafeOptimizations="TRUE"
 				OptimizeForProcessor="3"
-				OptimizeForWindowsApplication="1"
+				OptimizeForWindowsApplication="TRUE"
 				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_PV"
-				ExceptionHandling="1"
+				ExceptionHandling="TRUE"
 				RuntimeLibrary="2"
 				EnableEnhancedInstructionSet="2"
-				DisableLanguageExtensions="0"
-				ForceConformanceInForLoopScope="0"
-				RuntimeTypeInfo="0"
+				DisableLanguageExtensions="FALSE"
+				ForceConformanceInForLoopScope="FALSE"
+				RuntimeTypeInfo="FALSE"
 				UsePrecompiledHeader="0"
 				BrowseInformation="1"
 				WarningLevel="2"
-				Detect64BitPortabilityProblems="1"
+				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="3"/>
 			<Tool 
-				Name="LinkerTool"
-				DelayImpLib=""/>
+				Name="CustomTool"/>
 			<Tool 
 				Name="LibrarianTool"
 				OutputFile="../lib/Release/$(ProjectName).lib"/>
 			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
 				Name="ResCmplrTool"/>
 			<Tool 
-				Name="MidlCmplrTool"/>
-			<Tool 
-				Name="BscMakeTool"/>
-			<Tool 
-				Name="PreBuildEventTool"/>
-			<Tool 
-				Name="PreLinkEventTool"/>
-			<Tool 
-				Name="PostBuildEventTool"/>
-			<Tool 
-				Name="CustomTool"/>
-			<Tool 
-				Name="CustomNodeTool"/>
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool 
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool 
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="DebugTool"/>
 		</Configuration>
 		<Configuration 
@@ -281,54 +286,55 @@
 				WholeProgramOptimization="1"/>
 			<Tool 
-				Name="DebugTool"/>
-			<Tool 
 				Name="CppCmplrTool"
 				Optimization="3"
-				GlobalOptimizations="1"
+				GlobalOptimizations="TRUE"
 				InlineFunctionExpansion="2"
-				EnableIntrinsicFunctions="1"
+				EnableIntrinsicFunctions="TRUE"
 				FavorSizeOrSpeed="1"
-				OmitFramePointers="1"
-				EnableFiberSafeOptimizations="1"
+				OmitFramePointers="TRUE"
+				EnableFiberSafeOptimizations="TRUE"
 				OptimizeForProcessor="1"
-				OptimizeForWindowsApplication="1"
+				OptimizeForWindowsApplication="TRUE"
 				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;"
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;GTP_INTERNAL;NO_QT"
-				StringPooling="1"
-				ExceptionHandling="1"
+				StringPooling="TRUE"
+				ExceptionHandling="TRUE"
 				RuntimeLibrary="2"
 				EnableEnhancedInstructionSet="2"
-				DisableLanguageExtensions="0"
-				ForceConformanceInForLoopScope="0"
-				RuntimeTypeInfo="0"
+				DisableLanguageExtensions="FALSE"
+				ForceConformanceInForLoopScope="FALSE"
+				RuntimeTypeInfo="FALSE"
 				UsePrecompiledHeader="0"
 				BrowseInformation="1"
 				WarningLevel="2"
-				Detect64BitPortabilityProblems="1"
+				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="3"
 				UseProcExt="3"
 				RequireProcExt="3"/>
 			<Tool 
-				Name="LinkerTool"
-				DelayImpLib=""/>
+				Name="CustomTool"/>
 			<Tool 
 				Name="LibrarianTool"
 				OutputFile="../lib/Release/Preprocessor.lib"/>
 			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
 				Name="ResCmplrTool"/>
 			<Tool 
-				Name="MidlCmplrTool"/>
-			<Tool 
-				Name="BscMakeTool"/>
-			<Tool 
-				Name="PreBuildEventTool"/>
-			<Tool 
-				Name="PreLinkEventTool"/>
-			<Tool 
-				Name="PostBuildEventTool"/>
-			<Tool 
-				Name="CustomTool"/>
-			<Tool 
-				Name="CustomNodeTool"/>
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool 
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool 
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="DebugTool"/>
 		</Configuration>
 		<Configuration 
@@ -341,6 +347,4 @@
 				CharacterSet="2"/>
 			<Tool 
-				Name="DebugTool"/>
-			<Tool 
 				Name="CppCmplrTool"
 				Optimization="3"
@@ -348,610 +352,872 @@
 				FavorSizeOrSpeed="0"
 				OptimizeForProcessor="3"
-				OptimizeForWindowsApplication="1"
+				OptimizeForWindowsApplication="TRUE"
 				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"
+				ExceptionHandling="TRUE"
 				RuntimeLibrary="2"
-				DisableLanguageExtensions="0"
-				ForceConformanceInForLoopScope="0"
-				RuntimeTypeInfo="1"
+				DisableLanguageExtensions="FALSE"
+				ForceConformanceInForLoopScope="FALSE"
+				RuntimeTypeInfo="TRUE"
 				UsePrecompiledHeader="0"
 				BrowseInformation="1"
 				WarningLevel="2"
-				Detect64BitPortabilityProblems="1"
+				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="3"/>
 			<Tool 
-				Name="LinkerTool"
-				DelayImpLib=""/>
+				Name="CustomTool"/>
 			<Tool 
 				Name="LibrarianTool"
 				OutputFile="../lib/Release/$(ProjectName).lib"/>
 			<Tool 
+				Name="MidlCmplrTool"/>
+			<Tool 
+				Name="PostBuildEventTool"/>
+			<Tool 
+				Name="PreBuildEventTool"/>
+			<Tool 
+				Name="PreLinkEventTool"/>
+			<Tool 
 				Name="ResCmplrTool"/>
 			<Tool 
-				Name="MidlCmplrTool"/>
-			<Tool 
-				Name="BscMakeTool"/>
-			<Tool 
-				Name="PreBuildEventTool"/>
-			<Tool 
-				Name="PreLinkEventTool"/>
-			<Tool 
-				Name="PostBuildEventTool"/>
-			<Tool 
-				Name="CustomTool"/>
-			<Tool 
-				Name="CustomNodeTool"/>
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool 
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool 
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+			<Tool 
+				Name="DebugTool"/>
 		</Configuration>
 	</Configurations>
 	<Files>
+		<Filter 
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File 
+				RelativePath="..\src\AxisAlignedBox3.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\AxisAlignedBox3.h">
+			</File>
+			<File 
+				RelativePath="..\src\Beam.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Beam.h">
+			</File>
+			<File 
+				RelativePath=".\Timer\BenchTimer.cpp">
+			</File>
+			<File 
+				RelativePath=".\Timer\BenchTimer.h">
+			</File>
+			<File 
+				RelativePath=".\BitVectorPvs.h">
+			</File>
+			<File 
+				RelativePath="..\src\BoostPreprocessorThread.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\BoostPreprocessorThread.h">
+			</File>
+			<File 
+				RelativePath="..\src\BoundingBoxConverter.h">
+			</File>
+			<File 
+				RelativePath=".\BvHierarchy.cpp">
+			</File>
+			<File 
+				RelativePath=".\BvHierarchy.h">
+			</File>
+			<File 
+				RelativePath="..\src\Camera.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Camera.h">
+			</File>
+			<File 
+				RelativePath=".\CombinedPreprocessor.cpp">
+			</File>
+			<File 
+				RelativePath=".\CombinedPreprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\src\common.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\common.h">
+			</File>
+			<File 
+				RelativePath="..\src\Containers.h">
+			</File>
+			<File 
+				RelativePath=".\DefaultPvs.h">
+			</File>
+			<File 
+				RelativePath="..\src\dual_depth.cg">
+			</File>
+			<File 
+				RelativePath="..\src\Environment.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Environment.h">
+			</File>
+			<File 
+				RelativePath="..\src\ExactPreprocessor.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\ExactPreprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\src\Exporter.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Exporter.h">
+			</File>
+			<File 
+				RelativePath="..\src\FlexibleHeap.h">
+			</File>
+			<File 
+				RelativePath="..\src\glInterface.h">
+			</File>
+			<File 
+				RelativePath=".\GlobalLinesRenderer.cpp">
+			</File>
+			<File 
+				RelativePath=".\GlobalLinesRenderer.h">
+			</File>
+			<File 
+				RelativePath=".\GvsPreprocessor.cpp">
+			</File>
+			<File 
+				RelativePath=".\GvsPreprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\src\GzBinFileInputStream.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\GzBinFileInputStream.h">
+			</File>
+			<File 
+				RelativePath="..\src\GzFileInputSource.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\GzFileInputSource.h">
+			</File>
+			<File 
+				RelativePath="..\src\gzstream.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\gzstream.h">
+			</File>
+			<File 
+				RelativePath="..\src\Halton.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Halton.h">
+			</File>
+			<File 
+				RelativePath=".\HashPvs.h">
+			</File>
+			<File 
+				RelativePath=".\HashPvs2.h">
+			</File>
+			<File 
+				RelativePath=".\HierarchyManager.cpp">
+			</File>
+			<File 
+				RelativePath=".\HierarchyManager.h">
+			</File>
+			<File 
+				RelativePath=".\IntelRayCaster.cpp">
+			</File>
+			<File 
+				RelativePath=".\IntelRayCaster.h">
+			</File>
+			<File 
+				RelativePath=".\InternalRayCaster.cpp">
+			</File>
+			<File 
+				RelativePath=".\InternalRayCaster.h">
+			</File>
+			<File 
+				RelativePath=".\Intersectable.cpp">
+			</File>
+			<File 
+				RelativePath=".\Intersectable.h">
+			</File>
+			<File 
+				RelativePath=".\IntersectableWrapper.cpp">
+			</File>
+			<File 
+				RelativePath=".\IntersectableWrapper.h">
+			</File>
+			<File 
+				RelativePath=".\IntersectionBoundingBoxConverter.cpp">
+			</File>
+			<File 
+				RelativePath=".\IntersectionBoundingBoxConverter.h">
+			</File>
+			<File 
+				RelativePath="..\src\KdTree.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\KdTree.h">
+			</File>
+			<File 
+				RelativePath="..\src\LogManager.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\LogManager.h">
+			</File>
+			<File 
+				RelativePath="..\src\Material.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Material.h">
+			</File>
+			<File 
+				RelativePath="..\src\Matrix4x4.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Matrix4x4.h">
+			</File>
+			<File 
+				RelativePath=".\Timer\merror.cpp">
+			</File>
+			<File 
+				RelativePath=".\Timer\merror.h">
+			</File>
+			<File 
+				RelativePath="..\src\Mesh.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Mesh.h">
+			</File>
+			<File 
+				RelativePath="..\src\MeshKdTree.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\MeshKdTree.h">
+			</File>
+			<File 
+				RelativePath=".\Timer\mstring.h">
+			</File>
+			<File 
+				RelativePath=".\Mutation.cpp">
+			</File>
+			<File 
+				RelativePath=".\Mutation.h">
+			</File>
+			<File 
+				RelativePath="..\src\MutualVisibility.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\MutualVisibility.h">
+			</File>
+			<File 
+				RelativePath=".\ObjectPvs.cpp">
+			</File>
+			<File 
+				RelativePath=".\ObjectPvs.h">
+			</File>
+			<File 
+				RelativePath=".\ObjectsParser.cpp">
+			</File>
+			<File 
+				RelativePath=".\ObjectsParser.h">
+			</File>
+			<File 
+				RelativePath=".\ObjExporter.cpp">
+			</File>
+			<File 
+				RelativePath=".\ObjExporter.h">
+			</File>
+			<File 
+				RelativePath="..\src\ObjParser.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\ObjParser.h">
+			</File>
+			<File 
+				RelativePath="..\src\OcclusionQuery.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\OcclusionQuery.h">
+			</File>
+			<File 
+				RelativePath=".\OspTree.cpp">
+			</File>
+			<File 
+				RelativePath=".\OspTree.h">
+			</File>
+			<File 
+				RelativePath="..\src\Parser.h">
+			</File>
+			<File 
+				RelativePath=".\Timer\PerfTimer.h">
+			</File>
+			<File 
+				RelativePath=".\Timer\PerfTimerSkeleton.h">
+			</File>
+			<File 
+				RelativePath="..\src\Plane3.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Plane3.h">
+			</File>
+			<File 
+				RelativePath="..\src\ply.h">
+			</File>
+			<File 
+				RelativePath="..\src\plyfile.c">
+			</File>
+			<File 
+				RelativePath="..\src\PlyParser.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\PlyParser.h">
+			</File>
+			<File 
+				RelativePath="..\src\Polygon3.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Polygon3.h">
+			</File>
+			<File 
+				RelativePath="..\src\Polytope.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Polytope.h">
+			</File>
+			<File 
+				RelativePath="..\src\Preprocessor.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Preprocessor.h">
+				<FileConfiguration 
+					Name="Release|Win32">
+					<Tool 
+						Name="CustomTool"
+						Description=""
+						CommandLine=""
+						Outputs=""/>
+				</FileConfiguration>
+				<FileConfiguration 
+					Name="mlrt|Win32">
+					<Tool 
+						Name="CustomTool"
+						Description=""
+						CommandLine=""
+						Outputs=""/>
+				</FileConfiguration>
+				<FileConfiguration 
+					Name="Release_Internal|Win32">
+					<Tool 
+						Name="CustomTool"
+						Description=""
+						CommandLine=""
+						Outputs=""/>
+				</FileConfiguration>
+				<FileConfiguration 
+					Name="Release Internal|Win32">
+					<Tool 
+						Name="CustomTool"
+						Description=""
+						CommandLine=""
+						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>
+			<File 
+				RelativePath=".\PreprocessorFactory.h">
+			</File>
+			<File 
+				RelativePath="..\src\PreprocessorThread.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\PreprocessorThread.h">
+				<FileConfiguration 
+					Name="Release|Win32">
+					<Tool 
+						Name="CustomTool"
+						Description=""
+						CommandLine=""
+						Outputs=""/>
+				</FileConfiguration>
+				<FileConfiguration 
+					Name="mlrt|Win32">
+					<Tool 
+						Name="CustomTool"
+						Description=""
+						CommandLine=""
+						Outputs=""/>
+				</FileConfiguration>
+				<FileConfiguration 
+					Name="Release_Internal|Win32">
+					<Tool 
+						Name="CustomTool"
+						Description=""
+						CommandLine=""
+						Outputs=""/>
+				</FileConfiguration>
+				<FileConfiguration 
+					Name="Release Internal|Win32">
+					<Tool 
+						Name="CustomTool"
+						Description=""
+						CommandLine=""
+						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="..\src\Pvs.h">
+			</File>
+			<File 
+				RelativePath=".\PvsBase.h">
+			</File>
+			<File 
+				RelativePath=".\PvsDefinitions.h">
+			</File>
+			<File 
+				RelativePath="..\src\Ray.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Ray.h">
+			</File>
+			<File 
+				RelativePath=".\RayCaster.cpp">
+			</File>
+			<File 
+				RelativePath=".\RayCaster.h">
+			</File>
+			<File 
+				RelativePath="..\src\RayInfo.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\RayInfo.h">
+			</File>
+			<File 
+				RelativePath=".\Timer\RDTSCTimer.cpp">
+			</File>
+			<File 
+				RelativePath=".\Timer\RDTSCTimer.h">
+			</File>
+			<File 
+				RelativePath="..\src\Rectangle3.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Rectangle3.h">
+			</File>
+			<File 
+				RelativePath="..\src\RenderSampler.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\RenderSampler.h">
+			</File>
+			<File 
+				RelativePath="..\src\RenderSimulator.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\RenderSimulator.h">
+			</File>
+			<File 
+				RelativePath=".\RenderTexture.cpp">
+			</File>
+			<File 
+				RelativePath=".\RenderTexture.h">
+			</File>
+			<File 
+				RelativePath="..\src\ResourceManager.h">
+			</File>
+			<File 
+				RelativePath="..\src\RssPreprocessor.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\RssPreprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\src\RssTree.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\RssTree.h">
+			</File>
+			<File 
+				RelativePath="..\src\SamplingPreprocessor.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\SamplingPreprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\src\SamplingStrategy.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\SamplingStrategy.h">
+			</File>
+			<File 
+				RelativePath="..\src\SceneGraph.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\SceneGraph.h">
+			</File>
+			<File 
+				RelativePath="..\src\Statistics.h">
+			</File>
+			<File 
+				RelativePath=".\SubdivisionCandidate.cpp">
+			</File>
+			<File 
+				RelativePath=".\SubdivisionCandidate.h">
+			</File>
+			<File 
+				RelativePath="..\src\Tetrahedron3.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Tetrahedron3.h">
+			</File>
+			<File 
+				RelativePath=".\Trackball.cpp">
+			</File>
+			<File 
+				RelativePath=".\Trackball.h">
+			</File>
+			<File 
+				RelativePath=".\TraversalTree.cpp">
+			</File>
+			<File 
+				RelativePath=".\TraversalTree.h">
+			</File>
+			<File 
+				RelativePath="..\src\Triangle3.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Triangle3.h">
+			</File>
+			<File 
+				RelativePath="..\src\UnigraphicsParser.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\UnigraphicsParser.h">
+			</File>
+			<File 
+				RelativePath="..\src\Vector3.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Vector3.h">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCell.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCell.h">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCellBsp.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCellBsp.h">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCellsManager.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCellsManager.h">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCellsParser.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCellsParser.h">
+			</File>
+			<File 
+				RelativePath="..\src\ViewCellsParserXerces.h">
+			</File>
+			<File 
+				RelativePath="..\src\VrmlExporter.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\VrmlExporter.h">
+			</File>
+			<File 
+				RelativePath="..\src\VspBspTree.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\VspBspTree.h">
+			</File>
+			<File 
+				RelativePath=".\VspTree.cpp">
+			</File>
+			<File 
+				RelativePath=".\VspTree.h">
+			</File>
+			<File 
+				RelativePath="..\src\VssPreprocessor.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\VssPreprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\src\VssRay.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\VssRay.h">
+			</File>
+			<File 
+				RelativePath="..\src\VssTree.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\VssTree.h">
+			</File>
+			<File 
+				RelativePath="..\src\X3dExporter.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\X3dExporter.h">
+			</File>
+			<File 
+				RelativePath="..\src\X3dParser.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\X3dParser.h">
+			</File>
+		</Filter>
+		<Filter 
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+			<File 
+				RelativePath="..\include\AxisAlignedBox3.h">
+			</File>
+			<File 
+				RelativePath="..\include\Containers.h">
+			</File>
+			<File 
+				RelativePath="..\include\ExactPreprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\include\KdTree.h">
+			</File>
+			<File 
+				RelativePath="..\include\Mesh.h">
+			</File>
+			<File 
+				RelativePath="..\include\Plane3.h">
+			</File>
+			<File 
+				RelativePath="..\include\Preprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\include\SamplingPreprocessor.h">
+			</File>
+			<File 
+				RelativePath="..\include\SceneGraph.h">
+			</File>
+			<File 
+				RelativePath="..\include\Vector3.h">
+			</File>
+			<File 
+				RelativePath="..\include\ViewCell.h">
+			</File>
+			<File 
+				RelativePath="..\src\X3dParserXerces.h">
+			</File>
+		</Filter>
+		<Filter 
+			Name="Renderer"
+			Filter="">
+			<File 
+				RelativePath="..\src\GlRenderer.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\GlRenderer.h">
+			</File>
+			<File 
+				RelativePath="..\src\Renderer.cpp">
+			</File>
+			<File 
+				RelativePath="..\src\Renderer.h">
+			</File>
+		</Filter>
+		<Filter 
+			Name="ootl"
+			Filter="">
+			<Filter 
+				Name="include"
+				Filter="">
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_adapters.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_benchmark.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_bool_stack.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_dictionary.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_fft.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_fft_test.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_functions.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_generators.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_hash.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_iterable.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_iterators.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_list.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_map.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_misc.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\mswin\ootl_mswin.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\mswin\ootl_mswin_console.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\mswin\ootl_mswin_gdi.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\mswin\ootl_mswin_simple_win.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_object.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_output.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_polar.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_predicate.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_procedure.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_ptr.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_stack.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_string.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_string_utils.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_tester.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_timer.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\sandbox\ootl_valarray.hpp">
+				</File>
+				<File 
+					RelativePath=".\ootl\src\include\ootl\ootl_vlist.hpp">
+				</File>
+			</Filter>
+		</Filter>
+		<Filter 
+			Name="google"
+			Filter="">
+			<File 
+				RelativePath=".\sparsehash\src\google\sparsehash\config.h">
+			</File>
+			<File 
+				RelativePath=".\sparsehash\src\google\dense_hash_map">
+			</File>
+			<File 
+				RelativePath=".\sparsehash\src\google\dense_hash_set">
+			</File>
+			<File 
+				RelativePath=".\sparsehash\src\google\sparsehash\densehashtable.h">
+			</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_map.h">
+			</File>
+			<File 
+				RelativePath=".\sparsehash\src\google\sparse_hash_map">
+			</File>
+			<File 
+				RelativePath=".\sparsehash\src\google\sparse_hash_set">
+			</File>
+			<File 
+				RelativePath=".\sparsehash\src\google\sparsehash\sparsehashtable.h">
+			</File>
+			<File 
+				RelativePath=".\sparsehash\src\google\sparsetable">
+			</File>
+			<File 
+				RelativePath=".\sparsehash\src\windows\stl_hash_fun.h">
+			</File>
+		</Filter>
 		<File 
-			RelativePath=".\AxisAlignedBox3.cpp"/>
-		<File 
-			RelativePath=".\AxisAlignedBox3.h"/>
-		<File 
-			RelativePath=".\Beam.cpp"/>
-		<File 
-			RelativePath=".\Beam.h"/>
-		<File 
-			RelativePath=".\Timer\BenchTimer.cpp"/>
-		<File 
-			RelativePath=".\Timer\BenchTimer.h"/>
-		<File 
-			RelativePath=".\BitVectorPvs.h"/>
-		<File 
-			RelativePath=".\BoostPreprocessorThread.cpp"/>
-		<File 
-			RelativePath=".\BoostPreprocessorThread.h"/>
-		<File 
-			RelativePath=".\BoundingBoxConverter.h"/>
-		<File 
-			RelativePath=".\BvHierarchy.cpp"/>
-		<File 
-			RelativePath=".\BvHierarchy.h"/>
-		<File 
-			RelativePath=".\Camera.cpp"/>
-		<File 
-			RelativePath=".\Camera.h"/>
-		<File 
-			RelativePath=".\CombinedPreprocessor.cpp"/>
-		<File 
-			RelativePath=".\CombinedPreprocessor.h"/>
-		<File 
-			RelativePath=".\common.cpp"/>
-		<File 
-			RelativePath=".\common.h"/>
-		<File 
-			RelativePath=".\Containers.h"/>
-		<File 
-			RelativePath=".\DefaultPvs.h"/>
-		<File 
-			RelativePath=".\dual_depth.cg"/>
-		<File 
-			RelativePath=".\Environment.cpp"/>
-		<File 
-			RelativePath=".\Environment.h"/>
-		<File 
-			RelativePath=".\ExactPreprocessor.cpp"/>
-		<File 
-			RelativePath=".\ExactPreprocessor.h"/>
-		<File 
-			RelativePath=".\Exporter.cpp"/>
-		<File 
-			RelativePath=".\Exporter.h"/>
-		<File 
-			RelativePath=".\FlexibleHeap.h"/>
-		<File 
-			RelativePath=".\glInterface.h"/>
-		<File 
-			RelativePath=".\GlobalLinesRenderer.cpp"/>
-		<File 
-			RelativePath=".\GlobalLinesRenderer.h"/>
-		<File 
-			RelativePath=".\GvsPreprocessor.cpp"/>
-		<File 
-			RelativePath=".\GvsPreprocessor.h"/>
-		<File 
-			RelativePath=".\GzBinFileInputStream.cpp"/>
-		<File 
-			RelativePath=".\GzBinFileInputStream.h"/>
-		<File 
-			RelativePath=".\GzFileInputSource.cpp"/>
-		<File 
-			RelativePath=".\GzFileInputSource.h"/>
-		<File 
-			RelativePath=".\gzstream.cpp"/>
-		<File 
-			RelativePath=".\gzstream.h"/>
-		<File 
-			RelativePath=".\Halton.cpp"/>
-		<File 
-			RelativePath=".\Halton.h"/>
-		<File 
-			RelativePath=".\HashPvs.h"/>
-		<File 
-			RelativePath=".\HashPvs2.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=".\IntersectableWrapper.cpp"/>
-		<File 
-			RelativePath=".\IntersectableWrapper.h"/>
-		<File 
-			RelativePath=".\IntersectionBoundingBoxConverter.cpp"/>
-		<File 
-			RelativePath=".\IntersectionBoundingBoxConverter.h"/>
-		<File 
-			RelativePath=".\KdTree.cpp"/>
-		<File 
-			RelativePath=".\KdTree.h"/>
-		<File 
-			RelativePath=".\LogManager.cpp"/>
-		<File 
-			RelativePath=".\LogManager.h"/>
-		<File 
-			RelativePath=".\Material.cpp"/>
-		<File 
-			RelativePath=".\Material.h"/>
-		<File 
-			RelativePath=".\Matrix4x4.cpp"/>
-		<File 
-			RelativePath=".\Matrix4x4.h"/>
-		<File 
-			RelativePath=".\Timer\merror.cpp"/>
-		<File 
-			RelativePath=".\Timer\merror.h"/>
-		<File 
-			RelativePath=".\Mesh.cpp"/>
-		<File 
-			RelativePath=".\Mesh.h"/>
-		<File 
-			RelativePath=".\MeshKdTree.cpp"/>
-		<File 
-			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 
-			RelativePath=".\ObjParser.h"/>
-		<File 
-			RelativePath=".\OcclusionQuery.cpp"/>
-		<File 
-			RelativePath=".\OcclusionQuery.h"/>
-		<File 
-			RelativePath=".\OspTree.cpp"/>
-		<File 
-			RelativePath=".\OspTree.h"/>
-		<File 
-			RelativePath=".\Parser.h"/>
-		<File 
-			RelativePath=".\Timer\PerfTimer.h"/>
-		<File 
-			RelativePath=".\Timer\PerfTimerSkeleton.h"/>
-		<File 
-			RelativePath=".\Plane3.cpp"/>
-		<File 
-			RelativePath=".\Plane3.h"/>
-		<File 
-			RelativePath=".\ply.h"/>
-		<File 
-			RelativePath=".\plyfile.c"/>
-		<File 
-			RelativePath=".\PlyParser.cpp"/>
-		<File 
-			RelativePath=".\PlyParser.h"/>
-		<File 
-			RelativePath=".\Polygon3.cpp"/>
-		<File 
-			RelativePath=".\Polygon3.h"/>
-		<File 
-			RelativePath=".\Polytope.cpp"/>
-		<File 
-			RelativePath=".\Polytope.h"/>
-		<File 
-			RelativePath=".\Preprocessor.cpp"/>
-		<File 
-			RelativePath=".\Preprocessor.h">
-			<FileConfiguration 
-				Name="Release|Win32">
-				<Tool 
-					Name="CustomTool"
-					Description=""
-					CommandLine=""
-					Outputs=""/>
-			</FileConfiguration>
-			<FileConfiguration 
-				Name="mlrt|Win32">
-				<Tool 
-					Name="CustomTool"
-					Description=""
-					CommandLine=""
-					Outputs=""/>
-			</FileConfiguration>
-			<FileConfiguration 
-				Name="Release_Internal|Win32">
-				<Tool 
-					Name="CustomTool"
-					Description=""
-					CommandLine=""
-					Outputs=""/>
-			</FileConfiguration>
-			<FileConfiguration 
-				Name="Release Internal|Win32">
-				<Tool 
-					Name="CustomTool"
-					Description=""
-					CommandLine=""
-					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>
+			RelativePath=".\VTune\Preprocessor.vpj">
 		</File>
-		<File 
-			RelativePath=".\PreprocessorFactory.cpp"/>
-		<File 
-			RelativePath=".\PreprocessorFactory.h"/>
-		<File 
-			RelativePath=".\PreprocessorThread.cpp"/>
-		<File 
-			RelativePath=".\PreprocessorThread.h">
-			<FileConfiguration 
-				Name="Release|Win32">
-				<Tool 
-					Name="CustomTool"
-					Description=""
-					CommandLine=""
-					Outputs=""/>
-			</FileConfiguration>
-			<FileConfiguration 
-				Name="mlrt|Win32">
-				<Tool 
-					Name="CustomTool"
-					Description=""
-					CommandLine=""
-					Outputs=""/>
-			</FileConfiguration>
-			<FileConfiguration 
-				Name="Release_Internal|Win32">
-				<Tool 
-					Name="CustomTool"
-					Description=""
-					CommandLine=""
-					Outputs=""/>
-			</FileConfiguration>
-			<FileConfiguration 
-				Name="Release Internal|Win32">
-				<Tool 
-					Name="CustomTool"
-					Description=""
-					CommandLine=""
-					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.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 
-			RelativePath=".\Rectangle3.h"/>
-		<File 
-			RelativePath=".\RenderSampler.cpp"/>
-		<File 
-			RelativePath=".\RenderSampler.h"/>
-		<File 
-			RelativePath=".\RenderSimulator.cpp"/>
-		<File 
-			RelativePath=".\RenderSimulator.h"/>
-		<File 
-			RelativePath=".\RenderTexture.cpp"/>
-		<File 
-			RelativePath=".\RenderTexture.h"/>
-		<File 
-			RelativePath=".\ResourceManager.h"/>
-		<File 
-			RelativePath=".\RssPreprocessor.cpp"/>
-		<File 
-			RelativePath=".\RssPreprocessor.h"/>
-		<File 
-			RelativePath=".\RssTree.cpp"/>
-		<File 
-			RelativePath=".\RssTree.h"/>
-		<File 
-			RelativePath=".\SamplingPreprocessor.cpp"/>
-		<File 
-			RelativePath=".\SamplingPreprocessor.h"/>
-		<File 
-			RelativePath=".\SamplingStrategy.cpp"/>
-		<File 
-			RelativePath=".\SamplingStrategy.h"/>
-		<File 
-			RelativePath=".\SceneGraph.cpp"/>
-		<File 
-			RelativePath=".\SceneGraph.h"/>
-		<File 
-			RelativePath=".\Statistics.h"/>
-		<File 
-			RelativePath=".\SubdivisionCandidate.cpp"/>
-		<File 
-			RelativePath=".\SubdivisionCandidate.h"/>
-		<File 
-			RelativePath=".\Tetrahedron3.cpp"/>
-		<File 
-			RelativePath=".\Tetrahedron3.h"/>
-		<File 
-			RelativePath=".\Trackball.cpp"/>
-		<File 
-			RelativePath=".\Trackball.h"/>
-		<File 
-			RelativePath=".\TraversalTree.cpp"/>
-		<File 
-			RelativePath=".\TraversalTree.h"/>
-		<File 
-			RelativePath=".\Triangle3.cpp"/>
-		<File 
-			RelativePath=".\Triangle3.h"/>
-		<File 
-			RelativePath=".\UnigraphicsParser.cpp"/>
-		<File 
-			RelativePath=".\UnigraphicsParser.h"/>
-		<File 
-			RelativePath=".\Vector3.cpp"/>
-		<File 
-			RelativePath=".\Vector3.h"/>
-		<File 
-			RelativePath=".\ViewCell.cpp"/>
-		<File 
-			RelativePath=".\ViewCell.h"/>
-		<File 
-			RelativePath=".\ViewCellBsp.cpp"/>
-		<File 
-			RelativePath=".\ViewCellBsp.h"/>
-		<File 
-			RelativePath=".\ViewCellsManager.cpp"/>
-		<File 
-			RelativePath=".\ViewCellsManager.h"/>
-		<File 
-			RelativePath=".\ViewCellsParser.cpp"/>
-		<File 
-			RelativePath=".\ViewCellsParser.h"/>
-		<File 
-			RelativePath=".\ViewCellsParserXerces.h"/>
-		<File 
-			RelativePath=".\VrmlExporter.cpp"/>
-		<File 
-			RelativePath=".\VrmlExporter.h"/>
-		<File 
-			RelativePath=".\VspBspTree.cpp"/>
-		<File 
-			RelativePath=".\VspBspTree.h"/>
-		<File 
-			RelativePath=".\VspTree.cpp"/>
-		<File 
-			RelativePath=".\VspTree.h"/>
-		<File 
-			RelativePath=".\VssPreprocessor.cpp"/>
-		<File 
-			RelativePath=".\VssPreprocessor.h"/>
-		<File 
-			RelativePath=".\VssRay.cpp"/>
-		<File 
-			RelativePath=".\VssRay.h"/>
-		<File 
-			RelativePath=".\VssTree.cpp"/>
-		<File 
-			RelativePath=".\VssTree.h"/>
-		<File 
-			RelativePath=".\X3dExporter.cpp"/>
-		<File 
-			RelativePath=".\X3dExporter.h"/>
-		<File 
-			RelativePath=".\X3dParser.cpp"/>
-		<File 
-			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=".\GlRenderer.cpp"/>
-		<File 
-			RelativePath=".\GlRenderer.h"/>
-		<File 
-			RelativePath=".\Renderer.cpp"/>
-		<File 
-			RelativePath=".\Renderer.h"/>
-		<File 
-			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\google\sparsehash\hash_fun.h"/>
-		<File 
-			RelativePath=".\sparsehash\src\windows\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/VspBspTree.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp	(revision 2124)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp	(revision 2233)
@@ -1277,5 +1277,7 @@
 	  
 		// only count termination objects?
-		if (COUNT_ORIGIN_OBJECTS && ray->mOriginObject) 
+#if COUNT_ORIGIN_OBJECTS
+		
+		if (ray->mOriginObject) 
 		{
 			if (vc->AddPvsSample(ray->mOriginObject, ray->mPdf, contribution))
@@ -1284,5 +1286,5 @@
 			sc += contribution;
 		}
-		
+#endif
 		sampleContributions += sc;
 		
@@ -1402,5 +1404,7 @@
 		Intersectable *tObject = (*ri).mRay->mTerminationObject;
 
-		if (COUNT_ORIGIN_OBJECTS && oObject)
+#if COUNT_ORIGIN_OBJECTS 
+		
+		if (oObject)
 		{
 			if (!oObject->Mailed())
@@ -1414,4 +1418,5 @@
 			}
 		}
+#endif
 
 		if (tObject)
@@ -1444,10 +1449,11 @@
 			case SortableEntry::ERayMin:
 				{
-					if (COUNT_ORIGIN_OBJECTS && oObject && !oObject->Mailed())
+#if COUNT_ORIGIN_OBJECTS
+					if (oObject && !oObject->Mailed())
 					{
 						oObject->Mail();
 						++ pvsl;
 					}
-
+#endif
 					if (tObject && !tObject->Mailed())
 					{
@@ -1460,10 +1466,11 @@
 			case SortableEntry::ERayMax:
 				{
-					if (COUNT_ORIGIN_OBJECTS && oObject)
+#if COUNT_ORIGIN_OBJECTS 
+					if (oObject)
 					{
 						if (-- oObject->mCounter == 0)
 							-- pvsr;
 					}
-
+#endif
 					if (tObject)
 					{
@@ -1996,8 +2003,7 @@
 		AddObjToPvs(ray->mTerminationObject, cf, pvsFront, pvsBack, totalPvs);
 
-		if (COUNT_ORIGIN_OBJECTS)
-		{
-			AddObjToPvs(ray->mOriginObject, cf, pvsFront, pvsBack, totalPvs);
-		}
+#if COUNT_ORIGIN_OBJECTS
+		AddObjToPvs(ray->mOriginObject, cf, pvsFront, pvsBack, totalPvs);
+#endif
 	}
 
@@ -2107,8 +2113,7 @@
 		AddObjToPvs(ray->mTerminationObject, cf, pvsFront, pvsBack, totalPvs);
 
-		if (COUNT_ORIGIN_OBJECTS)
-		{
-			AddObjToPvs(ray->mOriginObject, cf, pvsFront, pvsBack, totalPvs);
-		}
+#if COUNT_ORIGIN_OBJECTS
+		AddObjToPvs(ray->mOriginObject, cf, pvsFront, pvsBack, totalPvs);
+#endif
 	}
 
@@ -2296,8 +2301,7 @@
 		AddObjToPvs((*rit).mRay->mTerminationObject, side, pvsFront, pvsBack, pvsTotal);
 
-		if (COUNT_ORIGIN_OBJECTS)
-		{
-			AddObjToPvs((*rit).mRay->mOriginObject, side, pvsFront, pvsBack, pvsTotal);
-		}
+#if COUNT_ORIGIN_OBJECTS
+		AddObjToPvs((*rit).mRay->mOriginObject, side, pvsFront, pvsBack, pvsTotal);
+#endif
 	}
 
@@ -3377,5 +3381,6 @@
 		VssRay *ray = (*rit).mRay;
 
-		if (COUNT_ORIGIN_OBJECTS && ray->mOriginObject)
+#if COUNT_ORIGIN_OBJECTS
+		if (ray->mOriginObject)
 		{
 			if (!ray->mOriginObject->Mailed())
@@ -3385,5 +3390,5 @@
 			}
 		}
-
+#endif
 		if (ray->mTerminationObject)
 		{
Index: GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj	(revision 2232)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.vcproj	(revision 2233)
@@ -207,5 +207,5 @@
 			Name="Release Internal|Win32"
 			OutputDirectory="..\libRelease"
-			IntermediateDirectory="...\obj\Release"
+			IntermediateDirectory="..\obj\Release"
 			ConfigurationType="4"
 			CharacterSet="2">
@@ -1168,8 +1168,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/HierarchyManager.h
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.h	(revision 2228)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.h	(revision 2233)
@@ -46,5 +46,5 @@
 
 
-#define COUNT_ORIGIN_OBJECTS 1
+#define COUNT_ORIGIN_OBJECTS 0
 #define USE_AVGRAYCONTRI 0
 
Index: GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.h
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.h	(revision 2228)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.h	(revision 2233)
@@ -523,5 +523,7 @@
 		}
 
-		bool Apply(SplitQueue &splitQueue, bool terminationCriteriaMet, SubdivisionCandidateContainer &dirtyList)
+		bool Apply(SplitQueue &splitQueue, 
+				   bool terminationCriteriaMet, 
+				   SubdivisionCandidateContainer &dirtyList)
 		{
 			VspNode *n = sVspTree->Subdivide(splitQueue, this, terminationCriteriaMet);
@@ -921,10 +923,10 @@
 	/** Evaluates contribution of max event to pvs
 	*/
-	inline int EvalMaxEventContribution(
-		const VssRay &ray, const bool isTermination) const;
+	inline int EvalMaxEventContribution(const VssRay &ray, const bool isTermination) const;
 
 	/** Evaluates contribution of kd leaf when encountering a min event
 	*/
 	inline int EvalMinEventContribution(KdLeaf *leaf) const;
+
 	/**  Evaluates contribution of kd leaf when encountering a max event
 	*/
Index: GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.cpp	(revision 2229)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.cpp	(revision 2233)
@@ -1866,26 +1866,4 @@
 
 
-float BvHierarchy::EvalAbsCost(const ObjectContainer &objects)
-{
-	float result;
-#if USE_BETTER_RENDERCOST_EST
-	ObjectContainer::const_iterator oit, oit_end = objects.end();
-
-	for (oit = objects.begin(); oit != oit_end; ++ oit)
-	{
-		result += ViewCellsManager::GetRendercost(*oit);
-	}
-#else
-	result = (float)objects.size();
-#endif
-
-#if BOUND_RENDERCOST
-	result = max(result, MIN_RENDERCOST);
-#endif
-
-	return result;
-}
-
-
 float BvHierarchy::EvalSahCost(BvhLeaf *leaf) const
 {
Index: GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.h
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.h	(revision 2227)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.h	(revision 2233)
@@ -644,6 +644,5 @@
 	{
 		// hack: we use the simpler but faster version
-		if (!object) 
-			return NULL;
+		//if (!object) return NULL;
 
 		return object->mBvhLeaf;
@@ -676,5 +675,5 @@
 	/////////////////////////////////
 
-	static float EvalAbsCost(const ObjectContainer &objects);
+	static inline float EvalAbsCost(const ObjectContainer &objects);
 
 	void CollectObjects(const AxisAlignedBox3 &box, ObjectContainer &objects);
@@ -1101,5 +1100,32 @@
 };
 
+
+float BvHierarchy::EvalAbsCost(const ObjectContainer &objects)
+{
+	float result;
+
+#if USE_BETTER_RENDERCOST_EST
+	
+	ObjectContainer::const_iterator oit, oit_end = objects.end();
+
+	for (oit = objects.begin(); oit != oit_end; ++ oit)
+	{
+		result += ViewCellsManager::GetRendercost(*oit);
+	}
+
+#else
+	
+	result = (float)objects.size();
+
+#endif
+
+#if BOUND_RENDERCOST
+	result = max(result, MIN_RENDERCOST);
+#endif
+
+	return result;
 }
 
+}
+
 #endif
Index: GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp	(revision 2231)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/VspTree.cpp	(revision 2233)
@@ -1412,35 +1412,102 @@
 	
 	const int leaves = mVspStats.Leaves();
-	const bool showViz = ((axis == 0) && (leaves == 500));
+	const bool showViz = (leaves % 30 == 0);
 
 	if (showViz)
 	{
+		//cout << "========================== exporting split ===================" << endl;
+
 		Exporter *exporter;
 
-		exporter = Exporter::GetExporter("split.wrl");
+		char str[64]; sprintf(str, "vc-%04d_%d.wrl", leaves, axis);
+
+		exporter = Exporter::GetExporter(str);
+
+		Material m;
+		m.mDiffuseColor.r = 1.0f;
+		m.mDiffuseColor.g = 0.0f;
+		m.mDiffuseColor.b = 0.0f;
+
+		exporter->SetForcedMaterial(m);
 		exporter->SetWireframe();
 
 		exporter->ExportBox(tData.mBoundingBox);
 
+		exporter->ResetForcedMaterial();
+
 		RayInfoContainer::const_iterator rit, rit_end = tData.mRays->end();
 
 		exporter->SetFilled();
 	
+		m.mDiffuseColor.r = 0.0f;
+		m.mDiffuseColor.g = 1.0f;
+		m.mDiffuseColor.b = 0.0f;
+
+		exporter->SetForcedMaterial(m);
+
+		// create unique ids for pvs heuristics
+		Intersectable::NewMail(3);
+
+		float a = 0, b = 0, c = 0;
+
+		// this is the main ray classification loop!
+		for(rit = tData.mRays->begin(); rit != rit_end; ++ rit)
+		{
+			VssRay *ray = (*rit).mRay;
+
+			// determine the side of this ray with respect to the plane
+			float t;
+			const int side = (*rit).ComputeRayIntersection(axis, position, t);
+	
+			UpdateContributionsToPvs(*ray, true, side, a, b, c);
+			UpdateContributionsToPvs(*ray, false, side, a, b, c);
+		}
+
+
 		for (rit = tData.mRays->begin(); rit != rit_end; ++ rit)
 		{
 			RayInfo rayInf = *rit;
-
+			
 			// export objects
 			VssRay *ray = rayInf.mRay;	
 			BvhLeaf *leaf = mBvHierarchy->GetLeaf(ray->mTerminationObject);
+
+			//left and right
+			if (leaf->Mailed(2))
+			{
+				m.mDiffuseColor.r = 0.0f;
+				m.mDiffuseColor.g = 1.0f;
+				m.mDiffuseColor.b = 1.0f;
+			}
+			else if (leaf->Mailed(1)) // only right
+			{
+				m.mDiffuseColor.r = 0.0f;
+				m.mDiffuseColor.g = 1.0f;
+				m.mDiffuseColor.b = 0.0f;
+			}
+			else // left
+			{
+				m.mDiffuseColor.r = 0.0f;
+				m.mDiffuseColor.g = 0.0f;
+				m.mDiffuseColor.b = 1.0f;
+			}
+
+			exporter->SetForcedMaterial(m);
+
 			exporter->ExportIntersectable(leaf);
 
 		}
 
+		m.mDiffuseColor.r = 1.0f;
+		m.mDiffuseColor.g = 0.0f;
+		m.mDiffuseColor.b = 1.0f;
+
+		exporter->SetForcedMaterial(m);
 		AxisAlignedBox3 vizPlaneBox;
 		vizPlaneBox = tData.mBoundingBox;
 	
-		Vector3 scale(1, 1, 1); scale[axis] = 0.05f;
-		vizPlaneBox.Scale(scale);
+		vizPlaneBox.SetMin(axis, position - 0.01);
+		vizPlaneBox.SetMax(axis, position + 0.01);
+
 		exporter->ExportBox(vizPlaneBox);
 
@@ -1737,5 +1804,5 @@
 	const float renderCost = mViewCellsManager->EvalRenderCost(obj);
 
-	// object in no pvs => new
+	// object in none of the pvss => new object
 	if (!obj->Mailed() && !obj->Mailed(1) && !obj->Mailed(2))
 	{
@@ -2312,14 +2379,26 @@
 
 {
-		Intersectable *obj; 
-		Vector3 pt;
-		KdNode *node;
-
-		ray.GetSampleData(isTermination, pt, &obj, &node);
-		if (!obj) return 0;
-
-		switch(mHierarchyManager->GetObjectSpaceSubdivisionType())
-		{
-		case HierarchyManager::NO_OBJ_SUBDIV:
+	
+#if HACK_PERFORMANCE
+	
+	BvhLeaf *bvhleaf = mBvHierarchy->GetLeaf(mTerminationObject);
+
+	if (!bvhleaf->Mailed())
+	{
+		bvhleaf->Mail();
+		return 1;
+	}
+#else
+	Intersectable *obj; 
+	Vector3 pt;
+	KdNode *node;
+
+	ray.GetSampleData(isTermination, pt, &obj, &node);
+
+	if (!obj) return 0;
+
+	switch(mHierarchyManager->GetObjectSpaceSubdivisionType())
+	{
+	case HierarchyManager::NO_OBJ_SUBDIV:
 		{
 			if (!obj->Mailed())
@@ -2328,9 +2407,9 @@
 				return 1;
 			}
-			
+
 			return 0;
 		}
 
-		case HierarchyManager::KD_BASED_OBJ_SUBDIV:
+	case HierarchyManager::KD_BASED_OBJ_SUBDIV:
 		{
 			KdLeaf *leaf = mHierarchyManager->mOspTree->GetLeaf(pt, node);
@@ -2340,5 +2419,5 @@
 				return 1;
 			}
-			
+
 			return 0;
 		}
@@ -2352,5 +2431,5 @@
 				return 1;
 			}
-			
+
 			return 0;
 		}
@@ -2358,5 +2437,5 @@
 		break;
 	}
-
+#endif
 	return 0;
 }
@@ -3004,4 +3083,23 @@
 									const bool onlyUnmailed) const
 {
+	
+#if HACK_PERFORMANCE
+
+	SubdivisionCandidate *candidate;
+
+	BvhLeaf *leaf = mBvHierarchy->GetLeaf(ray.mTerminationObject);
+
+	if (!leaf->Mailed())
+	{
+		leaf->Mail();
+		candidate = leaf->GetSubdivisionCandidate();
+	}
+	else
+	{
+		candidate = NULL;
+	}
+#else
+
+	SubdivisionCandidate *candidate = NULL;
 
 	Intersectable *obj;
@@ -3012,7 +3110,5 @@
 	
 	if (!obj) return;
-	
-	SubdivisionCandidate *candidate = NULL;
-		
+
 	switch (mHierarchyManager->GetObjectSpaceSubdivisionType())
 	{
@@ -3044,4 +3140,5 @@
 		break;
 	}
+#endif
 
 	// is this leaf still a split candidate?
@@ -3081,4 +3178,17 @@
 									  const bool isTermination) const
 {
+	int pvs = 0;
+
+#if HACK_PERFORMANCE
+
+	BvhLeaf *leaf = mBvHierarchy->GetLeaf(ray.mTerminationObject);
+			
+	// simple render cost evaluation
+	if (-- leaf->mCounter == 0)
+		//pvs += (int)leaf->mObjects.size();
+		pvs += mBvHierarchy::EvalAbsCost((int)leaf->mObjects.size());
+
+#else
+
 	Intersectable *obj;
 	Vector3 pt;
@@ -3087,8 +3197,5 @@
 	ray.GetSampleData(isTermination, pt, &obj, &node);
 
-	if (!obj) 
-		return 0;
-
-	int pvs = 0;
+	if (!obj) return 0;
 
 	switch (mHierarchyManager->GetObjectSpaceSubdivisionType())
@@ -3111,7 +3218,9 @@
 		{
 			BvhLeaf *leaf = mBvHierarchy->GetLeaf(obj);
-
+			
+			// simple render cost evaluation
 			if (-- leaf->mCounter == 0)
 				pvs += (int)leaf->mObjects.size();
+				//pvs += (int)BvHierarchy::EvalAbsCost(leaf->mObjects);
 			break;
 		}
@@ -3119,5 +3228,5 @@
 		break;
 	}
-
+#endif
 	return pvs;
 }
@@ -3127,4 +3236,18 @@
 {
 	float pvsSize = 0;
+	
+#if HACK_PERFORMANCE
+	BvhLeaf *leaf = mBvHierarchy->GetLeaf(ray.mTerminationObject);
+
+	if (!leaf->Mailed())
+	{
+		leaf->Mail();
+		leaf->mCounter = 0;
+		pvsSize += (int)leaf->mObjects.size();
+	}
+
+	++ leaf->mCounter;	
+
+#else
 	
 	Intersectable *obj;
@@ -3134,6 +3257,5 @@
 	ray.GetSampleData(isTermination, pt, &obj, &node);
 
-	if (!obj)
-		return 0;
+	if (!obj) return 0;
 
 	switch (mHierarchyManager->GetObjectSpaceSubdivisionType())
@@ -3174,5 +3296,5 @@
 		break;
 	}
-
+#endif
 	return pvsSize;
 }
@@ -3182,4 +3304,16 @@
 									  const bool isTermination) const
 {
+#if HACK_PERFORMANCE
+
+	BvhLeaf *leaf = mBvHierarchy->GetLeaf(ray.mTerminationObject);
+	
+	if (!leaf->Mailed())
+	{
+		leaf->Mail();
+		pvs += (int)leaf->mObjects.size();
+	}
+
+#else
+
 	Intersectable *obj;
 	Vector3 pt;
@@ -3223,5 +3357,5 @@
 		break;
 	}
-
+#endif
 	return pvs;
 }
@@ -3235,4 +3369,11 @@
 									   float &totalPvs) const
 {
+#if HACK_PERFORMANCE
+
+	BvhLeaf *leaf = mBvHierarchy->GetLeaf(ray.mTerminationObject);
+	UpdateContributionsToPvs(leaf, cf, frontPvs, backPvs, totalPvs, false);
+
+#else
+
 	Intersectable *obj;
 	Vector3 pt;
@@ -3264,4 +3405,5 @@
 		}
 	}
+#endif
 }
 
@@ -3273,5 +3415,13 @@
 										   float &pvsBack,
 										   float &totalPvs) const
-{
+{	
+#if HACK_PERFORMANCE
+
+	BvhLeaf *leaf = mBvHierarchy->GetLeaf(ray.mTerminationObject);
+	UpdateContributionsToPvs(leaf, cf, pvsFront, pvsBack, totalPvs, true);
+
+
+#else
+
 	Intersectable *obj;
 	Vector3 pt;
@@ -3296,9 +3446,24 @@
 		break;
 	}
+#endif
 }
 
 
 int VspTree::EvalContributionToPvs(const VssRay &ray, const bool isTermination) const
-{	
+{
+
+#if HACK_PERFORMANCE
+	int pvs = 0;
+
+	BvhLeaf *bvhleaf = mBvHierarchy->GetLeaf(ray.mTerminationObject);
+
+	if (!bvhleaf->Mailed())
+	{
+		bvhleaf->Mail();
+		pvs += (int)bvhleaf->mObjects.size();
+	}
+
+#else
+		
 	Intersectable *obj; 
 	Vector3 pt;
@@ -3342,5 +3507,5 @@
 		break;
 	}
-
+#endif
 	return pvs;
 }
Index: GTP/trunk/Lib/Vis/Preprocessing/src/VssRay.h
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/VssRay.h	(revision 2176)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/VssRay.h	(revision 2233)
@@ -252,4 +252,5 @@
     
 };
+
 
 inline void VssRay::GetSampleData(const bool isTermination, 
@@ -272,4 +273,5 @@
 }
 
+
 void
 GenerateExtendedConvexCombinationWeights(float &w1,
Index: GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp
===================================================================
--- GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp	(revision 2232)
+++ GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp	(revision 2233)
@@ -872,10 +872,10 @@
 	const float newPvs = alpha * childPvs + (1.0f - alpha) * totalPvs;
 #endif
-//cout << "b ";// << avgRaysPerObjects << " ";
+	//cout << "b ";
 	//cout << "alpha " << alpha << " beta: " << beta << " child: " << childPvs << " parent: " << totalPvs << endl;
 	
-	if ((newPvs < childPvs - Limits::Small) || (newPvs > totalPvs + Limits::Small))
-		cout << "w: " << newPvs << " < child (" 
-			 << childPvs << ") or > parent (" << totalPvs << ")" << endl;
+	if (0 && 
+		((newPvs < childPvs - Limits::Small) || (newPvs > totalPvs + Limits::Small)))
+		cout << "w: " << newPvs << " < child (" << childPvs << ") or > parent (" << totalPvs << ")" << endl;
 
 	return newPvs;
@@ -1659,6 +1659,5 @@
 {
 
-	if (!obj)
-		return NULL;
+	if (!obj) return NULL;
 
 	switch (mObjectSpaceSubdivisionType)
@@ -1678,4 +1677,5 @@
 	}
 }
+
 
 Intersectable *HierarchyManager::GetIntersectable(const VssRay &ray, 
@@ -1688,6 +1688,5 @@
 	ray.GetSampleData(isTermination, pt, &obj, &node);
 
-	if (!obj)
-		return NULL;
+	if (!obj) return NULL;
 
 	switch (mObjectSpaceSubdivisionType)
