19 Commits
Ex3 ... master

Author SHA1 Message Date
1296ef0b39 fix midpoint 2023-11-17 14:22:14 +01:00
b857996445 Merge branch 'master' of ssh://git.peroxy.dev:222/kookroach/game-physics 2023-11-16 23:17:58 +01:00
00ac0d266d fix euler, start fix midpoint 2023-11-16 23:17:49 +01:00
50d8f7561e Merge pull request 'revert b1c4939b16a9ae408160e0d0d3dcd2a4872a1cb4' (#9) from revert-test into master
Reviewed-on: #9
2023-11-16 21:27:42 +01:00
9316f35eee revert b1c4939b16
revert test
2023-11-16 21:25:14 +01:00
MuZiQiAM
b1c4939b16 test 2023-11-16 21:13:12 +01:00
489ddce9b2 fix spring bug 2023-11-16 19:53:38 +01:00
af0421a557 clean up after merge 2023-11-16 19:46:41 +01:00
ef4251f664 clean up, add print method for springs, change Euler Function declaration, add demo, demo2 demo3 setup 2023-11-16 19:27:13 +01:00
MuZiQiAM
0647bb8735 TestCases, Midpoint push 2023-11-16 18:40:59 +01:00
82f103758d merge stuff demo 2 2023-11-08 15:19:29 +01:00
MuZiQiAM
03ebc33ec6 Merge branch 'master' of https://git.peroxy.dev/kookroach/game-physics 2023-11-08 15:14:20 +01:00
MuZiQiAM
3946a25f27 Demo 1 stuff 2023-11-08 15:14:17 +01:00
PfandBoss
741958d30b Mouse Input test stuff 2023-11-02 14:53:04 +01:00
047b913dfa Fix Repo + add basics 2023-10-31 00:37:29 +01:00
Felix Koehler
5348c6e002 Update build system for VS 2022 2023-10-30 07:47:16 +01:00
youxie
07934c01d5 Update quaternion.h
typo fix for quaternion multiplication
2022-11-09 16:19:52 +01:00
Brener
84e7c726c9 Including stdexcept in order to make retargeting to VS19 work 2021-10-22 09:38:59 +02:00
youxie
7170c0b8f0 Update readme.txt 2019-11-29 09:55:47 +01:00
33 changed files with 6398 additions and 3195 deletions

47
.gitignore vendored Normal file
View File

@@ -0,0 +1,47 @@
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
.DS_STORE
Win32
*.vcxproj.user
.vs
SimulationsRunner/Debug
SimulationsRunner/Release
x64/
Win32/
Debug/
Release/

View File

@@ -0,0 +1,496 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}</ProjectGuid>
<RootNamespace>AntTweakBar</RootNamespace>
<ProjectName>AntTweakBar</ProjectName>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>../lib\</OutDir>
<IntDir>release64\</IntDir>
<IgnoreImportLibrary>false</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<IgnoreImportLibrary>false</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)</TargetName>
<OutDir>../lib\</OutDir>
<IntDir>release32\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>../lib/debug\</OutDir>
<IntDir>debug64\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>$(ProjectName)64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<TargetName>$(ProjectName)</TargetName>
<OutDir>../lib/debug\</OutDir>
<IntDir>debug32\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PreBuildEvent>
<Command>fxc /T vs_4_0_level_9_1 /E LineRectVS /Fh $(IntDir)TwDirect3D11_LineRectVS.h TwDirect3D11.hlsl
fxc/T vs_4_0_level_9_1 /E LineRectCstColorVS /Fh $(IntDir)TwDirect3D11_LineRectCstColorVS.h TwDirect3D11.hlsl
fxc /T ps_4_0_level_9_1 /E LineRectPS /Fh $(IntDir)TwDirect3D11_LineRectPS.h TwDirect3D11.hlsl
fxc /T vs_4_0_level_9_1 /E TextVS /Fh $(IntDir)TwDirect3D11_TextVS.h TwDirect3D11.hlsl
fxc /T vs_4_0_level_9_1 /E TextCstColorVS /Fh $(IntDir)TwDirect3D11_TextCstColorVS.h TwDirect3D11.hlsl
fxc /T ps_4_0_level_9_1 /E TextPS /Fh $(IntDir)TwDirect3D11_TextPS.h TwDirect3D11.hlsl
</Command>
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>X64</TargetEnvironment>
<TypeLibraryName>$(OutDir)AntTweakBar.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN64;_WIN64;NDEBUG;_WINDOWS;_USRDLL;TW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling />
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>TwPrecomp.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)AntTweakBar.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat />
<CompileAs>Default</CompileAs>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<RegisterOutput>false</RegisterOutput>
<OutputFile>$(OutDir)AntTweakBar64.dll</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<MapExports>false</MapExports>
<SetChecksum>true</SetChecksum>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention />
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir "$(SolutionDir)$(Platform)/$(Configuration)"
xcopy /y /f "$(TargetPath)" "$(SolutionDir)$(Platform)/$(Configuration)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEvent>
<Command>fxc /T vs_4_0_level_9_1 /E LineRectVS /Fh $(IntDir)TwDirect3D11_LineRectVS.h TwDirect3D11.hlsl
fxc/T vs_4_0_level_9_1 /E LineRectCstColorVS /Fh $(IntDir)TwDirect3D11_LineRectCstColorVS.h TwDirect3D11.hlsl
fxc /T ps_4_0_level_9_1 /E LineRectPS /Fh $(IntDir)TwDirect3D11_LineRectPS.h TwDirect3D11.hlsl
fxc /T vs_4_0_level_9_1 /E TextVS /Fh $(IntDir)TwDirect3D11_TextVS.h TwDirect3D11.hlsl
fxc /T vs_4_0_level_9_1 /E TextCstColorVS /Fh $(IntDir)TwDirect3D11_TextCstColorVS.h TwDirect3D11.hlsl
fxc /T ps_4_0_level_9_1 /E TextPS /Fh $(IntDir)TwDirect3D11_TextPS.h TwDirect3D11.hlsl
</Command>
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TypeLibraryName>$(OutDir)AntTweakBar.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<AdditionalIncludeDirectories>../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;TW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>TwPrecomp.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)AntTweakBar.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<RegisterOutput>false</RegisterOutput>
<OutputFile>$(OutDir)AntTweakBar.dll</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<MapExports>false</MapExports>
<SetChecksum>true</SetChecksum>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<PostBuildEvent>
<Command>mkdir "$(SolutionDir)$(Platform)/$(Configuration)"
xcopy /y /f "$(TargetPath)" "$(SolutionDir)$(Platform)/$(Configuration)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PreBuildEvent>
<Command>fxc /Od /Zi /T vs_4_0_level_9_1 /E LineRectVS /Fh $(IntDir)TwDirect3D11_LineRectVS.h TwDirect3D11.hlsl
fxc /Od /Zi /T vs_4_0_level_9_1 /E LineRectCstColorVS /Fh $(IntDir)TwDirect3D11_LineRectCstColorVS.h TwDirect3D11.hlsl
fxc /Od /Zi /T ps_4_0_level_9_1 /E LineRectPS /Fh $(IntDir)TwDirect3D11_LineRectPS.h TwDirect3D11.hlsl
fxc /Od /Zi /T vs_4_0_level_9_1 /E TextVS /Fh $(IntDir)TwDirect3D11_TextVS.h TwDirect3D11.hlsl
fxc /Od /Zi /T vs_4_0_level_9_1 /E TextCstColorVS /Fh $(IntDir)TwDirect3D11_TextCstColorVS.h TwDirect3D11.hlsl
fxc /Od /Zi /T ps_4_0_level_9_1 /E TextPS /Fh $(IntDir)TwDirect3D11_TextPS.h TwDirect3D11.hlsl
</Command>
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>X64</TargetEnvironment>
<TypeLibraryName>$(OutDir)AntTweakBar.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN64;_WIN64;_DEBUG;_WINDOWS;_USRDLL;TW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>TwPrecomp.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)AntTweakBar.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>$(OutDir)AntTweakBar64.dll</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention />
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<PostBuildEvent>
<Command>mkdir "$(SolutionDir)$(Platform)/$(Configuration)"
xcopy /y /f "$(TargetPath)" "$(SolutionDir)$(Platform)/$(Configuration)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PreBuildEvent>
<Command>fxc /Od /Zi /T vs_4_0_level_9_1 /E LineRectVS /Fh $(IntDir)TwDirect3D11_LineRectVS.h TwDirect3D11.hlsl
fxc /Od /Zi /T vs_4_0_level_9_1 /E LineRectCstColorVS /Fh $(IntDir)TwDirect3D11_LineRectCstColorVS.h TwDirect3D11.hlsl
fxc /Od /Zi /T ps_4_0_level_9_1 /E LineRectPS /Fh $(IntDir)TwDirect3D11_LineRectPS.h TwDirect3D11.hlsl
fxc /Od /Zi /T vs_4_0_level_9_1 /E TextVS /Fh $(IntDir)TwDirect3D11_TextVS.h TwDirect3D11.hlsl
fxc /Od /Zi /T vs_4_0_level_9_1 /E TextCstColorVS /Fh $(IntDir)TwDirect3D11_TextCstColorVS.h TwDirect3D11.hlsl
fxc /Od /Zi /T ps_4_0_level_9_1 /E TextPS /Fh $(IntDir)TwDirect3D11_TextPS.h TwDirect3D11.hlsl
</Command>
</PreBuildEvent>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TypeLibraryName>$(OutDir)AntTweakBar.tlb</TypeLibraryName>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;TW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>TwPrecomp.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)AntTweakBar.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<WarningLevel>Level4</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>res;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<OutputFile>$(OutDir)AntTweakBar.dll</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<ImportLibrary>$(OutDir)$(TargetName).lib</ImportLibrary>
</Link>
<PostBuildEvent>
<Command>mkdir "$(SolutionDir)$(Platform)/$(Configuration)"
xcopy /y /f "$(TargetPath)" "$(SolutionDir)$(Platform)/$(Configuration)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="LoadOGL.cpp" />
<ClCompile Include="LoadOGLCore.cpp" />
<ClCompile Include="TwBar.cpp" />
<ClCompile Include="TwColors.cpp" />
<ClCompile Include="TwDirect3D10.cpp" />
<ClCompile Include="TwDirect3D11.cpp" />
<ClCompile Include="TwDirect3D9.cpp" />
<ClCompile Include="TwEventGLFW.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TwEventGLUT.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TwEventSDL.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TwEventSDL12.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TwEventSDL13.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TwEventSFML.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TwEventWin.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TwFonts.cpp" />
<ClCompile Include="TwMgr.cpp" />
<ClCompile Include="TwOpenGL.cpp" />
<ClCompile Include="TwOpenGLCore.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TwPrecomp.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="TwDirect3D11.hlsl">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\AntTweakBar.h" />
<ClInclude Include="AntPerfTimer.h" />
<ClInclude Include="LoadOGL.h" />
<ClInclude Include="LoadOGLCore.h" />
<ClInclude Include="MiniGLFW.h" />
<ClInclude Include="MiniGLUT.h" />
<ClInclude Include="MiniSDL12.h" />
<ClInclude Include="MiniSDL13.h" />
<ClInclude Include="MiniSFML16.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="TwBar.h" />
<ClInclude Include="TwColors.h" />
<ClInclude Include="TwDirect3D10.h" />
<ClInclude Include="TwDirect3D11.h" />
<ClInclude Include="TwDirect3D9.h" />
<ClInclude Include="TwFonts.h" />
<ClInclude Include="TwGraph.h" />
<ClInclude Include="TwMgr.h" />
<ClInclude Include="TwOpenGL.h" />
<ClInclude Include="TwOpenGLCore.h" />
<ClInclude Include="TwPrecomp.h" />
<ClInclude Include="res\TwXCursors.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="AntTweakBar.rc" />
</ItemGroup>
<ItemGroup>
<None Include="res\cur00000.cur" />
<None Include="res\cur00001.cur" />
<None Include="res\cur00002.cur" />
<None Include="res\cur00003.cur" />
<None Include="res\cur00004.cur" />
<None Include="res\cur00005.cur" />
<None Include="res\cur00006.cur" />
<None Include="res\cur00007.cur" />
<None Include="res\cur00008.cur" />
<None Include="res\cur00009.cur" />
<None Include="res\cur00010.cur" />
<None Include="res\cur00011.cur" />
<None Include="res\cur00012.cur" />
<None Include="res\cur00013.cur" />
<None Include="res\FontFixed1.pgm" />
<None Include="res\FontLargeAA.pgm" />
<None Include="res\FontNormal.pgm" />
<None Include="FontSmall.pgm" />
</ItemGroup>
<ItemGroup>
<Text Include="res\FontChars.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -5748,8 +5748,13 @@ int ANT_CALL TwKeyTest(int _Key, int _Modifiers)
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
#if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201402L) || __cplusplus >= 201402L)
#include <functional>
struct StructCompare : public function<bool(TwType, TwType)>
#else
struct StructCompare : public binary_function<TwType, TwType, bool> struct StructCompare : public binary_function<TwType, TwType, bool>
#endif
{ {
bool operator()(const TwType& _Left, const TwType& _Right) const bool operator()(const TwType& _Left, const TwType& _Right) const
{ {

View File

@@ -0,0 +1,426 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Win32">
<Configuration>Profile</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|x64">
<Configuration>Profile</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>DXUT</ProjectName>
<ProjectGuid>{85344B7F-5AA0-4e12-A065-D1333D11F6CA}</ProjectGuid>
<RootNamespace>DXUT</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUT</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUT</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUT</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUT</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUT</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUT</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup />
<ItemGroup>
<ClCompile Include="DXUT.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<CLInclude Include="DXUT.h" />
<ClCompile Include="DXUTDevice11.cpp" />
<CLInclude Include="DXUTDevice11.h" />
<ClCompile Include="DXUTmisc.cpp" />
<CLInclude Include="DXUTmisc.h" />
<CLInclude Include="DXErr.h" />
<ClCompile Include="DXErr.cpp" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<ClCompile Include="DXUT.cpp" />
<CLInclude Include="DXUT.h" />
<ClCompile Include="DXUTDevice11.cpp" />
<CLInclude Include="DXUTDevice11.h" />
<ClCompile Include="DXUTmisc.cpp" />
<CLInclude Include="DXUTmisc.h" />
<CLInclude Include="DXErr.h" />
<ClCompile Include="DXErr.cpp" />
</ItemGroup>
<ItemGroup></ItemGroup>
<ItemGroup></ItemGroup>
<ItemGroup></ItemGroup>
</Project>

View File

@@ -0,0 +1,433 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Win32">
<Configuration>Profile</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|x64">
<Configuration>Profile</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>DXUTOpt</ProjectName>
<ProjectGuid>{61B333C2-C4F7-4cc1-A9BF-83F6D95588EB}</ProjectGuid>
<RootNamespace>DXUTOpt</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUTOpt</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUTOpt</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUTOpt</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUTOpt</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUTOpt</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<OutDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\DirectXTK_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DXUTOpt</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;..\Core\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;..\Core\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;..\Core\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;..\Core\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;..\Core\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>..\..\DirectXTK\Inc;..\Core\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;USE_DIRECTXTK;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup />
<ItemGroup>
<ClCompile Include="DXUTcamera.cpp" />
<CLInclude Include="DXUTcamera.h" />
<ClCompile Include="DXUTgui.cpp" />
<CLInclude Include="DXUTgui.h" />
<ClCompile Include="DXUTguiIME.cpp" />
<CLInclude Include="DXUTguiIME.h" />
<CLInclude Include="DXUTlockfreepipe.h" />
<ClCompile Include="DXUTres.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<CLInclude Include="DXUTres.h" />
<ClCompile Include="DXUTsettingsdlg.cpp" />
<CLInclude Include="DXUTsettingsdlg.h" />
<ClCompile Include="ImeUi.cpp" />
<CLInclude Include="ImeUi.h" />
<ClCompile Include="SDKmisc.cpp" />
<CLInclude Include="SDKmisc.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<ClCompile Include="DXUTcamera.cpp" />
<CLInclude Include="DXUTcamera.h" />
<ClCompile Include="DXUTgui.cpp" />
<CLInclude Include="DXUTgui.h" />
<ClCompile Include="DXUTguiIME.cpp" />
<CLInclude Include="DXUTguiIME.h" />
<CLInclude Include="DXUTlockfreepipe.h" />
<ClCompile Include="DXUTres.cpp" />
<CLInclude Include="DXUTres.h" />
<ClCompile Include="DXUTsettingsdlg.cpp" />
<CLInclude Include="DXUTsettingsdlg.h" />
<ClCompile Include="ImeUi.cpp" />
<CLInclude Include="ImeUi.h" />
<ClCompile Include="SDKmisc.cpp" />
<CLInclude Include="SDKmisc.h" />
</ItemGroup>
<ItemGroup></ItemGroup>
<ItemGroup></ItemGroup>
<ItemGroup></ItemGroup>
</Project>

View File

@@ -0,0 +1,601 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Inc\CommonStates.h" />
<ClInclude Include="Inc\DDSTextureLoader.h" />
<ClInclude Include="Inc\DirectXHelpers.h" />
<ClInclude Include="Inc\Effects.h" />
<ClInclude Include="Inc\GamePad.h" />
<ClInclude Include="Inc\GeometricPrimitive.h" />
<ClInclude Include="Inc\GraphicsMemory.h" />
<ClInclude Include="Inc\Keyboard.h" />
<ClInclude Include="Inc\Model.h" />
<ClInclude Include="Inc\Mouse.h" />
<ClInclude Include="Inc\PostProcess.h" />
<ClInclude Include="Inc\SimpleMath.h" />
<ClInclude Include="Inc\SimpleMath.inl" />
<ClInclude Include="Inc\ScreenGrab.h" />
<ClInclude Include="Inc\SpriteBatch.h" />
<ClInclude Include="Inc\PrimitiveBatch.h" />
<ClInclude Include="Inc\SpriteFont.h" />
<ClInclude Include="Inc\VertexTypes.h" />
<ClInclude Include="Inc\WICTextureLoader.h" />
<ClInclude Include="Src\AlignedNew.h" />
<ClInclude Include="Src\Bezier.h" />
<ClInclude Include="Src\ConstantBuffer.h" />
<ClInclude Include="Src\BinaryReader.h" />
<ClInclude Include="Src\DemandCreate.h" />
<ClInclude Include="Src\EffectCommon.h" />
<ClInclude Include="Src\Geometry.h" />
<ClInclude Include="Src\LoaderHelpers.h" />
<ClInclude Include="Src\pch.h" />
<ClInclude Include="Src\PlatformHelpers.h" />
<ClInclude Include="Src\SDKMesh.h" />
<ClInclude Include="Src\SharedResourcePool.h" />
<ClInclude Include="Src\DDS.h" />
<ClInclude Include="Src\vbo.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="Src\AlphaTestEffect.cpp" />
<ClCompile Include="Src\BasicEffect.cpp" />
<ClCompile Include="Src\BasicPostProcess.cpp" />
<ClCompile Include="Src\CommonStates.cpp" />
<ClCompile Include="Src\DDSTextureLoader.cpp" />
<ClCompile Include="Src\DGSLEffect.cpp" />
<ClCompile Include="Src\DGSLEffectFactory.cpp" />
<ClCompile Include="Src\DualPostProcess.cpp" />
<ClCompile Include="Src\DualTextureEffect.cpp" />
<ClCompile Include="Src\BinaryReader.cpp" />
<ClCompile Include="Src\EffectCommon.cpp" />
<ClCompile Include="Src\EffectFactory.cpp" />
<ClCompile Include="Src\EnvironmentMapEffect.cpp" />
<ClCompile Include="Src\GamePad.cpp" />
<ClCompile Include="Src\GeometricPrimitive.cpp" />
<ClCompile Include="Src\Geometry.cpp" />
<ClCompile Include="Src\GraphicsMemory.cpp" />
<ClCompile Include="Src\Keyboard.cpp" />
<ClCompile Include="Src\Model.cpp" />
<ClCompile Include="Src\ModelLoadCMO.cpp" />
<ClCompile Include="Src\ModelLoadSDKMESH.cpp" />
<ClCompile Include="Src\ModelLoadVBO.cpp" />
<ClCompile Include="Src\Mouse.cpp" />
<ClCompile Include="Src\NormalMapEffect.cpp" />
<ClCompile Include="Src\pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="Src\ScreenGrab.cpp" />
<ClCompile Include="Src\SimpleMath.cpp" />
<ClCompile Include="Src\SkinnedEffect.cpp" />
<ClCompile Include="Src\SpriteBatch.cpp" />
<ClCompile Include="Src\PrimitiveBatch.cpp" />
<ClCompile Include="Src\SpriteFont.cpp" />
<ClCompile Include="Src\ToneMapPostProcess.cpp" />
<ClCompile Include="Src\VertexTypes.cpp" />
<ClCompile Include="Src\WICTextureLoader.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="Readme.txt" />
<None Include="Src\Shaders\Common.fxh" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_PSAlphaTestEqNe.inc" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_PSAlphaTestEqNe.pdb" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_PSAlphaTestEqNeNoFog.inc" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_PSAlphaTestEqNeNoFog.pdb" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_PSAlphaTestLtGt.inc" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_PSAlphaTestLtGt.pdb" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_PSAlphaTestLtGtNoFog.inc" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_PSAlphaTestLtGtNoFog.pdb" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_VSAlphaTest.inc" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_VSAlphaTest.pdb" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_VSAlphaTestNoFog.inc" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_VSAlphaTestNoFog.pdb" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_VSAlphaTestVc.inc" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_VSAlphaTestVc.pdb" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_VSAlphaTestVcNoFog.inc" />
<None Include="Src\Shaders\Compiled\AlphaTestEffect_VSAlphaTestVcNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasic.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasic.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicNoFog.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicPixelLighting.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicPixelLighting.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicPixelLightingTx.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicPixelLightingTx.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicTx.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicTx.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicTxNoFog.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicTxNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicVertexLighting.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicVertexLighting.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicVertexLightingNoFog.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicVertexLightingNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicVertexLightingTx.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicVertexLightingTx.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicVertexLightingTxNoFog.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_PSBasicVertexLightingTxNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasic.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasic.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicNoFog.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLight.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLight.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightTx.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightTx.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightTxBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightTxBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightTxVc.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightTxVc.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightTxVcBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightTxVcBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightVc.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightVc.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightVcBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicOneLightVcBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLighting.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLighting.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingTx.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingTx.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingTxBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingTxBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingTxVc.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingTxVc.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingTxVcBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingTxVcBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingVc.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingVc.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingVcBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicPixelLightingVcBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicTx.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicTx.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicTxNoFog.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicTxNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicTxVc.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicTxVc.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicTxVcNoFog.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicTxVcNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVc.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVc.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVcNoFog.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVcNoFog.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLighting.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLighting.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingTx.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingTx.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingTxBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingTxBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingTxVc.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingTxVc.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingTxVcBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingTxVcBn.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingVc.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingVc.pdb" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingVcBn.inc" />
<None Include="Src\Shaders\Compiled\BasicEffect_VSBasicVertexLightingVcBn.pdb" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main.inc" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main.pdb" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main1Bones.inc" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main1Bones.pdb" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main1BonesVc.inc" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main1BonesVc.pdb" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main2Bones.inc" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main2Bones.pdb" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main2BonesVc.inc" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main2BonesVc.pdb" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main4Bones.inc" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main4Bones.pdb" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main4BonesVc.inc" />
<None Include="Src\Shaders\Compiled\DGSLEffect_main4BonesVc.pdb" />
<None Include="Src\Shaders\Compiled\DGSLEffect_mainVc.inc" />
<None Include="Src\Shaders\Compiled\DGSLEffect_mainVc.pdb" />
<None Include="Src\Shaders\Compiled\DGSLLambert_main.inc" />
<None Include="Src\Shaders\Compiled\DGSLLambert_main.pdb" />
<None Include="Src\Shaders\Compiled\DGSLLambert_mainTk.inc" />
<None Include="Src\Shaders\Compiled\DGSLLambert_mainTk.pdb" />
<None Include="Src\Shaders\Compiled\DGSLLambert_mainTx.inc" />
<None Include="Src\Shaders\Compiled\DGSLLambert_mainTx.pdb" />
<None Include="Src\Shaders\Compiled\DGSLLambert_mainTxTk.inc" />
<None Include="Src\Shaders\Compiled\DGSLLambert_mainTxTk.pdb" />
<None Include="Src\Shaders\Compiled\DGSLPhong_main.inc" />
<None Include="Src\Shaders\Compiled\DGSLPhong_main.pdb" />
<None Include="Src\Shaders\Compiled\DGSLPhong_mainTk.inc" />
<None Include="Src\Shaders\Compiled\DGSLPhong_mainTk.pdb" />
<None Include="Src\Shaders\Compiled\DGSLPhong_mainTx.inc" />
<None Include="Src\Shaders\Compiled\DGSLPhong_mainTx.pdb" />
<None Include="Src\Shaders\Compiled\DGSLPhong_mainTxTk.inc" />
<None Include="Src\Shaders\Compiled\DGSLPhong_mainTxTk.pdb" />
<None Include="Src\Shaders\Compiled\DGSLUnlit_main.inc" />
<None Include="Src\Shaders\Compiled\DGSLUnlit_main.pdb" />
<None Include="Src\Shaders\Compiled\DGSLUnlit_mainTk.inc" />
<None Include="Src\Shaders\Compiled\DGSLUnlit_mainTk.pdb" />
<None Include="Src\Shaders\Compiled\DGSLUnlit_mainTx.inc" />
<None Include="Src\Shaders\Compiled\DGSLUnlit_mainTx.pdb" />
<None Include="Src\Shaders\Compiled\DGSLUnlit_mainTxTk.inc" />
<None Include="Src\Shaders\Compiled\DGSLUnlit_mainTxTk.pdb" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_PSDualTexture.inc" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_PSDualTexture.pdb" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_PSDualTextureNoFog.inc" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_PSDualTextureNoFog.pdb" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_VSDualTexture.inc" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_VSDualTexture.pdb" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_VSDualTextureNoFog.inc" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_VSDualTextureNoFog.pdb" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_VSDualTextureVc.inc" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_VSDualTextureVc.pdb" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_VSDualTextureVcNoFog.inc" />
<None Include="Src\Shaders\Compiled\DualTextureEffect_VSDualTextureVcNoFog.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMap.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMap.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapNoFog.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapNoFog.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapPixelLighting.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapPixelLighting.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapPixelLightingFresnel.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapPixelLightingFresnel.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapPixelLightingFresnelNoFog.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapPixelLightingFresnelNoFog.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapPixelLightingNoFog.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapPixelLightingNoFog.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapSpecular.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapSpecular.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapSpecularNoFog.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_PSEnvMapSpecularNoFog.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMap.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMap.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapBn.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapBn.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapFresnel.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapFresnel.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapFresnelBn.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapFresnelBn.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapOneLight.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapOneLight.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapOneLightBn.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapOneLightBn.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapOneLightFresnel.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapOneLightFresnel.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapOneLightFresnelBn.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapOneLightFresnelBn.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapPixelLighting.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapPixelLighting.pdb" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapPixelLightingBn.inc" />
<None Include="Src\Shaders\Compiled\EnvironmentMapEffect_VSEnvMapPixelLightingBn.pdb" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_PSNormalPixelLightingTx.inc" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_PSNormalPixelLightingTx.pdb" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_PSNormalPixelLightingTxNoFog.inc" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_PSNormalPixelLightingTxNoFog.pdb" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_PSNormalPixelLightingTxNoFogSpec.inc" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_PSNormalPixelLightingTxNoFogSpec.pdb" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_PSNormalPixelLightingTxNoSpec.inc" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_PSNormalPixelLightingTxNoSpec.pdb" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_VSNormalPixelLightingTx.inc" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_VSNormalPixelLightingTx.pdb" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_VSNormalPixelLightingTxBn.inc" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_VSNormalPixelLightingTxBn.pdb" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_VSNormalPixelLightingTxVc.inc" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_VSNormalPixelLightingTxVc.pdb" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_VSNormalPixelLightingTxVcBn.inc" />
<None Include="Src\Shaders\Compiled\NormalMapEffect_VSNormalPixelLightingTxVcBn.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSBloomBlur.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSBloomBlur.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSBloomCombine.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSBloomCombine.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSBloomExtract.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSBloomExtract.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSCopy.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSCopy.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSDownScale2x2.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSDownScale2x2.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSDownScale4x4.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSDownScale4x4.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSGaussianBlur5x5.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSGaussianBlur5x5.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSMerge.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSMerge.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSMonochrome.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSMonochrome.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_PSSepia.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_PSSepia.pdb" />
<None Include="Src\Shaders\Compiled\PostProcess_VSQuad.inc" />
<None Include="Src\Shaders\Compiled\PostProcess_VSQuad.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_PSSkinnedPixelLighting.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_PSSkinnedPixelLighting.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_PSSkinnedVertexLighting.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_PSSkinnedVertexLighting.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_PSSkinnedVertexLightingNoFog.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_PSSkinnedVertexLightingNoFog.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightFourBones.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightFourBones.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightFourBonesBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightFourBonesBn.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightOneBone.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightOneBone.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightOneBoneBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightOneBoneBn.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightTwoBones.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightTwoBones.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightTwoBonesBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedOneLightTwoBonesBn.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingFourBones.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingFourBones.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingFourBonesBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingFourBonesBn.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingOneBone.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingOneBone.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingOneBoneBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingOneBoneBn.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingTwoBones.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingTwoBones.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingTwoBonesBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedPixelLightingTwoBonesBn.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingFourBones.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingFourBones.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingFourBonesBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingFourBonesBn.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingOneBone.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingOneBone.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingOneBoneBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingOneBoneBn.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingTwoBones.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingTwoBones.pdb" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingTwoBonesBn.inc" />
<None Include="Src\Shaders\Compiled\SkinnedEffect_VSSkinnedVertexLightingTwoBonesBn.pdb" />
<None Include="Src\Shaders\Compiled\SpriteEffect_SpritePixelShader.inc" />
<None Include="Src\Shaders\Compiled\SpriteEffect_SpritePixelShader.pdb" />
<None Include="Src\Shaders\Compiled\SpriteEffect_SpriteVertexShader.inc" />
<None Include="Src\Shaders\Compiled\SpriteEffect_SpriteVertexShader.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PSACESFilmic.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PSACESFilmic.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PSACESFilmic_SRGB.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PSACESFilmic_SRGB.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PSCopy.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PSCopy.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PSHDR10.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PSHDR10.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PSReinhard.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PSReinhard.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PSReinhard_SRGB.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PSReinhard_SRGB.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PSSaturate.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PSSaturate.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PSSaturate_SRGB.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PSSaturate_SRGB.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_PS_SRGB.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_PS_SRGB.pdb" />
<None Include="Src\Shaders\Compiled\ToneMap_VSQuad.inc" />
<None Include="Src\Shaders\Compiled\ToneMap_VSQuad.pdb" />
<None Include="Src\Shaders\CompileShaders.cmd" />
<None Include="Src\Shaders\Lighting.fxh" />
<None Include="Src\Shaders\SpriteEffect.fx" />
<None Include="Src\Shaders\Structures.fxh" />
<None Include="Src\Shaders\Utilities.fxh" />
<None Include="Src\TeapotData.inc" />
</ItemGroup>
<ItemGroup>
<None Include="Src\Shaders\BasicEffect.fx">
<FileType>Document</FileType>
</None>
</ItemGroup>
<ItemGroup>
<None Include="Src\Shaders\AlphaTestEffect.fx">
<FileType>Document</FileType>
</None>
<None Include="Src\Shaders\DualTextureEffect.fx">
<FileType>Document</FileType>
</None>
<None Include="Src\Shaders\EnvironmentMapEffect.fx">
<FileType>Document</FileType>
</None>
<None Include="Src\Shaders\SkinnedEffect.fx">
<FileType>Document</FileType>
</None>
<None Include="Src\Shaders\DGSLEffect.fx">
<FileType>Document</FileType>
</None>
<None Include="Src\Shaders\DGSLLambert.hlsl">
<FileType>Document</FileType>
</None>
<None Include="Src\Shaders\DGSLPhong.hlsl">
<FileType>Document</FileType>
</None>
<None Include="Src\Shaders\DGSLUnlit.hlsl">
<FileType>Document</FileType>
</None>
</ItemGroup>
<ItemGroup>
<None Include="Src\Shaders\NormalMapEffect.fx">
<FileType>Document</FileType>
</None>
</ItemGroup>
<ItemGroup>
<None Include="Src\Shaders\PostProcess.fx">
<FileType>Document</FileType>
</None>
</ItemGroup>
<ItemGroup>
<None Include="Src\Shaders\ToneMap.fx">
<FileType>Document</FileType>
</None>
</ItemGroup>
<PropertyGroup Label="Globals" />
<PropertyGroup Label="Globals">
<ProjectGuid>{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>DirectXTK</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DirectXTK</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DirectXTK</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DirectXTK</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>DirectXTK</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WIN32_WINNT=0x0600;_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(ProjectDir)Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
<AdditionalOptions>/permissive- /Zc:twoPhase- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>EnableAllWarnings</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WIN32_WINNT=0x0600;_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(ProjectDir)Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
<AdditionalOptions>/permissive- /Zc:twoPhase- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WIN32_WINNT=0x0600;_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(ProjectDir)Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
<AdditionalOptions>/permissive- /Zc:twoPhase- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>EnableAllWarnings</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WIN32_WINNT=0x0600;_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(ProjectDir)Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<DisableSpecificWarnings>4996</DisableSpecificWarnings>
<AdditionalOptions>/permissive- /Zc:twoPhase- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild">
<Exec Condition="!Exists('src/Shaders/Compiled/SpriteEffect_SpriteVertexShader.inc')" WorkingDirectory="$(ProjectDir)src/Shaders" Command="CompileShaders" />
</Target>
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{7329B02D-C504-482A-A156-181D48CE493C}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MakeSpriteFont</RootNamespace>
<AssemblyName>MakeSpriteFont</AssemblyName>
<TargetFramework>net48</TargetFramework>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|Win32'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>Win32</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|Win32'">
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>Win32</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Compile Include="BitmapUtils.cs" />
<Compile Include="CharacterRegion.cs" />
<Compile Include="CommandLineParser.cs" />
<Compile Include="GlyphCropper.cs" />
<Compile Include="IFontImporter.cs" />
<Compile Include="SpriteFontWriter.cs" />
<Compile Include="TrueTypeImporter.cs" />
<Compile Include="BitmapImporter.cs" />
<Compile Include="GlyphPacker.cs" />
<Compile Include="CommandLineOptions.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Glyph.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Drawing" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

View File

@@ -0,0 +1,419 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Win32">
<Configuration>Profile</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|x64">
<Configuration>Profile</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>Effects11</ProjectName>
<ProjectGuid>{DF460EAB-570D-4B50-9089-2E2FC801BF38}</ProjectGuid>
<RootNamespace>Effects11</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<OutDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2022\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">Create</PrecompiledHeader>
</ClCompile>
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@@ -0,0 +1,280 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{3CABED2C-12F1-4408-AAAE-E2185A426F35}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>Simulations</RootNamespace>
<ProjectName>Simulations</ProjectName>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<TargetExt>.lib</TargetExt>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<TargetExt>.lib</TargetExt>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<TargetExt>.lib</TargetExt>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<TargetExt>.lib</TargetExt>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)</TargetName>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;NOMINMAX;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<EntryPointName />
</FxCompile>
<FxCompile>
<ShaderType>Effect</ShaderType>
</FxCompile>
<FxCompile>
<ShaderModel>5.0</ShaderModel>
</FxCompile>
<FxCompile>
<ObjectFileOutput>$(OutDir)%(Filename).fxo</ObjectFileOutput>
</FxCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;NOMINMAX;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>
</PrecompiledHeaderOutputFile>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<EntryPointName>
</EntryPointName>
</FxCompile>
<FxCompile>
<ShaderType>Effect</ShaderType>
</FxCompile>
<FxCompile>
<ShaderModel>5.0</ShaderModel>
</FxCompile>
<FxCompile>
<ObjectFileOutput>$(OutDir)%(Filename).fxo</ObjectFileOutput>
</FxCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NOMINMAX;_CONSOLE;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<EntryPointName />
</FxCompile>
<FxCompile>
<ShaderType>Effect</ShaderType>
</FxCompile>
<FxCompile>
<ShaderModel>5.0</ShaderModel>
</FxCompile>
<FxCompile>
<ObjectFileOutput>$(OutDir)%(Filename).fxo</ObjectFileOutput>
</FxCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NOMINMAX;_CONSOLE;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>
</PrecompiledHeaderOutputFile>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<EntryPointName>
</EntryPointName>
</FxCompile>
<FxCompile>
<ShaderType>Effect</ShaderType>
</FxCompile>
<FxCompile>
<ShaderModel>5.0</ShaderModel>
</FxCompile>
<FxCompile>
<ObjectFileOutput>$(OutDir)%(Filename).fxo</ObjectFileOutput>
</FxCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="MassSpringSystemSimulator.cpp" />
<ClCompile Include="TemplateSimulator.cpp" />
<ClCompile Include="util\FFmpeg.cpp" />
<ClCompile Include="util\util.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="DrawingUtilitiesClass.h" />
<ClInclude Include="MassPoint.h" />
<ClInclude Include="MassSpringSystemSimulator.h" />
<ClInclude Include="Simulator.h" />
<ClInclude Include="TemplateSimulator.h" />
<ClInclude Include="util\FFmpeg.h" />
<ClInclude Include="util\matrixbase.h" />
<ClInclude Include="util\quaternion.h" />
<ClInclude Include="util\timer.h" />
<ClInclude Include="util\util.h" />
<ClInclude Include="util\vectorbase.h" />
</ItemGroup>
<ItemGroup>
<FxCompile Include="effect.fx">
<EntryPointName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</EntryPointName>
<EntryPointName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</EntryPointName>
<EntryPointName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</EntryPointName>
<EntryPointName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</EntryPointName>
</FxCompile>
</ItemGroup>
<ItemGroup>
<Text Include="..\readme.txt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AntTweakBar\src\AntTweakBar_2022.vcxproj">
<Project>{b99e1fa1-c30a-45f2-9d57-9e9c21b2df42}</Project>
</ProjectReference>
<ProjectReference Include="..\DirectXTK\DirectXTK_Desktop_2022.vcxproj">
<Project>{e0b52ae7-e160-4d32-bf3f-910b785e5a8e}</Project>
</ProjectReference>
<ProjectReference Include="..\DXUT11\Core\DXUT_DirectXTK_2022.vcxproj">
<Project>{85344b7f-5aa0-4e12-a065-d1333d11f6ca}</Project>
</ProjectReference>
<ProjectReference Include="..\DXUT11\Optional\DXUTOpt_DirectXTK_2022.vcxproj">
<Project>{61b333c2-c4f7-4cc1-a9bf-83f6d95588eb}</Project>
</ProjectReference>
<ProjectReference Include="..\Effects11\Effects11_2022.vcxproj">
<Project>{df460eab-570d-4b50-9089-2e2fc801bf38}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<FxCompile Include="effect.fx" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="MassSpringSystemSimulator.cpp" />
<ClCompile Include="TemplateSimulator.cpp" />
<ClCompile Include="util\FFmpeg.cpp" />
<ClCompile Include="util\util.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="DrawingUtilitiesClass.h" />
<ClInclude Include="MassSpringSystemSimulator.h" />
<ClInclude Include="Simulator.h" />
<ClInclude Include="TemplateSimulator.h" />
<ClInclude Include="util\FFmpeg.h" />
<ClInclude Include="util\matrixbase.h" />
<ClInclude Include="util\quaternion.h" />
<ClInclude Include="util\timer.h" />
<ClInclude Include="util\util.h" />
<ClInclude Include="util\vectorbase.h" />
<ClInclude Include="MassPoint.h" />
</ItemGroup>
<ItemGroup>
<Text Include="..\readme.txt" />
</ItemGroup>
</Project>

View File

@@ -1,159 +0,0 @@
#include "DiffusionSimulator.h"
#include "pcgsolver.h"
using namespace std;
Grid::Grid() {
}
DiffusionSimulator::DiffusionSimulator()
{
m_iTestCase = 0;
m_vfMovableObjectPos = Vec3();
m_vfMovableObjectFinalPos = Vec3();
m_vfRotate = Vec3();
// to be implemented
}
const char * DiffusionSimulator::getTestCasesStr(){
return "Explicit_solver, Implicit_solver";
}
void DiffusionSimulator::reset(){
m_mouse.x = m_mouse.y = 0;
m_trackmouse.x = m_trackmouse.y = 0;
m_oldtrackmouse.x = m_oldtrackmouse.y = 0;
}
void DiffusionSimulator::initUI(DrawingUtilitiesClass * DUC)
{
this->DUC = DUC;
// to be implemented
}
void DiffusionSimulator::notifyCaseChanged(int testCase)
{
m_iTestCase = testCase;
m_vfMovableObjectPos = Vec3(0, 0, 0);
m_vfRotate = Vec3(0, 0, 0);
//
//to be implemented
//
switch (m_iTestCase)
{
case 0:
cout << "Explicit solver!\n";
break;
case 1:
cout << "Implicit solver!\n";
break;
default:
cout << "Empty Test!\n";
break;
}
}
Grid* DiffusionSimulator::diffuseTemperatureExplicit() {//add your own parameters
Grid* newT = new Grid();
// to be implemented
//make sure that the temperature in boundary cells stays zero
return newT;
}
void setupB(std::vector<Real>& b) {//add your own parameters
// to be implemented
//set vector B[sizeX*sizeY]
for (int i = 0; i < 25; i++) {
b.at(i) = 0;
}
}
void fillT() {//add your own parameters
// to be implemented
//fill T with solved vector x
//make sure that the temperature in boundary cells stays zero
}
void setupA(SparseMatrix<Real>& A, double factor) {//add your own parameters
// to be implemented
//setup Matrix A[sizeX*sizeY*sizeZ, sizeX*sizeY*sizeZ]
// set with: A.set_element( index1, index2 , value );
// if needed, read with: A(index1, index2);
// avoid zero rows in A -> set the diagonal value for boundary cells to 1.0
for (int i = 0; i < 25; i++) {
A.set_element(i, i, 1); // set diagonal
}
}
void DiffusionSimulator::diffuseTemperatureImplicit() {//add your own parameters
// solve A T = b
// to be implemented
const int N = 25;//N = sizeX*sizeY*sizeZ
SparseMatrix<Real> *A = new SparseMatrix<Real> (N);
std::vector<Real> *b = new std::vector<Real>(N);
setupA(*A, 0.1);
setupB(*b);
// perform solve
Real pcg_target_residual = 1e-05;
Real pcg_max_iterations = 1000;
Real ret_pcg_residual = 1e10;
int ret_pcg_iterations = -1;
SparsePCGSolver<Real> solver;
solver.set_solver_parameters(pcg_target_residual, pcg_max_iterations, 0.97, 0.25);
std::vector<Real> x(N);
for (int j = 0; j < N; ++j) { x[j] = 0.; }
// preconditioners: 0 off, 1 diagonal, 2 incomplete cholesky
solver.solve(*A, *b, x, ret_pcg_residual, ret_pcg_iterations, 0);
// x contains the new temperature values
fillT();//copy x to T
}
void DiffusionSimulator::simulateTimestep(float timeStep)
{
// to be implemented
// update current setup for each frame
switch (m_iTestCase)
{
case 0:
T = diffuseTemperatureExplicit();
break;
case 1:
diffuseTemperatureImplicit();
break;
}
}
void DiffusionSimulator::drawObjects()
{
// to be implemented
//visualization
}
void DiffusionSimulator::drawFrame(ID3D11DeviceContext* pd3dImmediateContext)
{
drawObjects();
}
void DiffusionSimulator::onClick(int x, int y)
{
m_trackmouse.x = x;
m_trackmouse.y = y;
}
void DiffusionSimulator::onMouse(int x, int y)
{
m_oldtrackmouse.x = x;
m_oldtrackmouse.y = y;
m_trackmouse.x = x;
m_trackmouse.y = y;
}

View File

@@ -1,51 +0,0 @@
#ifndef DIFFUSIONSIMULATOR_h
#define DIFFUSIONSIMULATOR_h
#include "Simulator.h"
#include "vectorbase.h"
//impement your own grid class for saving grid data
class Grid {
public:
// Construtors
Grid();
private:
// Attributes
};
class DiffusionSimulator:public Simulator{
public:
// Construtors
DiffusionSimulator();
// Functions
const char * getTestCasesStr();
void initUI(DrawingUtilitiesClass * DUC);
void reset();
void drawFrame(ID3D11DeviceContext* pd3dImmediateContext);
void notifyCaseChanged(int testCase);
void simulateTimestep(float timeStep);
void externalForcesCalculations(float timeElapsed) {};
void onClick(int x, int y);
void onMouse(int x, int y);
// Specific Functions
void drawObjects();
Grid* diffuseTemperatureExplicit();
void diffuseTemperatureImplicit();
private:
// Attributes
Vec3 m_vfMovableObjectPos;
Vec3 m_vfMovableObjectFinalPos;
Vec3 m_vfRotate;
Point2D m_mouse;
Point2D m_trackmouse;
Point2D m_oldtrackmouse;
Grid *T; //save results of every time step
};
#endif

8
Simulations/MassPoint.h Normal file
View File

@@ -0,0 +1,8 @@
#pragma once
#include "util/vectorbase.h"
struct MassPoint {
GamePhysics::Vec3 position;
GamePhysics::Vec3 velocity;
bool isFixed;
};

View File

@@ -0,0 +1,381 @@
#include "MassSpringSystemSimulator.h"
#include <stdio.h>
MassSpringSystemSimulator::MassSpringSystemSimulator()
{
}
const char* MassSpringSystemSimulator::getTestCasesStr()
{
return "Demo1,Demo2,Demo3,Demo4";
}
void MassSpringSystemSimulator::initUI(DrawingUtilitiesClass* DUC)
{
this->DUC = DUC;
switch (m_iTestCase)
{
case 0:
break;
case 1:
break;
case 2:
break;
default:
break;
}
}
void MassSpringSystemSimulator::reset()
{
m_mouse.x = m_mouse.y = 0;
m_trackmouse.x = m_trackmouse.y = 0;
m_oldtrackmouse.x = m_oldtrackmouse.y = 0;
springs.clear();
masspoints.clear();
}
void MassSpringSystemSimulator::drawFrame(ID3D11DeviceContext* pd3dImmediateContext)
{
for (size_t i = 0; i < springs.size(); i++) {
auto sp = springs.at(i);
if (!sp.isValid())
{
springs.erase(springs.begin() + i);
continue;
}
auto mp1 = sp.mp1.lock();
auto mp2 = sp.mp2.lock();
DUC->setUpLighting(Vec3(), 0.4 * Vec3(1, 1, 1), 100, 0.6 * Vec3(0.97, 0.86, 1));
DUC->drawSphere(mp1->position, Vec3(0.01));
DUC->drawSphere(mp2->position, Vec3(0.01));
DUC->beginLine();
DUC->drawLine(mp1->position, Vec3(1,0,0), mp2->position, Vec3(0,1,0));
DUC->endLine();
}
}
void MassSpringSystemSimulator::notifyCaseChanged(int testCase)
{
m_iTestCase = testCase;
system("cls");
reset();
switch (m_iTestCase)
{
case 0: {
cout << "Demo 1 !\n";
setMass(10);
setStiffness(40);
int first = addMassPoint(Vec3(0, 0, 0), Vec3(-1, 0, 0), true);
int second = addMassPoint(Vec3(0, 2, 0), Vec3(1, 0, 0), true);
addSpring(first, second, 1);
cout << "\t -- INITIAL --\n";
printSpring(springs.at(0));
cout << "--------------------------------------------------" << std::endl;
//calculate Euler for one step and print results
setIntegrator(EULER);
cout << "\n\n\t -- EULER RESULT --\n";
simulateTimestep(1);
printSpring(springs.at(0));
cout << "--------------------------------------------------" << std::endl;
reset();
first = addMassPoint(Vec3(0, 0, 0), Vec3(-1, 0, 0), true);
second = addMassPoint(Vec3(0, 2, 0), Vec3(1, 0, 0), true);
addSpring(first, second, 1);
//calculate Midpoint for one step and print results
setIntegrator(MIDPOINT);
cout << "\n\n\t -- MIDPOINT RESULT --\n";
simulateTimestep(1);
printSpring(springs.at(0));
break;
}
case 1: {
cout << "Demo 2 !\n";
reset();
int first = addMassPoint(Vec3(0, 0, 0), Vec3(-1, 0, 0), true);
int second = addMassPoint(Vec3(0, 2, 0), Vec3(1, 0, 0), true);
addSpring(first, second, 1.0);
cout << "\t -- INITIAL --\n";
printSpring(springs.at(0));
cout << "--------------------------------------------------" << std::endl;
//calculate Euler for a timestep of 0.005 and print results
setIntegrator(EULER);
cout << "\n\n\t -- EULER RESULT--\n";
simulateTimestep(0.005);
printSpring(springs.at(0));
break;
}
case 2: {
cout << "Demo 3 !\n";
reset();
int first = addMassPoint(Vec3(0, 0, 0), Vec3(-1, 0, 0), true);
int second = addMassPoint(Vec3(0, 2, 0), Vec3(1, 0, 0), true);
addSpring(first, second, 1.0);
cout << "\t -- INITIAL --\n";
printSpring(springs.at(0));
cout << "--------------------------------------------------" << std::endl;
//calculate Midpoint for a timestep of 0.005 and print results
setIntegrator(MIDPOINT);
cout << "\n\n\t -- MIDPOINT RESULT --\n";
simulateTimestep(0.005);
printSpring(springs.at(0));
break;
}
case 3: {
cout << "Demo 4 !\n";
break;
}
default:
break;
}
}
void MassSpringSystemSimulator::externalForcesCalculations(float timeElapsed)
{
Point2D mouseDiff;
mouseDiff.x = m_trackmouse.x - m_oldtrackmouse.x;
mouseDiff.y = m_trackmouse.y - m_oldtrackmouse.y;
if (mouseDiff.x != 0 || mouseDiff.y != 0)
{
Mat4 worldViewInv = Mat4(DUC->g_camera.GetWorldMatrix() * DUC->g_camera.GetViewMatrix());
worldViewInv = worldViewInv.inverse();
Vec3 inputView = Vec3((float)mouseDiff.x, (float)-mouseDiff.y, 0);
Vec3 inputWorld = worldViewInv.transformVectorNormal(inputView);
// find a proper scale!
float inputScale = 0.001f;
inputWorld = inputWorld * inputScale;
//m_vfMovableObjectPos = m_vfMovableObjectFinalPos + inputWorld;
}
else {
//m_vfMovableObjectFinalPos = m_vfMovableObjectPos;
}
}
void MassSpringSystemSimulator::simulateTimestep(float timeStep)
{
//update current setup for each frame
for (size_t i = 0; i < springs.size(); i++) {
auto sp = springs.at(i);
if (!sp.isValid())
{
springs.erase(springs.begin() + i);
continue;
}
if (m_iIntegrator == EULER) {
Euler(sp, timeStep);
}
else if (m_iIntegrator == MIDPOINT) {
Midpoint(sp, timeStep);
}
else if (m_iIntegrator == LEAPFROG) {
//TODO: Add Leapfrog
}
}
}
void MassSpringSystemSimulator::onClick(int x, int y)
{
m_trackmouse.x = x;
m_trackmouse.y = y;
}
void MassSpringSystemSimulator::onMouse(int x, int y)
{
m_oldtrackmouse.x = x;
m_oldtrackmouse.y = y;
m_trackmouse.x = x;
m_trackmouse.y = y;
}
void MassSpringSystemSimulator::setMass(float mass)
{
m_fMass = mass;
}
void MassSpringSystemSimulator::setStiffness(float stiffness)
{
m_fStiffness = stiffness;
}
void MassSpringSystemSimulator::setDampingFactor(float damping)
{
m_fDamping = damping;
}
int MassSpringSystemSimulator::addMassPoint(Vec3 position, Vec3 Velocity, bool isFixed)
{
MassPoint masspoint;
masspoint.position = position;
masspoint.velocity = Velocity;
masspoint.isFixed = isFixed;
masspoints.push_back(std::make_shared<MassPoint>(masspoint));
return masspoints.size() - 1;
}
void MassSpringSystemSimulator::addSpring(int masspoint1, int masspoint2, float initialLength)
{
auto mp1 = masspoints.at(masspoint1);
auto mp2 = masspoints.at(masspoint2);
Spring spring;
spring.mp1 = mp1;
spring.mp2 = mp2;
spring.initialLength = initialLength;
springs.push_back(spring);
}
int MassSpringSystemSimulator::getNumberOfMassPoints()
{
return masspoints.size();
}
int MassSpringSystemSimulator::getNumberOfSprings()
{
return springs.size();
}
Vec3 MassSpringSystemSimulator::getPositionOfMassPoint(int index)
{
auto mp = masspoints.at(index);
return mp->position;
}
Vec3 MassSpringSystemSimulator::getVelocityOfMassPoint(int index)
{
auto mp = masspoints.at(index);
return mp->velocity;
}
void MassSpringSystemSimulator::applyExternalForce(Vec3 force)
{
//eine Vorstellung: for all Masspoints, update force
}
float MassSpringSystemSimulator::LengthCalculator(Vec3 vector)
{
//wurzel aus Vektor
float length = sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);
return length;
}
Vec3 MassSpringSystemSimulator::calculatePositionTimestepEuler(Vec3 oldPosition, float timestep, Vec3 velocity)
{
return oldPosition + timestep * velocity;
}
Vec3 MassSpringSystemSimulator::calculateVelocityTimestepEuler(Vec3 oldVelocity, float timestep, Vec3 acceleration)
{
return oldVelocity + acceleration * timestep;
}
Vec3 MassSpringSystemSimulator::calculateAcceleration(Vec3 force, float mass)
{
return force / mass;
}
void MassSpringSystemSimulator::Midpoint(Spring& spring, float timestep) {
//here some implementation about Midpoint
auto massPoint1 = spring.mp1.lock();
auto massPoint2 = spring.mp2.lock();
Vec3 PosVector = massPoint1->position - massPoint2->position;
//Abstand ausrechnen
float length = sqrtf(PosVector.x * PosVector.x + PosVector.y * PosVector.y + PosVector.z * PosVector.z);
//normalize
Vec3 normal = PosVector / length;
//Midpoint calculator
std::tuple<Vec3, Vec3> midpointStep1 = MidPointHalfStep(timestep * .5, spring, massPoint1->position, massPoint1->velocity, normal, length);
std::tuple<Vec3, Vec3> midpointStep2 = MidPointHalfStep(timestep * .5, spring, massPoint2->position, massPoint2->velocity, -normal, length);
Vec3 newPosVector = std::get<0>(midpointStep1) - std::get<0>(midpointStep2);
float newLength = sqrtf(newPosVector.x * newPosVector.x + newPosVector.y * newPosVector.y + newPosVector.z * newPosVector.z);
Vec3 newNormal = newPosVector / newLength;
std::tuple<Vec3, Vec3> midpoint1 = MidPointStep(timestep, spring, massPoint1->position, massPoint1->velocity, std::get<1>(midpointStep1), newNormal, newLength);
std::tuple<Vec3, Vec3> midpoint2 = MidPointStep(timestep, spring, massPoint2->position, massPoint2->velocity, std::get<1>(midpointStep2), -newNormal, newLength);
massPoint1->position = std::get<0>(midpoint1);
massPoint1->velocity = std::get<1>(midpoint1);
massPoint2->position = std::get<0>(midpoint2);
massPoint2->velocity = std::get<1>(midpoint2);
}
std::tuple<Vec3, Vec3> MassSpringSystemSimulator::MidPointHalfStep(double timestep, const Spring& spring, Vec3 position, Vec3 velocity, Vec3 normal, double length)
{
return MidPointStep(timestep, spring, position, velocity, velocity, normal, length);
}
std::tuple<Vec3, Vec3> MassSpringSystemSimulator::MidPointStep(double timestep, const Spring& spring, Vec3 position, Vec3 oldVelo,Vec3 velocity, Vec3 normal, double length)
{
auto force = -m_fStiffness * (length - spring.initialLength) * normal;
auto acc = calculateAcceleration(force, m_fMass);
auto pos = position + timestep * velocity;
auto vel = oldVelo + timestep * acc;
return std::tuple<Vec3, Vec3>(pos, vel);
}
void MassSpringSystemSimulator::Euler(Spring& spring, float timestep)
{
auto massPoint1 = spring.mp1.lock();
auto massPoint2 = spring.mp2.lock();
//take old position and send to calculatePositionTimestepEuler
auto PosVector = massPoint1->position - massPoint2->position;
auto lengthVector = sqrt(PosVector.x * PosVector.x + PosVector.y * PosVector.y + PosVector.z * PosVector.z);
auto normalized = PosVector / lengthVector;
// Actual Calculation
// Force of spring is -k * (l - L) * normalizedVector [for P2 we can take -F1)
auto force = -m_fStiffness * (lengthVector - spring.initialLength) * normalized;
auto foreP2 = -1 * force;
auto veloc = calculateVelocityTimestepEuler(massPoint1->velocity, timestep, calculateAcceleration(force, m_fMass));
auto pos = calculatePositionTimestepEuler(massPoint1->position, timestep, massPoint1->velocity);
auto veloc2 = calculateVelocityTimestepEuler(massPoint2->velocity, timestep, calculateAcceleration(foreP2, m_fMass));
auto pos2 = calculatePositionTimestepEuler(massPoint2->position, timestep, massPoint2->velocity);
// Update Positions and Velocity
massPoint1->position = pos;
massPoint1->velocity = veloc;
massPoint2->position = pos2;
massPoint2->velocity = veloc2;
}
void MassSpringSystemSimulator::printSpring(const Spring& spring)
{
auto mp1 = spring.mp1.lock();
auto mp2 = spring.mp2.lock();
printf("Masspoint 1:\nPosition: %s \nVelocity: %s\n\n", mp1->position.toString().c_str(), mp1->velocity.toString().c_str());
printf("Masspoint 2:\nPosition: %s \nVelocity: %s\n", mp2->position.toString().c_str(), mp2->velocity.toString().c_str());
}

View File

@@ -1,6 +1,8 @@
#ifndef MASSSPRINGSYSTEMSIMULATOR_h #ifndef MASSSPRINGSYSTEMSIMULATOR_h
#define MASSSPRINGSYSTEMSIMULATOR_h #define MASSSPRINGSYSTEMSIMULATOR_h
#include "Simulator.h" #include "Simulator.h"
#include "MassPoint.h"
#include "Spring.h"
// Do Not Change // Do Not Change
#define EULER 0 #define EULER 0
@@ -37,6 +39,18 @@ public:
Vec3 getVelocityOfMassPoint(int index); Vec3 getVelocityOfMassPoint(int index);
void applyExternalForce(Vec3 force); void applyExternalForce(Vec3 force);
void Midpoint(Spring& spring, float timestep);
std::tuple<Vec3, Vec3> MidPointHalfStep(double timestep, const Spring& spring, Vec3 position, Vec3 velocity, Vec3 normal, double length);
std::tuple<Vec3, Vec3> MassSpringSystemSimulator::MidPointStep(double timestep, const Spring& spring, Vec3 position, Vec3 oldVelo, Vec3 velocity, Vec3 normal, double length);
float LengthCalculator(Vec3 vector);
Vec3 calculatePositionTimestepEuler(Vec3 oldPosition, float timestep, Vec3 veloctiy);
Vec3 calculateVelocityTimestepEuler(Vec3 oldVelocity, float timestep, Vec3 acceleration);
Vec3 calculateAcceleration(Vec3 acceleration, float mass);
void Euler(Spring& spring, float timestep);
void printSpring(const Spring& spring);
// Do Not Change // Do Not Change
void setIntegrator(int integrator) { void setIntegrator(int integrator) {
m_iIntegrator = integrator; m_iIntegrator = integrator;
@@ -54,5 +68,9 @@ private:
Point2D m_mouse; Point2D m_mouse;
Point2D m_trackmouse; Point2D m_trackmouse;
Point2D m_oldtrackmouse; Point2D m_oldtrackmouse;
//Mass points and springs
std::vector<std::shared_ptr<MassPoint>> masspoints;
std::vector<Spring> springs;
}; };
#endif #endif

View File

@@ -1,11 +0,0 @@
#include "SphereSystemSimulator.h"
std::function<float(float)> SphereSystemSimulator::m_Kernels[5] = {
[](float x) {return 1.0f; }, // Constant, m_iKernel = 0
[](float x) {return 1.0f - x; }, // Linear, m_iKernel = 1, as given in the exercise Sheet, x = d/2r
[](float x) {return (1.0f - x)*(1.0f - x); }, // Quadratic, m_iKernel = 2
[](float x) {return 1.0f / (x)-1.0f; }, // Weak Electric Charge, m_iKernel = 3
[](float x) {return 1.0f / (x*x) - 1.0f; }, // Electric Charge, m_iKernel = 4
};
// SphereSystemSimulator member functions

View File

@@ -1,49 +0,0 @@
#ifndef SPHSYSTEMSIMULATOR_h
#define SPHSYSTEMSIMULATOR_h
#include "Simulator.h"
//#include "spheresystem.h", add your sphere system header file
#define NAIVEACC 0
#define GRIDACC 1
class SphereSystemSimulator:public Simulator{
public:
// Construtors
SphereSystemSimulator();
// Functions
const char * getTestCasesStr();
void initUI(DrawingUtilitiesClass * DUC);
void reset();
void drawFrame(ID3D11DeviceContext* pd3dImmediateContext);
void notifyCaseChanged(int testCase);
void externalForcesCalculations(float timeElapsed);
void simulateTimestep(float timeStep);
void onClick(int x, int y);
void onMouse(int x, int y);
protected:
// Attributes
Vec3 externalForce;
Point2D m_mouse;
Point2D m_trackmouse;
Point2D m_oldtrackmouse;
float m_fMass;
float m_fRadius;
float m_fForceScaling;
float m_fDamping;
int m_iNumSpheres;
int m_iKernel; // index of the m_Kernels[5], more detials in SphereSystemSimulator.cpp
static std::function<float(float)> m_Kernels[5];
int m_iAccelerator; // switch between NAIVEACC and GRIDACC, (optionally, KDTREEACC, 2)
//SphereSystem * m_pSphereSystem; // add your own sphere system member!
// for Demo 3 only:
// you will need multiple SphereSystem objects to do comparisons in Demo 3
// m_iAccelerator should be ignored.
// SphereSystem * m_pSphereSystemGrid;
};
#endif

0
Simulations/Spring.cpp Normal file
View File

11
Simulations/Spring.h Normal file
View File

@@ -0,0 +1,11 @@
#pragma once
struct Spring
{
std::weak_ptr<MassPoint> mp1;
std::weak_ptr<MassPoint> mp2;
float initialLength;
bool isValid() { return !mp1.expired() && !mp2.expired(); }
};

View File

@@ -1,160 +0,0 @@
/******************************************************************************
*
* MantaFlow fluid solver framework
* Copyright 2011 Tobias Pfaff, Nils Thuerey
*
* This program is free software, distributed under the terms of the
* GNU General Public License (GPL)
* http://www.gnu.org/licenses
*
* Globally used macros and functions
*
******************************************************************************/
#ifndef _GENERAL_H
#define _GENERAL_H
#include <iostream>
#include <sstream>
#include <cmath>
#include <algorithm>
namespace Manta {
// ui data exchange
#ifdef GUI
// defined in qtmain.cpp
extern void updateQtGui(bool full, int frame, float time, const std::string& curPlugin);
#else
// dummy function if GUI is not enabled
inline void updateQtGui(bool full, int frame, float time, const std::string& curPlugin) {}
#endif
// activate debug mode if _DEBUG is defined (eg for windows)
#ifndef DEBUG
#ifdef _DEBUG
#define DEBUG 1
#endif // _DEBUG
#endif // DEBUG
// Standard exception
class Error : public std::exception
{
public:
Error(const std::string& s) : mS(s) {
# ifdef DEBUG
// print error
std::cerr << "Aborting: "<< s <<" \n";
// then force immedieate crash in debug mode
*(volatile int*)(0) = 1;
# endif
}
virtual ~Error() throw() {}
virtual const char* what() const throw() { return mS.c_str(); }
private:
std::string mS;
};
// mark unused parameter variables
#define unusedParameter(x) ((void)x)
// Debug output functions and macros
extern int gDebugLevel;
#define MSGSTREAM std::ostringstream msg; msg.precision(7); msg.width(9);
#define debMsg(mStr, level) if (_chklevel(level)) { MSGSTREAM; msg << mStr; std::cout << msg.str() << std::endl; }
inline bool _chklevel(int level=0) { return gDebugLevel >= level; }
// error and assertation macros
#ifdef DEBUG
# define DEBUG_ONLY(a) a
#else
# define DEBUG_ONLY(a)
#endif
#define throwError(msg) { std::ostringstream __s; __s << msg << std::endl << "Error raised in " << __FILE__ << ":" << __LINE__; throw Manta::Error(__s.str()); }
#define errMsg(msg) throwError(msg);
#define assertMsg(cond,msg) if(!(cond)) throwError(msg)
#define assertDeb(cond,msg) DEBUG_ONLY( assertMsg(cond,msg) )
// for compatibility with blender, blender only defines WITH_MANTA, make sure we have "BLENDER"
#ifndef BLENDER
#ifdef WITH_MANTA
#define BLENDER 1
#endif
#endif
// common type for indexing large grids
typedef long long IndexInt;
// template tricks
template<typename T>
struct remove_pointers {
typedef T type;
};
template<typename T>
struct remove_pointers<T*> {
typedef T type;
};
template<typename T>
struct remove_pointers<T&> {
typedef T type;
};
// Commonly used enums and types
//! Timing class for preformance measuring
struct MuTime {
MuTime() { get(); }
MuTime operator-(const MuTime& a) { MuTime b; b.time = time - a.time; return b; };
MuTime operator+(const MuTime& a) { MuTime b; b.time = time + a.time; return b; };
MuTime operator/(unsigned long a) { MuTime b; b.time = time / a; return b; };
MuTime& operator+=(const MuTime& a) { time += a.time; return *this; }
MuTime& operator-=(const MuTime& a) { time -= a.time; return *this; }
MuTime& operator/=(unsigned long a) { time /= a; return *this; }
std::string toString();
void clear() { time = 0; }
void get();
MuTime update();
unsigned long time;
};
std::ostream& operator<< (std::ostream& os, const MuTime& t);
//! generate a string with infos about the current mantaflow build
std::string buildInfoString();
// Some commonly used math helpers
template<class T> inline T square(T a) {
return a*a;
}
template<class T> inline T cubed(T a) {
return a*a*a;
}
template<class T> inline T clamp(const T& val, const T& vmin, const T& vmax) {
if (val < vmin) return vmin;
if (val > vmax) return vmax;
return val;
}
template<class T> inline T nmod(const T& a, const T& b);
template<> inline int nmod(const int& a, const int& b) { int c=a%b; return (c<0) ? (c+b) : c; }
template<> inline float nmod(const float& a, const float& b) { float c=std::fmod(a,b); return (c<0) ? (c+b) : c; }
template<> inline double nmod(const double& a, const double& b) { double c=std::fmod(a,b); return (c<0) ? (c+b) : c; }
template<class T> inline T safeDivide(const T& a, const T& b);
template<> inline int safeDivide<int>(const int &a, const int& b) { return (b) ? (a/b) : a; }
template<> inline float safeDivide<float>(const float &a, const float& b) { return (b) ? (a/b) : a; }
template<> inline double safeDivide<double>(const double &a, const double& b) { return (b) ? (a/b) : a; }
inline bool c_isnan(float c) {
volatile float d=c;
return d != d;
}
} // namespace
#endif

View File

@@ -21,10 +21,9 @@ using namespace GamePhysics;
//#define ADAPTIVESTEP //#define ADAPTIVESTEP
//#define TEMPLATE_DEMO //#define TEMPLATE_DEMO
//#define MASS_SPRING_SYSTEM #define MASS_SPRING_SYSTEM
//#define RIGID_BODY_SYSTEM //#define RIGID_BODY_SYSTEM
//#define SPH_SYSTEM //#define SPH_SYSTEM
#define DIFFUSION_SYSTEM
#ifdef TEMPLATE_DEMO #ifdef TEMPLATE_DEMO
#include "TemplateSimulator.h" #include "TemplateSimulator.h"
@@ -39,10 +38,6 @@ using namespace GamePhysics;
//#include "SPHSystemSimulator.h" //#include "SPHSystemSimulator.h"
#endif #endif
#ifdef DIFFUSION_SYSTEM
#include "DiffusionSimulator.h"
#endif
DrawingUtilitiesClass * g_pDUC; DrawingUtilitiesClass * g_pDUC;
Simulator * g_pSimulator; Simulator * g_pSimulator;
float g_fTimestep = 0.001; float g_fTimestep = 0.001;
@@ -58,9 +53,14 @@ bool firstTime = true;
FFmpeg* g_pFFmpegVideoRecorder = nullptr; FFmpeg* g_pFFmpegVideoRecorder = nullptr;
// Input Stuff
float lastX;
float lastY;
void initTweakBar(){ void initTweakBar(){
g_pDUC->g_pTweakBar = TwNewBar("TweakBar"); g_pDUC->g_pTweakBar = TwNewBar("TweakBar");
TwDefine(" TweakBar color='0 128 128' alpha=128 "); TwDefine(" TweakBar color='128 128 128' alpha=128 ");
TwType TW_TYPE_TESTCASE = TwDefineEnumFromString("Test Scene", g_pSimulator->getTestCasesStr()); TwType TW_TYPE_TESTCASE = TwDefineEnumFromString("Test Scene", g_pSimulator->getTestCasesStr());
TwAddVarRW(g_pDUC->g_pTweakBar, "Test Scene", TW_TYPE_TESTCASE, &g_iTestCase, ""); TwAddVarRW(g_pDUC->g_pTweakBar, "Test Scene", TW_TYPE_TESTCASE, &g_iTestCase, "");
// HINT: For buttons you can directly pass the callback function as a lambda expression. // HINT: For buttons you can directly pass the callback function as a lambda expression.
@@ -207,10 +207,23 @@ void CALLBACK OnMouse( bool bLeftButtonDown, bool bRightButtonDown, bool bMiddle
if (bLeftButtonDown) if (bLeftButtonDown)
{ {
g_pSimulator->onClick(xPos,yPos); g_pSimulator->onClick(xPos,yPos);
int x = xPos;
int y = yPos;
} }
else else
{ {
g_pSimulator->onMouse(xPos, yPos); g_pSimulator->onMouse(xPos, yPos);
float deltaX = lastX - xPos;
float deltaY = lastY - yPos;
lastX = xPos;
lastY = yPos;
/*printf("X Delta: %f \n", deltaX);
printf("Y Delta: %f \n", deltaY);*/
} }
} }
@@ -374,9 +387,6 @@ int main(int argc, char* argv[])
#endif #endif
#ifdef SPH_SYSTEM #ifdef SPH_SYSTEM
//g_pSimulator= new SPHSystemSimulator(); //g_pSimulator= new SPHSystemSimulator();
#endif
#ifdef DIFFUSION_SYSTEM
g_pSimulator= new DiffusionSimulator();
#endif #endif
g_pSimulator->reset(); g_pSimulator->reset();

View File

@@ -1,750 +0,0 @@
//
// Preconditioned conjugate gradient solver
//
// Created by Robert Bridson, Ryoichi Ando and Nils Thuerey
//
#ifndef RCMATRIX3_H
#define RCMATRIX3_H
#include <iterator>
#include <cassert>
#include <vector>
#include <fstream>
#include <cmath>
#include <functional>
// index type
#define int_index long long
// parallelization disabled
#define parallel_for(size) { int thread_number = 0; int_index parallel_index=0; for( int_index parallel_index=0; parallel_index<(int_index)size; parallel_index++ ) {
#define parallel_end } thread_number=parallel_index=0; }
#define parallel_block
#define do_parallel
#define do_end
#define block_end
#include "vectorbase.h"
// note - "Int" instead of "N" here, the latter is size!
template<class Int, class T>
struct InstantBLAS {
static inline Int offset(Int N, Int incX) { return ((incX) > 0 ? 0 : ((N) - 1) * (-(incX))); }
static T cblas_ddot( const Int N, const T *X, const Int incX, const T *Y, const Int incY) {
double r = 0.0; // always use double precision internally here...
Int i;
Int ix = offset(N,incX);
Int iy = offset(N,incY);
for (i = 0; i < N; i++) {
r += X[ix] * Y[iy];
ix += incX;
iy += incY;
}
return (T)r;
}
static void cblas_daxpy( const Int N, const T alpha, const T *X, const Int incX, T *Y, const Int incY) {
Int i;
if (N <= 0 ) return;
if (alpha == 0.0) return;
if (incX == 1 && incY == 1) {
const Int m = N % 4;
for (i = 0; i < m; i++)
Y[i] += alpha * X[i];
for (i = m; i + 3 < N; i += 4) {
Y[i ] += alpha * X[i ];
Y[i + 1] += alpha * X[i + 1];
Y[i + 2] += alpha * X[i + 2];
Y[i + 3] += alpha * X[i + 3];
}
} else {
Int ix = offset(N, incX);
Int iy = offset(N, incY);
for (i = 0; i < N; i++) {
Y[iy] += alpha * X[ix];
ix += incX;
iy += incY;
}
}
}
// dot products ==============================================================
static inline T dot(const std::vector<T> &x, const std::vector<T> &y) {
return cblas_ddot((int)x.size(), &x[0], 1, &y[0], 1);
}
// inf-norm (maximum absolute value: index of max returned) ==================
static inline Int index_abs_max(const std::vector<T> &x) {
int maxind = 0;
T maxvalue = 0;
for(Int i = 0; i < (Int)x.size(); ++i) {
if(std::abs(x[i]) > maxvalue) {
maxvalue = fabs(x[i]);
maxind = i;
}
}
return maxind;
}
// inf-norm (maximum absolute value) =========================================
// technically not part of BLAS, but useful
static inline T abs_max(const std::vector<T> &x)
{ return std::abs(x[index_abs_max(x)]); }
// saxpy (y=alpha*x+y) =======================================================
static inline void add_scaled(T alpha, const std::vector<T> &x, std::vector<T> &y) {
cblas_daxpy((Int)x.size(), alpha, &x[0], 1, &y[0], 1);
}
};
template<class T>
void zero(std::vector<T> &v)
{ for(int i=(int)v.size()-1; i>=0; --i) v[i]=0; }
template<class T>
void insert(std::vector<T> &a, unsigned int index, T e)
{
a.push_back(a.back());
for(unsigned int i=(unsigned int)a.size()-1; i>index; --i)
a[i]=a[i-1];
a[index]=e;
}
template<class T>
void erase(std::vector<T> &a, unsigned int index)
{
for(unsigned int i=index; i<a.size()-1; ++i)
a[i]=a[i+1];
a.pop_back();
}
//============================================================================
// Dynamic compressed sparse row matrix.
template<class T>
struct SparseMatrix
{
int n; // dimension
std::vector<std::vector<int> > index; // for each row, a list of all column indices (sorted)
std::vector<std::vector<T> > value; // values corresponding to index
explicit SparseMatrix(int n_=0, int expected_nonzeros_per_row=7)
: n(n_), index(n_), value(n_)
{
for(int i=0; i<n; ++i){
index[i].reserve(expected_nonzeros_per_row);
value[i].reserve(expected_nonzeros_per_row);
}
}
void clear(void)
{
n=0;
index.clear();
value.clear();
}
void zero(void)
{
for(int i=0; i<n; ++i){
index[i].resize(0);
value[i].resize(0);
}
}
void resize(int n_)
{
n=n_;
index.resize(n);
value.resize(n);
}
T operator()(int i, int j) const
{
for(int k=0; k<(int)index[i].size(); ++k){
if(index[i][k]==j) return value[i][k];
else if(index[i][k]>j) return 0;
}
return 0;
}
void set_element(int i, int j, T new_value)
{
int k=0;
for(; k<(int)index[i].size(); ++k){
if(index[i][k]==j){
value[i][k]=new_value;
return;
}else if(index[i][k]>j){
insert(index[i], k, j);
insert(value[i], k, new_value);
return;
}
}
index[i].push_back(j);
value[i].push_back(new_value);
}
void add_to_element(int i, int j, T increment_value)
{
int k=0;
for(; k<(int)index[i].size(); ++k){
if(index[i][k]==j){
value[i][k]+=increment_value;
return;
}else if(index[i][k]>j){
insert(index[i], k, j);
insert(value[i], k, increment_value);
return;
}
}
index[i].push_back(j);
value[i].push_back(increment_value);
}
// assumes indices is already sorted
void add_sparse_row(int i, const std::vector<int> &indices, const std::vector<T> &values)
{
int j=0, k=0;
while(j<indices.size() && k<(int)index[i].size()){
if(index[i][k]<indices[j]){
++k;
}else if(index[i][k]>indices[j]){
insert(index[i], k, indices[j]);
insert(value[i], k, values[j]);
++j;
}else{
value[i][k]+=values[j];
++j;
++k;
}
}
for(;j<indices.size(); ++j){
index[i].push_back(indices[j]);
value[i].push_back(values[j]);
}
}
// assumes matrix has symmetric structure - so the indices in row i tell us which columns to delete i from
void symmetric_remove_row_and_column(int i)
{
for(int a=0; a<index[i].size(); ++a){
int j=index[i][a]; //
for(int b=0; b<index[j].size(); ++b){
if(index[j][b]==i){
erase(index[j], b);
erase(value[j], b);
break;
}
}
}
index[i].resize(0);
value[i].resize(0);
}
void write_matlab(std::ostream &output, const char *variable_name)
{
output<<variable_name<<"=sparse([";
for(int i=0; i<n; ++i){
for(int j=0; j<index[i].size(); ++j){
output<<i+1<<" ";
}
}
output<<"],...\n [";
for(int i=0; i<n; ++i){
for(int j=0; j<index[i].size(); ++j){
output<<index[i][j]+1<<" ";
}
}
output<<"],...\n [";
for(int i=0; i<n; ++i){
for(int j=0; j<value[i].size(); ++j){
output<<value[i][j]<<" ";
}
}
output<<"], "<<n<<", "<<n<<");"<<std::endl;
}
};
typedef SparseMatrix<float> SparseMatrixf;
typedef SparseMatrix<double> SparseMatrixd;
// perform result=matrix*x
template<class T>
void multiply(const SparseMatrix<T> &matrix, const std::vector<T> &x, std::vector<T> &result)
{
assert(matrix.n==x.size());
result.resize(matrix.n);
//for(int i=0; i<matrix.n; ++i)
parallel_for(matrix.n) {
unsigned i (parallel_index);
T value=0;
for(int j=0; j<(int)matrix.index[i].size(); ++j){
value+=matrix.value[i][j]*x[matrix.index[i][j]];
}
result[i]=value;
} parallel_end
}
// perform result=result-matrix*x
template<class T>
void multiply_and_subtract(const SparseMatrix<T> &matrix, const std::vector<T> &x, std::vector<T> &result)
{
assert(matrix.n==x.size());
result.resize(matrix.n);
for(int i=0; i<(int)matrix.n; ++i){
for(int j=0; j<(int)matrix.index[i].size(); ++j){
result[i]-=matrix.value[i][j]*x[matrix.index[i][j]];
}
}
}
//============================================================================
// Fixed version of SparseMatrix. This is not a good structure for dynamically
// modifying the matrix, but can be significantly faster for matrix-vector
// multiplies due to better data locality.
template<class T>
struct FixedSparseMatrix
{
int n; // dimension
std::vector<T> value; // nonzero values row by row
std::vector<int> colindex; // corresponding column indices
std::vector<int> rowstart; // where each row starts in value and colindex (and last entry is one past the end, the number of nonzeros)
explicit FixedSparseMatrix(int n_=0)
: n(n_), value(0), colindex(0), rowstart(n_+1)
{}
void clear(void)
{
n=0;
value.clear();
colindex.clear();
rowstart.clear();
}
void resize(int n_)
{
n=n_;
rowstart.resize(n+1);
}
void construct_from_matrix(const SparseMatrix<T> &matrix)
{
resize(matrix.n);
rowstart[0]=0;
for(int i=0; i<n; ++i){
rowstart[i+1]=rowstart[i]+matrix.index[i].size();
}
value.resize(rowstart[n]);
colindex.resize(rowstart[n]);
int j=0;
for(int i=0; i<n; ++i){
for(int k=0; k<(int)matrix.index[i].size(); ++k){
value[j]=matrix.value[i][k];
colindex[j]=matrix.index[i][k];
++j;
}
}
}
void write_matlab(std::ostream &output, const char *variable_name)
{
output<<variable_name<<"=sparse([";
for(int i=0; i<n; ++i){
for(int j=rowstart[i]; j<rowstart[i+1]; ++j){
output<<i+1<<" ";
}
}
output<<"],...\n [";
for(int i=0; i<n; ++i){
for(int j=rowstart[i]; j<rowstart[i+1]; ++j){
output<<colindex[j]+1<<" ";
}
}
output<<"],...\n [";
for(int i=0; i<n; ++i){
for(int j=rowstart[i]; j<rowstart[i+1]; ++j){
output<<value[j]<<" ";
}
}
output<<"], "<<n<<", "<<n<<");"<<std::endl;
}
};
// perform result=matrix*x
template<class T>
void multiply(const FixedSparseMatrix<T> &matrix, const std::vector<T> &x, std::vector<T> &result)
{
assert(matrix.n==x.size());
result.resize(matrix.n);
//for(int i=0; i<matrix.n; ++i)
parallel_for(matrix.n) {
unsigned i (parallel_index);
T value=0;
for(int j=matrix.rowstart[i]; j<matrix.rowstart[i+1]; ++j){
value+=matrix.value[j]*x[matrix.colindex[j]];
}
result[i]=value;
} parallel_end
}
// perform result=result-matrix*x
template<class T>
void multiply_and_subtract(const FixedSparseMatrix<T> &matrix, const std::vector<T> &x, std::vector<T> &result)
{
assert(matrix.n==x.size());
result.resize(matrix.n);
for(int i=0; i<matrix.n; ++i){
for(int j=matrix.rowstart[i]; j<matrix.rowstart[i+1]; ++j){
result[i]-=matrix.value[j]*x[matrix.colindex[j]];
}
}
}
//============================================================================
// A simple compressed sparse column data structure (with separate diagonal)
// for lower triangular matrices
template<class T>
struct SparseColumnLowerFactor
{
int n;
std::vector<T> invdiag; // reciprocals of diagonal elements
std::vector<T> value; // values below the diagonal, listed column by column
std::vector<int> rowindex; // a list of all row indices, for each column in turn
std::vector<int> colstart; // where each column begins in rowindex (plus an extra entry at the end, of #nonzeros)
std::vector<T> adiag; // just used in factorization: minimum "safe" diagonal entry allowed
explicit SparseColumnLowerFactor(int n_=0)
: n(n_), invdiag(n_), colstart(n_+1), adiag(n_)
{}
void clear(void)
{
n=0;
invdiag.clear();
value.clear();
rowindex.clear();
colstart.clear();
adiag.clear();
}
void resize(int n_)
{
n=n_;
invdiag.resize(n);
colstart.resize(n+1);
adiag.resize(n);
}
void write_matlab(std::ostream &output, const char *variable_name)
{
output<<variable_name<<"=sparse([";
for(int i=0; i<n; ++i){
output<<" "<<i+1;
for(int j=colstart[i]; j<colstart[i+1]; ++j){
output<<" "<<rowindex[j]+1;
}
}
output<<"],...\n [";
for(int i=0; i<n; ++i){
output<<" "<<i+1;
for(int j=colstart[i]; j<colstart[i+1]; ++j){
output<<" "<<i+1;
}
}
output<<"],...\n [";
for(int i=0; i<n; ++i){
output<<" "<<(invdiag[i]!=0 ? 1/invdiag[i] : 0);
for(int j=colstart[i]; j<colstart[i+1]; ++j){
output<<" "<<value[j];
}
}
output<<"], "<<n<<", "<<n<<");"<<std::endl;
}
};
//============================================================================
// Incomplete Cholesky factorization, level zero, with option for modified version.
// Set modification_parameter between zero (regular incomplete Cholesky) and
// one (fully modified version), with values close to one usually giving the best
// results. The min_diagonal_ratio parameter is used to detect and correct
// problems in factorization: if a pivot is this much less than the diagonal
// entry from the original matrix, the original matrix entry is used instead.
template<class T>
void factor_modified_incomplete_cholesky0(const SparseMatrix<T> &matrix, SparseColumnLowerFactor<T> &factor,
T modification_parameter=0.97, T min_diagonal_ratio=0.25)
{
// first copy lower triangle of matrix into factor (Note: assuming A is symmetric of course!)
factor.resize(matrix.n);
zero(factor.invdiag); // important: eliminate old values from previous solves!
factor.value.resize(0);
factor.rowindex.resize(0);
zero(factor.adiag);
for(int i=0; i<matrix.n; ++i){
factor.colstart[i]=(int)factor.rowindex.size();
for(int j=0; j<(int)matrix.index[i].size(); ++j){
if(matrix.index[i][j]>i){
factor.rowindex.push_back(matrix.index[i][j]);
factor.value.push_back(matrix.value[i][j]);
}else if(matrix.index[i][j]==i){
factor.invdiag[i]=factor.adiag[i]=matrix.value[i][j];
}
}
}
factor.colstart[matrix.n]=(int)factor.rowindex.size();
// now do the incomplete factorization (figure out numerical values)
// MATLAB code:
// L=tril(A);
// for k=1:size(L,2)
// L(k,k)=sqrt(L(k,k));
// L(k+1:end,k)=L(k+1:end,k)/L(k,k);
// for j=find(L(:,k))'
// if j>k
// fullupdate=L(:,k)*L(j,k);
// incompleteupdate=fullupdate.*(A(:,j)~=0);
// missing=sum(fullupdate-incompleteupdate);
// L(j:end,j)=L(j:end,j)-incompleteupdate(j:end);
// L(j,j)=L(j,j)-omega*missing;
// end
// end
// end
for(int k=0; k<matrix.n; ++k){
if(factor.adiag[k]==0) continue; // null row/column
// figure out the final L(k,k) entry
if(factor.invdiag[k]<min_diagonal_ratio*factor.adiag[k])
factor.invdiag[k]=1/sqrt(factor.adiag[k]); // drop to Gauss-Seidel here if the pivot looks dangerously small
else
factor.invdiag[k]=1/sqrt(factor.invdiag[k]);
// finalize the k'th column L(:,k)
for(int p=factor.colstart[k]; p<factor.colstart[k+1]; ++p){
factor.value[p]*=factor.invdiag[k];
}
// incompletely eliminate L(:,k) from future columns, modifying diagonals
for(int p=factor.colstart[k]; p<factor.colstart[k+1]; ++p){
int j=factor.rowindex[p]; // work on column j
T multiplier=factor.value[p];
T missing=0;
int a=factor.colstart[k];
// first look for contributions to missing from dropped entries above the diagonal in column j
int b=0;
while(a<factor.colstart[k+1] && factor.rowindex[a]<j){
// look for factor.rowindex[a] in matrix.index[j] starting at b
while(b<(int)matrix.index[j].size()){
if(matrix.index[j][b]<factor.rowindex[a])
++b;
else if(matrix.index[j][b]==factor.rowindex[a])
break;
else{
missing+=factor.value[a];
break;
}
}
++a;
}
// adjust the diagonal j,j entry
if(a<factor.colstart[k+1] && factor.rowindex[a]==j){
factor.invdiag[j]-=multiplier*factor.value[a];
}
++a;
// and now eliminate from the nonzero entries below the diagonal in column j (or add to missing if we can't)
b=factor.colstart[j];
while(a<factor.colstart[k+1] && b<factor.colstart[j+1]){
if(factor.rowindex[b]<factor.rowindex[a])
++b;
else if(factor.rowindex[b]==factor.rowindex[a]){
factor.value[b]-=multiplier*factor.value[a];
++a;
++b;
}else{
missing+=factor.value[a];
++a;
}
}
// and if there's anything left to do, add it to missing
while(a<factor.colstart[k+1]){
missing+=factor.value[a];
++a;
}
// and do the final diagonal adjustment from the missing entries
factor.invdiag[j]-=modification_parameter*multiplier*missing;
}
}
}
//============================================================================
// Solution routines with lower triangular matrix.
// solve L*result=rhs
template<class T>
void solve_lower(const SparseColumnLowerFactor<T> &factor, const std::vector<T> &rhs, std::vector<T> &result)
{
assert(factor.n==rhs.size());
assert(factor.n==result.size());
result=rhs;
for(int i=0; i<factor.n; ++i){
result[i]*=factor.invdiag[i];
for(int j=factor.colstart[i]; j<factor.colstart[i+1]; ++j){
result[factor.rowindex[j]]-=factor.value[j]*result[i];
}
}
}
// solve L^T*result=rhs
template<class T>
void solve_lower_transpose_in_place(const SparseColumnLowerFactor<T> &factor, std::vector<T> &x)
{
assert(factor.n==(int)x.size());
assert(factor.n>0);
int i=factor.n;
do{
--i;
for(int j=factor.colstart[i]; j<factor.colstart[i+1]; ++j){
x[i]-=factor.value[j]*x[factor.rowindex[j]];
}
x[i]*=factor.invdiag[i];
}while(i!=0);
}
//============================================================================
// Encapsulates the Conjugate Gradient algorithm with incomplete Cholesky
// factorization preconditioner.
template <class T>
struct SparsePCGSolver
{
SparsePCGSolver(void)
{
set_solver_parameters(1e-5, 100, 0.97, 0.25);
}
void set_solver_parameters(T tolerance_factor_, int max_iterations_, T modified_incomplete_cholesky_parameter_=0.97, T min_diagonal_ratio_=0.25)
{
tolerance_factor=tolerance_factor_;
if(tolerance_factor<1e-30) tolerance_factor=1e-30;
max_iterations=max_iterations_;
modified_incomplete_cholesky_parameter=modified_incomplete_cholesky_parameter_;
min_diagonal_ratio=min_diagonal_ratio_;
}
bool solve(const SparseMatrix<T> &matrix, const std::vector<T> &rhs, std::vector<T> &result, T &relative_residual_out, int &iterations_out, int precondition=2)
{
int n=matrix.n;
if((int)m.size()!=n){ m.resize(n); s.resize(n); z.resize(n); r.resize(n); }
zero(result);
r=rhs;
double residual_out=InstantBLAS<int,T>::abs_max(r);
if(residual_out==0) {
iterations_out=0;
return true;
}
//double tol=tolerance_factor*residual_out; // relative residual
double tol=tolerance_factor;
double residual_0 = residual_out;
form_preconditioner(matrix, precondition);
apply_preconditioner( r, z, precondition);
double rho=InstantBLAS<int,T>::dot(z, r);
if(rho==0 || rho!=rho) {
iterations_out=0;
return false;
}
s=z;
fixed_matrix.construct_from_matrix(matrix);
int iteration;
for(iteration=0; iteration<max_iterations; ++iteration){
multiply(fixed_matrix, s, z);
double alpha=rho/InstantBLAS<int,T>::dot(s, z);
InstantBLAS<int,T>::add_scaled(alpha, s, result);
InstantBLAS<int,T>::add_scaled(-alpha, z, r);
residual_out=InstantBLAS<int,T>::abs_max(r);
relative_residual_out = residual_out / residual_0;
if(residual_out<=tol) {
iterations_out=iteration+1;
return true;
}
apply_preconditioner(r, z, precondition);
double rho_new=InstantBLAS<int,T>::dot(z, r);
double beta=rho_new/rho;
InstantBLAS<int,T>::add_scaled(beta, s, z); s.swap(z); // s=beta*s+z
rho=rho_new;
}
iterations_out=iteration;
relative_residual_out = residual_out / residual_0;
return false;
}
protected:
// internal structures
SparseColumnLowerFactor<T> ic_factor; // modified incomplete cholesky factor
std::vector<T> m, z, s, r; // temporary vectors for PCG
FixedSparseMatrix<T> fixed_matrix; // used within loop
// parameters
T tolerance_factor;
int max_iterations;
T modified_incomplete_cholesky_parameter;
T min_diagonal_ratio;
void form_preconditioner(const SparseMatrix<T>& matrix, int precondition=2)
{
if(precondition==2) {
// incomplete cholesky
factor_modified_incomplete_cholesky0(matrix, ic_factor, modified_incomplete_cholesky_parameter, min_diagonal_ratio);
} else if(precondition==1) {
// diagonal
ic_factor.resize(matrix.n);
zero(ic_factor.invdiag);
for(int i=0; i<matrix.n; ++i) {
for(int j=0; j<(int)matrix.index[i].size(); ++j){
if(matrix.index[i][j]==i){
ic_factor.invdiag[i] = 1./matrix.value[i][j];
}
}
}
}
}
void apply_preconditioner(const std::vector<T> &x, std::vector<T> &result, int precondition=2)
{
if (precondition==2) {
// incomplete cholesky
solve_lower(ic_factor, x, result);
solve_lower_transpose_in_place(ic_factor,result);
} else if(precondition==1) {
// diagonal
for(int_index i=0; i<(int_index)result.size(); ++i) {
result[i] = x[i] * ic_factor.invdiag[i];
}
} else {
// off
result = x;
}
}
};
#undef parallel_for
#undef parallel_end
#undef int_index
#undef parallel_block
#undef do_parallel
#undef do_end
#undef block_end
#endif

View File

@@ -14,29 +14,29 @@ namespace GamePhysics
// basic inlined vector class // basic inlined vector class
template<class Scalar> template<class Scalar>
class vector4Dim class ntlVector4Dim
{ {
public: public:
//! Constructor //! Constructor
inline vector4Dim() : x(0),y(0),z(0),t(0) {} inline ntlVector4Dim() : x(0),y(0),z(0),t(0) {}
//! Copy-Constructor //! Copy-Constructor
inline vector4Dim ( const vector4Dim<Scalar> &v ) : x(v.x), y(v.y), z(v.z),t(v.t) {} inline ntlVector4Dim ( const ntlVector4Dim<Scalar> &v ) : x(v.x), y(v.y), z(v.z),t(v.t) {}
//! Copy-Constructor //! Copy-Constructor
inline vector4Dim ( const float * v) : x((Scalar)v[0]), y((Scalar)v[1]), z((Scalar)v[2]), t((Scalar)v[3]) {} inline ntlVector4Dim ( const float * v) : x((Scalar)v[0]), y((Scalar)v[1]), z((Scalar)v[2]), t((Scalar)v[3]) {}
//! Copy-Constructor //! Copy-Constructor
inline vector4Dim ( const double * v) : x((Scalar)v[0]), y((Scalar)v[1]), z((Scalar)v[2]), t((Scalar)v[3]) {} inline ntlVector4Dim ( const double * v) : x((Scalar)v[0]), y((Scalar)v[1]), z((Scalar)v[2]), t((Scalar)v[3]) {}
//! Construct a vector from one Scalar //! Construct a vector from one Scalar
inline vector4Dim ( Scalar v) : x(v), y(v), z(v), t(v) {} inline ntlVector4Dim ( Scalar v) : x(v), y(v), z(v), t(v) {}
//! Construct a vector from four Ss //! Construct a vector from four Ss
inline vector4Dim ( Scalar vx, Scalar vy, Scalar vz, Scalar vw) : x(vx), y(vy), z(vz), t(vw) {} inline ntlVector4Dim ( Scalar vx, Scalar vy, Scalar vz, Scalar vw) : x(vx), y(vy), z(vz), t(vw) {}
//! Construct a vector from four Ss //! Construct a vector from four Ss
//inline vector4Dim(DirectX::XMVECTOR &v ); // TODO CHECK! //inline ntlVector4Dim(DirectX::XMVECTOR &v ); // TODO CHECK!
// get address of array for OpenGL // get address of array for OpenGL
Scalar *getAddress() { return value; } Scalar *getAddress() { return value; }
@@ -44,7 +44,7 @@ public:
// Operators // Operators
//! Assignment operator //! Assignment operator
inline const vector4Dim<Scalar>& operator= ( const vector4Dim<Scalar>& v ) { inline const ntlVector4Dim<Scalar>& operator= ( const ntlVector4Dim<Scalar>& v ) {
x = v.x; x = v.x;
y = v.y; y = v.y;
z = v.z; z = v.z;
@@ -52,12 +52,12 @@ public:
return *this; return *this;
} }
//! Assignment operator //! Assignment operator
inline const vector4Dim<Scalar>& operator= ( Scalar s ) { inline const ntlVector4Dim<Scalar>& operator= ( Scalar s ) {
x = y = z = t = s; x = y = z = t = s;
return *this; return *this;
} }
//! Assign and add operator //! Assign and add operator
inline const vector4Dim<Scalar>& operator+= ( const vector4Dim<Scalar>& v ) { inline const ntlVector4Dim<Scalar>& operator+= ( const ntlVector4Dim<Scalar>& v ) {
x += v.x; x += v.x;
y += v.y; y += v.y;
z += v.z; z += v.z;
@@ -65,7 +65,7 @@ public:
return *this; return *this;
} }
//! Assign and add operator //! Assign and add operator
inline const vector4Dim<Scalar>& operator+= ( Scalar s ) { inline const ntlVector4Dim<Scalar>& operator+= ( Scalar s ) {
x += s; x += s;
y += s; y += s;
z += s; z += s;
@@ -73,7 +73,7 @@ public:
return *this; return *this;
} }
//! Assign and sub operator //! Assign and sub operator
inline const vector4Dim<Scalar>& operator-= ( const vector4Dim<Scalar>& v ) { inline const ntlVector4Dim<Scalar>& operator-= ( const ntlVector4Dim<Scalar>& v ) {
x -= v.x; x -= v.x;
y -= v.y; y -= v.y;
z -= v.z; z -= v.z;
@@ -81,7 +81,7 @@ public:
return *this; return *this;
} }
//! Assign and sub operator //! Assign and sub operator
inline const vector4Dim<Scalar>& operator-= ( Scalar s ) { inline const ntlVector4Dim<Scalar>& operator-= ( Scalar s ) {
x -= s; x -= s;
y -= s; y -= s;
z -= s; z -= s;
@@ -89,7 +89,7 @@ public:
return *this; return *this;
} }
//! Assign and mult operator //! Assign and mult operator
inline const vector4Dim<Scalar>& operator*= ( const vector4Dim<Scalar>& v ) { inline const ntlVector4Dim<Scalar>& operator*= ( const ntlVector4Dim<Scalar>& v ) {
x *= v.x; x *= v.x;
y *= v.y; y *= v.y;
z *= v.z; z *= v.z;
@@ -97,7 +97,7 @@ public:
return *this; return *this;
} }
//! Assign and mult operator //! Assign and mult operator
inline const vector4Dim<Scalar>& operator*= ( Scalar s ) { inline const ntlVector4Dim<Scalar>& operator*= ( Scalar s ) {
x *= s; x *= s;
y *= s; y *= s;
z *= s; z *= s;
@@ -105,7 +105,7 @@ public:
return *this; return *this;
} }
//! Assign and div operator //! Assign and div operator
inline const vector4Dim<Scalar>& operator/= ( const vector4Dim<Scalar>& v ) { inline const ntlVector4Dim<Scalar>& operator/= ( const ntlVector4Dim<Scalar>& v ) {
x /= v.x; x /= v.x;
y /= v.y; y /= v.y;
z /= v.z; z /= v.z;
@@ -113,7 +113,7 @@ public:
return *this; return *this;
} }
//! Assign and div operator //! Assign and div operator
inline const vector4Dim<Scalar>& operator/= ( Scalar s ) { inline const ntlVector4Dim<Scalar>& operator/= ( Scalar s ) {
x /= s; x /= s;
y /= s; y /= s;
z /= s; z /= s;
@@ -121,29 +121,29 @@ public:
return *this; return *this;
} }
inline void safeDivide (const vector4Dim<Scalar>& v); inline void safeDivide (const ntlVector4Dim<Scalar>& v);
//! Negation operator //! Negation operator
inline vector4Dim<Scalar> operator- () const { inline ntlVector4Dim<Scalar> operator- () const {
return vector4Dim<Scalar> (-x, -y, -z, -t); return ntlVector4Dim<Scalar> (-x, -y, -z, -t);
} }
// binary operator add // binary operator add
inline vector4Dim<Scalar> operator+ (const vector4Dim<Scalar>&) const; inline ntlVector4Dim<Scalar> operator+ (const ntlVector4Dim<Scalar>&) const;
// binary operator add // binary operator add
inline vector4Dim<Scalar> operator+ (Scalar) const; inline ntlVector4Dim<Scalar> operator+ (Scalar) const;
// binary operator sub // binary operator sub
inline vector4Dim<Scalar> operator- (const vector4Dim<Scalar>&) const; inline ntlVector4Dim<Scalar> operator- (const ntlVector4Dim<Scalar>&) const;
// binary operator sub // binary operator sub
inline vector4Dim<Scalar> operator- (Scalar) const; inline ntlVector4Dim<Scalar> operator- (Scalar) const;
// binary operator mult // binary operator mult
inline vector4Dim<Scalar> operator* (const vector4Dim<Scalar>&) const; inline ntlVector4Dim<Scalar> operator* (const ntlVector4Dim<Scalar>&) const;
// binary operator mult // binary operator mult
inline vector4Dim<Scalar> operator* (Scalar) const; inline ntlVector4Dim<Scalar> operator* (Scalar) const;
// binary operator div // binary operator div
inline vector4Dim<Scalar> operator/ (const vector4Dim<Scalar>&) const; inline ntlVector4Dim<Scalar> operator/ (const ntlVector4Dim<Scalar>&) const;
// binary operator div // binary operator div
inline vector4Dim<Scalar> operator/ (Scalar) const; inline ntlVector4Dim<Scalar> operator/ (Scalar) const;
//! Get smallest component //! Get smallest component
//inline Scalar min() const { return ( x<y ) ? ( ( x<z ) ? x:z ) : ( ( y<z ) ? y:z ); // todo t!!} //inline Scalar min() const { return ( x<y ) ? ( ( x<z ) ? x:z ) : ( ( y<z ) ? y:z ); // todo t!!}
@@ -185,7 +185,7 @@ public:
}; };
// zero element // zero element
static const vector4Dim<Scalar> ZERO; static const ntlVector4Dim<Scalar> ZERO;
protected: protected:
@@ -196,9 +196,9 @@ protected:
//************************************************************************ //************************************************************************
//! Addition operator //! Addition operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> vector4Dim<Scalar>::operator+ ( const vector4Dim<Scalar> &v) const inline ntlVector4Dim<Scalar> ntlVector4Dim<Scalar>::operator+ ( const ntlVector4Dim<Scalar> &v) const
{ {
return vector4Dim<Scalar> (value[0]+v.value[0], return ntlVector4Dim<Scalar> (value[0]+v.value[0],
value[1]+v.value[1], value[1]+v.value[1],
value[2]+v.value[2], value[2]+v.value[2],
value[3]+v.value[3]); value[3]+v.value[3]);
@@ -206,42 +206,42 @@ inline vector4Dim<Scalar> vector4Dim<Scalar>::operator+ ( const vector4Dim<Scala
//! Addition operator //! Addition operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
vector4Dim<Scalar>::operator+(Scalar s) const ntlVector4Dim<Scalar>::operator+(Scalar s) const
{ {
return vector4Dim<Scalar>(value[0]+s, return ntlVector4Dim<Scalar>(value[0]+s,
value[1]+s, value[1]+s,
value[2]+s, value[2]+s,
value[3]+s); value[3]+s);
} }
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
operator+(float s, vector4Dim<Scalar> v) operator+(float s, ntlVector4Dim<Scalar> v)
{ {
return v + s; return v + s;
} }
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
operator+(double s, vector4Dim<Scalar> v) operator+(double s, ntlVector4Dim<Scalar> v)
{ {
return v + s; return v + s;
} }
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
operator+(int s, vector4Dim<Scalar> v) operator+(int s, ntlVector4Dim<Scalar> v)
{ {
return v + s; return v + s;
} }
//! Subtraction operator //! Subtraction operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
vector4Dim<Scalar>::operator-( const vector4Dim<Scalar> &v ) const ntlVector4Dim<Scalar>::operator-( const ntlVector4Dim<Scalar> &v ) const
{ {
return vector4Dim<Scalar>(value[0]-v.value[0], return ntlVector4Dim<Scalar>(value[0]-v.value[0],
value[1]-v.value[1], value[1]-v.value[1],
value[2]-v.value[2], value[2]-v.value[2],
value[3]-v.value[3]); value[3]-v.value[3]);
@@ -249,10 +249,10 @@ vector4Dim<Scalar>::operator-( const vector4Dim<Scalar> &v ) const
//! Subtraction operator //! Subtraction operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
vector4Dim<Scalar>::operator-(Scalar s ) const ntlVector4Dim<Scalar>::operator-(Scalar s ) const
{ {
return vector4Dim<Scalar>(value[0]-s, return ntlVector4Dim<Scalar>(value[0]-s,
value[1]-s, value[1]-s,
value[2]-s, value[2]-s,
value[3]-s,); value[3]-s,);
@@ -260,50 +260,50 @@ vector4Dim<Scalar>::operator-(Scalar s ) const
//! Multiplication operator //! Multiplication operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
vector4Dim<Scalar>::operator* ( const vector4Dim<Scalar>& v ) const ntlVector4Dim<Scalar>::operator* ( const ntlVector4Dim<Scalar>& v ) const
{ {
return vector4Dim<Scalar>(value[0]*v.value[0], return ntlVector4Dim<Scalar>(value[0]*v.value[0],
value[1]*v.value[1], value[1]*v.value[1],
value[2]*v.value[2], value[2]*v.value[2],
value[3]*v.value[3]); value[3]*v.value[3]);
} }
//! Multiplication operator //! Multiplication operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
vector4Dim<Scalar>::operator* (Scalar s) const ntlVector4Dim<Scalar>::operator* (Scalar s) const
{ {
return vector4Dim<Scalar>(value[0]*s, value[1]*s, value[2]*s, value[3]*s); return ntlVector4Dim<Scalar>(value[0]*s, value[1]*s, value[2]*s, value[3]*s);
} }
//! Multiplication operator //! Multiplication operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
operator* (float s, vector4Dim<Scalar> v) operator* (float s, ntlVector4Dim<Scalar> v)
{ {
return v * s; return v * s;
} }
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
operator*(double s, vector4Dim<Scalar> v) operator*(double s, ntlVector4Dim<Scalar> v)
{ {
return v * s; return v * s;
} }
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
operator*(int s, vector4Dim<Scalar> v) operator*(int s, ntlVector4Dim<Scalar> v)
{ {
return v * s; return v * s;
} }
//! Division operator //! Division operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
vector4Dim<Scalar>::operator/ (const vector4Dim<Scalar> & v) const ntlVector4Dim<Scalar>::operator/ (const ntlVector4Dim<Scalar> & v) const
{ {
return vector4Dim<Scalar> (value[0]/v.value[0], return ntlVector4Dim<Scalar> (value[0]/v.value[0],
value[1]/v.value[1], value[1]/v.value[1],
value[2]/v.value[2], value[2]/v.value[2],
value[3]/v.value[3]); value[3]/v.value[3]);
@@ -311,10 +311,10 @@ vector4Dim<Scalar>::operator/ (const vector4Dim<Scalar> & v) const
//! Division operator //! Division operator
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> inline ntlVector4Dim<Scalar>
vector4Dim<Scalar>::operator / (Scalar s) const ntlVector4Dim<Scalar>::operator / (Scalar s) const
{ {
return vector4Dim<Scalar> (value[0]/s, return ntlVector4Dim<Scalar> (value[0]/s,
value[1]/s, value[1]/s,
value[2]/s, value[2]/s,
value[3]/s); value[3]/s);
@@ -322,7 +322,7 @@ vector4Dim<Scalar>::operator / (Scalar s) const
//! Safe divide //! Safe divide
template<class Scalar> template<class Scalar>
inline void vector4Dim<Scalar>::safeDivide( const vector4Dim<Scalar> &v ) inline void ntlVector4Dim<Scalar>::safeDivide( const ntlVector4Dim<Scalar> &v )
{ {
value[0] = (v.value[0]!=0) ? (value[0] / v.value[0]) : 0; value[0] = (v.value[0]!=0) ? (value[0] / v.value[0]) : 0;
value[1] = (v.value[1]!=0) ? (value[1] / v.value[1]) : 0; value[1] = (v.value[1]!=0) ? (value[1] / v.value[1]) : 0;
@@ -336,14 +336,14 @@ inline void vector4Dim<Scalar>::safeDivide( const vector4Dim<Scalar> &v )
//! Dot product //! Dot product
template<class Scalar> template<class Scalar>
inline Scalar dot ( const vector4Dim<Scalar> &t, const vector4Dim<Scalar> &v ) { inline Scalar dot ( const ntlVector4Dim<Scalar> &t, const ntlVector4Dim<Scalar> &v ) {
return t.x*v.x + t.y*v.y + t.z*v.z + t.t*v.t; return t.x*v.x + t.y*v.y + t.z*v.z + t.t*v.t;
} }
//! Cross product //! Cross product
/*template<class Scalar> /*template<class Scalar>
inline vector4Dim<Scalar> cross ( const vector4Dim<Scalar> &t, const vector4Dim<Scalar> &v ) { inline ntlVector4Dim<Scalar> cross ( const ntlVector4Dim<Scalar> &t, const ntlVector4Dim<Scalar> &v ) {
NYI vector4Dim<Scalar> cp ( NYI ntlVector4Dim<Scalar> cp (
( ( t.y*v.z ) - ( t.z*v.y ) ), ( ( t.y*v.z ) - ( t.z*v.y ) ),
( ( t.z*v.x ) - ( t.x*v.z ) ), ( ( t.z*v.x ) - ( t.x*v.z ) ),
( ( t.x*v.y ) - ( t.y*v.x ) ) ); ( ( t.x*v.y ) - ( t.y*v.x ) ) );
@@ -353,36 +353,36 @@ inline vector4Dim<Scalar> cross ( const vector4Dim<Scalar> &t, const vector4Dim<
//! Compute the magnitude (length) of the vector //! Compute the magnitude (length) of the vector
template<class Scalar> template<class Scalar>
inline Scalar norm ( const vector4Dim<Scalar>& v ) { inline Scalar norm ( const ntlVector4Dim<Scalar>& v ) {
Scalar l = v.x*v.x + v.y*v.y + v.z*v.z + v.t*v.t; Scalar l = v.x*v.x + v.y*v.y + v.z*v.z + v.t*v.t;
return ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON ) ? 1. : sqrt ( l ); return ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON ) ? 1. : sqrt ( l );
} }
//! Compute squared magnitude //! Compute squared magnitude
template<class Scalar> template<class Scalar>
inline Scalar normSquare ( const vector4Dim<Scalar>& v ) { inline Scalar normSquare ( const ntlVector4Dim<Scalar>& v ) {
return v.x*v.x + v.y*v.y + v.z*v.z + v.t*v.t; return v.x*v.x + v.y*v.y + v.z*v.z + v.t*v.t;
} }
//! Returns a normalized vector //! Returns a normalized vector
template<class Scalar> template<class Scalar>
inline vector4Dim<Scalar> getNormalized ( const vector4Dim<Scalar>& v ) { inline ntlVector4Dim<Scalar> getNormalized ( const ntlVector4Dim<Scalar>& v ) {
Scalar l = v.x*v.x + v.y*v.y + v.z*v.z + v.t*v.t; Scalar l = v.x*v.x + v.y*v.y + v.z*v.z + v.t*v.t;
if ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON ) if ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON )
return v; /* normalized "enough"... */ return v; /* normalized "enough"... */
else if ( l > VECTOR_EPSILON*VECTOR_EPSILON ) else if ( l > VECTOR_EPSILON*VECTOR_EPSILON )
{ {
Scalar fac = 1./sqrt ( l ); Scalar fac = 1./sqrt ( l );
return vector4Dim<Scalar> ( v.x*fac, v.y*fac, v.z*fac , v.t*fac ); return ntlVector4Dim<Scalar> ( v.x*fac, v.y*fac, v.z*fac , v.t*fac );
} }
else else
return vector4Dim<Scalar> ( ( Scalar ) 0 ); return ntlVector4Dim<Scalar> ( ( Scalar ) 0 );
} }
//! Compute the norm of the vector and normalize it. //! Compute the norm of the vector and normalize it.
/*! \return The value of the norm */ /*! \return The value of the norm */
template<class Scalar> template<class Scalar>
inline Scalar normalize ( vector4Dim<Scalar> &v ) { inline Scalar normalize ( ntlVector4Dim<Scalar> &v ) {
Scalar norm; Scalar norm;
Scalar l = v.x*v.x + v.y*v.y + v.z*v.z + v.t*v.t; Scalar l = v.x*v.x + v.y*v.y + v.z*v.z + v.t*v.t;
if ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON ) { if ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON ) {
@@ -391,14 +391,14 @@ inline Scalar normalize ( vector4Dim<Scalar> &v ) {
norm = sqrt ( l ); norm = sqrt ( l );
v *= 1./norm; v *= 1./norm;
} else { } else {
v = vector4Dim<Scalar>::ZERO; v = ntlVector4Dim<Scalar>::ZERO;
norm = 0.; norm = 0.;
} }
return ( Scalar ) norm; return ( Scalar ) norm;
} }
template<class Scalar> template<class Scalar>
inline bool equal(const vector4Dim<Scalar> &v, const vector4Dim<Scalar> &c) inline bool equal(const ntlVector4Dim<Scalar> &v, const ntlVector4Dim<Scalar> &c)
{ {
return (ABS(v[0]-c[0]) + return (ABS(v[0]-c[0]) +
ABS(v[1]-c[1]) + ABS(v[1]-c[1]) +
@@ -407,7 +407,7 @@ inline bool equal(const vector4Dim<Scalar> &v, const vector4Dim<Scalar> &c)
} }
//! Outputs the object in human readable form as string //! Outputs the object in human readable form as string
template<class Scalar> std::string vector4Dim<Scalar>::toString() const { template<class Scalar> std::string ntlVector4Dim<Scalar>::toString() const {
char buf[256]; char buf[256];
snprintf ( buf,256,"<%f,%f,%f,%f>", ( double ) ( *this ) [0], ( double ) ( *this ) [1], ( double ) ( *this ) [2] , ( double ) ( *this ) [3] ); snprintf ( buf,256,"<%f,%f,%f,%f>", ( double ) ( *this ) [0], ( double ) ( *this ) [1], ( double ) ( *this ) [2] , ( double ) ( *this ) [3] );
return std::string ( buf ); return std::string ( buf );
@@ -415,7 +415,7 @@ template<class Scalar> std::string vector4Dim<Scalar>::toString() const {
//! Outputs the object in human readable form to stream //! Outputs the object in human readable form to stream
template<class Scalar> template<class Scalar>
std::ostream& operator<< ( std::ostream& os, const vector4Dim<Scalar>& i ) { std::ostream& operator<< ( std::ostream& os, const ntlVector4Dim<Scalar>& i ) {
char buf[256]; char buf[256];
snprintf ( buf,256,"[%d,%d,%d,%d]", (double) i[0], (double) i[1], (double) i[2] , (double) i[3] ); snprintf ( buf,256,"[%d,%d,%d,%d]", (double) i[0], (double) i[1], (double) i[2] , (double) i[3] );
os << std::string ( buf ); os << std::string ( buf );
@@ -424,7 +424,7 @@ std::ostream& operator<< ( std::ostream& os, const vector4Dim<Scalar>& i ) {
//! Reads the contents of the object from a stream //! Reads the contents of the object from a stream
template<class Scalar> template<class Scalar>
std::istream& operator>> ( std::istream& is, vector4Dim<Scalar>& i ) { std::istream& operator>> ( std::istream& is, ntlVector4Dim<Scalar>& i ) {
char c; char c;
char dummy[4]; char dummy[4];
is >> c >> i[0] >> dummy >> i[1] >> dummy >> i[2] >> dummy >> i[3] >> c; is >> c >> i[0] >> dummy >> i[1] >> dummy >> i[2] >> dummy >> i[3] >> c;
@@ -436,16 +436,16 @@ std::istream& operator>> ( std::istream& is, vector4Dim<Scalar>& i ) {
/**************************************************************************/ /**************************************************************************/
//! 3D vector class of type Real (typically float) //! 3D vector class of type Real (typically float)
typedef vector4Dim<Real> Vec4; typedef ntlVector4Dim<Real> Vec4;
// a 3D vector with double precision // a 3D vector with double precision
typedef vector4Dim<double> nVec4d; typedef ntlVector4Dim<double> nVec4d;
// a 3D vector with single precision // a 3D vector with single precision
typedef vector4Dim<float> nVec4f; typedef ntlVector4Dim<float> nVec4f;
//! 3D vector class of type int //! 3D vector class of type int
typedef vector4Dim<int> nVec4i; typedef ntlVector4Dim<int> nVec4i;
/* convert int,float and double vectors */ /* convert int,float and double vectors */
template<class T> inline nVec4i vec42I(T v) { return nVec4i((int)v[0],(int)v[1],(int)v[2],(int)v[3]); } template<class T> inline nVec4i vec42I(T v) { return nVec4i((int)v[0],(int)v[1],(int)v[2],(int)v[3]); }

View File

@@ -1,611 +0,0 @@
/******************************************************************************
*
* MantaFlow fluid solver framework
* Copyright 2011-2016 Tobias Pfaff, Nils Thuerey
*
* This program is free software, distributed under the terms of the
* GNU General Public License (GPL)
* http://www.gnu.org/licenses
*
* Basic vector class
*
******************************************************************************/
#ifndef _VECTORBASE_H
#define _VECTORBASE_H
// get rid of windos min/max defines
#if defined(WIN32) || defined(_WIN32)
# define NOMINMAX
#endif
#include <stdio.h>
#include <string>
#include <limits>
#include <iostream>
#include "general.h"
// if min/max are still around...
#if defined(WIN32) || defined(_WIN32)
# undef min
# undef max
#endif
// redefine usage of some windows functions
#if defined(WIN32) || defined(_WIN32)
# ifndef snprintf
# define snprintf _snprintf
# endif
#endif
// use which fp-precision? 1=float, 2=double
#ifndef FLOATINGPOINT_PRECISION
# define FLOATINGPOINT_PRECISION 1
#endif
// VECTOR_EPSILON is the minimal vector length
// In order to be able to discriminate floating point values near zero, and
// to be sure not to fail a comparison because of roundoff errors, use this
// value as a threshold.
#if FLOATINGPOINT_PRECISION==1
typedef float Real;
# define VECTOR_EPSILON (1e-6f)
#else
typedef double Real;
# define VECTOR_EPSILON (1e-10)
#endif
#ifndef M_PI
# define M_PI 3.1415926536
#endif
#ifndef M_E
# define M_E 2.7182818284
#endif
namespace Manta
{
//! Basic inlined vector class
template<class S>
class Vector3D
{
public:
//! Constructor
inline Vector3D() : x(0),y(0),z(0) {}
//! Copy-Constructor
inline Vector3D ( const Vector3D<S> &v ) : x(v.x), y(v.y), z(v.z) {}
//! Copy-Constructor
inline Vector3D ( const float * v) : x((S)v[0]), y((S)v[1]), z((S)v[2]) {}
//! Copy-Constructor
inline Vector3D ( const double * v) : x((S)v[0]), y((S)v[1]), z((S)v[2]) {}
//! Construct a vector from one S
inline Vector3D ( S v) : x(v), y(v), z(v) {}
//! Construct a vector from three Ss
inline Vector3D ( S vx, S vy, S vz) : x(vx), y(vy), z(vz) {}
// Operators
//! Assignment operator
inline const Vector3D<S>& operator= ( const Vector3D<S>& v ) {
x = v.x;
y = v.y;
z = v.z;
return *this;
}
//! Assignment operator
inline const Vector3D<S>& operator= ( S s ) {
x = y = z = s;
return *this;
}
//! Assign and add operator
inline const Vector3D<S>& operator+= ( const Vector3D<S>& v ) {
x += v.x;
y += v.y;
z += v.z;
return *this;
}
//! Assign and add operator
inline const Vector3D<S>& operator+= ( S s ) {
x += s;
y += s;
z += s;
return *this;
}
//! Assign and sub operator
inline const Vector3D<S>& operator-= ( const Vector3D<S>& v ) {
x -= v.x;
y -= v.y;
z -= v.z;
return *this;
}
//! Assign and sub operator
inline const Vector3D<S>& operator-= ( S s ) {
x -= s;
y -= s;
z -= s;
return *this;
}
//! Assign and mult operator
inline const Vector3D<S>& operator*= ( const Vector3D<S>& v ) {
x *= v.x;
y *= v.y;
z *= v.z;
return *this;
}
//! Assign and mult operator
inline const Vector3D<S>& operator*= ( S s ) {
x *= s;
y *= s;
z *= s;
return *this;
}
//! Assign and div operator
inline const Vector3D<S>& operator/= ( const Vector3D<S>& v ) {
x /= v.x;
y /= v.y;
z /= v.z;
return *this;
}
//! Assign and div operator
inline const Vector3D<S>& operator/= ( S s ) {
x /= s;
y /= s;
z /= s;
return *this;
}
//! Negation operator
inline Vector3D<S> operator- () const {
return Vector3D<S> (-x, -y, -z);
}
//! Get smallest component
inline S min() const {
return ( x<y ) ? ( ( x<z ) ? x:z ) : ( ( y<z ) ? y:z );
}
//! Get biggest component
inline S max() const {
return ( x>y ) ? ( ( x>z ) ? x:z ) : ( ( y>z ) ? y:z );
}
//! Test if all components are zero
inline bool empty() {
return x==0 && y==0 && z==0;
}
//! access operator
inline S& operator[] ( unsigned int i ) {
return value[i];
}
//! constant access operator
inline const S& operator[] ( unsigned int i ) const {
return value[i];
}
//! debug output vector to a string
std::string toString() const;
//! test if nans are present
bool isValid() const;
//! actual values
union {
S value[3];
struct {
S x;
S y;
S z;
};
struct {
S X;
S Y;
S Z;
};
};
//! zero element
static const Vector3D<S> Zero, Invalid;
//! For compatibility with 4d vectors (discards 4th comp)
inline Vector3D ( S vx, S vy, S vz, S vDummy) : x(vx), y(vy), z(vz) {}
protected:
};
//************************************************************************
// Additional operators
//************************************************************************
//! Addition operator
template<class S>
inline Vector3D<S> operator+ ( const Vector3D<S> &v1, const Vector3D<S> &v2 ) {
return Vector3D<S> ( v1.x+v2.x, v1.y+v2.y, v1.z+v2.z );
}
//! Addition operator
template<class S, class S2>
inline Vector3D<S> operator+ ( const Vector3D<S>& v, S2 s ) {
return Vector3D<S> ( v.x+s, v.y+s, v.z+s );
}
//! Addition operator
template<class S, class S2>
inline Vector3D<S> operator+ ( S2 s, const Vector3D<S>& v ) {
return Vector3D<S> ( v.x+s, v.y+s, v.z+s );
}
//! Subtraction operator
template<class S>
inline Vector3D<S> operator- ( const Vector3D<S> &v1, const Vector3D<S> &v2 ) {
return Vector3D<S> ( v1.x-v2.x, v1.y-v2.y, v1.z-v2.z );
}
//! Subtraction operator
template<class S, class S2>
inline Vector3D<S> operator- ( const Vector3D<S>& v, S2 s ) {
return Vector3D<S> ( v.x-s, v.y-s, v.z-s );
}
//! Subtraction operator
template<class S, class S2>
inline Vector3D<S> operator- ( S2 s, const Vector3D<S>& v ) {
return Vector3D<S> ( s-v.x, s-v.y, s-v.z );
}
//! Multiplication operator
template<class S>
inline Vector3D<S> operator* ( const Vector3D<S> &v1, const Vector3D<S> &v2 ) {
return Vector3D<S> ( v1.x*v2.x, v1.y*v2.y, v1.z*v2.z );
}
//! Multiplication operator
template<class S, class S2>
inline Vector3D<S> operator* ( const Vector3D<S>& v, S2 s ) {
return Vector3D<S> ( v.x*s, v.y*s, v.z*s );
}
//! Multiplication operator
template<class S, class S2>
inline Vector3D<S> operator* ( S2 s, const Vector3D<S>& v ) {
return Vector3D<S> ( s*v.x, s*v.y, s*v.z );
}
//! Division operator
template<class S>
inline Vector3D<S> operator/ ( const Vector3D<S> &v1, const Vector3D<S> &v2 ) {
return Vector3D<S> ( v1.x/v2.x, v1.y/v2.y, v1.z/v2.z );
}
//! Division operator
template<class S, class S2>
inline Vector3D<S> operator/ ( const Vector3D<S>& v, S2 s ) {
return Vector3D<S> ( v.x/s, v.y/s, v.z/s );
}
//! Division operator
template<class S, class S2>
inline Vector3D<S> operator/ ( S2 s, const Vector3D<S>& v ) {
return Vector3D<S> ( s/v.x, s/v.y, s/v.z );
}
//! Comparison operator
template<class S>
inline bool operator== (const Vector3D<S>& s1, const Vector3D<S>& s2) {
return s1.x == s2.x && s1.y == s2.y && s1.z == s2.z;
}
//! Comparison operator
template<class S>
inline bool operator!= (const Vector3D<S>& s1, const Vector3D<S>& s2) {
return s1.x != s2.x || s1.y != s2.y || s1.z != s2.z;
}
//************************************************************************
// External functions
//************************************************************************
//! Min operator
template<class S>
inline Vector3D<S> vmin (const Vector3D<S>& s1, const Vector3D<S>& s2) {
return Vector3D<S>(std::min(s1.x,s2.x), std::min(s1.y,s2.y), std::min(s1.z,s2.z));
}
//! Min operator
template<class S, class S2>
inline Vector3D<S> vmin (const Vector3D<S>& s1, S2 s2) {
return Vector3D<S>(std::min(s1.x,s2), std::min(s1.y,s2), std::min(s1.z,s2));
}
//! Min operator
template<class S1, class S>
inline Vector3D<S> vmin (S1 s1, const Vector3D<S>& s2) {
return Vector3D<S>(std::min(s1,s2.x), std::min(s1,s2.y), std::min(s1,s2.z));
}
//! Max operator
template<class S>
inline Vector3D<S> vmax (const Vector3D<S>& s1, const Vector3D<S>& s2) {
return Vector3D<S>(std::max(s1.x,s2.x), std::max(s1.y,s2.y), std::max(s1.z,s2.z));
}
//! Max operator
template<class S, class S2>
inline Vector3D<S> vmax (const Vector3D<S>& s1, S2 s2) {
return Vector3D<S>(std::max(s1.x,s2), std::max(s1.y,s2), std::max(s1.z,s2));
}
//! Max operator
template<class S1, class S>
inline Vector3D<S> vmax (S1 s1, const Vector3D<S>& s2) {
return Vector3D<S>(std::max(s1,s2.x), std::max(s1,s2.y), std::max(s1,s2.z));
}
//! Dot product
template<class S>
inline S dot ( const Vector3D<S> &t, const Vector3D<S> &v ) {
return t.x*v.x + t.y*v.y + t.z*v.z;
}
//! Cross product
template<class S>
inline Vector3D<S> cross ( const Vector3D<S> &t, const Vector3D<S> &v ) {
Vector3D<S> cp (
( ( t.y*v.z ) - ( t.z*v.y ) ),
( ( t.z*v.x ) - ( t.x*v.z ) ),
( ( t.x*v.y ) - ( t.y*v.x ) ) );
return cp;
}
//! Project a vector into a plane, defined by its normal
/*! Projects a vector into a plane normal to the given vector, which must
have unit length. Self is modified.
\param v The vector to project
\param n The plane normal
\return The projected vector */
template<class S>
inline const Vector3D<S>& projectNormalTo ( const Vector3D<S>& v, const Vector3D<S> &n) {
S sprod = dot (v, n);
return v - n * dot(v, n);
}
//! Compute the magnitude (length) of the vector
//! (clamps to 0 and 1 with VECTOR_EPSILON)
template<class S>
inline S norm ( const Vector3D<S>& v ) {
S l = v.x*v.x + v.y*v.y + v.z*v.z;
if ( l <= VECTOR_EPSILON*VECTOR_EPSILON ) return(0.);
return ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON ) ? 1. : sqrt ( l );
}
//! Compute squared magnitude
template<class S>
inline S normSquare ( const Vector3D<S>& v ) {
return v.x*v.x + v.y*v.y + v.z*v.z;
}
//! compatibility, allow use of int, Real and Vec inputs with norm/normSquare
inline Real norm(const Real v) { return fabs(v); }
inline Real normSquare(const Real v) { return square(v); }
inline Real norm(const int v) { return abs(v); }
inline Real normSquare(const int v) { return square(v); }
//! Returns a normalized vector
template<class S>
inline Vector3D<S> getNormalized ( const Vector3D<S>& v ) {
S l = v.x*v.x + v.y*v.y + v.z*v.z;
if ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON )
return v; /* normalized "enough"... */
else if ( l > VECTOR_EPSILON*VECTOR_EPSILON )
{
S fac = 1./sqrt ( l );
return Vector3D<S> ( v.x*fac, v.y*fac, v.z*fac );
}
else
return Vector3D<S> ( ( S ) 0 );
}
//! Compute the norm of the vector and normalize it.
/*! \return The value of the norm */
template<class S>
inline S normalize ( Vector3D<S> &v ) {
S norm;
S l = v.x*v.x + v.y*v.y + v.z*v.z;
if ( fabs ( l-1. ) < VECTOR_EPSILON*VECTOR_EPSILON ) {
norm = 1.;
} else if ( l > VECTOR_EPSILON*VECTOR_EPSILON ) {
norm = sqrt ( l );
v *= 1./norm;
} else {
v = Vector3D<S>::Zero;
norm = 0.;
}
return ( S ) norm;
}
//! Obtain an orthogonal vector
/*! Compute a vector that is orthonormal to the given vector.
* Nothing else can be assumed for the direction of the new vector.
* \return The orthonormal vector */
template<class S>
Vector3D<S> getOrthogonalVector(const Vector3D<S>& v) {
// Determine the component with max. absolute value
int maxIndex= ( fabs ( v.x ) > fabs ( v.y ) ) ? 0 : 1;
maxIndex= ( fabs ( v[maxIndex] ) > fabs ( v.z ) ) ? maxIndex : 2;
// Choose another axis than the one with max. component and project
// orthogonal to self
Vector3D<S> o ( 0.0 );
o[ ( maxIndex+1 ) %3]= 1;
Vector3D<S> c = cross(v, o);
normalize(c);
return c;
}
//! Convert vector to polar coordinates
/*! Stable vector to angle conversion
*\param v vector to convert
\param phi unique angle [0,2PI]
\param theta unique angle [0,PI]
*/
template<class S>
inline void vecToAngle ( const Vector3D<S>& v, S& phi, S& theta )
{
if ( fabs ( v.y ) < VECTOR_EPSILON )
theta = M_PI/2;
else if ( fabs ( v.x ) < VECTOR_EPSILON && fabs ( v.z ) < VECTOR_EPSILON )
theta = ( v.y>=0 ) ? 0:M_PI;
else
theta = atan ( sqrt ( v.x*v.x+v.z*v.z ) /v.y );
if ( theta<0 ) theta+=M_PI;
if ( fabs ( v.x ) < VECTOR_EPSILON )
phi = M_PI/2;
else
phi = atan ( v.z/v.x );
if ( phi<0 ) phi+=M_PI;
if ( fabs ( v.z ) < VECTOR_EPSILON )
phi = ( v.x>=0 ) ? 0 : M_PI;
else if ( v.z < 0 )
phi += M_PI;
}
//! Compute vector reflected at a surface
/*! Compute a vector, that is self (as an incoming vector)
* reflected at a surface with a distinct normal vector.
* Note that the normal is reversed, if the scalar product with it is positive.
\param t The incoming vector
\param n The surface normal
\return The new reflected vector
*/
template<class S>
inline Vector3D<S> reflectVector ( const Vector3D<S>& t, const Vector3D<S>& n ) {
Vector3D<S> nn= ( dot ( t, n ) > 0.0 ) ? ( n*-1.0 ) : n;
return ( t - nn * ( 2.0 * dot ( nn, t ) ) );
}
//! Compute vector refracted at a surface
/*! \param t The incoming vector
* \param n The surface normal
* \param nt The "inside" refraction index
* \param nair The "outside" refraction index
* \param refRefl Set to 1 on total reflection
* \return The refracted vector
*/
template<class S>
inline Vector3D<S> refractVector ( const Vector3D<S> &t, const Vector3D<S> &normal, S nt, S nair, int &refRefl ) {
// from Glassner's book, section 5.2 (Heckberts method)
S eta = nair / nt;
S n = -dot ( t, normal );
S tt = 1.0 + eta*eta* ( n*n-1.0 );
if ( tt<0.0 ) {
// we have total reflection!
refRefl = 1;
} else {
// normal reflection
tt = eta*n - sqrt ( tt );
return ( t*eta + normal*tt );
}
return t;
}
//! Outputs the object in human readable form as string
template<class S> std::string Vector3D<S>::toString() const {
char buf[256];
snprintf ( buf,256,"[%+4.6f,%+4.6f,%+4.6f]", ( double ) ( *this ) [0], ( double ) ( *this ) [1], ( double ) ( *this ) [2] );
// for debugging, optionally increase precision:
//snprintf ( buf,256,"[%+4.16f,%+4.16f,%+4.16f]", ( double ) ( *this ) [0], ( double ) ( *this ) [1], ( double ) ( *this ) [2] );
return std::string ( buf );
}
template<> std::string Vector3D<int>::toString() const;
//! Outputs the object in human readable form to stream
/*! Output format [x,y,z] */
template<class S>
std::ostream& operator<< ( std::ostream& os, const Vector3D<S>& i ) {
os << i.toString();
return os;
}
//! Reads the contents of the object from a stream
/*! Input format [x,y,z] */
template<class S>
std::istream& operator>> ( std::istream& is, Vector3D<S>& i ) {
char c;
char dummy[3];
is >> c >> i[0] >> dummy >> i[1] >> dummy >> i[2] >> c;
return is;
}
/**************************************************************************/
// Define default vector alias
/**************************************************************************/
//! 3D vector class of type Real (typically float)
typedef Vector3D<Real> Vec3;
//! 3D vector class of type int
typedef Vector3D<int> Vec3i;
//! convert to Real Vector
template<class T> inline Vec3 toVec3 ( T v ) {
return Vec3 ( v[0],v[1],v[2] );
}
//! convert to int Vector
template<class T> inline Vec3i toVec3i ( T v ) {
return Vec3i ( ( int ) v[0], ( int ) v[1], ( int ) v[2] );
}
//! convert to int Vector
template<class T> inline Vec3i toVec3i ( T v0, T v1, T v2 ) {
return Vec3i ( ( int ) v0, ( int ) v1, ( int ) v2 );
}
//! round, and convert to int Vector
template<class T> inline Vec3i toVec3iRound ( T v ) {
return Vec3i ( ( int ) round ( v[0] ), ( int ) round ( v[1] ), ( int ) round ( v[2] ) );
}
//! convert to int Vector if values are close enough to an int
template<class T> inline Vec3i toVec3iChecked ( T v ) {
Vec3i ret;
for (size_t i=0; i<3; i++) {
Real a = v[i];
if (fabs(a-floor(a+0.5)) > 1e-5)
errMsg("argument is not an int, cannot convert");
ret[i] = (int) (a+0.5);
}
return ret;
}
//! convert to double Vector
template<class T> inline Vector3D<double> toVec3d ( T v ) {
return Vector3D<double> ( v[0], v[1], v[2] );
}
//! convert to float Vector
template<class T> inline Vector3D<float> toVec3f ( T v ) {
return Vector3D<float> ( v[0], v[1], v[2] );
}
/**************************************************************************/
// Specializations for common math functions
/**************************************************************************/
template<> inline Vec3 clamp<Vec3>(const Vec3& a, const Vec3& b, const Vec3& c) {
return Vec3 ( clamp(a.x, b.x, c.x),
clamp(a.y, b.y, c.y),
clamp(a.z, b.z, c.z) );
}
template<> inline Vec3 safeDivide<Vec3>(const Vec3 &a, const Vec3& b) {
return Vec3(safeDivide(a.x,b.x), safeDivide(a.y,b.y), safeDivide(a.z,b.z));
}
template<> inline Vec3 nmod<Vec3>(const Vec3& a, const Vec3& b) {
return Vec3(nmod(a.x,b.x),nmod(a.y,b.y),nmod(a.z,b.z));
}
}; // namespace
#endif

View File

@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>SimulationsRunner</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;NOMINMAX;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<EntryPointName />
</FxCompile>
<FxCompile>
<ShaderType>Effect</ShaderType>
</FxCompile>
<FxCompile>
<ShaderModel>5.0</ShaderModel>
</FxCompile>
<FxCompile>
<ObjectFileOutput>$(OutDir)%(Filename).fxo</ObjectFileOutput>
</FxCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;NOMINMAX;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)Simulations;$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>
</PrecompiledHeaderOutputFile>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<EntryPointName>
</EntryPointName>
</FxCompile>
<FxCompile>
<ShaderType>Effect</ShaderType>
</FxCompile>
<FxCompile>
<ShaderModel>5.0</ShaderModel>
</FxCompile>
<FxCompile>
<ObjectFileOutput>$(OutDir)%(Filename).fxo</ObjectFileOutput>
</FxCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include</AdditionalIncludeDirectories>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<EntryPointName />
</FxCompile>
<FxCompile>
<ShaderType>Effect</ShaderType>
</FxCompile>
<FxCompile>
<ShaderModel>5.0</ShaderModel>
</FxCompile>
<FxCompile>
<ObjectFileOutput>$(OutDir)%(Filename).fxo</ObjectFileOutput>
</FxCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>
</PrecompiledHeaderOutputFile>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>false</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<FxCompile>
<EntryPointName>
</EntryPointName>
</FxCompile>
<FxCompile>
<ShaderType>Effect</ShaderType>
</FxCompile>
<FxCompile>
<ShaderModel>5.0</ShaderModel>
</FxCompile>
<FxCompile>
<ObjectFileOutput>$(OutDir)%(Filename).fxo</ObjectFileOutput>
</FxCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\Simulations\main.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AntTweakBar\src\AntTweakBar_2022.vcxproj">
<Project>{b99e1fa1-c30a-45f2-9d57-9e9c21b2df42}</Project>
</ProjectReference>
<ProjectReference Include="..\DirectXTK\DirectXTK_Desktop_2022.vcxproj">
<Project>{e0b52ae7-e160-4d32-bf3f-910b785e5a8e}</Project>
</ProjectReference>
<ProjectReference Include="..\DXUT11\Core\DXUT_DirectXTK_2022.vcxproj">
<Project>{85344b7f-5aa0-4e12-a065-d1333d11f6ca}</Project>
</ProjectReference>
<ProjectReference Include="..\DXUT11\Optional\DXUTOpt_DirectXTK_2022.vcxproj">
<Project>{61b333c2-c4f7-4cc1-a9bf-83f6d95588eb}</Project>
</ProjectReference>
<ProjectReference Include="..\Effects11\Effects11_2022.vcxproj">
<Project>{df460eab-570d-4b50-9089-2e2fc801bf38}</Project>
</ProjectReference>
<ProjectReference Include="..\Simulations\Demo_2022.vcxproj">
<Project>{3cabed2c-12f1-4408-aaae-e2185a426f35}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\SimulatorTester\SimulatorTester.vcxproj" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,191 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{13342092-1CC5-4994-A03C-3963197E8016}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>SimulationsTester</RootNamespace>
<ProjectName>SimulationsTester</ProjectName>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(IncludePath)</IncludePath>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(IncludePath)</IncludePath>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;$(SolutionDir)Simulations;$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NOMINMAX;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;$(SolutionDir)Simulations;$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NOMINMAX;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;$(SolutionDir)Simulations;$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(VCInstallDir)UnitTest\include;$(SolutionDir)Simulations;$(SolutionDir)DirectXTK/Inc;$(SolutionDir)DXUT11/Core;$(SolutionDir)DXUT11/Optional;$(SolutionDir)Effects11/inc;$(SolutionDir)AntTweakBar/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>D3DCompiler.lib;Mf.lib;mfuuid.lib;Mfplat.lib;Mfreadwrite.lib;comctl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="PublicMassSpringSystemTests.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AntTweakBar\src\AntTweakBar_2022.vcxproj">
<Project>{b99e1fa1-c30a-45f2-9d57-9e9c21b2df42}</Project>
</ProjectReference>
<ProjectReference Include="..\DirectXTK\DirectXTK_Desktop_2022.vcxproj">
<Project>{e0b52ae7-e160-4d32-bf3f-910b785e5a8e}</Project>
</ProjectReference>
<ProjectReference Include="..\DXUT11\Core\DXUT_DirectXTK_2022.vcxproj">
<Project>{85344b7f-5aa0-4e12-a065-d1333d11f6ca}</Project>
</ProjectReference>
<ProjectReference Include="..\DXUT11\Optional\DXUTOpt_DirectXTK_2022.vcxproj">
<Project>{61b333c2-c4f7-4cc1-a9bf-83f6d95588eb}</Project>
</ProjectReference>
<ProjectReference Include="..\Effects11\Effects11_2022.vcxproj">
<Project>{df460eab-570d-4b50-9089-2e2fc801bf38}</Project>
</ProjectReference>
<ProjectReference Include="..\Simulations\Demo_2022.vcxproj">
<Project>{3cabed2c-12f1-4408-aaae-e2185a426f35}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

98
Template_2022.sln Normal file
View File

@@ -0,0 +1,98 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34031.279
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimulationsRunner_2022", "SimulationsRunner\SimulationsRunner_2022.vcxproj", "{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Simulations", "Simulations\Demo_2022.vcxproj", "{3CABED2C-12F1-4408-AAAE-E2185A426F35}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "Effects11\Effects11_2022.vcxproj", "{DF460EAB-570D-4B50-9089-2E2FC801BF38}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DXUT", "DXUT11\Core\DXUT_DirectXTK_2022.vcxproj", "{85344B7F-5AA0-4E12-A065-D1333D11F6CA}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DXUTOpt", "DXUT11\Optional\DXUTOpt_DirectXTK_2022.vcxproj", "{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AntTweakBar", "AntTweakBar\src\AntTweakBar_2022.vcxproj", "{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK_Desktop_2022", "DirectXTK\DirectXTK_Desktop_2022.vcxproj", "{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimulationsTester", "SimulatorTester\SimulatorTester_2022.vcxproj", "{13342092-1CC5-4994-A03C-3963197E8016}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}.Debug|Win32.ActiveCfg = Debug|Win32
{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}.Debug|Win32.Build.0 = Debug|Win32
{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}.Debug|x64.ActiveCfg = Debug|x64
{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}.Debug|x64.Build.0 = Debug|x64
{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}.Release|Win32.ActiveCfg = Release|Win32
{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}.Release|Win32.Build.0 = Release|Win32
{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}.Release|x64.ActiveCfg = Release|x64
{0B7BAA5B-0753-4015-A8F3-8FA540FC8660}.Release|x64.Build.0 = Release|x64
{3CABED2C-12F1-4408-AAAE-E2185A426F35}.Debug|Win32.ActiveCfg = Debug|Win32
{3CABED2C-12F1-4408-AAAE-E2185A426F35}.Debug|Win32.Build.0 = Debug|Win32
{3CABED2C-12F1-4408-AAAE-E2185A426F35}.Debug|x64.ActiveCfg = Debug|x64
{3CABED2C-12F1-4408-AAAE-E2185A426F35}.Debug|x64.Build.0 = Debug|x64
{3CABED2C-12F1-4408-AAAE-E2185A426F35}.Release|Win32.ActiveCfg = Release|Win32
{3CABED2C-12F1-4408-AAAE-E2185A426F35}.Release|Win32.Build.0 = Release|Win32
{3CABED2C-12F1-4408-AAAE-E2185A426F35}.Release|x64.ActiveCfg = Release|x64
{3CABED2C-12F1-4408-AAAE-E2185A426F35}.Release|x64.Build.0 = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.ActiveCfg = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.Build.0 = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.ActiveCfg = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.Build.0 = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.ActiveCfg = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.Build.0 = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.ActiveCfg = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.Build.0 = Release|x64
{85344B7F-5AA0-4E12-A065-D1333D11F6CA}.Debug|Win32.ActiveCfg = Debug|Win32
{85344B7F-5AA0-4E12-A065-D1333D11F6CA}.Debug|Win32.Build.0 = Debug|Win32
{85344B7F-5AA0-4E12-A065-D1333D11F6CA}.Debug|x64.ActiveCfg = Debug|x64
{85344B7F-5AA0-4E12-A065-D1333D11F6CA}.Debug|x64.Build.0 = Debug|x64
{85344B7F-5AA0-4E12-A065-D1333D11F6CA}.Release|Win32.ActiveCfg = Release|Win32
{85344B7F-5AA0-4E12-A065-D1333D11F6CA}.Release|Win32.Build.0 = Release|Win32
{85344B7F-5AA0-4E12-A065-D1333D11F6CA}.Release|x64.ActiveCfg = Release|x64
{85344B7F-5AA0-4E12-A065-D1333D11F6CA}.Release|x64.Build.0 = Release|x64
{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}.Debug|Win32.ActiveCfg = Debug|Win32
{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}.Debug|Win32.Build.0 = Debug|Win32
{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}.Debug|x64.ActiveCfg = Debug|x64
{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}.Debug|x64.Build.0 = Debug|x64
{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}.Release|Win32.ActiveCfg = Release|Win32
{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}.Release|Win32.Build.0 = Release|Win32
{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}.Release|x64.ActiveCfg = Release|x64
{61B333C2-C4F7-4CC1-A9BF-83F6D95588EB}.Release|x64.Build.0 = Release|x64
{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}.Debug|Win32.ActiveCfg = Debug|Win32
{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}.Debug|Win32.Build.0 = Debug|Win32
{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}.Debug|x64.ActiveCfg = Debug|x64
{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}.Debug|x64.Build.0 = Debug|x64
{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}.Release|Win32.ActiveCfg = Release|Win32
{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}.Release|Win32.Build.0 = Release|Win32
{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}.Release|x64.ActiveCfg = Release|x64
{B99E1FA1-C30A-45F2-9D57-9E9C21B2DF42}.Release|x64.Build.0 = Release|x64
{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}.Debug|Win32.ActiveCfg = Debug|Win32
{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}.Debug|Win32.Build.0 = Debug|Win32
{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}.Debug|x64.ActiveCfg = Debug|x64
{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}.Debug|x64.Build.0 = Debug|x64
{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}.Release|Win32.ActiveCfg = Release|Win32
{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}.Release|Win32.Build.0 = Release|Win32
{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}.Release|x64.ActiveCfg = Release|x64
{E0B52AE7-E160-4D32-BF3F-910B785E5A8E}.Release|x64.Build.0 = Release|x64
{13342092-1CC5-4994-A03C-3963197E8016}.Debug|Win32.ActiveCfg = Debug|Win32
{13342092-1CC5-4994-A03C-3963197E8016}.Debug|Win32.Build.0 = Debug|Win32
{13342092-1CC5-4994-A03C-3963197E8016}.Debug|x64.ActiveCfg = Debug|x64
{13342092-1CC5-4994-A03C-3963197E8016}.Debug|x64.Build.0 = Debug|x64
{13342092-1CC5-4994-A03C-3963197E8016}.Release|Win32.ActiveCfg = Release|Win32
{13342092-1CC5-4994-A03C-3963197E8016}.Release|Win32.Build.0 = Release|Win32
{13342092-1CC5-4994-A03C-3963197E8016}.Release|x64.ActiveCfg = Release|x64
{13342092-1CC5-4994-A03C-3963197E8016}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -1,12 +1,18 @@
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
--- Visual Studio 2013/15/17 Template Project for C++/DirectX11 Application --- --- Visual Studio 2013/15/17/22 Template Project for C++/DirectX11 Application
--- Marc Treib, Florian Ferstl, Sept 2013 ------------------------------------- --- Marc Treib, Florian Ferstl, Sept 2013 -------------------------------------
--- Updated: Florian Ferstl, Sept 2014 ---------------------------------------- --- Updated: Florian Ferstl, Sept 2014 ----------------------------------------
--- Updated: Mina Saad Aziz, May 2016 ----------------------------------------- --- Updated: Mina Saad Aziz, May 2016 -----------------------------------------
--- Updated: Mengyu Chu, Nov 2017 ------------------------------------------ --- Updated: Mengyu Chu, Nov 2017 ------------------------------------------
--- Updated: You Xie, Nov 2019 --------------------------------------------- --- Updated: You Xie, Nov 2019 ---------------------------------------------
--- Updated: Rene Winchenbach, Felix Koehler, Oct 2023 ---------------------
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
!Important:
We recommend using the `Template_2022.sln` solution file together with Visual
Studio 2022 Community Edition.
This solution contains the following components: This solution contains the following components:
- AntTweakBar 1.16 - AntTweakBar 1.16