linux fixes, bugfixes, comments
This commit is contained in:
@ -1,66 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2015
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bounce", "bounce.vcxproj", "{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glad", "glad.vcxproj", "{DD62977C-C999-980D-7286-7E105E9C140F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glfw", "glfw.vcxproj", "{9563977C-819A-980D-2A87-7E10169D140F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imgui", "imgui.vcxproj", "{0098A80F-6CAC-D0C0-352E-7420A101CDF1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testbed", "testbed.vcxproj", "{90781ED9-FC57-9D74-0570-284B71CE03D6}"
|
||||
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
|
||||
{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.debug|Win32.ActiveCfg = debug|Win32
|
||||
{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.debug|Win32.Build.0 = debug|Win32
|
||||
{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.debug|x64.ActiveCfg = debug|x64
|
||||
{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.debug|x64.Build.0 = debug|x64
|
||||
{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.release|Win32.ActiveCfg = release|Win32
|
||||
{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.release|Win32.Build.0 = release|Win32
|
||||
{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.release|x64.ActiveCfg = release|x64
|
||||
{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}.release|x64.Build.0 = release|x64
|
||||
{DD62977C-C999-980D-7286-7E105E9C140F}.debug|Win32.ActiveCfg = debug|Win32
|
||||
{DD62977C-C999-980D-7286-7E105E9C140F}.debug|Win32.Build.0 = debug|Win32
|
||||
{DD62977C-C999-980D-7286-7E105E9C140F}.debug|x64.ActiveCfg = debug|x64
|
||||
{DD62977C-C999-980D-7286-7E105E9C140F}.debug|x64.Build.0 = debug|x64
|
||||
{DD62977C-C999-980D-7286-7E105E9C140F}.release|Win32.ActiveCfg = release|Win32
|
||||
{DD62977C-C999-980D-7286-7E105E9C140F}.release|Win32.Build.0 = release|Win32
|
||||
{DD62977C-C999-980D-7286-7E105E9C140F}.release|x64.ActiveCfg = release|x64
|
||||
{DD62977C-C999-980D-7286-7E105E9C140F}.release|x64.Build.0 = release|x64
|
||||
{9563977C-819A-980D-2A87-7E10169D140F}.debug|Win32.ActiveCfg = debug|Win32
|
||||
{9563977C-819A-980D-2A87-7E10169D140F}.debug|Win32.Build.0 = debug|Win32
|
||||
{9563977C-819A-980D-2A87-7E10169D140F}.debug|x64.ActiveCfg = debug|x64
|
||||
{9563977C-819A-980D-2A87-7E10169D140F}.debug|x64.Build.0 = debug|x64
|
||||
{9563977C-819A-980D-2A87-7E10169D140F}.release|Win32.ActiveCfg = release|Win32
|
||||
{9563977C-819A-980D-2A87-7E10169D140F}.release|Win32.Build.0 = release|Win32
|
||||
{9563977C-819A-980D-2A87-7E10169D140F}.release|x64.ActiveCfg = release|x64
|
||||
{9563977C-819A-980D-2A87-7E10169D140F}.release|x64.Build.0 = release|x64
|
||||
{0098A80F-6CAC-D0C0-352E-7420A101CDF1}.debug|Win32.ActiveCfg = debug|Win32
|
||||
{0098A80F-6CAC-D0C0-352E-7420A101CDF1}.debug|Win32.Build.0 = debug|Win32
|
||||
{0098A80F-6CAC-D0C0-352E-7420A101CDF1}.debug|x64.ActiveCfg = debug|x64
|
||||
{0098A80F-6CAC-D0C0-352E-7420A101CDF1}.debug|x64.Build.0 = debug|x64
|
||||
{0098A80F-6CAC-D0C0-352E-7420A101CDF1}.release|Win32.ActiveCfg = release|Win32
|
||||
{0098A80F-6CAC-D0C0-352E-7420A101CDF1}.release|Win32.Build.0 = release|Win32
|
||||
{0098A80F-6CAC-D0C0-352E-7420A101CDF1}.release|x64.ActiveCfg = release|x64
|
||||
{0098A80F-6CAC-D0C0-352E-7420A101CDF1}.release|x64.Build.0 = release|x64
|
||||
{90781ED9-FC57-9D74-0570-284B71CE03D6}.debug|Win32.ActiveCfg = debug|Win32
|
||||
{90781ED9-FC57-9D74-0570-284B71CE03D6}.debug|Win32.Build.0 = debug|Win32
|
||||
{90781ED9-FC57-9D74-0570-284B71CE03D6}.debug|x64.ActiveCfg = debug|x64
|
||||
{90781ED9-FC57-9D74-0570-284B71CE03D6}.debug|x64.Build.0 = debug|x64
|
||||
{90781ED9-FC57-9D74-0570-284B71CE03D6}.release|Win32.ActiveCfg = release|Win32
|
||||
{90781ED9-FC57-9D74-0570-284B71CE03D6}.release|Win32.Build.0 = release|Win32
|
||||
{90781ED9-FC57-9D74-0570-284B71CE03D6}.release|x64.ActiveCfg = release|x64
|
||||
{90781ED9-FC57-9D74-0570-284B71CE03D6}.release|x64.Build.0 = release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
@ -1,291 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.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>{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}</ProjectGuid>
|
||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>bounce</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<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\x32\debug\bounce\</OutDir>
|
||||
<IntDir>obj\x32\debug\bounce\</IntDir>
|
||||
<TargetName>bounce</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<OutDir>bin\x64\debug\bounce\</OutDir>
|
||||
<IntDir>obj\x64\debug\bounce\</IntDir>
|
||||
<TargetName>bounce</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<OutDir>bin\x32\release\bounce\</OutDir>
|
||||
<IntDir>obj\x32\release\bounce\</IntDir>
|
||||
<TargetName>bounce</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<OutDir>bin\x64\release\bounce\</OutDir>
|
||||
<IntDir>obj\x64\release\bounce\</IntDir>
|
||||
<TargetName>bounce</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\include\bounce\bounce.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\broad_phase.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\distance.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\gjk\gjk.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\gjk\gjk_cache.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\gjk\gjk_proxy.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\sat\sat.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\sat\sat_edge_and_hull.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\sat\sat_vertex_and_hull.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\aabb3.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\box_hull.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\capsule.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\hull.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\mesh.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\sphere.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\triangle_hull.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\trees\dynamic_tree.h" />
|
||||
<ClInclude Include="..\..\include\bounce\collision\trees\static_tree.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\draw.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\geometry.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\math\mat.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\math\mat22.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\math\mat33.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\math\math.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\math\quat.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\math\transform.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\math\vec2.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\math\vec3.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\memory\block_pool.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\memory\stack_allocator.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\settings.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\template\array.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\template\list.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\template\object_array.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\template\stack.h" />
|
||||
<ClInclude Include="..\..\include\bounce\common\time.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\body.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contact_manager.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\collide\clip.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\collide\collide.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\contact.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\contact_cluster.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\contact_solver.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\convex_contact.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\manifold.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\mesh_contact.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\island.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joint_manager.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\cone_joint.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\joint.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\joint_solver.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\mouse_joint.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\revolute_joint.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\sphere_joint.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\spring_joint.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\capsule_shape.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\hull_shape.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\mesh_shape.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\shape.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\sphere_shape.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\time_step.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\world.h" />
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\world_listeners.h" />
|
||||
<ClInclude Include="..\..\include\bounce\quickhull\qh_hull.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\bounce\collision\broad_phase.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\distance.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\gjk\gjk.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\gjk\gjk_cache.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\gjk\gjk_feature_pair.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\sat\sat.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\sat\sat_edge_and_hull.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\sat\sat_vertex_and_hull.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\shapes\hull.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\trees\dynamic_tree.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\collision\trees\static_tree.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\common\math\mat.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\common\memory\block_pool.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\common\memory\stack_allocator.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\common\settings.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\common\time.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\body.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contact_manager.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\clip.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_capsule_and_hull.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_capsules.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_hulls.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_hulls_cache.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_sphere_and_capsule.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_sphere_and_hull.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_spheres.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\contact.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\contact_cluster.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\contact_solver.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\convex_contact.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\manifold.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\mesh_contact.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\draw_world.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\island.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joint_manager.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\cone_joint.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\joint.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\joint_solver.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\mouse_joint.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\revolute_joint.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\sphere_joint.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\spring_joint.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\capsule_shape.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\hull_shape.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\mesh_shape.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\shape.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\sphere_shape.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\world.cpp" />
|
||||
<ClCompile Include="..\..\src\bounce\quickhull\qh_hull.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\include\bounce\collision\shapes\hull.inl" />
|
||||
<None Include="..\..\include\bounce\quickhull\qh_hull.inl" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
@ -1,458 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="include">
|
||||
<UniqueIdentifier>{89AF369E-F58E-B539-FEA6-40106A051C9B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce">
|
||||
<UniqueIdentifier>{D419DC43-C0E7-CF49-A97B-407095E8ABAE}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\collision">
|
||||
<UniqueIdentifier>{0FC81CFD-FBEC-6B7D-2438-510D10BC6A9B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\collision\gjk">
|
||||
<UniqueIdentifier>{9AC16B4F-867C-5BFB-2F34-D4451BCEA58B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\collision\sat">
|
||||
<UniqueIdentifier>{86F36B4F-72AE-5BFB-1B66-D4450700A68B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\collision\shapes">
|
||||
<UniqueIdentifier>{02B88A21-6E9B-9961-779E-C79DE30060B2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\collision\trees">
|
||||
<UniqueIdentifier>{A12552DA-8D4B-1C41-7691-A10C6256410D}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\common">
|
||||
<UniqueIdentifier>{AC64A0F9-18D1-5BF4-E1C4-F3514DF07D5C}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\common\math">
|
||||
<UniqueIdentifier>{252146D6-1131-F2A6-7AEA-56C56619E13F}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\common\memory">
|
||||
<UniqueIdentifier>{B4B69780-A071-872C-4929-007735C3D1BC}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\common\template">
|
||||
<UniqueIdentifier>{577D3B7B-43A3-05E2-2CE9-8AAD18AE2AAE}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\dynamics">
|
||||
<UniqueIdentifier>{DB55CFD2-478D-176A-5097-7B8DBC4D3E63}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\dynamics\contacts">
|
||||
<UniqueIdentifier>{09FBB88C-F54B-A4CE-1EB0-92900A603738}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\dynamics\contacts\collide">
|
||||
<UniqueIdentifier>{14818B0F-00FE-7E52-297B-7F6615571BE6}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\dynamics\joints">
|
||||
<UniqueIdentifier>{A1E236CD-8D08-0134-764E-86FF62132600}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\dynamics\shapes">
|
||||
<UniqueIdentifier>{4E48B2E1-3A6E-7C48-23B4-01140F79A114}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="include\bounce\quickhull">
|
||||
<UniqueIdentifier>{F52AA7E9-E14F-F669-0A9B-DBF9F61EF587}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src">
|
||||
<UniqueIdentifier>{2DAB880B-99B4-887C-2230-9F7C8E38947C}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce">
|
||||
<UniqueIdentifier>{F814F251-E4CC-339F-4DD4-0CFB39ABCE8F}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\collision">
|
||||
<UniqueIdentifier>{33003210-1F8F-BBD9-C8AD-CFD4B41BCC7F}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\collision\gjk">
|
||||
<UniqueIdentifier>{BE6BE8DC-AA90-375D-D3DB-1CEDBF5F367B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\collision\sat">
|
||||
<UniqueIdentifier>{AA9DE8DC-96C2-375D-BF0D-1DEDAB91367B}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\collision\shapes">
|
||||
<UniqueIdentifier>{A6DFD2EA-12ED-00D1-9BD3-FCBB07E0CC87}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\collision\trees">
|
||||
<UniqueIdentifier>{C5E8A1B9-B1F8-4D8A-1AB2-B2A806E13C23}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\common">
|
||||
<UniqueIdentifier>{50EF0F83-BC05-0E19-057D-993A71D2DEA0}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\common\math">
|
||||
<UniqueIdentifier>{49F28903-35EC-B255-1E59-49660AF218C2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\common\memory">
|
||||
<UniqueIdentifier>{D860140E-C485-638E-EDD0-481ED95462AC}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\dynamics">
|
||||
<UniqueIdentifier>{7F194C76-EB7A-2984-74E8-6F36E0486043}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\dynamics\contacts">
|
||||
<UniqueIdentifier>{2D17067F-19D2-F52A-C289-6E75AE2340BB}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\dynamics\contacts\collide">
|
||||
<UniqueIdentifier>{3881B4FC-2468-76F4-CDB8-DC11B97EEF5A}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\dynamics\joints">
|
||||
<UniqueIdentifier>{C5A586AC-B1B5-327D-1A6F-979B069E2116}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\dynamics\shapes">
|
||||
<UniqueIdentifier>{720B02C1-5E1B-AE91-C7D4-12B0B3039D2A}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\bounce\quickhull">
|
||||
<UniqueIdentifier>{1963BCFC-05F2-45C6-AE10-5AC19A7E566C}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\include\bounce\bounce.h">
|
||||
<Filter>include\bounce</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\broad_phase.h">
|
||||
<Filter>include\bounce\collision</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\distance.h">
|
||||
<Filter>include\bounce\collision</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\gjk\gjk.h">
|
||||
<Filter>include\bounce\collision\gjk</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\gjk\gjk_cache.h">
|
||||
<Filter>include\bounce\collision\gjk</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\gjk\gjk_proxy.h">
|
||||
<Filter>include\bounce\collision\gjk</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\sat\sat.h">
|
||||
<Filter>include\bounce\collision\sat</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\sat\sat_edge_and_hull.h">
|
||||
<Filter>include\bounce\collision\sat</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\sat\sat_vertex_and_hull.h">
|
||||
<Filter>include\bounce\collision\sat</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\aabb3.h">
|
||||
<Filter>include\bounce\collision\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\box_hull.h">
|
||||
<Filter>include\bounce\collision\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\capsule.h">
|
||||
<Filter>include\bounce\collision\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\hull.h">
|
||||
<Filter>include\bounce\collision\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\mesh.h">
|
||||
<Filter>include\bounce\collision\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\sphere.h">
|
||||
<Filter>include\bounce\collision\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\shapes\triangle_hull.h">
|
||||
<Filter>include\bounce\collision\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\trees\dynamic_tree.h">
|
||||
<Filter>include\bounce\collision\trees</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\collision\trees\static_tree.h">
|
||||
<Filter>include\bounce\collision\trees</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\draw.h">
|
||||
<Filter>include\bounce\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\geometry.h">
|
||||
<Filter>include\bounce\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\math\mat.h">
|
||||
<Filter>include\bounce\common\math</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\math\mat22.h">
|
||||
<Filter>include\bounce\common\math</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\math\mat33.h">
|
||||
<Filter>include\bounce\common\math</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\math\math.h">
|
||||
<Filter>include\bounce\common\math</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\math\quat.h">
|
||||
<Filter>include\bounce\common\math</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\math\transform.h">
|
||||
<Filter>include\bounce\common\math</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\math\vec2.h">
|
||||
<Filter>include\bounce\common\math</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\math\vec3.h">
|
||||
<Filter>include\bounce\common\math</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\memory\block_pool.h">
|
||||
<Filter>include\bounce\common\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\memory\stack_allocator.h">
|
||||
<Filter>include\bounce\common\memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\settings.h">
|
||||
<Filter>include\bounce\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\template\array.h">
|
||||
<Filter>include\bounce\common\template</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\template\list.h">
|
||||
<Filter>include\bounce\common\template</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\template\object_array.h">
|
||||
<Filter>include\bounce\common\template</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\template\stack.h">
|
||||
<Filter>include\bounce\common\template</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\common\time.h">
|
||||
<Filter>include\bounce\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\body.h">
|
||||
<Filter>include\bounce\dynamics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contact_manager.h">
|
||||
<Filter>include\bounce\dynamics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\collide\clip.h">
|
||||
<Filter>include\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\collide\collide.h">
|
||||
<Filter>include\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\contact.h">
|
||||
<Filter>include\bounce\dynamics\contacts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\contact_cluster.h">
|
||||
<Filter>include\bounce\dynamics\contacts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\contact_solver.h">
|
||||
<Filter>include\bounce\dynamics\contacts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\convex_contact.h">
|
||||
<Filter>include\bounce\dynamics\contacts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\manifold.h">
|
||||
<Filter>include\bounce\dynamics\contacts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\contacts\mesh_contact.h">
|
||||
<Filter>include\bounce\dynamics\contacts</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\island.h">
|
||||
<Filter>include\bounce\dynamics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joint_manager.h">
|
||||
<Filter>include\bounce\dynamics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\cone_joint.h">
|
||||
<Filter>include\bounce\dynamics\joints</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\joint.h">
|
||||
<Filter>include\bounce\dynamics\joints</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\joint_solver.h">
|
||||
<Filter>include\bounce\dynamics\joints</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\mouse_joint.h">
|
||||
<Filter>include\bounce\dynamics\joints</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\revolute_joint.h">
|
||||
<Filter>include\bounce\dynamics\joints</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\sphere_joint.h">
|
||||
<Filter>include\bounce\dynamics\joints</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\joints\spring_joint.h">
|
||||
<Filter>include\bounce\dynamics\joints</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\capsule_shape.h">
|
||||
<Filter>include\bounce\dynamics\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\hull_shape.h">
|
||||
<Filter>include\bounce\dynamics\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\mesh_shape.h">
|
||||
<Filter>include\bounce\dynamics\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\shape.h">
|
||||
<Filter>include\bounce\dynamics\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\shapes\sphere_shape.h">
|
||||
<Filter>include\bounce\dynamics\shapes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\time_step.h">
|
||||
<Filter>include\bounce\dynamics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\world.h">
|
||||
<Filter>include\bounce\dynamics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\dynamics\world_listeners.h">
|
||||
<Filter>include\bounce\dynamics</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\bounce\quickhull\qh_hull.h">
|
||||
<Filter>include\bounce\quickhull</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\bounce\collision\broad_phase.cpp">
|
||||
<Filter>src\bounce\collision</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\distance.cpp">
|
||||
<Filter>src\bounce\collision</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\gjk\gjk.cpp">
|
||||
<Filter>src\bounce\collision\gjk</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\gjk\gjk_cache.cpp">
|
||||
<Filter>src\bounce\collision\gjk</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\gjk\gjk_feature_pair.cpp">
|
||||
<Filter>src\bounce\collision\gjk</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\sat\sat.cpp">
|
||||
<Filter>src\bounce\collision\sat</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\sat\sat_edge_and_hull.cpp">
|
||||
<Filter>src\bounce\collision\sat</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\sat\sat_vertex_and_hull.cpp">
|
||||
<Filter>src\bounce\collision\sat</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\shapes\hull.cpp">
|
||||
<Filter>src\bounce\collision\shapes</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\trees\dynamic_tree.cpp">
|
||||
<Filter>src\bounce\collision\trees</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\collision\trees\static_tree.cpp">
|
||||
<Filter>src\bounce\collision\trees</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\common\math\mat.cpp">
|
||||
<Filter>src\bounce\common\math</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\common\memory\block_pool.cpp">
|
||||
<Filter>src\bounce\common\memory</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\common\memory\stack_allocator.cpp">
|
||||
<Filter>src\bounce\common\memory</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\common\settings.cpp">
|
||||
<Filter>src\bounce\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\common\time.cpp">
|
||||
<Filter>src\bounce\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\body.cpp">
|
||||
<Filter>src\bounce\dynamics</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contact_manager.cpp">
|
||||
<Filter>src\bounce\dynamics</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\clip.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_capsule_and_hull.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_capsules.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_hulls.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_hulls_cache.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_sphere_and_capsule.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_sphere_and_hull.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\collide\collide_spheres.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts\collide</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\contact.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\contact_cluster.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\contact_solver.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\convex_contact.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\manifold.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\contacts\mesh_contact.cpp">
|
||||
<Filter>src\bounce\dynamics\contacts</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\draw_world.cpp">
|
||||
<Filter>src\bounce\dynamics</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\island.cpp">
|
||||
<Filter>src\bounce\dynamics</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joint_manager.cpp">
|
||||
<Filter>src\bounce\dynamics</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\cone_joint.cpp">
|
||||
<Filter>src\bounce\dynamics\joints</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\joint.cpp">
|
||||
<Filter>src\bounce\dynamics\joints</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\joint_solver.cpp">
|
||||
<Filter>src\bounce\dynamics\joints</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\mouse_joint.cpp">
|
||||
<Filter>src\bounce\dynamics\joints</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\revolute_joint.cpp">
|
||||
<Filter>src\bounce\dynamics\joints</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\sphere_joint.cpp">
|
||||
<Filter>src\bounce\dynamics\joints</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\joints\spring_joint.cpp">
|
||||
<Filter>src\bounce\dynamics\joints</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\capsule_shape.cpp">
|
||||
<Filter>src\bounce\dynamics\shapes</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\hull_shape.cpp">
|
||||
<Filter>src\bounce\dynamics\shapes</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\mesh_shape.cpp">
|
||||
<Filter>src\bounce\dynamics\shapes</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\shape.cpp">
|
||||
<Filter>src\bounce\dynamics\shapes</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\shapes\sphere_shape.cpp">
|
||||
<Filter>src\bounce\dynamics\shapes</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\dynamics\world.cpp">
|
||||
<Filter>src\bounce\dynamics</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\bounce\quickhull\qh_hull.cpp">
|
||||
<Filter>src\bounce\quickhull</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\include\bounce\collision\shapes\hull.inl">
|
||||
<Filter>include\bounce\collision\shapes</Filter>
|
||||
</None>
|
||||
<None Include="..\..\include\bounce\quickhull\qh_hull.inl">
|
||||
<Filter>include\bounce\quickhull</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,180 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.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>{DD62977C-C999-980D-7286-7E105E9C140F}</ProjectGuid>
|
||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>glad</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<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\x32\debug\glad\</OutDir>
|
||||
<IntDir>obj\x32\debug\glad\</IntDir>
|
||||
<TargetName>glad</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<OutDir>bin\x64\debug\glad\</OutDir>
|
||||
<IntDir>obj\x64\debug\glad\</IntDir>
|
||||
<TargetName>glad</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<OutDir>bin\x32\release\glad\</OutDir>
|
||||
<IntDir>obj\x32\release\glad\</IntDir>
|
||||
<TargetName>glad</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<OutDir>bin\x64\release\glad\</OutDir>
|
||||
<IntDir>obj\x64\release\glad\</IntDir>
|
||||
<TargetName>glad</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\external\glad\glad.h" />
|
||||
<ClInclude Include="..\..\external\glad\khrplatform.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\external\glad\glad.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Headers">
|
||||
<UniqueIdentifier>{C196CD9C-2D76-4C38-368E-D70EA2ECB299}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Sources">
|
||||
<UniqueIdentifier>{89565304-F535-D29F-FE4D-5D766AAC3801}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\external\glad\glad.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\glad\khrplatform.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\external\glad\glad.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,198 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.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>{9563977C-819A-980D-2A87-7E10169D140F}</ProjectGuid>
|
||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>glfw</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<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\x32\debug\glfw\</OutDir>
|
||||
<IntDir>obj\x32\debug\glfw\</IntDir>
|
||||
<TargetName>glfw</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<OutDir>bin\x64\debug\glfw\</OutDir>
|
||||
<IntDir>obj\x64\debug\glfw\</IntDir>
|
||||
<TargetName>glfw</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<OutDir>bin\x32\release\glfw\</OutDir>
|
||||
<IntDir>obj\x32\release\glfw\</IntDir>
|
||||
<TargetName>glfw</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<OutDir>bin\x64\release\glfw\</OutDir>
|
||||
<IntDir>obj\x64\release\glfw\</IntDir>
|
||||
<TargetName>glfw</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_GLFW_USE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external\glfw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_GLFW_USE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external\glfw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_GLFW_USE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external\glfw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_GLFW_USE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external\glfw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\external\glfw\egl_context.h" />
|
||||
<ClInclude Include="..\..\external\glfw\glfw3.h" />
|
||||
<ClInclude Include="..\..\external\glfw\glfw3native.h" />
|
||||
<ClInclude Include="..\..\external\glfw\glfw_config.h" />
|
||||
<ClInclude Include="..\..\external\glfw\wgl_context.h" />
|
||||
<ClInclude Include="..\..\external\glfw\win32_joystick.h" />
|
||||
<ClInclude Include="..\..\external\glfw\win32_platform.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\external\glfw\context.c" />
|
||||
<ClCompile Include="..\..\external\glfw\egl_context.c" />
|
||||
<ClCompile Include="..\..\external\glfw\init.c" />
|
||||
<ClCompile Include="..\..\external\glfw\input.c" />
|
||||
<ClCompile Include="..\..\external\glfw\monitor.c" />
|
||||
<ClCompile Include="..\..\external\glfw\vulkan.c" />
|
||||
<ClCompile Include="..\..\external\glfw\wgl_context.c" />
|
||||
<ClCompile Include="..\..\external\glfw\win32_init.c" />
|
||||
<ClCompile Include="..\..\external\glfw\win32_joystick.c" />
|
||||
<ClCompile Include="..\..\external\glfw\win32_monitor.c" />
|
||||
<ClCompile Include="..\..\external\glfw\win32_time.c" />
|
||||
<ClCompile Include="..\..\external\glfw\win32_tls.c" />
|
||||
<ClCompile Include="..\..\external\glfw\win32_window.c" />
|
||||
<ClCompile Include="..\..\external\glfw\window.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
@ -1,78 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Headers">
|
||||
<UniqueIdentifier>{C196CD9C-2D76-4C38-368E-D70EA2ECB299}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Sources">
|
||||
<UniqueIdentifier>{89565304-F535-D29F-FE4D-5D766AAC3801}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\external\glfw\egl_context.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\glfw\glfw3.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\glfw\glfw3native.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\glfw\glfw_config.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\glfw\wgl_context.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\glfw\win32_joystick.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\glfw\win32_platform.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\external\glfw\context.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\egl_context.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\init.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\input.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\monitor.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\vulkan.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\wgl_context.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\win32_init.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\win32_joystick.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\win32_monitor.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\win32_time.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\win32_tls.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\win32_window.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\glfw\window.c">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,183 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.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>{0098A80F-6CAC-D0C0-352E-7420A101CDF1}</ProjectGuid>
|
||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>imgui</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<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\x32\debug\imgui\</OutDir>
|
||||
<IntDir>obj\x32\debug\imgui\</IntDir>
|
||||
<TargetName>imgui</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<OutDir>bin\x64\debug\imgui\</OutDir>
|
||||
<IntDir>obj\x64\debug\imgui\</IntDir>
|
||||
<TargetName>imgui</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<OutDir>bin\x32\release\imgui\</OutDir>
|
||||
<IntDir>obj\x32\release\imgui\</IntDir>
|
||||
<TargetName>imgui</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<OutDir>bin\x64\release\imgui\</OutDir>
|
||||
<IntDir>obj\x64\release\imgui\</IntDir>
|
||||
<TargetName>imgui</TargetName>
|
||||
<TargetExt>.lib</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\external\imgui\imconfig.h" />
|
||||
<ClInclude Include="..\..\external\imgui\imgui.h" />
|
||||
<ClInclude Include="..\..\external\imgui\imgui_impl_glfw_gl3.h" />
|
||||
<ClInclude Include="..\..\external\imgui\imgui_internal.h" />
|
||||
<ClInclude Include="..\..\external\imgui\stb_rect_pack.h" />
|
||||
<ClInclude Include="..\..\external\imgui\stb_textedit.h" />
|
||||
<ClInclude Include="..\..\external\imgui\stb_truetype.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\external\imgui\imgui.cpp" />
|
||||
<ClCompile Include="..\..\external\imgui\imgui_draw.cpp" />
|
||||
<ClCompile Include="..\..\external\imgui\imgui_impl_glfw_gl3.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
@ -1,45 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Headers">
|
||||
<UniqueIdentifier>{C196CD9C-2D76-4C38-368E-D70EA2ECB299}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Sources">
|
||||
<UniqueIdentifier>{89565304-F535-D29F-FE4D-5D766AAC3801}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\external\imgui\imconfig.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\imgui\imgui.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\imgui\imgui_impl_glfw_gl3.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\imgui\imgui_internal.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\imgui\stb_rect_pack.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\imgui\stb_textedit.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\external\imgui\stb_truetype.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\external\imgui\imgui.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\imgui\imgui_draw.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\external\imgui\imgui_impl_glfw_gl3.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,235 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.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>{90781ED9-FC57-9D74-0570-284B71CE03D6}</ProjectGuid>
|
||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>testbed</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<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>
|
||||
<OutDir>bin\x32\debug\testbed\</OutDir>
|
||||
<IntDir>obj\x32\debug\testbed\</IntDir>
|
||||
<TargetName>testbed</TargetName>
|
||||
<TargetExt>.exe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>bin\x64\debug\testbed\</OutDir>
|
||||
<IntDir>obj\x64\debug\testbed\</IntDir>
|
||||
<TargetName>testbed</TargetName>
|
||||
<TargetExt>.exe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>bin\x32\release\testbed\</OutDir>
|
||||
<IntDir>obj\x32\release\testbed\</IntDir>
|
||||
<TargetName>testbed</TargetName>
|
||||
<TargetExt>.exe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>bin\x64\release\testbed\</OutDir>
|
||||
<IntDir>obj\x64\release\testbed\</IntDir>
|
||||
<TargetName>testbed</TargetName>
|
||||
<TargetExt>.exe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>glu32.lib;opengl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>glu32.lib;opengl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>glu32.lib;opengl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\external;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<Optimization>Full</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>glu32.lib;opengl32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\include\testbed\framework\debug_draw.h" />
|
||||
<ClInclude Include="..\..\include\testbed\framework\mat44.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\body_types.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\box_stack.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\capsule_and_hull_collision.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\capsule_collision.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\capsule_distance.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\capsule_stack.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\character_test.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\cluster_test.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\collide_test.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\distance_test.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\hinge_chain.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\hinge_motor.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\hull_collision.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\jenga.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\mesh_contact_test.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\newton_cradle.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\pyramid.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\pyramids.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\quadrics.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\quickhull_test.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\ragdoll.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\ray_cast.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\sensor_test.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\shape_stack.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\sphere_stack.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\spring.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\test.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\thin.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\varying_friction.h" />
|
||||
<ClInclude Include="..\..\include\testbed\tests\varying_restitution.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\testbed\framework\debug_draw.cpp" />
|
||||
<ClCompile Include="..\..\src\testbed\framework\main.cpp" />
|
||||
<ClCompile Include="..\..\src\testbed\framework\test.cpp" />
|
||||
<ClCompile Include="..\..\src\testbed\framework\test_entries.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="bounce.vcxproj">
|
||||
<Project>{C13B93F4-ADDD-BDCA-9698-D11E82D9441B}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="glad.vcxproj">
|
||||
<Project>{DD62977C-C999-980D-7286-7E105E9C140F}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="glfw.vcxproj">
|
||||
<Project>{9563977C-819A-980D-2A87-7E10169D140F}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="imgui.vcxproj">
|
||||
<Project>{0098A80F-6CAC-D0C0-352E-7420A101CDF1}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
@ -1,123 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Headers">
|
||||
<UniqueIdentifier>{C196CD9C-2D76-4C38-368E-D70EA2ECB299}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Sources">
|
||||
<UniqueIdentifier>{89565304-F535-D29F-FE4D-5D766AAC3801}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\include\testbed\framework\debug_draw.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\framework\mat44.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\body_types.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\box_stack.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\capsule_and_hull_collision.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\capsule_collision.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\capsule_distance.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\capsule_stack.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\character_test.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\cluster_test.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\collide_test.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\distance_test.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\hinge_chain.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\hinge_motor.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\hull_collision.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\jenga.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\mesh_contact_test.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\newton_cradle.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\pyramid.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\pyramids.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\quadrics.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\quickhull_test.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\ragdoll.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\ray_cast.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\sensor_test.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\shape_stack.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\sphere_stack.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\spring.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\test.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\thin.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\varying_friction.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\testbed\tests\varying_restitution.h">
|
||||
<Filter>Headers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\testbed\framework\debug_draw.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\testbed\framework\main.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\testbed\framework\test.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\testbed\framework\test_entries.cpp">
|
||||
<Filter>Sources</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
33
building.txt
33
building.txt
@ -1,14 +1,35 @@
|
||||
Bounce uses premake for generating project files in a platform agnostic manner.
|
||||
|
||||
Grab premake from http://industriousone.com/premake.
|
||||
Put premake.exe into bounce/.
|
||||
Put premake into bounce/.
|
||||
|
||||
Visual Studio 2015
|
||||
|
||||
Open bounce/bat.
|
||||
Open premake_vs2015.bat. This will run a premake script and open bounce/build/vs2015/bounce.sln.
|
||||
Say { premake5 vs2015 } on a command line.
|
||||
Open build/vs2015/bounce.sln.
|
||||
Set testbed as the startup project.
|
||||
Press F5 or Ctrl-F5 to run.
|
||||
Press F5 to run.
|
||||
|
||||
premake files for building on Mac will be available later because I don't run Mac currently and
|
||||
therefore can't test the build system in this platform.
|
||||
Linux
|
||||
|
||||
On a clean Ubuntu 16.04 install these packages first:
|
||||
|
||||
mesa-common-dev
|
||||
libgl1-mesa-dev
|
||||
libglu1-mesa-dev
|
||||
|
||||
x32
|
||||
|
||||
Say { premake5 gmake } on a terminal.
|
||||
From build/gmake say { make config="debug_x32" }.
|
||||
Open testbed from /bin/x32/testbed/.
|
||||
|
||||
x64
|
||||
|
||||
Say { premake5 gmake } on a terminal.
|
||||
From build/gmake say { make config="debug_x64" }.
|
||||
Open testbed from /bin/x64/testbed/.
|
||||
|
||||
Mac
|
||||
|
||||
I don't run Mac currently and therefore can't test the build system in this platform.
|
||||
|
2
external/glad/glad.h
vendored
2
external/glad/glad.h
vendored
@ -636,7 +636,7 @@ GLAPI int gladLoadGL(void);
|
||||
GLAPI int gladLoadGLLoader(GLADloadproc);
|
||||
|
||||
#include <stddef.h>
|
||||
//#include <KHR\khrplatform.h>
|
||||
//#include <KHR/khrplatform.h>
|
||||
#include <glad/khrplatform.h>
|
||||
#ifndef GLEXT_64_TYPES_DEFINED
|
||||
/* This code block is duplicated in glxext.h, so must be protected */
|
||||
|
312
external/glad/glad_glx.c
vendored
Normal file
312
external/glad/glad_glx.c
vendored
Normal file
@ -0,0 +1,312 @@
|
||||
/*
|
||||
|
||||
GLX loader generated by glad 0.1.12a0 on Tue Dec 20 17:04:11 2016.
|
||||
|
||||
Language/Generator: C/C++
|
||||
Specification: glx
|
||||
APIs: glx=1.4
|
||||
Profile: -
|
||||
Extensions:
|
||||
|
||||
Loader: True
|
||||
Local files: False
|
||||
Omit khrplatform: False
|
||||
|
||||
Commandline:
|
||||
--api="glx=1.4" --generator="c" --spec="glx" --extensions=""
|
||||
Online:
|
||||
http://glad.dav1d.de/#language=c&specification=glx&loader=on&api=glx%3D1.4
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <glad/glad_glx.h>
|
||||
|
||||
static void* get_proc(const char *namez);
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
static HMODULE libGL;
|
||||
|
||||
typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
|
||||
PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
|
||||
|
||||
static
|
||||
int open_gl(void) {
|
||||
libGL = LoadLibraryW(L"opengl32.dll");
|
||||
if(libGL != NULL) {
|
||||
gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress(
|
||||
libGL, "wglGetProcAddress");
|
||||
return gladGetProcAddressPtr != NULL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static
|
||||
void close_gl(void) {
|
||||
if(libGL != NULL) {
|
||||
FreeLibrary(libGL);
|
||||
libGL = NULL;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#include <dlfcn.h>
|
||||
static void* libGL;
|
||||
|
||||
#ifndef __APPLE__
|
||||
typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*);
|
||||
PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
|
||||
#endif
|
||||
|
||||
static
|
||||
int open_gl(void) {
|
||||
#ifdef __APPLE__
|
||||
static const char *NAMES[] = {
|
||||
"../Frameworks/OpenGL.framework/OpenGL",
|
||||
"/Library/Frameworks/OpenGL.framework/OpenGL",
|
||||
"/System/Library/Frameworks/OpenGL.framework/OpenGL",
|
||||
"/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL"
|
||||
};
|
||||
#else
|
||||
static const char *NAMES[] = {"libGL.so.1", "libGL.so"};
|
||||
#endif
|
||||
|
||||
unsigned int index = 0;
|
||||
for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) {
|
||||
libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
|
||||
|
||||
if(libGL != NULL) {
|
||||
#ifdef __APPLE__
|
||||
return 1;
|
||||
#else
|
||||
gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
|
||||
"glXGetProcAddressARB");
|
||||
return gladGetProcAddressPtr != NULL;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static
|
||||
void close_gl() {
|
||||
if(libGL != NULL) {
|
||||
dlclose(libGL);
|
||||
libGL = NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static
|
||||
void* get_proc(const char *namez) {
|
||||
void* result = NULL;
|
||||
if(libGL == NULL) return NULL;
|
||||
|
||||
#ifndef __APPLE__
|
||||
if(gladGetProcAddressPtr != NULL) {
|
||||
result = gladGetProcAddressPtr(namez);
|
||||
}
|
||||
#endif
|
||||
if(result == NULL) {
|
||||
#ifdef _WIN32
|
||||
result = (void*)GetProcAddress(libGL, namez);
|
||||
#else
|
||||
result = dlsym(libGL, namez);
|
||||
#endif
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
int gladLoadGLX(Display *dpy, int screen) {
|
||||
int status = 0;
|
||||
|
||||
if(open_gl()) {
|
||||
status = gladLoadGLXLoader((GLADloadproc)get_proc, dpy, screen);
|
||||
close_gl();
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static Display *GLADGLXDisplay = 0;
|
||||
static int GLADGLXscreen = 0;
|
||||
|
||||
static int get_exts(void) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void free_exts(void) {
|
||||
return;
|
||||
}
|
||||
|
||||
static int has_ext(const char *ext) {
|
||||
const char *terminator;
|
||||
const char *loc;
|
||||
const char *extensions;
|
||||
|
||||
if(!GLAD_GLX_VERSION_1_1)
|
||||
return 0;
|
||||
|
||||
extensions = glXQueryExtensionsString(GLADGLXDisplay, GLADGLXscreen);
|
||||
|
||||
if(extensions == NULL || ext == NULL)
|
||||
return 0;
|
||||
|
||||
while(1) {
|
||||
loc = strstr(extensions, ext);
|
||||
if(loc == NULL)
|
||||
break;
|
||||
|
||||
terminator = loc + strlen(ext);
|
||||
if((loc == extensions || *(loc - 1) == ' ') &&
|
||||
(*terminator == ' ' || *terminator == '\0'))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
extensions = terminator;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int GLAD_GLX_VERSION_1_0;
|
||||
int GLAD_GLX_VERSION_1_1;
|
||||
int GLAD_GLX_VERSION_1_2;
|
||||
int GLAD_GLX_VERSION_1_3;
|
||||
int GLAD_GLX_VERSION_1_4;
|
||||
PFNGLXGETSELECTEDEVENTPROC glad_glXGetSelectedEvent;
|
||||
PFNGLXQUERYEXTENSIONPROC glad_glXQueryExtension;
|
||||
PFNGLXMAKECURRENTPROC glad_glXMakeCurrent;
|
||||
PFNGLXSELECTEVENTPROC glad_glXSelectEvent;
|
||||
PFNGLXCREATECONTEXTPROC glad_glXCreateContext;
|
||||
PFNGLXCREATEGLXPIXMAPPROC glad_glXCreateGLXPixmap;
|
||||
PFNGLXQUERYVERSIONPROC glad_glXQueryVersion;
|
||||
PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable;
|
||||
PFNGLXDESTROYPIXMAPPROC glad_glXDestroyPixmap;
|
||||
PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext;
|
||||
PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress;
|
||||
PFNGLXWAITGLPROC glad_glXWaitGL;
|
||||
PFNGLXISDIRECTPROC glad_glXIsDirect;
|
||||
PFNGLXDESTROYWINDOWPROC glad_glXDestroyWindow;
|
||||
PFNGLXCREATEWINDOWPROC glad_glXCreateWindow;
|
||||
PFNGLXCOPYCONTEXTPROC glad_glXCopyContext;
|
||||
PFNGLXCREATEPBUFFERPROC glad_glXCreatePbuffer;
|
||||
PFNGLXSWAPBUFFERSPROC glad_glXSwapBuffers;
|
||||
PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay;
|
||||
PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable;
|
||||
PFNGLXQUERYCONTEXTPROC glad_glXQueryContext;
|
||||
PFNGLXCHOOSEVISUALPROC glad_glXChooseVisual;
|
||||
PFNGLXQUERYSERVERSTRINGPROC glad_glXQueryServerString;
|
||||
PFNGLXDESTROYCONTEXTPROC glad_glXDestroyContext;
|
||||
PFNGLXDESTROYGLXPIXMAPPROC glad_glXDestroyGLXPixmap;
|
||||
PFNGLXGETFBCONFIGATTRIBPROC glad_glXGetFBConfigAttrib;
|
||||
PFNGLXUSEXFONTPROC glad_glXUseXFont;
|
||||
PFNGLXDESTROYPBUFFERPROC glad_glXDestroyPbuffer;
|
||||
PFNGLXCHOOSEFBCONFIGPROC glad_glXChooseFBConfig;
|
||||
PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext;
|
||||
PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent;
|
||||
PFNGLXGETCONFIGPROC glad_glXGetConfig;
|
||||
PFNGLXGETFBCONFIGSPROC glad_glXGetFBConfigs;
|
||||
PFNGLXCREATEPIXMAPPROC glad_glXCreatePixmap;
|
||||
PFNGLXWAITXPROC glad_glXWaitX;
|
||||
PFNGLXGETVISUALFROMFBCONFIGPROC glad_glXGetVisualFromFBConfig;
|
||||
PFNGLXQUERYDRAWABLEPROC glad_glXQueryDrawable;
|
||||
PFNGLXQUERYEXTENSIONSSTRINGPROC glad_glXQueryExtensionsString;
|
||||
PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString;
|
||||
static void load_GLX_VERSION_1_0(GLADloadproc load) {
|
||||
if(!GLAD_GLX_VERSION_1_0) return;
|
||||
glad_glXChooseVisual = (PFNGLXCHOOSEVISUALPROC)load("glXChooseVisual");
|
||||
glad_glXCreateContext = (PFNGLXCREATECONTEXTPROC)load("glXCreateContext");
|
||||
glad_glXDestroyContext = (PFNGLXDESTROYCONTEXTPROC)load("glXDestroyContext");
|
||||
glad_glXMakeCurrent = (PFNGLXMAKECURRENTPROC)load("glXMakeCurrent");
|
||||
glad_glXCopyContext = (PFNGLXCOPYCONTEXTPROC)load("glXCopyContext");
|
||||
glad_glXSwapBuffers = (PFNGLXSWAPBUFFERSPROC)load("glXSwapBuffers");
|
||||
glad_glXCreateGLXPixmap = (PFNGLXCREATEGLXPIXMAPPROC)load("glXCreateGLXPixmap");
|
||||
glad_glXDestroyGLXPixmap = (PFNGLXDESTROYGLXPIXMAPPROC)load("glXDestroyGLXPixmap");
|
||||
glad_glXQueryExtension = (PFNGLXQUERYEXTENSIONPROC)load("glXQueryExtension");
|
||||
glad_glXQueryVersion = (PFNGLXQUERYVERSIONPROC)load("glXQueryVersion");
|
||||
glad_glXIsDirect = (PFNGLXISDIRECTPROC)load("glXIsDirect");
|
||||
glad_glXGetConfig = (PFNGLXGETCONFIGPROC)load("glXGetConfig");
|
||||
glad_glXGetCurrentContext = (PFNGLXGETCURRENTCONTEXTPROC)load("glXGetCurrentContext");
|
||||
glad_glXGetCurrentDrawable = (PFNGLXGETCURRENTDRAWABLEPROC)load("glXGetCurrentDrawable");
|
||||
glad_glXWaitGL = (PFNGLXWAITGLPROC)load("glXWaitGL");
|
||||
glad_glXWaitX = (PFNGLXWAITXPROC)load("glXWaitX");
|
||||
glad_glXUseXFont = (PFNGLXUSEXFONTPROC)load("glXUseXFont");
|
||||
}
|
||||
static void load_GLX_VERSION_1_1(GLADloadproc load) {
|
||||
if(!GLAD_GLX_VERSION_1_1) return;
|
||||
glad_glXQueryExtensionsString = (PFNGLXQUERYEXTENSIONSSTRINGPROC)load("glXQueryExtensionsString");
|
||||
glad_glXQueryServerString = (PFNGLXQUERYSERVERSTRINGPROC)load("glXQueryServerString");
|
||||
glad_glXGetClientString = (PFNGLXGETCLIENTSTRINGPROC)load("glXGetClientString");
|
||||
}
|
||||
static void load_GLX_VERSION_1_2(GLADloadproc load) {
|
||||
if(!GLAD_GLX_VERSION_1_2) return;
|
||||
glad_glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)load("glXGetCurrentDisplay");
|
||||
}
|
||||
static void load_GLX_VERSION_1_3(GLADloadproc load) {
|
||||
if(!GLAD_GLX_VERSION_1_3) return;
|
||||
glad_glXGetFBConfigs = (PFNGLXGETFBCONFIGSPROC)load("glXGetFBConfigs");
|
||||
glad_glXChooseFBConfig = (PFNGLXCHOOSEFBCONFIGPROC)load("glXChooseFBConfig");
|
||||
glad_glXGetFBConfigAttrib = (PFNGLXGETFBCONFIGATTRIBPROC)load("glXGetFBConfigAttrib");
|
||||
glad_glXGetVisualFromFBConfig = (PFNGLXGETVISUALFROMFBCONFIGPROC)load("glXGetVisualFromFBConfig");
|
||||
glad_glXCreateWindow = (PFNGLXCREATEWINDOWPROC)load("glXCreateWindow");
|
||||
glad_glXDestroyWindow = (PFNGLXDESTROYWINDOWPROC)load("glXDestroyWindow");
|
||||
glad_glXCreatePixmap = (PFNGLXCREATEPIXMAPPROC)load("glXCreatePixmap");
|
||||
glad_glXDestroyPixmap = (PFNGLXDESTROYPIXMAPPROC)load("glXDestroyPixmap");
|
||||
glad_glXCreatePbuffer = (PFNGLXCREATEPBUFFERPROC)load("glXCreatePbuffer");
|
||||
glad_glXDestroyPbuffer = (PFNGLXDESTROYPBUFFERPROC)load("glXDestroyPbuffer");
|
||||
glad_glXQueryDrawable = (PFNGLXQUERYDRAWABLEPROC)load("glXQueryDrawable");
|
||||
glad_glXCreateNewContext = (PFNGLXCREATENEWCONTEXTPROC)load("glXCreateNewContext");
|
||||
glad_glXMakeContextCurrent = (PFNGLXMAKECONTEXTCURRENTPROC)load("glXMakeContextCurrent");
|
||||
glad_glXGetCurrentReadDrawable = (PFNGLXGETCURRENTREADDRAWABLEPROC)load("glXGetCurrentReadDrawable");
|
||||
glad_glXQueryContext = (PFNGLXQUERYCONTEXTPROC)load("glXQueryContext");
|
||||
glad_glXSelectEvent = (PFNGLXSELECTEVENTPROC)load("glXSelectEvent");
|
||||
glad_glXGetSelectedEvent = (PFNGLXGETSELECTEDEVENTPROC)load("glXGetSelectedEvent");
|
||||
}
|
||||
static void load_GLX_VERSION_1_4(GLADloadproc load) {
|
||||
if(!GLAD_GLX_VERSION_1_4) return;
|
||||
glad_glXGetProcAddress = (PFNGLXGETPROCADDRESSPROC)load("glXGetProcAddress");
|
||||
}
|
||||
static int find_extensionsGLX(void) {
|
||||
if (!get_exts()) return 0;
|
||||
free_exts();
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void find_coreGLX(Display *dpy, int screen) {
|
||||
int major = 0, minor = 0;
|
||||
if(dpy == 0 && GLADGLXDisplay == 0) {
|
||||
dpy = XOpenDisplay(0);
|
||||
screen = XScreenNumberOfScreen(XDefaultScreenOfDisplay(dpy));
|
||||
} else if(dpy == 0) {
|
||||
dpy = GLADGLXDisplay;
|
||||
screen = GLADGLXscreen;
|
||||
}
|
||||
glXQueryVersion(dpy, &major, &minor);
|
||||
GLADGLXDisplay = dpy;
|
||||
GLADGLXscreen = screen;
|
||||
GLAD_GLX_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
|
||||
GLAD_GLX_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
|
||||
GLAD_GLX_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
|
||||
GLAD_GLX_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
|
||||
GLAD_GLX_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1;
|
||||
}
|
||||
|
||||
int gladLoadGLXLoader(GLADloadproc load, Display *dpy, int screen) {
|
||||
glXQueryVersion = (PFNGLXQUERYVERSIONPROC)load("glXQueryVersion");
|
||||
if(glXQueryVersion == NULL) return 0;
|
||||
find_coreGLX(dpy, screen);
|
||||
load_GLX_VERSION_1_0(load);
|
||||
load_GLX_VERSION_1_1(load);
|
||||
load_GLX_VERSION_1_2(load);
|
||||
load_GLX_VERSION_1_3(load);
|
||||
load_GLX_VERSION_1_4(load);
|
||||
|
||||
if (!find_extensionsGLX()) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
433
external/glad/glad_glx.h
vendored
Normal file
433
external/glad/glad_glx.h
vendored
Normal file
@ -0,0 +1,433 @@
|
||||
/*
|
||||
|
||||
GLX loader generated by glad 0.1.12a0 on Tue Dec 20 17:04:11 2016.
|
||||
|
||||
Language/Generator: C/C++
|
||||
Specification: glx
|
||||
APIs: glx=1.4
|
||||
Profile: -
|
||||
Extensions:
|
||||
|
||||
Loader: True
|
||||
Local files: False
|
||||
Omit khrplatform: False
|
||||
|
||||
Commandline:
|
||||
--api="glx=1.4" --generator="c" --spec="glx" --extensions=""
|
||||
Online:
|
||||
http://glad.dav1d.de/#language=c&specification=glx&loader=on&api=glx%3D1.4
|
||||
*/
|
||||
|
||||
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <glad/glad.h>
|
||||
|
||||
#ifndef __glad_glxext_h_
|
||||
|
||||
#ifdef __glxext_h_
|
||||
#error GLX header already included, remove this include, glad already provides it
|
||||
#endif
|
||||
|
||||
#define __glad_glxext_h_
|
||||
#define __glxext_h_
|
||||
|
||||
#ifndef APIENTRY
|
||||
#define APIENTRY
|
||||
#endif
|
||||
#ifndef APIENTRYP
|
||||
#define APIENTRYP APIENTRY *
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef void* (* GLADloadproc)(const char *name);
|
||||
|
||||
#ifndef GLAPI
|
||||
# if defined(GLAD_GLAPI_EXPORT)
|
||||
# if defined(WIN32) || defined(__CYGWIN__)
|
||||
# if defined(GLAD_GLAPI_EXPORT_BUILD)
|
||||
# if defined(__GNUC__)
|
||||
# define GLAPI __attribute__ ((dllexport)) extern
|
||||
# else
|
||||
# define GLAPI __declspec(dllexport) extern
|
||||
# endif
|
||||
# else
|
||||
# if defined(__GNUC__)
|
||||
# define GLAPI __attribute__ ((dllimport)) extern
|
||||
# else
|
||||
# define GLAPI __declspec(dllimport) extern
|
||||
# endif
|
||||
# endif
|
||||
# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD)
|
||||
# define GLAPI __attribute__ ((visibility ("default"))) extern
|
||||
# else
|
||||
# define GLAPI extern
|
||||
# endif
|
||||
# else
|
||||
# define GLAPI extern
|
||||
# endif
|
||||
#endif
|
||||
|
||||
GLAPI int gladLoadGLX(Display *dpy, int screen);
|
||||
|
||||
GLAPI int gladLoadGLXLoader(GLADloadproc, Display *dpy, int screen);
|
||||
|
||||
#ifndef GLEXT_64_TYPES_DEFINED
|
||||
/* This code block is duplicated in glext.h, so must be protected */
|
||||
#define GLEXT_64_TYPES_DEFINED
|
||||
/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
|
||||
/* (as used in the GLX_OML_sync_control extension). */
|
||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
#include <inttypes.h>
|
||||
#elif defined(__sun__) || defined(__digital__)
|
||||
#include <inttypes.h>
|
||||
#if defined(__STDC__)
|
||||
#if defined(__arch64__) || defined(_LP64)
|
||||
typedef long int int64_t;
|
||||
typedef unsigned long int uint64_t;
|
||||
#else
|
||||
typedef long long int int64_t;
|
||||
typedef unsigned long long int uint64_t;
|
||||
#endif /* __arch64__ */
|
||||
#endif /* __STDC__ */
|
||||
#elif defined( __VMS ) || defined(__sgi)
|
||||
#include <inttypes.h>
|
||||
#elif defined(__SCO__) || defined(__USLC__)
|
||||
#include <stdint.h>
|
||||
#elif defined(__UNIXOS2__) || defined(__SOL64__)
|
||||
typedef long int int32_t;
|
||||
typedef long long int int64_t;
|
||||
typedef unsigned long long int uint64_t;
|
||||
#elif defined(_WIN32) && defined(__GNUC__)
|
||||
#include <stdint.h>
|
||||
#elif defined(_WIN32)
|
||||
typedef __int32 int32_t;
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
/* Fallback if nothing above works */
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#endif
|
||||
typedef XID GLXFBConfigID;
|
||||
typedef struct __GLXFBConfigRec *GLXFBConfig;
|
||||
typedef XID GLXContextID;
|
||||
typedef struct __GLXcontextRec *GLXContext;
|
||||
typedef XID GLXPixmap;
|
||||
typedef XID GLXDrawable;
|
||||
typedef XID GLXWindow;
|
||||
typedef XID GLXPbuffer;
|
||||
typedef void (APIENTRY *__GLXextFuncPtr)(void);
|
||||
typedef XID GLXVideoCaptureDeviceNV;
|
||||
typedef unsigned int GLXVideoDeviceNV;
|
||||
typedef XID GLXVideoSourceSGIX;
|
||||
typedef XID GLXFBConfigIDSGIX;
|
||||
typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
|
||||
typedef XID GLXPbufferSGIX;
|
||||
typedef struct {
|
||||
int event_type; /* GLX_DAMAGED or GLX_SAVED */
|
||||
int draw_type; /* GLX_WINDOW or GLX_PBUFFER */
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came for SendEvent request */
|
||||
Display *display; /* display the event was read from */
|
||||
GLXDrawable drawable; /* XID of Drawable */
|
||||
unsigned int buffer_mask; /* mask indicating which buffers are affected */
|
||||
unsigned int aux_buffer; /* which aux buffer was affected */
|
||||
int x, y;
|
||||
int width, height;
|
||||
int count; /* if nonzero, at least this many more */
|
||||
} GLXPbufferClobberEvent;
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
GLXDrawable drawable; /* drawable on which event was requested in event mask */
|
||||
int event_type;
|
||||
int64_t ust;
|
||||
int64_t msc;
|
||||
int64_t sbc;
|
||||
} GLXBufferSwapComplete;
|
||||
typedef union __GLXEvent {
|
||||
GLXPbufferClobberEvent glxpbufferclobber;
|
||||
GLXBufferSwapComplete glxbufferswapcomplete;
|
||||
long pad[24];
|
||||
} GLXEvent;
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial;
|
||||
Bool send_event;
|
||||
Display *display;
|
||||
int extension;
|
||||
int evtype;
|
||||
GLXDrawable window;
|
||||
Bool stereo_tree;
|
||||
} GLXStereoNotifyEventEXT;
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came for SendEvent request */
|
||||
Display *display; /* display the event was read from */
|
||||
GLXDrawable drawable; /* i.d. of Drawable */
|
||||
int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
|
||||
int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
|
||||
unsigned int mask; /* mask indicating which buffers are affected*/
|
||||
int x, y;
|
||||
int width, height;
|
||||
int count; /* if nonzero, at least this many more */
|
||||
} GLXBufferClobberEventSGIX;
|
||||
typedef struct {
|
||||
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
|
||||
int networkId;
|
||||
} GLXHyperpipeNetworkSGIX;
|
||||
typedef struct {
|
||||
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
|
||||
int channel;
|
||||
unsigned int participationType;
|
||||
int timeSlice;
|
||||
} GLXHyperpipeConfigSGIX;
|
||||
typedef struct {
|
||||
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
|
||||
int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
|
||||
int destXOrigin, destYOrigin, destWidth, destHeight;
|
||||
} GLXPipeRect;
|
||||
typedef struct {
|
||||
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
|
||||
int XOrigin, YOrigin, maxHeight, maxWidth;
|
||||
} GLXPipeRectLimits;
|
||||
#define GLX_EXTENSION_NAME "GLX"
|
||||
#define GLX_PbufferClobber 0
|
||||
#define GLX_BufferSwapComplete 1
|
||||
#define __GLX_NUMBER_EVENTS 17
|
||||
#define GLX_BAD_SCREEN 1
|
||||
#define GLX_BAD_ATTRIBUTE 2
|
||||
#define GLX_NO_EXTENSION 3
|
||||
#define GLX_BAD_VISUAL 4
|
||||
#define GLX_BAD_CONTEXT 5
|
||||
#define GLX_BAD_VALUE 6
|
||||
#define GLX_BAD_ENUM 7
|
||||
#define GLX_USE_GL 1
|
||||
#define GLX_BUFFER_SIZE 2
|
||||
#define GLX_LEVEL 3
|
||||
#define GLX_RGBA 4
|
||||
#define GLX_DOUBLEBUFFER 5
|
||||
#define GLX_STEREO 6
|
||||
#define GLX_AUX_BUFFERS 7
|
||||
#define GLX_RED_SIZE 8
|
||||
#define GLX_GREEN_SIZE 9
|
||||
#define GLX_BLUE_SIZE 10
|
||||
#define GLX_ALPHA_SIZE 11
|
||||
#define GLX_DEPTH_SIZE 12
|
||||
#define GLX_STENCIL_SIZE 13
|
||||
#define GLX_ACCUM_RED_SIZE 14
|
||||
#define GLX_ACCUM_GREEN_SIZE 15
|
||||
#define GLX_ACCUM_BLUE_SIZE 16
|
||||
#define GLX_ACCUM_ALPHA_SIZE 17
|
||||
#define GLX_VENDOR 0x1
|
||||
#define GLX_VERSION 0x2
|
||||
#define GLX_EXTENSIONS 0x3
|
||||
#define GLX_WINDOW_BIT 0x00000001
|
||||
#define GLX_PIXMAP_BIT 0x00000002
|
||||
#define GLX_PBUFFER_BIT 0x00000004
|
||||
#define GLX_RGBA_BIT 0x00000001
|
||||
#define GLX_COLOR_INDEX_BIT 0x00000002
|
||||
#define GLX_PBUFFER_CLOBBER_MASK 0x08000000
|
||||
#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
|
||||
#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
|
||||
#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
|
||||
#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
|
||||
#define GLX_AUX_BUFFERS_BIT 0x00000010
|
||||
#define GLX_DEPTH_BUFFER_BIT 0x00000020
|
||||
#define GLX_STENCIL_BUFFER_BIT 0x00000040
|
||||
#define GLX_ACCUM_BUFFER_BIT 0x00000080
|
||||
#define GLX_CONFIG_CAVEAT 0x20
|
||||
#define GLX_X_VISUAL_TYPE 0x22
|
||||
#define GLX_TRANSPARENT_TYPE 0x23
|
||||
#define GLX_TRANSPARENT_INDEX_VALUE 0x24
|
||||
#define GLX_TRANSPARENT_RED_VALUE 0x25
|
||||
#define GLX_TRANSPARENT_GREEN_VALUE 0x26
|
||||
#define GLX_TRANSPARENT_BLUE_VALUE 0x27
|
||||
#define GLX_TRANSPARENT_ALPHA_VALUE 0x28
|
||||
#define GLX_DONT_CARE 0xFFFFFFFF
|
||||
#define GLX_NONE 0x8000
|
||||
#define GLX_SLOW_CONFIG 0x8001
|
||||
#define GLX_TRUE_COLOR 0x8002
|
||||
#define GLX_DIRECT_COLOR 0x8003
|
||||
#define GLX_PSEUDO_COLOR 0x8004
|
||||
#define GLX_STATIC_COLOR 0x8005
|
||||
#define GLX_GRAY_SCALE 0x8006
|
||||
#define GLX_STATIC_GRAY 0x8007
|
||||
#define GLX_TRANSPARENT_RGB 0x8008
|
||||
#define GLX_TRANSPARENT_INDEX 0x8009
|
||||
#define GLX_VISUAL_ID 0x800B
|
||||
#define GLX_SCREEN 0x800C
|
||||
#define GLX_NON_CONFORMANT_CONFIG 0x800D
|
||||
#define GLX_DRAWABLE_TYPE 0x8010
|
||||
#define GLX_RENDER_TYPE 0x8011
|
||||
#define GLX_X_RENDERABLE 0x8012
|
||||
#define GLX_FBCONFIG_ID 0x8013
|
||||
#define GLX_RGBA_TYPE 0x8014
|
||||
#define GLX_COLOR_INDEX_TYPE 0x8015
|
||||
#define GLX_MAX_PBUFFER_WIDTH 0x8016
|
||||
#define GLX_MAX_PBUFFER_HEIGHT 0x8017
|
||||
#define GLX_MAX_PBUFFER_PIXELS 0x8018
|
||||
#define GLX_PRESERVED_CONTENTS 0x801B
|
||||
#define GLX_LARGEST_PBUFFER 0x801C
|
||||
#define GLX_WIDTH 0x801D
|
||||
#define GLX_HEIGHT 0x801E
|
||||
#define GLX_EVENT_MASK 0x801F
|
||||
#define GLX_DAMAGED 0x8020
|
||||
#define GLX_SAVED 0x8021
|
||||
#define GLX_WINDOW 0x8022
|
||||
#define GLX_PBUFFER 0x8023
|
||||
#define GLX_PBUFFER_HEIGHT 0x8040
|
||||
#define GLX_PBUFFER_WIDTH 0x8041
|
||||
#define GLX_SAMPLE_BUFFERS 100000
|
||||
#define GLX_SAMPLES 100001
|
||||
#ifndef GLX_VERSION_1_0
|
||||
#define GLX_VERSION_1_0 1
|
||||
GLAPI int GLAD_GLX_VERSION_1_0;
|
||||
typedef XVisualInfo * (APIENTRYP PFNGLXCHOOSEVISUALPROC)(Display *dpy, int screen, int *attribList);
|
||||
GLAPI PFNGLXCHOOSEVISUALPROC glad_glXChooseVisual;
|
||||
#define glXChooseVisual glad_glXChooseVisual
|
||||
typedef GLXContext (APIENTRYP PFNGLXCREATECONTEXTPROC)(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
|
||||
GLAPI PFNGLXCREATECONTEXTPROC glad_glXCreateContext;
|
||||
#define glXCreateContext glad_glXCreateContext
|
||||
typedef void (APIENTRYP PFNGLXDESTROYCONTEXTPROC)(Display *dpy, GLXContext ctx);
|
||||
GLAPI PFNGLXDESTROYCONTEXTPROC glad_glXDestroyContext;
|
||||
#define glXDestroyContext glad_glXDestroyContext
|
||||
typedef Bool (APIENTRYP PFNGLXMAKECURRENTPROC)(Display *dpy, GLXDrawable drawable, GLXContext ctx);
|
||||
GLAPI PFNGLXMAKECURRENTPROC glad_glXMakeCurrent;
|
||||
#define glXMakeCurrent glad_glXMakeCurrent
|
||||
typedef void (APIENTRYP PFNGLXCOPYCONTEXTPROC)(Display *dpy, GLXContext src, GLXContext dst, unsigned long mask);
|
||||
GLAPI PFNGLXCOPYCONTEXTPROC glad_glXCopyContext;
|
||||
#define glXCopyContext glad_glXCopyContext
|
||||
typedef void (APIENTRYP PFNGLXSWAPBUFFERSPROC)(Display *dpy, GLXDrawable drawable);
|
||||
GLAPI PFNGLXSWAPBUFFERSPROC glad_glXSwapBuffers;
|
||||
#define glXSwapBuffers glad_glXSwapBuffers
|
||||
typedef GLXPixmap (APIENTRYP PFNGLXCREATEGLXPIXMAPPROC)(Display *dpy, XVisualInfo *visual, Pixmap pixmap);
|
||||
GLAPI PFNGLXCREATEGLXPIXMAPPROC glad_glXCreateGLXPixmap;
|
||||
#define glXCreateGLXPixmap glad_glXCreateGLXPixmap
|
||||
typedef void (APIENTRYP PFNGLXDESTROYGLXPIXMAPPROC)(Display *dpy, GLXPixmap pixmap);
|
||||
GLAPI PFNGLXDESTROYGLXPIXMAPPROC glad_glXDestroyGLXPixmap;
|
||||
#define glXDestroyGLXPixmap glad_glXDestroyGLXPixmap
|
||||
typedef Bool (APIENTRYP PFNGLXQUERYEXTENSIONPROC)(Display *dpy, int *errorb, int *event);
|
||||
GLAPI PFNGLXQUERYEXTENSIONPROC glad_glXQueryExtension;
|
||||
#define glXQueryExtension glad_glXQueryExtension
|
||||
typedef Bool (APIENTRYP PFNGLXQUERYVERSIONPROC)(Display *dpy, int *maj, int *min);
|
||||
GLAPI PFNGLXQUERYVERSIONPROC glad_glXQueryVersion;
|
||||
#define glXQueryVersion glad_glXQueryVersion
|
||||
typedef Bool (APIENTRYP PFNGLXISDIRECTPROC)(Display *dpy, GLXContext ctx);
|
||||
GLAPI PFNGLXISDIRECTPROC glad_glXIsDirect;
|
||||
#define glXIsDirect glad_glXIsDirect
|
||||
typedef int (APIENTRYP PFNGLXGETCONFIGPROC)(Display *dpy, XVisualInfo *visual, int attrib, int *value);
|
||||
GLAPI PFNGLXGETCONFIGPROC glad_glXGetConfig;
|
||||
#define glXGetConfig glad_glXGetConfig
|
||||
typedef GLXContext (APIENTRYP PFNGLXGETCURRENTCONTEXTPROC)();
|
||||
GLAPI PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext;
|
||||
#define glXGetCurrentContext glad_glXGetCurrentContext
|
||||
typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTDRAWABLEPROC)();
|
||||
GLAPI PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable;
|
||||
#define glXGetCurrentDrawable glad_glXGetCurrentDrawable
|
||||
typedef void (APIENTRYP PFNGLXWAITGLPROC)();
|
||||
GLAPI PFNGLXWAITGLPROC glad_glXWaitGL;
|
||||
#define glXWaitGL glad_glXWaitGL
|
||||
typedef void (APIENTRYP PFNGLXWAITXPROC)();
|
||||
GLAPI PFNGLXWAITXPROC glad_glXWaitX;
|
||||
#define glXWaitX glad_glXWaitX
|
||||
typedef void (APIENTRYP PFNGLXUSEXFONTPROC)(Font font, int first, int count, int list);
|
||||
GLAPI PFNGLXUSEXFONTPROC glad_glXUseXFont;
|
||||
#define glXUseXFont glad_glXUseXFont
|
||||
#endif
|
||||
#ifndef GLX_VERSION_1_1
|
||||
#define GLX_VERSION_1_1 1
|
||||
GLAPI int GLAD_GLX_VERSION_1_1;
|
||||
typedef const char * (APIENTRYP PFNGLXQUERYEXTENSIONSSTRINGPROC)(Display *dpy, int screen);
|
||||
GLAPI PFNGLXQUERYEXTENSIONSSTRINGPROC glad_glXQueryExtensionsString;
|
||||
#define glXQueryExtensionsString glad_glXQueryExtensionsString
|
||||
typedef const char * (APIENTRYP PFNGLXQUERYSERVERSTRINGPROC)(Display *dpy, int screen, int name);
|
||||
GLAPI PFNGLXQUERYSERVERSTRINGPROC glad_glXQueryServerString;
|
||||
#define glXQueryServerString glad_glXQueryServerString
|
||||
typedef const char * (APIENTRYP PFNGLXGETCLIENTSTRINGPROC)(Display *dpy, int name);
|
||||
GLAPI PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString;
|
||||
#define glXGetClientString glad_glXGetClientString
|
||||
#endif
|
||||
#ifndef GLX_VERSION_1_2
|
||||
#define GLX_VERSION_1_2 1
|
||||
GLAPI int GLAD_GLX_VERSION_1_2;
|
||||
typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYPROC)();
|
||||
GLAPI PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay;
|
||||
#define glXGetCurrentDisplay glad_glXGetCurrentDisplay
|
||||
#endif
|
||||
#ifndef GLX_VERSION_1_3
|
||||
#define GLX_VERSION_1_3 1
|
||||
GLAPI int GLAD_GLX_VERSION_1_3;
|
||||
typedef GLXFBConfig * (APIENTRYP PFNGLXGETFBCONFIGSPROC)(Display *dpy, int screen, int *nelements);
|
||||
GLAPI PFNGLXGETFBCONFIGSPROC glad_glXGetFBConfigs;
|
||||
#define glXGetFBConfigs glad_glXGetFBConfigs
|
||||
typedef GLXFBConfig * (APIENTRYP PFNGLXCHOOSEFBCONFIGPROC)(Display *dpy, int screen, const int *attrib_list, int *nelements);
|
||||
GLAPI PFNGLXCHOOSEFBCONFIGPROC glad_glXChooseFBConfig;
|
||||
#define glXChooseFBConfig glad_glXChooseFBConfig
|
||||
typedef int (APIENTRYP PFNGLXGETFBCONFIGATTRIBPROC)(Display *dpy, GLXFBConfig config, int attribute, int *value);
|
||||
GLAPI PFNGLXGETFBCONFIGATTRIBPROC glad_glXGetFBConfigAttrib;
|
||||
#define glXGetFBConfigAttrib glad_glXGetFBConfigAttrib
|
||||
typedef XVisualInfo * (APIENTRYP PFNGLXGETVISUALFROMFBCONFIGPROC)(Display *dpy, GLXFBConfig config);
|
||||
GLAPI PFNGLXGETVISUALFROMFBCONFIGPROC glad_glXGetVisualFromFBConfig;
|
||||
#define glXGetVisualFromFBConfig glad_glXGetVisualFromFBConfig
|
||||
typedef GLXWindow (APIENTRYP PFNGLXCREATEWINDOWPROC)(Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
|
||||
GLAPI PFNGLXCREATEWINDOWPROC glad_glXCreateWindow;
|
||||
#define glXCreateWindow glad_glXCreateWindow
|
||||
typedef void (APIENTRYP PFNGLXDESTROYWINDOWPROC)(Display *dpy, GLXWindow win);
|
||||
GLAPI PFNGLXDESTROYWINDOWPROC glad_glXDestroyWindow;
|
||||
#define glXDestroyWindow glad_glXDestroyWindow
|
||||
typedef GLXPixmap (APIENTRYP PFNGLXCREATEPIXMAPPROC)(Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
|
||||
GLAPI PFNGLXCREATEPIXMAPPROC glad_glXCreatePixmap;
|
||||
#define glXCreatePixmap glad_glXCreatePixmap
|
||||
typedef void (APIENTRYP PFNGLXDESTROYPIXMAPPROC)(Display *dpy, GLXPixmap pixmap);
|
||||
GLAPI PFNGLXDESTROYPIXMAPPROC glad_glXDestroyPixmap;
|
||||
#define glXDestroyPixmap glad_glXDestroyPixmap
|
||||
typedef GLXPbuffer (APIENTRYP PFNGLXCREATEPBUFFERPROC)(Display *dpy, GLXFBConfig config, const int *attrib_list);
|
||||
GLAPI PFNGLXCREATEPBUFFERPROC glad_glXCreatePbuffer;
|
||||
#define glXCreatePbuffer glad_glXCreatePbuffer
|
||||
typedef void (APIENTRYP PFNGLXDESTROYPBUFFERPROC)(Display *dpy, GLXPbuffer pbuf);
|
||||
GLAPI PFNGLXDESTROYPBUFFERPROC glad_glXDestroyPbuffer;
|
||||
#define glXDestroyPbuffer glad_glXDestroyPbuffer
|
||||
typedef void (APIENTRYP PFNGLXQUERYDRAWABLEPROC)(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
|
||||
GLAPI PFNGLXQUERYDRAWABLEPROC glad_glXQueryDrawable;
|
||||
#define glXQueryDrawable glad_glXQueryDrawable
|
||||
typedef GLXContext (APIENTRYP PFNGLXCREATENEWCONTEXTPROC)(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
|
||||
GLAPI PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext;
|
||||
#define glXCreateNewContext glad_glXCreateNewContext
|
||||
typedef Bool (APIENTRYP PFNGLXMAKECONTEXTCURRENTPROC)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
|
||||
GLAPI PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent;
|
||||
#define glXMakeContextCurrent glad_glXMakeContextCurrent
|
||||
typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLEPROC)();
|
||||
GLAPI PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable;
|
||||
#define glXGetCurrentReadDrawable glad_glXGetCurrentReadDrawable
|
||||
typedef int (APIENTRYP PFNGLXQUERYCONTEXTPROC)(Display *dpy, GLXContext ctx, int attribute, int *value);
|
||||
GLAPI PFNGLXQUERYCONTEXTPROC glad_glXQueryContext;
|
||||
#define glXQueryContext glad_glXQueryContext
|
||||
typedef void (APIENTRYP PFNGLXSELECTEVENTPROC)(Display *dpy, GLXDrawable draw, unsigned long event_mask);
|
||||
GLAPI PFNGLXSELECTEVENTPROC glad_glXSelectEvent;
|
||||
#define glXSelectEvent glad_glXSelectEvent
|
||||
typedef void (APIENTRYP PFNGLXGETSELECTEDEVENTPROC)(Display *dpy, GLXDrawable draw, unsigned long *event_mask);
|
||||
GLAPI PFNGLXGETSELECTEDEVENTPROC glad_glXGetSelectedEvent;
|
||||
#define glXGetSelectedEvent glad_glXGetSelectedEvent
|
||||
#endif
|
||||
#ifndef GLX_VERSION_1_4
|
||||
#define GLX_VERSION_1_4 1
|
||||
GLAPI int GLAD_GLX_VERSION_1_4;
|
||||
typedef __GLXextFuncPtr (APIENTRYP PFNGLXGETPROCADDRESSPROC)(const GLubyte *procName);
|
||||
GLAPI PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress;
|
||||
#define glXGetProcAddress glad_glXGetProcAddress
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
121
external/glfw/CMakeLists.txt
vendored
121
external/glfw/CMakeLists.txt
vendored
@ -1,121 +0,0 @@
|
||||
add_definitions(-D_GLFW_USE_CONFIG_H)
|
||||
|
||||
set(common_HEADERS internal.h
|
||||
"${GLFW_BINARY_DIR}/src/glfw_config.h"
|
||||
"${GLFW_SOURCE_DIR}/include/GLFW/glfw3.h"
|
||||
"${GLFW_SOURCE_DIR}/include/GLFW/glfw3native.h")
|
||||
set(common_SOURCES context.c init.c input.c monitor.c vulkan.c window.c)
|
||||
|
||||
if (_GLFW_COCOA)
|
||||
set(glfw_HEADERS ${common_HEADERS} cocoa_platform.h cocoa_joystick.h
|
||||
posix_tls.h nsgl_context.h)
|
||||
set(glfw_SOURCES ${common_SOURCES} cocoa_init.m cocoa_joystick.m
|
||||
cocoa_monitor.m cocoa_window.m cocoa_time.c posix_tls.c
|
||||
nsgl_context.m)
|
||||
elseif (_GLFW_WIN32)
|
||||
set(glfw_HEADERS ${common_HEADERS} win32_platform.h win32_joystick.h
|
||||
wgl_context.h egl_context.h)
|
||||
set(glfw_SOURCES ${common_SOURCES} win32_init.c win32_joystick.c
|
||||
win32_monitor.c win32_time.c win32_tls.c win32_window.c
|
||||
wgl_context.c egl_context.c)
|
||||
elseif (_GLFW_X11)
|
||||
set(glfw_HEADERS ${common_HEADERS} x11_platform.h xkb_unicode.h
|
||||
linux_joystick.h posix_time.h posix_tls.h glx_context.h
|
||||
egl_context.h)
|
||||
set(glfw_SOURCES ${common_SOURCES} x11_init.c x11_monitor.c x11_window.c
|
||||
xkb_unicode.c linux_joystick.c posix_time.c posix_tls.c
|
||||
glx_context.c egl_context.c)
|
||||
elseif (_GLFW_WAYLAND)
|
||||
set(glfw_HEADERS ${common_HEADERS} wl_platform.h linux_joystick.h
|
||||
posix_time.h posix_tls.h xkb_unicode.h egl_context.h)
|
||||
set(glfw_SOURCES ${common_SOURCES} wl_init.c wl_monitor.c wl_window.c
|
||||
linux_joystick.c posix_time.c posix_tls.c xkb_unicode.c
|
||||
egl_context.c)
|
||||
|
||||
ecm_add_wayland_client_protocol(glfw_SOURCES
|
||||
PROTOCOL
|
||||
${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/relative-pointer/relative-pointer-unstable-v1.xml
|
||||
BASENAME relative-pointer-unstable-v1)
|
||||
ecm_add_wayland_client_protocol(glfw_SOURCES
|
||||
PROTOCOL
|
||||
${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
|
||||
BASENAME pointer-constraints-unstable-v1)
|
||||
elseif (_GLFW_MIR)
|
||||
set(glfw_HEADERS ${common_HEADERS} mir_platform.h linux_joystick.h
|
||||
posix_time.h posix_tls.h xkb_unicode.h egl_context.h)
|
||||
set(glfw_SOURCES ${common_SOURCES} mir_init.c mir_monitor.c mir_window.c
|
||||
linux_joystick.c posix_time.c posix_tls.c xkb_unicode.c
|
||||
egl_context.c)
|
||||
endif()
|
||||
|
||||
if (APPLE)
|
||||
# For some reason, CMake doesn't know about .m
|
||||
set_source_files_properties(${glfw_SOURCES} PROPERTIES LANGUAGE C)
|
||||
endif()
|
||||
|
||||
add_library(glfw ${glfw_SOURCES} ${glfw_HEADERS})
|
||||
set_target_properties(glfw PROPERTIES
|
||||
OUTPUT_NAME ${GLFW_LIB_NAME}
|
||||
VERSION ${GLFW_VERSION}
|
||||
SOVERSION ${GLFW_VERSION_MAJOR}
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
FOLDER "GLFW3")
|
||||
|
||||
target_compile_definitions(glfw PRIVATE -D_GLFW_USE_CONFIG_H)
|
||||
target_include_directories(glfw PUBLIC
|
||||
$<BUILD_INTERFACE:${GLFW_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>)
|
||||
target_include_directories(glfw PRIVATE
|
||||
"${GLFW_SOURCE_DIR}/src"
|
||||
"${GLFW_BINARY_DIR}/src"
|
||||
${glfw_INCLUDE_DIRS})
|
||||
|
||||
# HACK: When building on MinGW, WINVER and UNICODE need to be defined before
|
||||
# the inclusion of stddef.h (by glfw3.h), which is itself included before
|
||||
# win32_platform.h. We define them here until a saner solution can be found
|
||||
# NOTE: MinGW-w64 and Visual C++ do /not/ need this hack.
|
||||
target_compile_definitions(glfw PRIVATE
|
||||
"$<$<BOOL:${MINGW}>:UNICODE;WINVER=0x0501>")
|
||||
|
||||
# Enable a reasonable set of warnings (no, -Wextra is not reasonable)
|
||||
target_compile_options(glfw PRIVATE
|
||||
"$<$<C_COMPILER_ID:Clang>:-Wall>"
|
||||
"$<$<C_COMPILER_ID:GNU>:-Wall>")
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
if (WIN32)
|
||||
if (MINGW)
|
||||
# Remove the lib prefix on the DLL (but not the import library
|
||||
set_target_properties(glfw PROPERTIES PREFIX "")
|
||||
|
||||
# Add a suffix to the import library to avoid naming conflicts
|
||||
set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.a")
|
||||
else()
|
||||
# Add a suffix to the import library to avoid naming conflicts
|
||||
set_target_properties(glfw PROPERTIES IMPORT_SUFFIX "dll.lib")
|
||||
endif()
|
||||
elseif (APPLE)
|
||||
# Add -fno-common to work around a bug in Apple's GCC
|
||||
target_compile_options(glfw PRIVATE "-fno-common")
|
||||
|
||||
set_target_properties(glfw PROPERTIES
|
||||
INSTALL_NAME_DIR "lib${LIB_SUFFIX}")
|
||||
elseif (UNIX)
|
||||
# Hide symbols not explicitly tagged for export from the shared library
|
||||
target_compile_options(glfw PRIVATE "-fvisibility=hidden")
|
||||
endif()
|
||||
|
||||
target_compile_definitions(glfw INTERFACE -DGLFW_DLL)
|
||||
target_link_libraries(glfw PRIVATE ${glfw_LIBRARIES})
|
||||
else()
|
||||
target_link_libraries(glfw INTERFACE ${glfw_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
target_compile_definitions(glfw PRIVATE _CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
||||
if (GLFW_INSTALL)
|
||||
install(TARGETS glfw EXPORT glfwTargets DESTINATION lib${LIB_SUFFIX})
|
||||
endif()
|
||||
|
15
external/glfw/glfw_config.h
vendored
15
external/glfw/glfw_config.h
vendored
@ -37,7 +37,7 @@
|
||||
// Define this to 1 if building GLFW for X11
|
||||
/* #undef _GLFW_X11 */
|
||||
// Define this to 1 if building GLFW for Win32
|
||||
#define _GLFW_WIN32
|
||||
//#define _GLFW_WIN32
|
||||
// Define this to 1 if building GLFW for Cocoa
|
||||
/* #undef _GLFW_COCOA */
|
||||
// Define this to 1 if building GLFW for Wayland
|
||||
@ -63,3 +63,16 @@
|
||||
// Define this to 1 if windows should use full resolution on Retina displays
|
||||
/* #undef _GLFW_USE_RETINA */
|
||||
|
||||
#if defined ( _WIN32 )
|
||||
#define _GLFW_WIN32
|
||||
#define _GLFW_WGL
|
||||
#elif defined ( __APPLE__ )
|
||||
#define _GLFW_COCOA
|
||||
#define _GLFW_NSGL
|
||||
#else
|
||||
#define _GLFW_X11
|
||||
#define _GLFW_GLX
|
||||
#endif
|
||||
|
||||
#define _GLFW_USE_MENUBAR
|
||||
#define _GLFW_USE_OPENGL
|
||||
|
18
external/imgui/CMakeLists.txt
vendored
18
external/imgui/CMakeLists.txt
vendored
@ -1,18 +0,0 @@
|
||||
set(imgui_HEADERS
|
||||
imconfig.h
|
||||
imgui.h
|
||||
imgui_internal.h
|
||||
imgui_impl_glfw_gl3.h
|
||||
stb_rect_pack.h
|
||||
stb_textedit.h
|
||||
stb_truetype.h
|
||||
)
|
||||
|
||||
set(imgui_SOURCES
|
||||
imgui.cpp
|
||||
imgui_draw.cpp
|
||||
imgui_impl_glfw_gl3.cpp
|
||||
)
|
||||
|
||||
include_directories(../)
|
||||
add_library(imgui STATIC ${imgui_HEADERS} ${imgui_SOURCES})
|
24
external/imgui/imgui_impl_glfw_gl3.cpp
vendored
24
external/imgui/imgui_impl_glfw_gl3.cpp
vendored
@ -6,21 +6,23 @@
|
||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||
// https://github.com/ocornut/imgui
|
||||
|
||||
#include "imgui.h"
|
||||
#include <imgui/imgui.h>
|
||||
#include "imgui_impl_glfw_gl3.h"
|
||||
|
||||
// GL3W/GLFW
|
||||
#if defined(__APPLE_CC__)
|
||||
#include <OpenGL/gl3.h>
|
||||
#include <OpenGL/gl3.h>
|
||||
#else
|
||||
#include <glad/glad.h>
|
||||
// GLEW/GL3W/GLAD/...
|
||||
#include <glad/glad.h>
|
||||
#endif
|
||||
|
||||
#include <glfw/glfw3.h>
|
||||
#ifdef _WIN32
|
||||
#undef APIENTRY
|
||||
#define GLFW_EXPOSE_NATIVE_WIN32
|
||||
#define GLFW_EXPOSE_NATIVE_WGL
|
||||
#include <glfw/glfw3native.h>
|
||||
|
||||
#if defined ( _WIN32 )
|
||||
#undef APIENTRY
|
||||
#define GLFW_EXPOSE_NATIVE_WIN32
|
||||
#define GLFW_EXPOSE_NATIVE_WGL
|
||||
#include <glfw/glfw3native.h>
|
||||
#endif
|
||||
|
||||
// Data
|
||||
@ -208,7 +210,7 @@ bool ImGui_ImplGlfwGL3_CreateDeviceObjects()
|
||||
glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &last_vertex_array);
|
||||
|
||||
const GLchar *vertex_shader =
|
||||
"#version 330\n"
|
||||
"#version 130\n"
|
||||
"uniform mat4 ProjMtx;\n"
|
||||
"in vec2 Position;\n"
|
||||
"in vec2 UV;\n"
|
||||
@ -223,7 +225,7 @@ bool ImGui_ImplGlfwGL3_CreateDeviceObjects()
|
||||
"}\n";
|
||||
|
||||
const GLchar* fragment_shader =
|
||||
"#version 330\n"
|
||||
"#version 130\n"
|
||||
"uniform sampler2D Texture;\n"
|
||||
"in vec2 Frag_UV;\n"
|
||||
"in vec4 Frag_Color;\n"
|
||||
|
@ -21,40 +21,40 @@
|
||||
|
||||
// Include this file header in your project to directly access Bounce objects.
|
||||
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce\common\time.h>
|
||||
#include <bounce\common\draw.h>
|
||||
#include <bounce/common/settings.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
#include <bounce/common/time.h>
|
||||
#include <bounce/common/draw.h>
|
||||
|
||||
#include <bounce\collision\broad_phase.h>
|
||||
#include <bounce\collision\gjk\gjk.h>
|
||||
#include <bounce\collision\gjk\gjk_cache.h>
|
||||
#include <bounce\collision\sat\sat.h>
|
||||
#include <bounce/collision/gjk/gjk.h>
|
||||
#include <bounce/collision/gjk/gjk_cache.h>
|
||||
#include <bounce/collision/sat/sat.h>
|
||||
#include <bounce/collision/distance.h>
|
||||
#include <bounce/collision/broad_phase.h>
|
||||
|
||||
#include <bounce\collision\shapes\sphere.h>
|
||||
#include <bounce\collision\shapes\capsule.h>
|
||||
#include <bounce\collision\shapes\hull.h>
|
||||
#include <bounce\collision\shapes\triangle_hull.h>
|
||||
#include <bounce\collision\shapes\box_hull.h>
|
||||
#include <bounce\collision\shapes\mesh.h>
|
||||
#include <bounce/collision/shapes/sphere.h>
|
||||
#include <bounce/collision/shapes/capsule.h>
|
||||
#include <bounce/collision/shapes/hull.h>
|
||||
#include <bounce/collision/shapes/box_hull.h>
|
||||
#include <bounce/collision/shapes/mesh.h>
|
||||
|
||||
#include <bounce\dynamics\joints\mouse_joint.h>
|
||||
#include <bounce\dynamics\joints\spring_joint.h>
|
||||
#include <bounce\dynamics\joints\sphere_joint.h>
|
||||
#include <bounce\dynamics\joints\revolute_joint.h>
|
||||
#include <bounce\dynamics\joints\cone_joint.h>
|
||||
#include <bounce/dynamics/joints/mouse_joint.h>
|
||||
#include <bounce/dynamics/joints/spring_joint.h>
|
||||
#include <bounce/dynamics/joints/sphere_joint.h>
|
||||
#include <bounce/dynamics/joints/revolute_joint.h>
|
||||
#include <bounce/dynamics/joints/cone_joint.h>
|
||||
|
||||
#include <bounce\dynamics\shapes\sphere_shape.h>
|
||||
#include <bounce\dynamics\shapes\capsule_shape.h>
|
||||
#include <bounce\dynamics\shapes\hull_shape.h>
|
||||
#include <bounce\dynamics\shapes\mesh_shape.h>
|
||||
#include <bounce/dynamics/shapes/sphere_shape.h>
|
||||
#include <bounce/dynamics/shapes/capsule_shape.h>
|
||||
#include <bounce/dynamics/shapes/hull_shape.h>
|
||||
#include <bounce/dynamics/shapes/mesh_shape.h>
|
||||
|
||||
#include <bounce\dynamics\contacts\contact.h>
|
||||
#include <bounce\dynamics\contacts\convex_contact.h>
|
||||
#include <bounce\dynamics\contacts\mesh_contact.h>
|
||||
#include <bounce/dynamics/contacts/contact.h>
|
||||
#include <bounce/dynamics/contacts/convex_contact.h>
|
||||
#include <bounce/dynamics/contacts/mesh_contact.h>
|
||||
|
||||
#include <bounce\dynamics\body.h>
|
||||
#include <bounce\dynamics\world.h>
|
||||
#include <bounce\dynamics\world_listeners.h>
|
||||
#include <bounce/dynamics/body.h>
|
||||
#include <bounce/dynamics/world.h>
|
||||
#include <bounce/dynamics/world_listeners.h>
|
||||
|
||||
#endif
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_BROAD_PHASE_H
|
||||
#define B3_BROAD_PHASE_H
|
||||
|
||||
#include <bounce\collision\trees\dynamic_tree.h>
|
||||
#include <bounce/collision/trees/dynamic_tree.h>
|
||||
#include <algorithm>
|
||||
|
||||
// A pair of broad-phase proxies.
|
||||
@ -29,8 +29,8 @@ struct b3Pair
|
||||
i32 proxy2;
|
||||
};
|
||||
|
||||
// The broad-phase collision interface.
|
||||
// It is used to perform ray, AABB, and overlapping-pair queries
|
||||
// The broad-phase interface.
|
||||
// It is used to perform ray casts, volume queries, and overlapping queries
|
||||
// against AABBs.
|
||||
class b3BroadPhase
|
||||
{
|
||||
@ -38,14 +38,14 @@ public:
|
||||
b3BroadPhase();
|
||||
~b3BroadPhase();
|
||||
|
||||
// Create a broad-phase proxy and return a proxy.
|
||||
// Create a proxy and return a index to it.
|
||||
i32 CreateProxy(const b3AABB3& aabb, void* userData);
|
||||
|
||||
// Destroy an existing proxy.
|
||||
// Destroy a given proxy and remove it from the broadphase.
|
||||
void DestroyProxy(i32 proxyId);
|
||||
|
||||
// Update an existing proxy with a given AABB and a displacement.
|
||||
// displacement = int[a, b](dv/dt) dt = F(b) - F(a) = x(b) - x(a) ~= v * dt
|
||||
// Update an existing proxy AABB with a given AABB and a displacement.
|
||||
// displacement = dt * velocity
|
||||
// Return true if the proxy has moved.
|
||||
bool MoveProxy(i32 proxyId, const b3AABB3& aabb, const b3Vec3& displacement);
|
||||
|
||||
@ -65,15 +65,15 @@ public:
|
||||
// Notify the client callback the AABBs that are overlapping the
|
||||
// passed ray.
|
||||
template<class T>
|
||||
void QueryRay(T* callback, const b3RayCastInput& input) const;
|
||||
void RayCast(T* callback, const b3RayCastInput& input) const;
|
||||
|
||||
// Notify the client callback the AABB pairs that are overlapping.
|
||||
// The client must store the notified pairs.
|
||||
template<class T>
|
||||
void FindNewPairs(T* callback);
|
||||
|
||||
// Debug b3Draw the AABB proxies.
|
||||
void Draw(b3Draw* b3Draw) const;
|
||||
// Draw the proxy AABBs.
|
||||
void Draw(b3Draw* draw) const;
|
||||
private :
|
||||
friend class b3DynamicTree;
|
||||
|
||||
@ -81,18 +81,18 @@ private :
|
||||
// Only moved proxies will be used as an AABB query reference object.
|
||||
void BufferMove(i32 proxyId);
|
||||
|
||||
// The client callback used to add a overlapping pair
|
||||
// The client callback used to add an overlapping pair
|
||||
// to the overlapping pair buffer.
|
||||
bool Report(i32 proxyId);
|
||||
|
||||
// The dynamic tree.
|
||||
b3DynamicTree m_tree;
|
||||
|
||||
// The current proxy being queried for
|
||||
// overlap witha another proxies. Is used to avoid a proxy overlap with itself.
|
||||
// The current proxy being queried for overlap with another proxies.
|
||||
// It is used to avoid a proxy overlap with itself.
|
||||
i32 m_queryProxyId;
|
||||
|
||||
// Keep a buffer of the objects that have moved in a step.
|
||||
// The objects that have moved in a step.
|
||||
i32* m_moveBuffer;
|
||||
u32 m_moveBufferCount;
|
||||
u32 m_moveBufferCapacity;
|
||||
@ -120,9 +120,9 @@ inline void b3BroadPhase::QueryAABB(T* callback, const b3AABB3& aabb) const
|
||||
}
|
||||
|
||||
template<class T>
|
||||
inline void b3BroadPhase::QueryRay(T* callback, const b3RayCastInput& input) const
|
||||
inline void b3BroadPhase::RayCast(T* callback, const b3RayCastInput& input) const
|
||||
{
|
||||
return m_tree.QueryRay(callback, input);
|
||||
return m_tree.RayCast(callback, input);
|
||||
}
|
||||
|
||||
inline bool operator<(const b3Pair& pair1, const b3Pair& pair2)
|
||||
@ -189,9 +189,9 @@ inline void b3BroadPhase::FindNewPairs(T* callback)
|
||||
}
|
||||
}
|
||||
|
||||
inline void b3BroadPhase::Draw(b3Draw* b3Draw) const
|
||||
inline void b3BroadPhase::Draw(b3Draw* draw) const
|
||||
{
|
||||
m_tree.Draw(b3Draw);
|
||||
m_tree.Draw(draw);
|
||||
}
|
||||
|
||||
#endif
|
@ -16,27 +16,13 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#ifndef B3_COLLISION_H
|
||||
#define B3_COLLISION_H
|
||||
#ifndef B3_DISTANCE_H
|
||||
#define B3_DISTANCE_H
|
||||
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce\collision\shapes\aabb3.h>
|
||||
#include <bounce\collision\shapes\capsule.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
#include <bounce/collision/shapes/aabb3.h>
|
||||
|
||||
// Input for a ray cast query.
|
||||
struct b3RayCastInput
|
||||
{
|
||||
b3Vec3 p1; // first point on segment
|
||||
b3Vec3 p2; // second point on segment
|
||||
float32 maxFraction; // maximum intersection
|
||||
};
|
||||
|
||||
// Output of ray cast query.
|
||||
struct b3RayCastOutput
|
||||
{
|
||||
float32 fraction; // time of intersection
|
||||
b3Vec3 normal; // surface normal of intersection
|
||||
};
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Find the closest point for a point P to a normalized plane.
|
||||
b3Vec3 b3ClosestPointOnPlane(const b3Vec3& P, const b3Plane& plane);
|
||||
@ -59,9 +45,26 @@ void b3ClosestPointsOnNormalizedLines(b3Vec3* C1, b3Vec3* C2,
|
||||
const b3Vec3& P1, const b3Vec3& N1,
|
||||
const b3Vec3& P2, const b3Vec3& N2);
|
||||
|
||||
// Find the closest points of two segments P1-Q1 to a segment P2-Q2.
|
||||
// Find the closest points of two segments.
|
||||
void b3ClosestPointsOnSegments(b3Vec3* C1, b3Vec3* C2,
|
||||
const b3Vec3& P1, const b3Vec3& Q1,
|
||||
const b3Vec3& P2, const b3Vec3& Q2);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Input for a ray cast.
|
||||
struct b3RayCastInput
|
||||
{
|
||||
b3Vec3 p1; // first point on segment
|
||||
b3Vec3 p2; // second point on segment
|
||||
float32 maxFraction; // maximum intersection
|
||||
};
|
||||
|
||||
// Output of a ray cast.
|
||||
struct b3RayCastOutput
|
||||
{
|
||||
float32 fraction; // time of intersection on ray-segment
|
||||
b3Vec3 normal; // surface normal of intersection
|
||||
};
|
||||
|
||||
#endif
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_GJK_H
|
||||
#define B3_GJK_H
|
||||
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
|
||||
class b3GJKProxy;
|
||||
struct b3SimplexCache;
|
||||
@ -30,8 +30,8 @@ struct b3SimplexVertex
|
||||
b3Vec3 pointB; // support vertex on proxy B
|
||||
b3Vec3 point; // minkowski vertex
|
||||
float32 weight; // barycentric coordinate for point
|
||||
u32 indexA; // support A index
|
||||
u32 indexB; // support B index
|
||||
u32 indexA; // support A vertex index
|
||||
u32 indexB; // support B vertex index
|
||||
};
|
||||
|
||||
struct b3Simplex
|
||||
@ -58,6 +58,7 @@ struct b3Simplex
|
||||
// The output of the GJK algorithm.
|
||||
// It contains the closest points between two proxies
|
||||
// and their euclidean distance.
|
||||
// If the distance is zero then the proxies are overlapping.
|
||||
struct b3GJKOutput
|
||||
{
|
||||
b3Vec3 pointA; // closest point on proxy A
|
||||
@ -67,7 +68,6 @@ struct b3GJKOutput
|
||||
};
|
||||
|
||||
// Find the closest points and distance between two proxies.
|
||||
// If the distance is zero then the proxies are overlapping.
|
||||
b3GJKOutput b3GJK(const b3Transform& xfA, const b3GJKProxy& proxyA,
|
||||
const b3Transform& xfB, const b3GJKProxy& proxyB);
|
||||
|
||||
|
@ -19,15 +19,16 @@
|
||||
#ifndef B3_GJK_CACHE_H
|
||||
#define B3_GJK_CACHE_H
|
||||
|
||||
#include <bounce\collision\gjk\gjk.h>
|
||||
#include <bounce/collision/gjk/gjk.h>
|
||||
|
||||
// A simplex used to improve the performance
|
||||
// A cached simplex is used to improve the performance
|
||||
// of the GJK when called more than once.
|
||||
// Make sure to set cache.count to zero before
|
||||
// calling the GJK for the first time.
|
||||
// passing this structure as an argument to GJK when called
|
||||
// for the first time.
|
||||
struct b3SimplexCache
|
||||
{
|
||||
float32 metric; // length or area or volume
|
||||
float32 metric; // distance or area or volume
|
||||
u32 iterations; // number of GJK iterations
|
||||
u16 count; // number of support vertices
|
||||
u8 indexA[4]; // support vertices on proxy A
|
||||
@ -36,11 +37,13 @@ struct b3SimplexCache
|
||||
|
||||
// Find the closest points and distance between two proxies.
|
||||
// Assumes a simplex is given for increasing the performance of
|
||||
// the GJK when called more than once.
|
||||
// the algorithm when called more than once.
|
||||
b3GJKOutput b3GJK(const b3Transform& xfA, const b3GJKProxy& proxyA,
|
||||
const b3Transform& xfB, const b3GJKProxy& proxyB,
|
||||
bool applyRadius, b3SimplexCache* cache);
|
||||
|
||||
// A feature pair contains the vertices of the features associated
|
||||
// with the closest points.
|
||||
struct b3GJKFeaturePair
|
||||
{
|
||||
enum Type
|
||||
@ -57,7 +60,7 @@ struct b3GJKFeaturePair
|
||||
u32 indexB[3]; // vertices on proxy B
|
||||
};
|
||||
|
||||
// Get the vertices of the features that the closest points between two
|
||||
// Identify the vertices of the features that the closest points between two
|
||||
// GJK proxies are contained on given a cached simplex.
|
||||
// The GJK must have been called using the pair of proxies and
|
||||
// cache.count must be < 4, that is, the proxies must not be overlapping.
|
||||
|
@ -19,31 +19,31 @@
|
||||
#ifndef B3_GJK_PROXY_H
|
||||
#define B3_GJK_PROXY_H
|
||||
|
||||
#include <bounce\common\math\vec3.h>
|
||||
#include <bounce/common/math/vec3.h>
|
||||
|
||||
// A GJK proxy encapsulates any convex hull to be used by the GJK.
|
||||
class b3GJKProxy
|
||||
{
|
||||
public:
|
||||
b3GJKProxy() : m_vertices(nullptr), m_count(0), m_radius(0.0f) { }
|
||||
b3GJKProxy() : m_vertices(NULL), m_count(0), m_radius(0.0f) { }
|
||||
|
||||
// Get the number of vertices of this proxy.
|
||||
// Get the number of vertices in this proxy.
|
||||
u32 GetVertexCount() const;
|
||||
|
||||
// Read an indexed vertex from this proxy.
|
||||
const b3Vec3& GetVertex(u32 index) const;
|
||||
|
||||
// Get the support vertex index in a given direction.
|
||||
u32 GetSupportIndex(const b3Vec3& d) const;
|
||||
u32 GetSupportIndex(const b3Vec3& direction) const;
|
||||
|
||||
// Convenience function.
|
||||
// Get the support vertex in a given direction.
|
||||
const b3Vec3& GetSupportVertex(const b3Vec3& d) const;
|
||||
const b3Vec3& GetSupportVertex(const b3Vec3& direction) const;
|
||||
|
||||
b3Vec3 m_buffer[3]; // for childs
|
||||
const b3Vec3* m_vertices;
|
||||
u32 m_count;
|
||||
float32 m_radius;
|
||||
const b3Vec3* m_vertices; // vertices in this proxy
|
||||
u32 m_count; // number of vertices
|
||||
float32 m_radius; // shape radius
|
||||
b3Vec3 m_buffer[3]; // vertices from a child shape
|
||||
};
|
||||
|
||||
inline u32 b3GJKProxy::GetVertexCount() const
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_SAT_H
|
||||
#define B3_SAT_H
|
||||
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
|
||||
struct b3Hull;
|
||||
|
||||
|
@ -16,10 +16,10 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#ifndef B3_EDGE_SAT_H
|
||||
#define B3_EDGE_SAT_H
|
||||
#ifndef B3_EDGE_HULL_SAT_H
|
||||
#define B3_EDGE_HULL_SAT_H
|
||||
|
||||
#include <bounce\collision\sat\sat.h>
|
||||
#include <bounce/collision/sat/sat.h>
|
||||
|
||||
struct b3Capsule;
|
||||
|
||||
|
@ -16,10 +16,10 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#ifndef B3_VERTEX_SAT_H
|
||||
#define B3_VERTEX_SAT_H
|
||||
#ifndef B3_VERTEX_HULL_SAT_H
|
||||
#define B3_VERTEX_HULL_SAT_H
|
||||
|
||||
#include <bounce\collision\sat\sat.h>
|
||||
#include <bounce/collision/sat/sat.h>
|
||||
|
||||
struct b3Sphere;
|
||||
|
||||
|
@ -19,11 +19,15 @@
|
||||
#ifndef B3_AABB_3_H
|
||||
#define B3_AABB_3_H
|
||||
|
||||
#include <bounce\common\math\transform.h>
|
||||
#include <bounce/common/math/transform.h>
|
||||
|
||||
// A min-max representation of a three-dimensional AABB.
|
||||
struct b3AABB3
|
||||
{
|
||||
b3Vec3 m_lower; // lower vertex
|
||||
b3Vec3 m_upper; // upper vertex
|
||||
|
||||
// Get the support vertex in a given direction.
|
||||
b3Vec3 GetSupportVertex(const b3Vec3& direction) const
|
||||
{
|
||||
b3Vec3 support;
|
||||
@ -128,7 +132,7 @@ struct b3AABB3
|
||||
}
|
||||
|
||||
// Test if this AABB contains a point.
|
||||
bool TestPoint(const b3Vec3& point) const
|
||||
bool Contains(const b3Vec3& point) const
|
||||
{
|
||||
return m_lower.x <= point.x && point.x <= m_upper.x &&
|
||||
m_lower.y <= point.y && point.y <= m_upper.y &&
|
||||
@ -138,11 +142,11 @@ struct b3AABB3
|
||||
// Test if this AABB contains another AABB.
|
||||
bool Contains(const b3AABB3& aabb) const
|
||||
{
|
||||
return TestPoint(aabb.m_lower) && TestPoint(aabb.m_upper);
|
||||
return Contains(aabb.m_lower) && Contains(aabb.m_upper);
|
||||
}
|
||||
|
||||
// Test if a ray intersect this AABB.
|
||||
// Output the minimum fraction to derive the intersection point.
|
||||
// Test if a ray intersects this AABB.
|
||||
// Output the minimum and maximum intersection fractions to derive the minimum and maximum intersection points.
|
||||
bool TestRay(const b3Vec3& p1, const b3Vec3& p2, float32 maxFraction, float32& minFraction) const
|
||||
{
|
||||
// Solve segment to slab plane.
|
||||
@ -159,9 +163,10 @@ struct b3AABB3
|
||||
for (u32 i = 0; i < 3; ++i)
|
||||
{
|
||||
float32 numerators[2], denominators[2];
|
||||
//numerators[0] = (-m_lower[i]) - (-p1[i]);
|
||||
|
||||
numerators[0] = p1[i] - m_lower[i];
|
||||
numerators[1] = m_upper[i] - p1[i];
|
||||
|
||||
denominators[0] = -d[i];
|
||||
denominators[1] = d[i];
|
||||
|
||||
@ -215,9 +220,6 @@ struct b3AABB3
|
||||
minFraction = lower;
|
||||
return true;
|
||||
}
|
||||
|
||||
b3Vec3 m_lower; // lower vertex
|
||||
b3Vec3 m_upper; // upper vertex
|
||||
};
|
||||
|
||||
// Compute an AABB that encloses two AABBs.
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_BOX_HULL_H
|
||||
#define B3_BOX_HULL_H
|
||||
|
||||
#include <bounce\collision\shapes\hull.h>
|
||||
#include <bounce/collision/shapes/hull.h>
|
||||
|
||||
struct b3BoxHull : public b3Hull
|
||||
{
|
||||
@ -28,9 +28,10 @@ struct b3BoxHull : public b3Hull
|
||||
b3Face boxFaces[6];
|
||||
b3Plane boxPlanes[6];
|
||||
|
||||
// Does nothing for performance.
|
||||
b3BoxHull() { }
|
||||
|
||||
// Set this box to the unit box.
|
||||
// Set this box to the unit box centered at the origin.
|
||||
void SetIdentity()
|
||||
{
|
||||
boxVertices[0] = b3Vec3(1.0f, 1.0f, -1.0f);
|
||||
@ -91,8 +92,17 @@ struct b3BoxHull : public b3Hull
|
||||
faceCount = 6;
|
||||
}
|
||||
|
||||
// Set this box to the unit box and transform
|
||||
// it. The transform must not contain non-uniform
|
||||
// Set this box from three extents and centered at the origin.
|
||||
void Set(float32 ex, float32 ey, float32 ez)
|
||||
{
|
||||
b3Transform xf;
|
||||
xf.position.SetZero();
|
||||
xf.rotation = b3Diagonal(ex, ey, ez);
|
||||
SetTransform(xf);
|
||||
}
|
||||
|
||||
// Set this box to the unit box and transform it.
|
||||
// Warning: The transform must not contain non-uniform
|
||||
// scaling!
|
||||
void SetTransform(const b3Transform& T)
|
||||
{
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_CAPSULE_H
|
||||
#define B3_CAPSULE_H
|
||||
|
||||
#include <bounce\common\math\vec3.h>
|
||||
#include <bounce/common/math/vec3.h>
|
||||
|
||||
struct b3Capsule
|
||||
{
|
||||
@ -27,7 +27,6 @@ struct b3Capsule
|
||||
float32 radius;
|
||||
|
||||
const b3Vec3& GetVertex(u32 index) const;
|
||||
|
||||
u32 GetSupportVertex(const b3Vec3& direction) const;
|
||||
};
|
||||
|
||||
@ -36,9 +35,9 @@ inline const b3Vec3& b3Capsule::GetVertex(u32 index) const
|
||||
return vertices[index];
|
||||
}
|
||||
|
||||
inline u32 b3Capsule::GetSupportVertex(const b3Vec3& direction) const
|
||||
inline u32 b3Capsule::GetSupportVertex(const b3Vec3& d) const
|
||||
{
|
||||
if (b3Dot(direction, vertices[0]) > b3Dot(direction, vertices[1]))
|
||||
if (b3Dot(d, vertices[0]) > b3Dot(d, vertices[1]))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_HULL_H
|
||||
#define B3_HULL_H
|
||||
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
|
||||
struct b3Face
|
||||
{
|
||||
@ -52,14 +52,14 @@ struct b3Hull
|
||||
|
||||
u32 GetSupportVertex(const b3Vec3& direction) const;
|
||||
u32 GetSupportFace(const b3Vec3& direction) const;
|
||||
|
||||
b3Plane GetEdgeSidePlane(u32 index) const;
|
||||
|
||||
u32 GetSize() const;
|
||||
void Validate() const;
|
||||
void Validate(const b3Face* face) const;
|
||||
void Validate(const b3HalfEdge* edge) const;
|
||||
};
|
||||
|
||||
#include <bounce\collision\shapes\hull.inl>
|
||||
#include <bounce/collision/shapes/hull.inl>
|
||||
|
||||
#endif
|
@ -19,8 +19,8 @@
|
||||
#ifndef B3_MESH_H
|
||||
#define B3_MESH_H
|
||||
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce\collision\trees\static_tree.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
#include <bounce/collision/trees/static_tree.h>
|
||||
|
||||
struct b3Mesh
|
||||
{
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_SPHERE_H
|
||||
#define B3_SPHERE_H
|
||||
|
||||
#include <bounce\common\math\vec3.h>
|
||||
#include <bounce/common/math/vec3.h>
|
||||
|
||||
struct b3Sphere
|
||||
{
|
||||
@ -27,7 +27,6 @@ struct b3Sphere
|
||||
float32 radius;
|
||||
|
||||
const b3Vec3& GetVertex(u32 index) const;
|
||||
|
||||
u32 GetSupportVertex(const b3Vec3& direction) const;
|
||||
};
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_TRIANGLE_HULL_H
|
||||
#define B3_TRIANGLE_HULL_H
|
||||
|
||||
#include <bounce\collision\shapes\hull.h>
|
||||
#include <bounce/collision/shapes/hull.h>
|
||||
|
||||
struct b3TriangleHull : public b3Hull
|
||||
{
|
||||
@ -37,9 +37,7 @@ struct b3TriangleHull : public b3Hull
|
||||
|
||||
void Set(const b3Vec3& A, const b3Vec3& B, const b3Vec3& C)
|
||||
{
|
||||
const float32 kInv3 = 1.0f / 3.0f;
|
||||
|
||||
centroid = kInv3 * (A + B + C);
|
||||
centroid = (A + B + C) / 3.0f;
|
||||
|
||||
triangleVertices[0] = A;
|
||||
triangleVertices[1] = B;
|
||||
|
@ -19,21 +19,21 @@
|
||||
#ifndef B3_DYNAMIC_TREE_H
|
||||
#define B3_DYNAMIC_TREE_H
|
||||
|
||||
#include <bounce\common\draw.h>
|
||||
#include <bounce\common\template\stack.h>
|
||||
#include <bounce\collision\shapes\aabb3.h>
|
||||
#include <bounce\collision\distance.h>
|
||||
#include <bounce/common/draw.h>
|
||||
#include <bounce/common/template/stack.h>
|
||||
#include <bounce/collision/shapes/aabb3.h>
|
||||
#include <bounce/collision/distance.h>
|
||||
|
||||
#define NULL_NODE (-1)
|
||||
|
||||
// An AABB tree for dynamic AABBs.
|
||||
// AABB tree for dynamic AABBs.
|
||||
class b3DynamicTree
|
||||
{
|
||||
public :
|
||||
b3DynamicTree();
|
||||
~b3DynamicTree();
|
||||
|
||||
// Insert a node to the tree and return its ID.
|
||||
// Insert a node into the tree and return its ID.
|
||||
i32 InsertNode(const b3AABB3& aabb, void* userData);
|
||||
|
||||
// Remove a node from the tree.
|
||||
@ -48,7 +48,7 @@ public :
|
||||
// Get the data associated with a given proxy.
|
||||
void* GetUserData(i32 proxyId) const;
|
||||
|
||||
// Check if two aabbs of this tree are overlapping.
|
||||
// Check if two aabbs in this tree are overlapping.
|
||||
bool TestOverlap(i32 proxy1, i32 proxy2) const;
|
||||
|
||||
// Keep reporting the client callback the AABBs that are overlapping with
|
||||
@ -61,22 +61,24 @@ public :
|
||||
// the given ray. The client callback must return the new intersection fraction.
|
||||
// If the fraction == 0 then the query is cancelled immediately.
|
||||
template<class T>
|
||||
void QueryRay(T* callback, const b3RayCastInput& input) const;
|
||||
void RayCast(T* callback, const b3RayCastInput& input) const;
|
||||
|
||||
// Validate a given node of this tree.
|
||||
void Validate(i32 node) const;
|
||||
|
||||
// Draw this tree.
|
||||
void Draw(b3Draw* b3Draw) const;
|
||||
void Draw(b3Draw* draw) const;
|
||||
private :
|
||||
struct b3Node
|
||||
{
|
||||
// Is this node a leaf?
|
||||
bool IsLeaf() const
|
||||
{
|
||||
return child1 == NULL_NODE; //or child 2 == NULL_NODE, or height == 0.
|
||||
//A node is a leaf if child 2 == NULL_NODE or height == 0.
|
||||
return child1 == NULL_NODE;
|
||||
}
|
||||
|
||||
// The (enlarged) AABB of this node.
|
||||
// The fattened node AABB.
|
||||
b3AABB3 aabb;
|
||||
|
||||
// The associated user data.
|
||||
@ -91,31 +93,30 @@ private :
|
||||
i32 child1;
|
||||
i32 child2;
|
||||
|
||||
// leaf = 0, free node = -1
|
||||
// leaf if 0, free node if -1
|
||||
i32 height;
|
||||
};
|
||||
|
||||
// Insert a allocated (leaf) node into the tree.
|
||||
// Insert a node into the tree.
|
||||
void InsertLeaf(i32 node);
|
||||
|
||||
// Remove a allocated node from the tree.
|
||||
// Remove a node from the tree.
|
||||
void RemoveLeaf(i32 node);
|
||||
|
||||
// Rebuild the tree hierarchy starting from the given node.
|
||||
// Rebuild the hierarchy starting from the given node.
|
||||
void WalkBackNodeAndCombineVolumes(i32 node);
|
||||
|
||||
// Perform a basic surface area heuristic search to find the best
|
||||
// node that can be merged with a given AABB.
|
||||
i32 HeuristicSearch(const b3AABB3& leafAABB) const;
|
||||
// Find the best node that can be merged with a given AABB.
|
||||
i32 FindBest(const b3AABB3& aabb) const;
|
||||
|
||||
// Peel a node from the free list and insert into the node array.
|
||||
// Allocate a new node if necessary. The function returns the new node index.
|
||||
i32 AllocateNode();
|
||||
|
||||
// Free a node (not destroy) from the node pool and add it to the free list.
|
||||
// Free a node from the node pool and add it to the free list.
|
||||
void FreeNode(i32 node);
|
||||
|
||||
// Make a node available for the next allocation request.
|
||||
// Make a node available for the next allocation.
|
||||
void AddToFreeList(i32 node);
|
||||
|
||||
// The root of this tree.
|
||||
@ -128,13 +129,6 @@ private :
|
||||
i32 m_freeList;
|
||||
};
|
||||
|
||||
inline bool b3DynamicTree::TestOverlap(i32 proxy1, i32 proxy2) const
|
||||
{
|
||||
B3_ASSERT(proxy1 < m_nodeCount);
|
||||
B3_ASSERT(proxy2 < m_nodeCount);
|
||||
return b3TestOverlap(m_nodes[proxy1].aabb, m_nodes[proxy2].aabb);
|
||||
}
|
||||
|
||||
inline const b3AABB3& b3DynamicTree::GetAABB(i32 proxyId) const
|
||||
{
|
||||
B3_ASSERT(proxyId < m_nodeCount);
|
||||
@ -147,6 +141,13 @@ inline void* b3DynamicTree::GetUserData(i32 proxyId) const
|
||||
return m_nodes[proxyId].userData;
|
||||
}
|
||||
|
||||
inline bool b3DynamicTree::TestOverlap(i32 proxy1, i32 proxy2) const
|
||||
{
|
||||
B3_ASSERT(proxy1 < m_nodeCount);
|
||||
B3_ASSERT(proxy2 < m_nodeCount);
|
||||
return b3TestOverlap(m_nodes[proxy1].aabb, m_nodes[proxy2].aabb);
|
||||
}
|
||||
|
||||
template<class T>
|
||||
inline void b3DynamicTree::QueryAABB(T* callback, const b3AABB3& aabb) const
|
||||
{
|
||||
@ -184,14 +185,14 @@ inline void b3DynamicTree::QueryAABB(T* callback, const b3AABB3& aabb) const
|
||||
}
|
||||
|
||||
template<class T>
|
||||
inline void b3DynamicTree::QueryRay(T* callback, const b3RayCastInput& input) const
|
||||
inline void b3DynamicTree::RayCast(T* callback, const b3RayCastInput& input) const
|
||||
{
|
||||
b3Vec3 p1 = input.p1;
|
||||
b3Vec3 p2 = input.p2;
|
||||
b3Vec3 d = p2 - p1;
|
||||
float32 maxFraction = input.maxFraction;
|
||||
|
||||
// Ensure non-degeneracy.
|
||||
// Ensure non-degenerate segment.
|
||||
B3_ASSERT(b3Dot(d, d) > B3_EPSILON * B3_EPSILON);
|
||||
|
||||
b3Stack<i32, 256> stack;
|
||||
|
@ -19,28 +19,28 @@
|
||||
#ifndef B3_STATIC_TREE_H
|
||||
#define B3_STATIC_TREE_H
|
||||
|
||||
#include <bounce\common\draw.h>
|
||||
#include <bounce\common\template\stack.h>
|
||||
#include <bounce\collision\shapes\aabb3.h>
|
||||
#include <bounce\collision\distance.h>
|
||||
#include <bounce/common/draw.h>
|
||||
#include <bounce/common/template/stack.h>
|
||||
#include <bounce/collision/shapes/aabb3.h>
|
||||
#include <bounce/collision/distance.h>
|
||||
|
||||
#define NULL_NODE_S (0xFFFFFFFF)
|
||||
|
||||
// An AABB tree for static AABBs.
|
||||
// AABB tree for static AABBs.
|
||||
class b3StaticTree
|
||||
{
|
||||
public:
|
||||
b3StaticTree();
|
||||
~b3StaticTree();
|
||||
|
||||
// Build the tree.
|
||||
// Output a sorted index array.
|
||||
// Build this tree from a list of AABBs and the list
|
||||
// of indices to the AABBs.
|
||||
void Build(u32* indices, const b3AABB3* aabbs, u32 count);
|
||||
|
||||
// Get the AABB of a given proxy.
|
||||
const b3AABB3& GetAABB(u32 proxyId) const;
|
||||
|
||||
// Get the index associated of a given proxy.
|
||||
// Get the user data associated with a given proxy.
|
||||
u32 GetUserData(u32 proxyId) const;
|
||||
|
||||
// Report the client callback all AABBs that are overlapping with
|
||||
@ -53,10 +53,10 @@ public:
|
||||
// the given ray. The client callback must return the new intersection fraction
|
||||
// (real). If the fraction == 0 then the query is cancelled immediatly.
|
||||
template<class T>
|
||||
void QueryRay(T* callback, const b3RayCastInput& input) const;
|
||||
void RayCast(T* callback, const b3RayCastInput& input) const;
|
||||
|
||||
// Draw the hierarchy.
|
||||
void Draw(b3Draw* b3Draw) const;
|
||||
// Draw this tree.
|
||||
void Draw(b3Draw* draw) const;
|
||||
private :
|
||||
// A node in a static tree.
|
||||
struct b3Node
|
||||
@ -69,13 +69,14 @@ private :
|
||||
u32 index;
|
||||
};
|
||||
|
||||
// Check if a node is a leaf node
|
||||
// Is this node a leaf?
|
||||
bool IsLeaf() const
|
||||
{
|
||||
return child1 == NULL_NODE_S;
|
||||
}
|
||||
};
|
||||
|
||||
// The nodes of this tree stored in an array.
|
||||
u32 m_nodeCount;
|
||||
b3Node* m_nodes;
|
||||
};
|
||||
@ -110,6 +111,11 @@ inline void b3StaticTree::QueryAABB(T* callback, const b3AABB3& aabb) const
|
||||
{
|
||||
u32 nodeIndex = stack.Top();
|
||||
|
||||
if (nodeIndex == NULL_NODE_S)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
stack.Pop();
|
||||
|
||||
const b3Node* node = m_nodes + nodeIndex;
|
||||
@ -133,7 +139,7 @@ inline void b3StaticTree::QueryAABB(T* callback, const b3AABB3& aabb) const
|
||||
}
|
||||
|
||||
template<class T>
|
||||
inline void b3StaticTree::QueryRay(T* callback, const b3RayCastInput& input) const
|
||||
inline void b3StaticTree::RayCast(T* callback, const b3RayCastInput& input) const
|
||||
{
|
||||
if (m_nodeCount == 0)
|
||||
{
|
||||
@ -145,7 +151,7 @@ inline void b3StaticTree::QueryRay(T* callback, const b3RayCastInput& input) con
|
||||
b3Vec3 d = p2 - p1;
|
||||
float32 maxFraction = input.maxFraction;
|
||||
|
||||
// Ensure non-degeneracy.
|
||||
// Ensure non-degenerate segment.
|
||||
B3_ASSERT(b3Dot(d, d) > B3_EPSILON * B3_EPSILON);
|
||||
|
||||
u32 root = 0;
|
||||
|
@ -19,10 +19,10 @@
|
||||
#ifndef B3_DRAW_H
|
||||
#define B3_DRAW_H
|
||||
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce\collision\shapes\aabb3.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
#include <bounce/collision/shapes/aabb3.h>
|
||||
|
||||
// Color channels used by the debug b3Draw interface.
|
||||
// Color channels used by the debug draw interface.
|
||||
struct b3Color
|
||||
{
|
||||
b3Color() { }
|
||||
@ -32,11 +32,11 @@ struct b3Color
|
||||
float32 r, g, b, a;
|
||||
};
|
||||
|
||||
// Implement this interface and set to a world so it can b3Draw the physics entities.
|
||||
// Implement this interface and set to a world so it can draw the physics entities.
|
||||
class b3Draw
|
||||
{
|
||||
public :
|
||||
// Bit flags to tell the world what needs to be b3Draw.
|
||||
// Bit flags to tell the world what needs to be draw.
|
||||
enum b3Flags
|
||||
{
|
||||
e_shapesFlag = 0x0001,
|
||||
@ -88,10 +88,10 @@ public :
|
||||
// Draw a AABB.
|
||||
virtual void DrawAABB(const b3AABB3& aabb, const b3Color& color) = 0;
|
||||
|
||||
// Draw a b3Transform.
|
||||
// Draw a transform.
|
||||
virtual void DrawTransform(const b3Transform& xf) = 0;
|
||||
|
||||
// Debug b3Draw flags.
|
||||
// Debug draw flags.
|
||||
u32 m_flags;
|
||||
};
|
||||
|
||||
|
@ -19,8 +19,8 @@
|
||||
#ifndef B3_GEOMETRY_H
|
||||
#define B3_GEOMETRY_H
|
||||
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce\common\math\transform.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
#include <bounce/common/math/transform.h>
|
||||
|
||||
// A triangle in indexed form.
|
||||
struct b3Triangle
|
||||
@ -106,13 +106,13 @@ inline b3Plane b3Mul(const b3Transform& T, const b3Plane& plane)
|
||||
return b3Plane(normal, plane.offset + b3Dot(normal, T.position));
|
||||
}
|
||||
|
||||
// Compute the distance between a point and a plane.
|
||||
inline float32 b3Distance(const b3Vec3& P, const b3Plane& plane)
|
||||
{
|
||||
return b3Dot(plane.normal, P) - plane.offset;
|
||||
}
|
||||
|
||||
// Project a point onto a plane.
|
||||
// The plane must be normalized.
|
||||
// Project a point onto a normal plane.
|
||||
inline b3Vec3 b3Project(const b3Vec3& P, const b3Plane& plane)
|
||||
{
|
||||
float32 fraction = b3Distance(P, plane);
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_MAT_H
|
||||
#define B3_MAT_H
|
||||
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
|
||||
// A vector stored in column-major order.
|
||||
template<u32 n>
|
||||
@ -79,7 +79,10 @@ struct b3Mat
|
||||
};
|
||||
|
||||
// Solve Ax = b.
|
||||
// Warning: Make sure to pass a copy of A to the function. It will be invalidated.
|
||||
// It doesn't compute the inverse.
|
||||
// Therefore, is more efficient.
|
||||
// Returns false if the matrix is singular.
|
||||
// Warning: Make sure to pass a copy of the original matrix to the function. A will be invalidated.
|
||||
bool b3Solve(float32* b, float32* A, u32 n);
|
||||
|
||||
#endif
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_MAT_22_H
|
||||
#define B3_MAT_22_H
|
||||
|
||||
#include <bounce\common\math\vec2.h>
|
||||
#include <bounce/common/math/vec2.h>
|
||||
|
||||
// A 2-by-2 matrix stored in column-major order.
|
||||
struct b3Mat22
|
||||
@ -27,7 +27,7 @@ struct b3Mat22
|
||||
// Does nothing for performance.
|
||||
b3Mat22() { }
|
||||
|
||||
// Set this matrix from two vector elements.
|
||||
// Set this matrix from two vectors.
|
||||
b3Mat22(const b3Vec2& _x, const b3Vec2& _y) : x(_x), y(_y) { }
|
||||
|
||||
// Solve Ax = b.
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_MAT_33_H
|
||||
#define B3_MAT_33_H
|
||||
|
||||
#include <bounce\common\math\vec3.h>
|
||||
#include <bounce/common/math/vec3.h>
|
||||
|
||||
// A 3-by-3 matrix stored in column-major order.
|
||||
struct b3Mat33
|
||||
@ -27,7 +27,7 @@ struct b3Mat33
|
||||
// Does nothing for performance.
|
||||
b3Mat33() { }
|
||||
|
||||
// Set this matrix from three elements.
|
||||
// Set this matrix from three column vectors.
|
||||
b3Mat33(const b3Vec3& _x, const b3Vec3& _y, const b3Vec3& _z) : x(_x), y(_y), z(_z) { }
|
||||
|
||||
// Read an indexed column vector from this matrix.
|
||||
@ -42,6 +42,12 @@ struct b3Mat33
|
||||
return (&x)[i];
|
||||
}
|
||||
|
||||
// Read an indexed element from this matrix.
|
||||
float32 operator()(u32 i, u32 j) const
|
||||
{
|
||||
return (&x.x)[i + 3 * j];
|
||||
}
|
||||
|
||||
// Add a matrix to this matrix.
|
||||
void operator+=(const b3Mat33& B)
|
||||
{
|
||||
@ -72,11 +78,6 @@ struct b3Mat33
|
||||
// Returns the zero vector if the matrix is singular.
|
||||
b3Vec3 Solve(const b3Vec3& b) const;
|
||||
|
||||
float32 operator()(u32 i, u32 j) const
|
||||
{
|
||||
return (&x.x)[i + 3 * j];
|
||||
}
|
||||
|
||||
b3Vec3 x, y, z;
|
||||
};
|
||||
|
||||
@ -134,7 +135,7 @@ inline b3Mat33 b3Mul(const b3Mat33& A, const b3Mat33& B)
|
||||
|
||||
// Multiply the transpose of a matrix times a vector. If
|
||||
// the matrix represents a rotation frame this transforms the
|
||||
// vector from one frame to another (inverse b3Transform).
|
||||
// vector from one frame to another (inverse transform).
|
||||
inline b3Vec3 b3MulT(const b3Mat33& A, const b3Vec3& v)
|
||||
{
|
||||
return b3Vec3(b3Dot(A.x, v), b3Dot(A.y, v), b3Dot(A.z, v));
|
||||
|
@ -20,7 +20,7 @@
|
||||
#define B3_MATH_H
|
||||
|
||||
#include <cmath>
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce/common/settings.h>
|
||||
|
||||
inline bool b3IsValid(float32 fx)
|
||||
{
|
||||
@ -30,13 +30,13 @@ inline bool b3IsValid(float32 fx)
|
||||
|
||||
inline float32 b3Sqrt(float32 x)
|
||||
{
|
||||
return sqrtf(x);
|
||||
return std::sqrt(x);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline T b3Abs(T x)
|
||||
{
|
||||
return abs(x);
|
||||
return std::abs(x);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
|
@ -19,10 +19,10 @@
|
||||
#ifndef B3_QUAT_H
|
||||
#define B3_QUAT_H
|
||||
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce\common\math\mat33.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
#include <bounce/common/math/mat33.h>
|
||||
|
||||
// A quaternion represents an orientation with 4 real numbers.
|
||||
// A quaternion can represent an orientation with 4 scalars.
|
||||
struct b3Quat
|
||||
{
|
||||
// Default constructor does nothing for performance.
|
||||
@ -157,13 +157,13 @@ inline b3Quat b3Normalize(const b3Quat& q)
|
||||
return b3Quat(0.0f, 0.0f, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
// Compute the dot poduct of two quaternions.
|
||||
// Perform the dot poduct of two quaternions.
|
||||
inline float b3Dot(const b3Quat& a, const b3Quat& b)
|
||||
{
|
||||
return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
|
||||
}
|
||||
|
||||
// Compute the conjugate of a quaternion.
|
||||
// Conjugate of a quaternion.
|
||||
inline b3Quat b3Conjugate(const b3Quat& q)
|
||||
{
|
||||
return b3Quat(-q.x, -q.y, -q.z, q.w);
|
||||
@ -230,7 +230,6 @@ inline b3Quat b3Slerp(const b3Quat& a, const b3Quat& b, float32 fraction)
|
||||
b3Quat q1 = sin(w1 * angle) * a;
|
||||
b3Quat q2 = sin(w2 * angle) * b2;
|
||||
float32 invSin = 1.0f / sine;
|
||||
|
||||
return invSin * (q1 + q2);
|
||||
}
|
||||
|
||||
|
@ -19,10 +19,10 @@
|
||||
#ifndef B3_TRANSFORM_H
|
||||
#define B3_TRANSFORM_H
|
||||
|
||||
#include <bounce\common\math\mat33.h>
|
||||
#include <bounce\common\math\quat.h>
|
||||
#include <bounce/common/math/mat33.h>
|
||||
#include <bounce/common/math/quat.h>
|
||||
|
||||
// A b3Transform represents a rigid frame.
|
||||
// A transform represents a rigid frame.
|
||||
// It has a translation representing a position
|
||||
// and a rotation representing an orientation.
|
||||
struct b3Transform
|
||||
@ -30,7 +30,7 @@ struct b3Transform
|
||||
// Default ctor does nothing for performance.
|
||||
b3Transform() { }
|
||||
|
||||
// Set this b3Transform from a translation vector and an orientation
|
||||
// Set this transform from a translation vector and an orientation
|
||||
// quaternion.
|
||||
b3Transform(const b3Vec3& p, const b3Quat& q)
|
||||
{
|
||||
@ -38,7 +38,7 @@ struct b3Transform
|
||||
rotation = b3ConvertQuatToRot(q);
|
||||
}
|
||||
|
||||
// Set this b3Transform to the identity.
|
||||
// Set this transform to the identity.
|
||||
void SetIdentity()
|
||||
{
|
||||
position.SetZero();
|
||||
@ -61,7 +61,7 @@ struct b3Sweep
|
||||
b3Vec3 worldCenter; // world center
|
||||
b3Quat orientation; // world orientation
|
||||
|
||||
// Get this sweep b3Transform at a given time between [0, 1]
|
||||
// Get this sweep transform at a given time between [0, 1]
|
||||
b3Transform GetTransform(float32 t) const;
|
||||
|
||||
// Advance to a new initial state.
|
||||
@ -90,7 +90,7 @@ inline void b3Sweep::Advance(float32 t)
|
||||
t0 = t;
|
||||
}
|
||||
|
||||
// Multiply a b3Transform times a vector. If the b3Transform
|
||||
// Multiply a transform times a vector. If the transform
|
||||
// represents a frame this returns the vector in terms
|
||||
// of the frame.
|
||||
inline b3Vec3 operator*(const b3Transform& T, const b3Vec3& v)
|
||||
@ -98,7 +98,7 @@ inline b3Vec3 operator*(const b3Transform& T, const b3Vec3& v)
|
||||
return b3Mul(T.rotation, v) + T.position;
|
||||
}
|
||||
|
||||
// Multiply a b3Transform times another b3Transform (composed b3Transform).
|
||||
// Multiply a transform times another transform (composed transform).
|
||||
// [A y][B x] = [AB Ax+y]
|
||||
// [0 1][0 1] [0 1 ]
|
||||
inline b3Transform operator*(const b3Transform& A, const b3Transform& B)
|
||||
@ -109,13 +109,13 @@ inline b3Transform operator*(const b3Transform& A, const b3Transform& B)
|
||||
return C;
|
||||
}
|
||||
|
||||
// Multiply a b3Transform times a vector.
|
||||
// Multiply a transform times a vector.
|
||||
inline b3Vec3 b3Mul(const b3Transform& T, const b3Vec3& v)
|
||||
{
|
||||
return b3Mul(T.rotation, v) + T.position;
|
||||
}
|
||||
|
||||
// Multiply a b3Transform times another b3Transform.
|
||||
// Multiply a transform times another transform.
|
||||
// [A y][B x] = [AB Ax+y]
|
||||
// [0 1][0 1] [0 1 ]
|
||||
inline b3Transform b3Mul(const b3Transform& A, const b3Transform& B)
|
||||
@ -126,8 +126,8 @@ inline b3Transform b3Mul(const b3Transform& A, const b3Transform& B)
|
||||
return C;
|
||||
}
|
||||
|
||||
// Multiply the transpose of one b3Transform (inverse
|
||||
// b3Transform) times another b3Transform (composed b3Transform).
|
||||
// Multiply the transpose of one transform (inverse
|
||||
// transform) times another transform (composed transform).
|
||||
//[A^-1 -A^-1*y][B x] = [A^-1*B A^-1(x-y)]
|
||||
//[0 1 ][0 1] [0 1 ]
|
||||
inline b3Transform b3MulT(const b3Transform& A, const b3Transform& B)
|
||||
@ -138,9 +138,9 @@ inline b3Transform b3MulT(const b3Transform& A, const b3Transform& B)
|
||||
return C;
|
||||
}
|
||||
|
||||
// Multiply the transpose of a b3Transform times a vector.
|
||||
// If the b3Transform represents a frame then this transforms
|
||||
// the vector from one frame to another (inverse b3Transform).
|
||||
// Multiply the transpose of a transform times a vector.
|
||||
// If the transform represents a frame then this transforms
|
||||
// the vector from one frame to another (inverse transform).
|
||||
//[A^-1 -A^-1*y][x] = A^-1*x - A^-1*y = A^-1 * (x - y)
|
||||
//[0 1 ][1]
|
||||
inline b3Vec3 b3MulT(const b3Transform& A, const b3Vec3& v)
|
||||
@ -148,7 +148,7 @@ inline b3Vec3 b3MulT(const b3Transform& A, const b3Vec3& v)
|
||||
return b3MulT(A.rotation, v - A.position);
|
||||
}
|
||||
|
||||
// Inverse b3Transform.
|
||||
// Inverse transform.
|
||||
inline b3Transform b3Inverse(const b3Transform& T)
|
||||
{
|
||||
b3Transform B;
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_VEC2_H
|
||||
#define B3_VEC2_H
|
||||
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
|
||||
// A 2D column vector.
|
||||
struct b3Vec2
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_VEC_3_H
|
||||
#define B3_VEC_3_H
|
||||
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
|
||||
// A 3D column vector.
|
||||
struct b3Vec3
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_BLOCK_POOL_H
|
||||
#define B3_BLOCK_POOL_H
|
||||
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce/common/settings.h>
|
||||
|
||||
// Number of blocks per chunk.
|
||||
const u32 b3_blockCount = 32;
|
||||
|
@ -19,13 +19,13 @@
|
||||
#ifndef B3_STACK_ALLOCATOR_H
|
||||
#define B3_STACK_ALLOCATOR_H
|
||||
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce/common/settings.h>
|
||||
|
||||
// Allocate 10 MiB from the stack.
|
||||
// Increase as you want.
|
||||
const u32 b3_maxStackSize = B3_MiB(10);
|
||||
|
||||
// An stack allocator.
|
||||
// A stack allocator.
|
||||
class b3StackAllocator
|
||||
{
|
||||
public :
|
||||
|
@ -60,7 +60,7 @@ typedef float float32;
|
||||
#define B3_AABB_MULTIPLIER (2.0f)
|
||||
|
||||
// Collision and constraint tolerance.
|
||||
#define B3_LINEAR_SLOP (0.005f)
|
||||
#define B3_LINEAR_SLOP (0.01f)
|
||||
|
||||
// Collision and constraint tolerance.
|
||||
#define B3_ANGULAR_SLOP (2.0f / 180.0f * B3_PI)
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_ARRAY_POD_H
|
||||
#define B3_ARRAY_POD_H
|
||||
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce/common/settings.h>
|
||||
|
||||
// An array for bytes (POD).
|
||||
template <typename T>
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_LIST_H
|
||||
#define B3_LIST_H
|
||||
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce/common/settings.h>
|
||||
|
||||
// A singly-linked list.
|
||||
template<class T>
|
||||
@ -28,7 +28,7 @@ class b3List1
|
||||
public:
|
||||
b3List1()
|
||||
{
|
||||
m_head = nullptr;
|
||||
m_head = NULL;
|
||||
m_count = 0;
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ class b3List2
|
||||
public:
|
||||
b3List2()
|
||||
{
|
||||
m_head = nullptr;
|
||||
m_head = NULL;
|
||||
m_count = 0;
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ public:
|
||||
|
||||
void PushFront(T* link)
|
||||
{
|
||||
link->m_prev = nullptr;
|
||||
link->m_prev = NULL;
|
||||
link->m_next = m_head;
|
||||
if (m_head)
|
||||
{
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_OBJECT_ARRAY_H
|
||||
#define B3_OBJECT_ARRAY_H
|
||||
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce/common/settings.h>
|
||||
|
||||
// An array for objects.
|
||||
template <typename T>
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_STACK_H
|
||||
#define B3_STACK_H
|
||||
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce/common/settings.h>
|
||||
|
||||
// A growable stack for plain-old-data (POD).
|
||||
template <typename T, u32 N>
|
||||
@ -39,7 +39,7 @@ public:
|
||||
{
|
||||
b3Free(m_elements);
|
||||
}
|
||||
m_elements = nullptr;
|
||||
m_elements = NULL;
|
||||
}
|
||||
|
||||
const T& Top() const
|
||||
|
@ -19,45 +19,195 @@
|
||||
#ifndef B3_TIME_H
|
||||
#define B3_TIME_H
|
||||
|
||||
#include <bounce\common\settings.h>
|
||||
#include <bounce/common/settings.h>
|
||||
|
||||
#define B3_WINDOWS 1
|
||||
#define B3_MAC 2
|
||||
#define B3_UNIX 3
|
||||
|
||||
#if defined (_WIN32)
|
||||
#define B3_PLATFORM B3_WINDOWS
|
||||
#elif defined( __APPLE__ )
|
||||
#define B3_PLATFORM B3_MAC
|
||||
#else
|
||||
#define B3_PLATFORM B3_UNIX
|
||||
#endif
|
||||
|
||||
#if B3_PLATFORM == B3_WINDOWS
|
||||
|
||||
#include <Windows.h>
|
||||
|
||||
// A timer class that accumulates time.
|
||||
// Usefull for measuring elapsed times of
|
||||
// sections of code.
|
||||
// Usefull for measuring elapsed times between code sections.
|
||||
class b3Time
|
||||
{
|
||||
public :
|
||||
b3Time();
|
||||
public:
|
||||
b3Time()
|
||||
{
|
||||
LARGE_INTEGER c;
|
||||
QueryPerformanceCounter(&c);
|
||||
m_c0 = c.QuadPart;
|
||||
m_t0 = 0.0;
|
||||
m_t = 0.0;
|
||||
}
|
||||
|
||||
// Get the accumulated time in miliseconds
|
||||
// from this timer.
|
||||
float64 GetCurMilis() const;
|
||||
// Get the accumulated time in miliseconds from this timer.
|
||||
float64 GetCurrentMilis() const
|
||||
{
|
||||
return m_t;
|
||||
}
|
||||
|
||||
// Get the elapsed time since this timer was updated.
|
||||
float64 GetElapsedMilis() const;
|
||||
float64 GetElapsedMilis() const
|
||||
{
|
||||
return m_t - m_t0;
|
||||
}
|
||||
|
||||
// Add the elapsed time since this function
|
||||
// was called to this timer.
|
||||
void Update();
|
||||
// Add the elapsed time since this function was called to this timer.
|
||||
void Update()
|
||||
{
|
||||
static float64 inv_frequency = 0.0;
|
||||
if (inv_frequency == 0.0)
|
||||
{
|
||||
LARGE_INTEGER c;
|
||||
QueryPerformanceFrequency(&c);
|
||||
|
||||
float64 cycles_per_s = float64(c.QuadPart);
|
||||
float64 s_per_cycle = 1.0 / cycles_per_s;
|
||||
float64 ms_per_cycle = 1000.0 * s_per_cycle;
|
||||
inv_frequency = ms_per_cycle;
|
||||
}
|
||||
|
||||
LARGE_INTEGER c;
|
||||
QueryPerformanceCounter(&c);
|
||||
|
||||
float64 dt = inv_frequency * float64(c.QuadPart - m_c0);
|
||||
m_c0 = c.QuadPart;
|
||||
Add(dt);
|
||||
}
|
||||
|
||||
// Add time to this timer.
|
||||
void Add(float64 dt)
|
||||
{
|
||||
m_t0 = m_t;
|
||||
m_t += dt;
|
||||
}
|
||||
|
||||
// Add a given ammout of time to this timer.
|
||||
void UpdateBy(float64 dt);
|
||||
private:
|
||||
static float64 m_invFrequency;
|
||||
|
||||
u64 m_lastRealTime;
|
||||
float64 m_lastTime;
|
||||
float64 m_curTime;
|
||||
u64 m_c0;
|
||||
float64 m_t0;
|
||||
float64 m_t;
|
||||
};
|
||||
|
||||
inline float64 b3Time::GetCurMilis() const
|
||||
{
|
||||
return m_curTime;
|
||||
}
|
||||
#elif B3_PLATFORM == B3_MAC
|
||||
|
||||
inline float64 b3Time::GetElapsedMilis() const
|
||||
#include <mach/mach_time.h>
|
||||
|
||||
// A timer class that accumulates time.
|
||||
// Usefull for measuring elapsed times between code sections.
|
||||
class b3Time
|
||||
{
|
||||
return m_curTime - m_lastTime;
|
||||
}
|
||||
public:
|
||||
b3Time()
|
||||
{
|
||||
m_c0 = mach_absolute_time();
|
||||
m_t0 = 0.0;
|
||||
m_t = 0.0;
|
||||
}
|
||||
|
||||
// Get the accumulated time in miliseconds from this timer.
|
||||
double GetCurrentMilis() const
|
||||
{
|
||||
return m_t;
|
||||
}
|
||||
|
||||
// Get the elapsed time since this timer was updated.
|
||||
double GetElapsedMilis() const
|
||||
{
|
||||
return m_t - m_t0;
|
||||
}
|
||||
|
||||
// Add the elapsed time since this function was called to this timer.
|
||||
void Update()
|
||||
{
|
||||
static double inv_frequency = 0.0;
|
||||
if (inv_frequency == 0.0)
|
||||
{
|
||||
mach_timebase_info_data_t info;
|
||||
mach_timebase_info(&info);
|
||||
inv_frequency = double(info.numer) / (double(info.denom) * 1.0e6);
|
||||
}
|
||||
|
||||
uint64_t c = mach_absolute_time();
|
||||
double dt = inv_frequency * (double)(c - m_c0);
|
||||
m_c0 = c;
|
||||
Add(dt);
|
||||
}
|
||||
|
||||
// Add time to this timer.
|
||||
void Add(double dt)
|
||||
{
|
||||
m_t0 = m_t;
|
||||
m_t += dt;
|
||||
}
|
||||
|
||||
private:
|
||||
uint64_t m_c0;
|
||||
double m_t0;
|
||||
double m_t;
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
#include <time.h>
|
||||
|
||||
// A timer class that accumulates time.
|
||||
// Usefull for measuring elapsed times between code sections.
|
||||
class b3Time
|
||||
{
|
||||
public:
|
||||
b3Time()
|
||||
{
|
||||
clock_gettime(CLOCK_MONOTONIC, &m_c0);
|
||||
m_t0 = 0.0;
|
||||
m_t = 0.0;
|
||||
}
|
||||
|
||||
// Get the accumulated time in miliseconds from this timer.
|
||||
double GetCurrentMilis() const
|
||||
{
|
||||
return m_t;
|
||||
}
|
||||
|
||||
// Get the elapsed time since this timer was updated.
|
||||
double GetElapsedMilis() const
|
||||
{
|
||||
return m_t - m_t0;
|
||||
}
|
||||
|
||||
// Add the elapsed time since this function was called to this timer.
|
||||
void Update()
|
||||
{
|
||||
struct timespec c;
|
||||
clock_gettime(CLOCK_MONOTONIC, &c);
|
||||
double dt = (double)(c.tv_nsec - m_c0.tv_nsec) * 1.0e-6;
|
||||
m_c0 = c;
|
||||
Add(dt);
|
||||
}
|
||||
|
||||
// Add time to this timer.
|
||||
void Add(double dt)
|
||||
{
|
||||
m_t0 = m_t;
|
||||
m_t += dt;
|
||||
}
|
||||
|
||||
private:
|
||||
struct timespec m_c0;
|
||||
double m_t0;
|
||||
double m_t;
|
||||
};
|
||||
|
||||
#endif // B3_PLATFORM
|
||||
|
||||
#endif
|
||||
|
@ -19,11 +19,11 @@
|
||||
#ifndef B3_BODY_H
|
||||
#define B3_BODY_H
|
||||
|
||||
#include <bounce\common\math\vec3.h>
|
||||
#include <bounce\common\math\mat33.h>
|
||||
#include <bounce\common\math\quat.h>
|
||||
#include <bounce\common\math\transform.h>
|
||||
#include <bounce\common\template\list.h>
|
||||
#include <bounce/common/math/vec3.h>
|
||||
#include <bounce/common/math/mat33.h>
|
||||
#include <bounce/common/math/quat.h>
|
||||
#include <bounce/common/math/transform.h>
|
||||
#include <bounce/common/template/list.h>
|
||||
|
||||
class b3World;
|
||||
class b3Shape;
|
||||
@ -51,7 +51,7 @@ struct b3BodyDef
|
||||
fixedRotationX = false;
|
||||
fixedRotationY = false;
|
||||
fixedRotationZ = false;
|
||||
userData = nullptr;
|
||||
userData = NULL;
|
||||
position.SetZero();
|
||||
orientation.SetIdentity();
|
||||
linearVelocity.SetZero();
|
||||
@ -81,6 +81,13 @@ public:
|
||||
// A world manages the body destruction.
|
||||
~b3Body() { }
|
||||
|
||||
// Get the type of the body.
|
||||
b3BodyType GetType() const;
|
||||
|
||||
// Set the type of the body.
|
||||
// This will reset the current body inertial properties.
|
||||
void SetType(b3BodyType type);
|
||||
|
||||
// Create a new shape for the body given the shape definition and return a pointer to its clone.
|
||||
// The shape passed to the definition it will be cloned and is not recommended modifying
|
||||
// it inside simulation callbacks.
|
||||
@ -90,36 +97,20 @@ public:
|
||||
// Destroy a given shape from the body.
|
||||
void DestroyShape(b3Shape* shape);
|
||||
|
||||
// Destroy all shapes associated with the body.
|
||||
void DestroyShapes();
|
||||
|
||||
// Destroy all contacts associated with the body.
|
||||
void DestroyContacts();
|
||||
|
||||
// Destroy all joints connected to the body.
|
||||
void DestroyJoints();
|
||||
|
||||
// Get the shapes associated with the body.
|
||||
const b3List1<b3Shape>& GetShapeList() const;
|
||||
b3List1<b3Shape>& GetShapeList();
|
||||
|
||||
// Get the type of the body.
|
||||
b3BodyType GetType() const;
|
||||
|
||||
// Set the type of the body.
|
||||
// This will reset the current body inertial properties.
|
||||
void SetType(b3BodyType type);
|
||||
|
||||
// Get the world the body belongs to.
|
||||
const b3World* GetWorld() const;
|
||||
b3World* GetWorld();
|
||||
|
||||
// Get the body world b3Transform.
|
||||
// Get the body world transform.
|
||||
const b3Transform& GetTransform() const;
|
||||
|
||||
// Set the body world b3Transform from a position, axis of rotation and an angle
|
||||
// Set the body world transform from a position, axis of rotation and an angle
|
||||
// of rotation about the axis.
|
||||
// However, manipulating a body b3Transform during the simulation may cause non-physical behaviour.
|
||||
// However, manipulating a body transform during the simulation may cause non-physical behaviour.
|
||||
void SetTransform(const b3Vec3& position, const b3Vec3& axis, float32 angle);
|
||||
|
||||
// Get the gravity scale of the body. One is used by default.
|
||||
@ -186,7 +177,7 @@ public:
|
||||
// Get the rotational inertia of the body about the center of mass. Typically in kg/m^3.
|
||||
const b3Mat33& GetInertia() const;
|
||||
|
||||
// Get the total kinetic energy of the body.
|
||||
// Get the total kinetic energy of the body in Joules (kilogram-meters squared per second squared).
|
||||
float32 GetKineticEnergy() const;
|
||||
|
||||
// Transform a vector to the local space of this body.
|
||||
@ -243,17 +234,24 @@ private:
|
||||
e_fixedRotationZ = 0x0010,
|
||||
};
|
||||
|
||||
// Destroy all shapes associated with the body.
|
||||
void DestroyShapes();
|
||||
|
||||
// Destroy all contacts associated with the body.
|
||||
void DestroyContacts();
|
||||
|
||||
// Destroy all joints connected to the body.
|
||||
void DestroyJoints();
|
||||
|
||||
// Recalculate the mass of the body based on the shapes associated
|
||||
// with it.
|
||||
void ResetMass();
|
||||
|
||||
// Synchronize this body b3Transform with its world
|
||||
// Synchronize this body transform with its world
|
||||
// center of mass and orientation.
|
||||
void SynchronizeTransform();
|
||||
|
||||
// Compute the body world inertial tensor.
|
||||
// Compute the shapes world AABBs.
|
||||
// Usually this is called after the body b3Transform is synchronized.
|
||||
// Synchronize this body shape AABBs with the synchronized transform.
|
||||
void SynchronizeShapes();
|
||||
|
||||
// Check if this body should collide with another.
|
||||
@ -267,7 +265,7 @@ private:
|
||||
// The shapes attached to this body.
|
||||
b3List1<b3Shape> m_shapeList;
|
||||
|
||||
// Bidirectional joint edges for this body
|
||||
// Joint edges for this body joint graph.
|
||||
b3List2<b3JointEdge> m_jointEdges;
|
||||
|
||||
// User associated data (usually an entity).
|
||||
@ -275,13 +273,16 @@ private:
|
||||
|
||||
// Body mass.
|
||||
float32 m_mass;
|
||||
|
||||
// Inverse body mass.
|
||||
float32 m_invMass;
|
||||
|
||||
// Inertia about the body local center of mass.
|
||||
b3Mat33 m_I;
|
||||
|
||||
// Inverse inertia about the body local center of mass.
|
||||
b3Mat33 m_invI;
|
||||
|
||||
// Inverse inertia about the body world center of mass.
|
||||
b3Mat33 m_worldInvI;
|
||||
|
||||
|
@ -19,9 +19,9 @@
|
||||
#ifndef B3_CONTACT_MANAGER_H
|
||||
#define B3_CONTACT_MANAGER_H
|
||||
|
||||
#include <bounce\common\memory\block_pool.h>
|
||||
#include <bounce\common\template\list.h>
|
||||
#include <bounce\collision\broad_phase.h>
|
||||
#include <bounce/common/memory/block_pool.h>
|
||||
#include <bounce/common/template/list.h>
|
||||
#include <bounce/collision/broad_phase.h>
|
||||
|
||||
class b3Shape;
|
||||
class b3Contact;
|
||||
@ -29,7 +29,7 @@ class b3ContactFilter;
|
||||
class b3ContactListener;
|
||||
struct b3MeshContactLink;
|
||||
|
||||
// This is used to avoid b3World pollution.
|
||||
// Contact delegator for b3World.
|
||||
class b3ContactManager
|
||||
{
|
||||
public:
|
||||
@ -38,6 +38,8 @@ public:
|
||||
// The broad-phase callback.
|
||||
void AddPair(void* proxyDataA, void* proxyDataB);
|
||||
|
||||
// Reference AABBs in mesh contacts need to be synchronized with the
|
||||
// synchronized body transforms.
|
||||
void SynchronizeShapes();
|
||||
|
||||
void FindNewContacts();
|
||||
@ -45,7 +47,6 @@ public:
|
||||
void UpdateContacts();
|
||||
|
||||
b3Contact* Create(b3Shape* shapeA, b3Shape* shapeB);
|
||||
|
||||
void Destroy(b3Contact* c);
|
||||
|
||||
b3BlockPool m_convexBlocks;
|
||||
|
@ -19,8 +19,8 @@
|
||||
#ifndef B3_CLIP_H
|
||||
#define B3_CLIP_H
|
||||
|
||||
#include <bounce\common\template\array.h>
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce/common/template/array.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
|
||||
#define B3_NULL_EDGE (0xFF)
|
||||
|
||||
|
@ -19,11 +19,11 @@
|
||||
#ifndef B3_COLLIDE_H
|
||||
#define B3_COLLIDE_H
|
||||
|
||||
#include <bounce\collision\gjk\gjk_proxy.h>
|
||||
#include <bounce\collision\gjk\gjk_cache.h>
|
||||
#include <bounce\collision\sat\sat.h>
|
||||
#include <bounce\collision\sat\sat_edge_and_hull.h>
|
||||
#include <bounce\collision\sat\sat_vertex_and_hull.h>
|
||||
#include <bounce/collision/gjk/gjk_proxy.h>
|
||||
#include <bounce/collision/gjk/gjk_cache.h>
|
||||
#include <bounce/collision/sat/sat.h>
|
||||
#include <bounce/collision/sat/sat_edge_and_hull.h>
|
||||
#include <bounce/collision/sat/sat_vertex_and_hull.h>
|
||||
|
||||
class b3Shape;
|
||||
class b3SphereShape;
|
||||
|
@ -19,9 +19,9 @@
|
||||
#ifndef B3_CONTACT_H
|
||||
#define B3_CONTACT_H
|
||||
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce\common\template\list.h>
|
||||
#include <bounce\common\template\array.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
#include <bounce/common/template/list.h>
|
||||
#include <bounce/common/template/array.h>
|
||||
|
||||
struct b3Manifold;
|
||||
struct b3WorldManifold;
|
||||
@ -58,7 +58,7 @@ struct b3OverlappingPair
|
||||
// todo
|
||||
struct b3TOIEvent
|
||||
{
|
||||
//float32 t;
|
||||
float32 t;
|
||||
};
|
||||
|
||||
enum b3ContactType
|
||||
|
@ -19,9 +19,9 @@
|
||||
#ifndef B3_CONTACT_CLUSTER_H
|
||||
#define B3_CONTACT_CLUSTER_H
|
||||
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce\common\template\array.h>
|
||||
#include <bounce\dynamics\contacts\manifold.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
#include <bounce/common/template/array.h>
|
||||
#include <bounce/dynamics/contacts/manifold.h>
|
||||
|
||||
#define B3_NULL_CLUSTER (-1)
|
||||
|
||||
@ -40,7 +40,7 @@ struct b3Observation
|
||||
{
|
||||
u32 manifold;
|
||||
u32 manifoldPoint;
|
||||
b3Vec3 point;
|
||||
b3Vec3 point; // normal
|
||||
i32 cluster; // normal
|
||||
};
|
||||
|
||||
|
@ -19,10 +19,10 @@
|
||||
#ifndef B3_CONTACT_SOLVER_H
|
||||
#define B3_CONTACT_SOLVER_H
|
||||
|
||||
#include <bounce\common\math\vec2.h>
|
||||
#include <bounce\common\math\mat22.h>
|
||||
#include <bounce\dynamics\time_step.h>
|
||||
#include <bounce\dynamics\contacts\manifold.h>
|
||||
#include <bounce/common/math/vec2.h>
|
||||
#include <bounce/common/math/mat22.h>
|
||||
#include <bounce/dynamics/time_step.h>
|
||||
#include <bounce/dynamics/contacts/manifold.h>
|
||||
|
||||
class b3StackAllocator;
|
||||
class b3Contact;
|
||||
|
@ -19,9 +19,9 @@
|
||||
#ifndef B3_CONVEX_CONTACT_H
|
||||
#define B3_CONVEX_CONTACT_H
|
||||
|
||||
#include <bounce\dynamics\contacts\contact.h>
|
||||
#include <bounce\dynamics\contacts\manifold.h>
|
||||
#include <bounce\dynamics\contacts\collide\collide.h>
|
||||
#include <bounce/dynamics/contacts/contact.h>
|
||||
#include <bounce/dynamics/contacts/manifold.h>
|
||||
#include <bounce/dynamics/contacts/collide/collide.h>
|
||||
|
||||
class b3ConvexContact : public b3Contact
|
||||
{
|
||||
@ -36,8 +36,6 @@ private:
|
||||
|
||||
void Collide();
|
||||
|
||||
void SynchronizeShapes();
|
||||
|
||||
b3Manifold m_stackManifold;
|
||||
b3ConvexCache m_cache;
|
||||
};
|
||||
|
@ -19,8 +19,8 @@
|
||||
#ifndef B3_MANIFOLD_H
|
||||
#define B3_MANIFOLD_H
|
||||
|
||||
#include <bounce\common\math\vec2.h>
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce/common/math/vec2.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
|
||||
#define B3_NULL_TRIANGLE (0xFFFFFFFF)
|
||||
|
||||
|
@ -19,19 +19,23 @@
|
||||
#ifndef B3_MESH_CONTACT_H
|
||||
#define B3_MESH_CONTACT_H
|
||||
|
||||
#include <bounce\collision\shapes\aabb3.h>
|
||||
#include <bounce\dynamics\contacts\contact.h>
|
||||
#include <bounce\dynamics\contacts\manifold.h>
|
||||
#include <bounce\dynamics\contacts\collide\collide.h>
|
||||
#include <bounce/dynamics/contacts/contact.h>
|
||||
#include <bounce/dynamics/contacts/manifold.h>
|
||||
#include <bounce/dynamics/contacts/collide/collide.h>
|
||||
#include <bounce/collision/shapes/aabb3.h>
|
||||
|
||||
// This structure helps replicate the convex contact per convex-triangle pair scenario,
|
||||
// but efficiently. There is no need to store a manifold here since they're reduced
|
||||
// by the cluster algorithm.
|
||||
struct b3TriangleCache
|
||||
{
|
||||
u32 index;
|
||||
u32 index; // triangle index
|
||||
b3ConvexCache cache;
|
||||
};
|
||||
|
||||
class b3MeshContact;
|
||||
|
||||
// Links for the world mesh contact link list.
|
||||
struct b3MeshContactLink
|
||||
{
|
||||
b3MeshContact* m_c;
|
||||
@ -60,16 +64,16 @@ private:
|
||||
|
||||
void FindNewPairs();
|
||||
|
||||
// Static tree callback. There is no midphase.
|
||||
bool Report(u32 proxyId);
|
||||
|
||||
// Did the AABB move significantly?
|
||||
bool m_aabbMoved;
|
||||
|
||||
// The first shape AABB in the frame of the other shape.
|
||||
// The AABB A relative to shape B's origin.
|
||||
b3AABB3 m_aabbA;
|
||||
|
||||
// Child shapes potentially overlapping with
|
||||
// the first shape.
|
||||
// Triangles potentially overlapping with the first shape.
|
||||
u32 m_triangleCapacity;
|
||||
b3TriangleCache* m_triangles;
|
||||
u32 m_triangleCount;
|
||||
@ -77,7 +81,7 @@ private:
|
||||
// Contact manifolds.
|
||||
b3Manifold m_stackManifolds[B3_MAX_MANIFOLDS];
|
||||
|
||||
// Links to the world mesh contact list.
|
||||
// Link to the world mesh contact list.
|
||||
b3MeshContactLink m_link;
|
||||
};
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_ISLAND_H
|
||||
#define B3_ISLAND_H
|
||||
|
||||
#include <bounce\common\math\vec3.h>
|
||||
#include <bounce/common/math/vec3.h>
|
||||
|
||||
class b3StackAllocator;
|
||||
class b3Contact;
|
||||
|
@ -16,15 +16,15 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#ifndef B3_JOINT_MAN_H
|
||||
#define B3_JOINT_MAN_H
|
||||
#ifndef B3_JOINT_MANAGER_H
|
||||
#define B3_JOINT_MANAGER_H
|
||||
|
||||
#include <bounce\common\template\list.h>
|
||||
#include <bounce/common/template/list.h>
|
||||
|
||||
struct b3JointDef;
|
||||
class b3Joint;
|
||||
|
||||
// This is used to avoid b3World pollution.
|
||||
// Joint delegator for b3World.
|
||||
class b3JointManager
|
||||
{
|
||||
public:
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_CONE_JOINT_H
|
||||
#define B3_CONE_JOINT_H
|
||||
|
||||
#include <bounce\dynamics\joints\joint.h>
|
||||
#include <bounce/dynamics/joints/joint.h>
|
||||
|
||||
struct b3ConeJointDef : public b3JointDef
|
||||
{
|
||||
@ -32,36 +32,41 @@ struct b3ConeJointDef : public b3JointDef
|
||||
coneAngle = 0.0f;
|
||||
}
|
||||
|
||||
// Initialize this definition given an axis, anchor point, and cone angle limit in radians.
|
||||
// Initialize this definition from bodies, cone axis, anchor point, and full cone angle in radians.
|
||||
void Initialize(b3Body* bodyA, b3Body* bodyB, const b3Vec3& axis, const b3Vec3& anchor, float32 angle);
|
||||
|
||||
// The joint frame in the frame of body A.
|
||||
// The joint frame relative to body A's frame.
|
||||
b3Transform localFrameA;
|
||||
|
||||
// The joint frame in the frame of body B.
|
||||
// The joint frame relative to body B's frame.
|
||||
b3Transform localFrameB;
|
||||
|
||||
// Enable the joint limit.
|
||||
// Enable cone angle limit.
|
||||
bool enableLimit;
|
||||
|
||||
// The cone angle limit in radians.
|
||||
// The full cone angle in radians.
|
||||
float32 coneAngle;
|
||||
};
|
||||
|
||||
// This joint constrains the bodies to share a common point (cone tip).
|
||||
// The relative rotation about the shared axis is the joint angle.
|
||||
// If the joint angle exceeds the half-cone angle then the axis is shared.
|
||||
// You can limit the relative rotation with a lower angle limit.
|
||||
// This joint can be used to create structures such as ragdolls.
|
||||
class b3ConeJoint : public b3Joint
|
||||
{
|
||||
public:
|
||||
// Get the joint frame in the frame of body A.
|
||||
const b3Transform& GetFrameA() const;
|
||||
// Get the joint frame on body A in world coordinates.
|
||||
b3Transform GetFrameA() const;
|
||||
|
||||
// Set the joint frame in the frame of body A.
|
||||
void SetFrameA(const b3Transform& xf);
|
||||
// Get the joint frame on body B in world coordinates.
|
||||
b3Transform GetFrameB() const;
|
||||
|
||||
// Get the joint frame in the frame of body B.
|
||||
const b3Transform& GetFrameB() const;
|
||||
// Get the joint frame relative to body A's frame.
|
||||
const b3Transform& GetLocalFrameA() const;
|
||||
|
||||
// Set the joint frame in the frame of body B.
|
||||
void SetFrameB(const b3Transform& xf);
|
||||
// Get the joint frame relative to body B's frame.
|
||||
const b3Transform& GetLocalFrameB() const;
|
||||
|
||||
// Is the joint limit enabled?
|
||||
bool IsLimitEnabled() const;
|
||||
@ -69,14 +74,14 @@ public:
|
||||
// Set the joint limit enabled.
|
||||
void SetEnableLimit(bool bit);
|
||||
|
||||
// Get the lower cone angle limit.
|
||||
float32 GetLowerLimit() const;
|
||||
// Get the cone angle in radians.
|
||||
float32 GetConeAngle() const;
|
||||
|
||||
// Set the lower cone angle limit.
|
||||
void SetLimit(float32 lowerAngle);
|
||||
// Set the cone angle in radians.
|
||||
void SetConeAngle(float32 angle);
|
||||
|
||||
// Draw this joint.
|
||||
void Draw(b3Draw* b3Draw) const;
|
||||
void Draw(b3Draw* draw) const;
|
||||
private:
|
||||
friend class b3Joint;
|
||||
friend class b3Body;
|
||||
@ -95,9 +100,8 @@ private:
|
||||
// Solver shared
|
||||
b3Transform m_localFrameA;
|
||||
b3Transform m_localFrameB;
|
||||
|
||||
bool m_enableLimit;
|
||||
float32 m_coneAngle;
|
||||
bool m_enableLimit;
|
||||
|
||||
// Solver temp
|
||||
u32 m_indexA;
|
||||
|
@ -19,9 +19,9 @@
|
||||
#ifndef B3_JOINT_H
|
||||
#define B3_JOINT_H
|
||||
|
||||
#include <bounce\common\math\transform.h>
|
||||
#include <bounce\common\template\list.h>
|
||||
#include <bounce\dynamics\time_step.h>
|
||||
#include <bounce/common/math/transform.h>
|
||||
#include <bounce/common/template/list.h>
|
||||
#include <bounce/dynamics/time_step.h>
|
||||
|
||||
class b3Draw;
|
||||
class b3Body;
|
||||
@ -44,9 +44,9 @@ struct b3JointDef
|
||||
b3JointDef()
|
||||
{
|
||||
type = e_unknownJoint;
|
||||
bodyA = nullptr;
|
||||
bodyB = nullptr;
|
||||
userData = nullptr;
|
||||
bodyA = NULL;
|
||||
bodyB = NULL;
|
||||
userData = NULL;
|
||||
collideLinked = false;
|
||||
}
|
||||
|
||||
@ -57,6 +57,7 @@ struct b3JointDef
|
||||
bool collideLinked;
|
||||
};
|
||||
|
||||
// A joint edge to a joint graph, where a body is a vertex and a joint an edge.
|
||||
struct b3JointEdge
|
||||
{
|
||||
b3Body* other;
|
||||
@ -66,8 +67,7 @@ struct b3JointEdge
|
||||
b3JointEdge* m_next;
|
||||
};
|
||||
|
||||
// This goes inside a joint.
|
||||
// It holds two bodies that are linked.
|
||||
// This is stored in a joint. It stores two bodies that are linked by the joint.
|
||||
struct b3LinkedPair
|
||||
{
|
||||
// To the body A joint edge list
|
||||
@ -79,67 +79,55 @@ struct b3LinkedPair
|
||||
b3JointEdge edgeB;
|
||||
};
|
||||
|
||||
// @note All the data members of the joint structure they will be initialized
|
||||
// by the world.
|
||||
// Base joint class. For simplicity, a joint is unique per body pair.
|
||||
// There are many joint types, some of them provide motors and limits.
|
||||
class b3Joint
|
||||
{
|
||||
public :
|
||||
// Get the joint type.
|
||||
public:
|
||||
// Get this joint type.
|
||||
b3JointType GetType() const;
|
||||
|
||||
// Get the first body connected to the joint.
|
||||
// Get the body A connected to this joint.
|
||||
const b3Body* GetBodyA() const;
|
||||
b3Body* GetBodyA();
|
||||
|
||||
// Set the body to be connected to the joint as the first body.
|
||||
virtual void SetBodyA(b3Body* bodyA);
|
||||
|
||||
// Get the second body connected to the joint.
|
||||
// Get the body B connected to this joint.
|
||||
const b3Body* GetBodyB() const;
|
||||
b3Body* GetBodyB();
|
||||
|
||||
// Set the body to be connected to the joint as the second body.
|
||||
virtual void SetBodyB(b3Body* bodyB);
|
||||
|
||||
// Get the user specific data associated with the joint.
|
||||
// Get the user data associated with this joint.
|
||||
void* GetUserData();
|
||||
const void* GetUserData() const;
|
||||
|
||||
// Set the user data to be associated with the joint.
|
||||
void SetUserData(void* data);
|
||||
|
||||
// Tell the world if the bodies linked by this joint
|
||||
// should collide with each other.
|
||||
void SetCollideLinked(bool flag);
|
||||
|
||||
// Check if the bodies linked by this joint
|
||||
// should collide with each other.
|
||||
// Should the bodies linked by this joint collide with each other?
|
||||
bool CollideLinked() const;
|
||||
|
||||
// Set if the bodies linked by this joint should collide with each other.
|
||||
void SetCollideLinked(bool bit);
|
||||
|
||||
// Dump this joint to the log file.
|
||||
virtual void Dump() const
|
||||
{
|
||||
b3Log("Dump not implemented for this joint type.\n");
|
||||
b3Log("Dump feature not implemented for this joint type.\n");
|
||||
}
|
||||
|
||||
// Get the next joint in the world joint list.
|
||||
b3Joint* GetNext();
|
||||
const b3Joint* GetNext() const;
|
||||
|
||||
// Create joint.
|
||||
static b3Joint* Create(const b3JointDef* def);
|
||||
|
||||
// Destroy joint.
|
||||
static void Destroy(b3Joint* j);
|
||||
protected :
|
||||
b3Joint* GetNext();
|
||||
protected:
|
||||
friend class b3Body;
|
||||
friend class b3World;
|
||||
friend class b3Island;
|
||||
friend class b3JointManager;
|
||||
friend class b3JointSolver;
|
||||
|
||||
friend class b3List2<b3Joint>;
|
||||
|
||||
static b3Joint* Create(const b3JointDef* def);
|
||||
static void Destroy(b3Joint* j);
|
||||
|
||||
b3Joint() { }
|
||||
virtual ~b3Joint() { }
|
||||
|
||||
@ -181,29 +169,14 @@ inline b3Body* b3Joint::GetBodyA()
|
||||
return m_pair.bodyA;
|
||||
}
|
||||
|
||||
inline void b3Joint::SetBodyA(b3Body* bodyA)
|
||||
{
|
||||
m_pair.bodyA = bodyA;
|
||||
}
|
||||
|
||||
inline b3Body* b3Joint::GetBodyB()
|
||||
{
|
||||
return m_pair.bodyB;
|
||||
}
|
||||
|
||||
inline const b3Body* b3Joint::GetBodyB() const
|
||||
{
|
||||
return m_pair.bodyB;
|
||||
}
|
||||
|
||||
inline void b3Joint::SetBodyB(b3Body* bodyB)
|
||||
inline b3Body* b3Joint::GetBodyB()
|
||||
{
|
||||
m_pair.bodyB = bodyB;
|
||||
}
|
||||
|
||||
inline void b3Joint::SetUserData(void* data)
|
||||
{
|
||||
m_userData = data;
|
||||
return m_pair.bodyB;
|
||||
}
|
||||
|
||||
inline void* b3Joint::GetUserData()
|
||||
@ -216,6 +189,11 @@ inline const void* b3Joint::GetUserData() const
|
||||
return m_userData;
|
||||
}
|
||||
|
||||
inline void b3Joint::SetUserData(void* data)
|
||||
{
|
||||
m_userData = data;
|
||||
}
|
||||
|
||||
inline void b3Joint::SetCollideLinked(bool bit)
|
||||
{
|
||||
m_collideLinked = bit;
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_JOINT_SOLVER_H
|
||||
#define B3_JOINT_SOLVER_H
|
||||
|
||||
#include <bounce\dynamics\time_step.h>
|
||||
#include <bounce/dynamics/time_step.h>
|
||||
|
||||
class b3Joint;
|
||||
|
||||
@ -32,18 +32,6 @@ struct b3Jacobian
|
||||
b3Vec3 angularB;
|
||||
};
|
||||
|
||||
// 1x3 times 3x3.
|
||||
inline b3Vec3 b3Mul(const b3Vec3& v, const b3Mat33& A)
|
||||
{
|
||||
return b3Transpose(A) * v;
|
||||
}
|
||||
|
||||
// 1x3 times 3x1.
|
||||
inline float32 b3Mul(const b3Vec3& v, const b3Vec3& w)
|
||||
{
|
||||
return b3Dot(v, w);
|
||||
}
|
||||
|
||||
struct b3JointSolverDef
|
||||
{
|
||||
float32 dt;
|
||||
|
@ -19,43 +19,46 @@
|
||||
#ifndef B3_MOUSE_JOINT_H
|
||||
#define B3_MOUSE_JOINT_H
|
||||
|
||||
#include <bounce\dynamics\joints\joint.h>
|
||||
#include <bounce/dynamics/joints/joint.h>
|
||||
|
||||
// Mouse joint definition defines a world target
|
||||
// point and tunable parameters.
|
||||
struct b3MouseJointDef : public b3JointDef
|
||||
{
|
||||
b3MouseJointDef()
|
||||
{
|
||||
type = e_mouseJoint;
|
||||
worldAnchorA.SetZero();
|
||||
localAnchorB.SetZero();
|
||||
target.SetZero();
|
||||
maxForce = 0.0f;
|
||||
}
|
||||
|
||||
b3Vec3 worldAnchorA;
|
||||
b3Vec3 localAnchorB;
|
||||
// The initial world target point. Initially is assumed
|
||||
// to be coincident to the body anchor (satisfied constraint).
|
||||
b3Vec3 target;
|
||||
|
||||
// Maximum joint reaction force in newtons.
|
||||
float32 maxForce;
|
||||
};
|
||||
|
||||
// A mouse joint is used to make a local point on a body
|
||||
// follow a defined world point.
|
||||
class b3MouseJoint : public b3Joint
|
||||
{
|
||||
public :
|
||||
// Get the world space anchor point on the first body (usually the mouse world space position).
|
||||
b3Vec3 GetWorldAnchorA() const;
|
||||
public:
|
||||
// Get the world anchor point on body A.
|
||||
b3Vec3 GetAnchorA() const;
|
||||
|
||||
// Set the world space anchor position on the first body.
|
||||
void SetWorldAnchorA(const b3Vec3& v);
|
||||
// Get the world target point on body B.
|
||||
b3Vec3 GetAnchorB() const;
|
||||
|
||||
// Get the world space anchor point on the first body (usually the mouse world space position).
|
||||
b3Vec3 GetWorldAnchorB() const;
|
||||
// Get the world target point.
|
||||
const b3Vec3& GetTarget() const;
|
||||
|
||||
// Get the local space anchor point on the second body (usually the ray cast intersection).
|
||||
const b3Vec3& GetLocalAnchorB() const;
|
||||
// Set the world target point.
|
||||
void SetTarget(const b3Vec3& target);
|
||||
|
||||
// Set the mouse position on the space of the second body (usually the ray cast intersection).
|
||||
void SetLocalAnchorB(const b3Vec3& v);
|
||||
|
||||
// Implement b3Joint.
|
||||
void Draw(b3Draw* b3Draw) const;
|
||||
// Draw this joint.
|
||||
void Draw(b3Draw* draw) const;
|
||||
private:
|
||||
friend class b3Joint;
|
||||
friend class b3JointManager;
|
||||
@ -68,14 +71,12 @@ private:
|
||||
virtual void SolveVelocityConstraints(const b3SolverData* data);
|
||||
virtual bool SolvePositionConstraints(const b3SolverData* data);
|
||||
|
||||
// The two anchor points on each body.
|
||||
// The first body has infinite mass. Therefore,
|
||||
// we store the world space anchor point.
|
||||
b3Vec3 m_worldAnchorA;
|
||||
// Solver shared
|
||||
b3Vec3 m_worldTargetA;
|
||||
b3Vec3 m_localAnchorB;
|
||||
float32 m_maxForce; // maximum reaction force in Newtons
|
||||
float32 m_maxForce;
|
||||
|
||||
// Constraint data for the solver.
|
||||
// Solver temp
|
||||
u32 m_indexB;
|
||||
float32 m_mB;
|
||||
b3Mat33 m_iB;
|
||||
@ -85,24 +86,4 @@ private:
|
||||
b3Vec3 m_C;
|
||||
};
|
||||
|
||||
inline b3Vec3 b3MouseJoint::GetWorldAnchorA() const
|
||||
{
|
||||
return m_worldAnchorA;
|
||||
}
|
||||
|
||||
inline void b3MouseJoint::SetWorldAnchorA(const b3Vec3& v)
|
||||
{
|
||||
m_worldAnchorA = v;
|
||||
}
|
||||
|
||||
inline const b3Vec3& b3MouseJoint::GetLocalAnchorB() const
|
||||
{
|
||||
return m_localAnchorB;
|
||||
}
|
||||
|
||||
inline void b3MouseJoint::SetLocalAnchorB(const b3Vec3& v)
|
||||
{
|
||||
m_localAnchorB = v;
|
||||
}
|
||||
|
||||
#endif
|
@ -19,8 +19,8 @@
|
||||
#ifndef B3_REVOLUTE_JOINT_H
|
||||
#define B3_REVOLUTE_JOINT_H
|
||||
|
||||
#include <bounce\dynamics\joints\joint.h>
|
||||
#include <bounce\common\math\mat.h>
|
||||
#include <bounce/dynamics/joints/joint.h>
|
||||
#include <bounce/common/math/mat.h>
|
||||
|
||||
struct b3RevoluteJointDef : public b3JointDef
|
||||
{
|
||||
@ -37,13 +37,13 @@ struct b3RevoluteJointDef : public b3JointDef
|
||||
maxMotorTorque = 0.0f;
|
||||
}
|
||||
|
||||
// Initialize this definition given an axis, anchor point, and the lower and upper angle limits in radians.
|
||||
// Initialize this definition from hinge axis, anchor point, and the lower and upper angle limits in radians.
|
||||
void Initialize(b3Body* bodyA, b3Body* bodyB, const b3Vec3& axis, const b3Vec3& anchor, float32 lowerAngle, float32 upperAngle);
|
||||
|
||||
// The joint frame relative to the frame of body A.
|
||||
// The joint frame relative body A's frame.
|
||||
b3Transform localFrameA;
|
||||
|
||||
// The joint frame relative to the frame of body B.
|
||||
// The joint frame relative body B's frame.
|
||||
b3Transform localFrameB;
|
||||
|
||||
// Enable the joint limit.
|
||||
@ -65,27 +65,27 @@ struct b3RevoluteJointDef : public b3JointDef
|
||||
float32 maxMotorTorque;
|
||||
};
|
||||
|
||||
// A revolute joint constrains two bodies to share a common point while they
|
||||
// are free to rotate about the point and a given axis.
|
||||
// The relative rotation about the shared axis
|
||||
// is the joint angle. You can limit the relative rotation with
|
||||
// a lower and upper angle limit. Also, you can use a motor
|
||||
// to drive the relative rotation about the shared axis.
|
||||
// A revolute joint constrains two bodies to share a point and an axis while
|
||||
// they are free to rotate about the point and the axis.
|
||||
// The relative rotation about the shared axis is the joint angle.
|
||||
// You can limit the relative rotation with a lower and upper angle limit.
|
||||
// You can use a motor to drive the relative rotation about the shared axis.
|
||||
// A maximum motor torque is provided so that infinite forces are not generated.
|
||||
// This joint can be used to create structures such as doors.
|
||||
class b3RevoluteJoint : public b3Joint
|
||||
{
|
||||
public:
|
||||
// Get the joint frame relative to the frame of body A.
|
||||
const b3Transform& GetFrameA() const;
|
||||
// Get the joint frame on body A in world coordinates.
|
||||
b3Transform GetFrameA() const;
|
||||
|
||||
// Set the joint frame relative to the frame of body A.
|
||||
void SetFrameA(const b3Transform& xf);
|
||||
// Get the joint frame on body B in world coordinates.
|
||||
b3Transform GetFrameB() const;
|
||||
|
||||
// Get the joint frame relative to the frame of body B.
|
||||
const b3Transform& GetFrameB() const;
|
||||
// Get the joint frame relative body A's frame.
|
||||
const b3Transform& GetLocalFrameA() const;
|
||||
|
||||
// Set the joint frame relative to the frame of body B.
|
||||
void SetFrameB(const b3Transform& xf);
|
||||
// Get the joint frame relative body B's frame.
|
||||
const b3Transform& GetLocalFrameB() const;
|
||||
|
||||
// Is the joint limit enabled?
|
||||
bool IsLimitEnabled() const;
|
||||
@ -96,7 +96,7 @@ public:
|
||||
// Get the lower angle limit.
|
||||
float32 GetLowerLimit() const;
|
||||
|
||||
// Get the upper limit.
|
||||
// Get the upper angle limit.
|
||||
float32 GetUpperLimit() const;
|
||||
|
||||
// Set the angle limits.
|
||||
@ -108,20 +108,20 @@ public:
|
||||
// Set the joint motor enabled.
|
||||
void SetEnableMotor(bool bit);
|
||||
|
||||
// Get the desired motor speed (radians per second).
|
||||
// Get the desired motor speed in radians per second.
|
||||
float32 GetMotorSpeed() const;
|
||||
|
||||
// Set the desired motor speed (radians per second).
|
||||
// Set the desired motor speed in radians per second.
|
||||
void SetMotorSpeed(float32 speed);
|
||||
|
||||
// Get the maximum motor torque (Newton per meter).
|
||||
// Get the maximum motor torque in Newton per meter.
|
||||
float32 GetMaxMotorTorque() const;
|
||||
|
||||
// Set the maximum motor torque (Newton per meter).
|
||||
// Set the maximum motor torque in Newton per meter.
|
||||
void SetMaxMotorTorque(float32 torque);
|
||||
|
||||
// Draw this joint.
|
||||
void Draw(b3Draw* b3Draw) const;
|
||||
void Draw(b3Draw* draw) const;
|
||||
private:
|
||||
friend class b3Joint;
|
||||
friend class b3JointManager;
|
||||
@ -171,8 +171,8 @@ private:
|
||||
b3Vec3 m_rB;
|
||||
b3Vec3 m_nA;
|
||||
b3Vec3 m_nB;
|
||||
b3Mat<5, 5> m_mass;
|
||||
b3Vec<5> m_impulse;
|
||||
b3Mat<5, 5> m_mass; // block solver
|
||||
b3Vec<5> m_impulse; // block solver
|
||||
};
|
||||
|
||||
#endif
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_SPHERE_JOINT_H
|
||||
#define B3_SPHERE_JOINT_H
|
||||
|
||||
#include <bounce\dynamics\joints\joint.h>
|
||||
#include <bounce/dynamics/joints/joint.h>
|
||||
|
||||
struct b3SphereJointDef : public b3JointDef
|
||||
{
|
||||
@ -30,31 +30,29 @@ struct b3SphereJointDef : public b3JointDef
|
||||
localAnchorB.SetZero();
|
||||
}
|
||||
|
||||
// Initialize this definition.
|
||||
// Initialize this definition from bodies and world anchor point.
|
||||
void Initialize(b3Body* bodyA, b3Body* bodyB, const b3Vec3& anchor);
|
||||
|
||||
// The anchor point relative to body A's origin
|
||||
b3Vec3 localAnchorA;
|
||||
|
||||
// The anchor point relative to body B's origin
|
||||
b3Vec3 localAnchorB;
|
||||
};
|
||||
|
||||
// A ball-in-socket joint.
|
||||
// A sphere joint constrains the bodies to rotate relative to each
|
||||
// other about a specified anchor point.
|
||||
class b3SphereJoint : public b3Joint
|
||||
{
|
||||
public:
|
||||
// Get the local anchor point on body A.
|
||||
const b3Vec3& GetLocalAnchorA() const;
|
||||
// Get the anchor point on body A in world coordinates.
|
||||
b3Vec3 GetAnchorA() const;
|
||||
|
||||
// Set the local anchor point on body A.
|
||||
void SetLocalAnchorA(const b3Vec3& point);
|
||||
// Get the anchor point on body B in world coordinates.
|
||||
b3Vec3 GetAnchorB() const;
|
||||
|
||||
// Get the local anchor point on body B.
|
||||
const b3Vec3& GetLocalAnchorB() const;
|
||||
|
||||
// Set the local anchor point on body B.
|
||||
void SetLocalAnchorB(const b3Vec3& point);
|
||||
|
||||
// Implement b3Joint
|
||||
void Draw(b3Draw* b3Draw) const;
|
||||
// Draw this joint.
|
||||
void Draw(b3Draw* draw) const;
|
||||
private:
|
||||
friend class b3Joint;
|
||||
friend class b3JointManager;
|
||||
@ -67,12 +65,11 @@ private:
|
||||
virtual void SolveVelocityConstraints(const b3SolverData* data);
|
||||
virtual bool SolvePositionConstraints(const b3SolverData* data);
|
||||
|
||||
// The local joint frames on each body.
|
||||
// Solver shared
|
||||
b3Vec3 m_localAnchorA;
|
||||
b3Vec3 m_localAnchorB;
|
||||
|
||||
// Temporary data copied from the joint solver
|
||||
// to reduce cache misses.
|
||||
// Solver temp
|
||||
u32 m_indexA;
|
||||
u32 m_indexB;
|
||||
float32 m_mA;
|
||||
@ -80,7 +77,6 @@ private:
|
||||
b3Mat33 m_iA;
|
||||
b3Mat33 m_iB;
|
||||
|
||||
// Constraint data.
|
||||
b3Vec3 m_localCenterA;
|
||||
b3Vec3 m_localCenterB;
|
||||
b3Vec3 m_rA;
|
||||
@ -89,24 +85,4 @@ private:
|
||||
b3Vec3 m_impulse;
|
||||
};
|
||||
|
||||
inline const b3Vec3& b3SphereJoint::GetLocalAnchorA() const
|
||||
{
|
||||
return m_localAnchorA;
|
||||
}
|
||||
|
||||
inline void b3SphereJoint::SetLocalAnchorA(const b3Vec3& point)
|
||||
{
|
||||
m_localAnchorA = point;
|
||||
}
|
||||
|
||||
inline const b3Vec3& b3SphereJoint::GetLocalAnchorB() const
|
||||
{
|
||||
return m_localAnchorB;
|
||||
}
|
||||
|
||||
inline void b3SphereJoint::SetLocalAnchorB(const b3Vec3& point)
|
||||
{
|
||||
m_localAnchorB = point;
|
||||
}
|
||||
|
||||
#endif
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_SPRING_JOINT_H
|
||||
#define B3_SPRING_JOINT_H
|
||||
|
||||
#include <bounce\dynamics\joints\joint.h>
|
||||
#include <bounce/dynamics/joints/joint.h>
|
||||
|
||||
struct b3SpringJointDef : public b3JointDef
|
||||
{
|
||||
@ -36,35 +36,65 @@ struct b3SpringJointDef : public b3JointDef
|
||||
// Initialize this definition from bodies and world anchors.
|
||||
void Initialize(b3Body* bodyA, b3Body* bodyB, const b3Vec3& anchorA, const b3Vec3& anchorB);
|
||||
|
||||
// The joint anchor point relative to the frame of body A
|
||||
// The anchor point relative to body A's origin
|
||||
b3Vec3 localAnchorA;
|
||||
|
||||
// The joint anchor point relative to the frame of body B
|
||||
// The anchor point relative to body B's origin
|
||||
b3Vec3 localAnchorB;
|
||||
|
||||
// The spring rest length
|
||||
// The spring rest length.
|
||||
float32 length;
|
||||
|
||||
// The mass-spring-damper frequency in units of hertz
|
||||
// 0 = disable spring softness
|
||||
// The mass-spring-damper frequency in Hz
|
||||
// 0 = disable softness
|
||||
float32 frequencyHz;
|
||||
|
||||
// The damping ration in the interval [0, 1].
|
||||
// The damping ration in the interval [0, 1]
|
||||
// 0 = undamped spring
|
||||
// 1 = critical damping
|
||||
float32 dampingRatio;
|
||||
};
|
||||
|
||||
// A spring joint constrains the bodies to rotate relative to each
|
||||
// other about a specified spring position.
|
||||
// The tunable soft parameters control how much/fast the bodies should translate
|
||||
// relative to each other about the spring position.
|
||||
// This joint can be used to create behaviours such as a car suspension.
|
||||
class b3SpringJoint : public b3Joint
|
||||
{
|
||||
public :
|
||||
// Get the local anchor point in the local space of the first body.
|
||||
public:
|
||||
// Get the anchor point on body A in world coordinates.
|
||||
b3Vec3 GetAnchorA() const;
|
||||
|
||||
// Get the anchor point on body B in world coordinates.
|
||||
b3Vec3 GetAnchorB() const;
|
||||
|
||||
// Get the anchor point relative to body A's origin.
|
||||
const b3Vec3& GetLocalAnchorA() const;
|
||||
|
||||
// Get the local anchor point in the local space of the second body.
|
||||
// Get the anchor point relative to body B's origin.
|
||||
const b3Vec3& GetLocalAnchorB() const;
|
||||
|
||||
void Draw(b3Draw* b3Draw) const;
|
||||
// Get the natural spring length.
|
||||
float32 GetLength() const;
|
||||
|
||||
// Set the natural spring length.
|
||||
void SetLength(float32 length);
|
||||
|
||||
// Get the damper frequency in Hz.
|
||||
float32 GetFrequency() const;
|
||||
|
||||
// Set the damper frequency in Hz.
|
||||
void SetFrequency(float32 frequency);
|
||||
|
||||
// Get the damping ratio.
|
||||
float32 GetDampingRatio() const;
|
||||
|
||||
// Set the damping ratio.
|
||||
void SetDampingRatio(float32 ratio);
|
||||
|
||||
// Draw this joint.
|
||||
void Draw(b3Draw* draw) const;
|
||||
private:
|
||||
friend class b3Joint;
|
||||
friend class b3JointManager;
|
||||
@ -103,14 +133,4 @@ private:
|
||||
float32 m_impulse;
|
||||
};
|
||||
|
||||
inline const b3Vec3& b3SpringJoint::GetLocalAnchorA() const
|
||||
{
|
||||
return m_localAnchorA;
|
||||
}
|
||||
|
||||
inline const b3Vec3& b3SpringJoint::GetLocalAnchorB() const
|
||||
{
|
||||
return m_localAnchorB;
|
||||
}
|
||||
|
||||
#endif
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_CAPSULE_SHAPE_H
|
||||
#define B3_CAPSULE_SHAPE_H
|
||||
|
||||
#include <bounce\dynamics\shapes\shape.h>
|
||||
#include <bounce/dynamics/shapes/shape.h>
|
||||
|
||||
// A capsule defined along the up-axis.
|
||||
class b3CapsuleShape : public b3Shape
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_HULL_SHAPE_H
|
||||
#define B3_HULL_SHAPE_H
|
||||
|
||||
#include <bounce\dynamics\shapes\shape.h>
|
||||
#include <bounce/dynamics/shapes/shape.h>
|
||||
|
||||
struct b3Hull;
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_MESH_SHAPE_H
|
||||
#define B3_MESH_SHAPE_H
|
||||
|
||||
#include <bounce\dynamics\shapes\shape.h>
|
||||
#include <bounce/dynamics/shapes/shape.h>
|
||||
|
||||
struct b3Mesh;
|
||||
|
||||
|
@ -19,9 +19,9 @@
|
||||
#ifndef B3_SHAPE_H
|
||||
#define B3_SHAPE_H
|
||||
|
||||
#include <bounce\common\math\transform.h>
|
||||
#include <bounce\common\template\list.h>
|
||||
#include <bounce\collision\distance.h>
|
||||
#include <bounce/common/math/transform.h>
|
||||
#include <bounce/common/template/list.h>
|
||||
#include <bounce/collision/distance.h>
|
||||
|
||||
struct b3ContactEdge;
|
||||
|
||||
@ -41,8 +41,8 @@ struct b3ShapeDef
|
||||
{
|
||||
b3ShapeDef()
|
||||
{
|
||||
shape = nullptr;
|
||||
userData = nullptr;
|
||||
shape = NULL;
|
||||
userData = NULL;
|
||||
isSensor = false;
|
||||
density = 0.0f;
|
||||
friction = 0.3f;
|
||||
@ -59,15 +59,19 @@ struct b3ShapeDef
|
||||
|
||||
struct b3MassData
|
||||
{
|
||||
// The mass of the shape in kilograms.
|
||||
float32 mass;
|
||||
|
||||
// The shape center of mass relative to the shape's origin.
|
||||
b3Vec3 center;
|
||||
|
||||
// The rotational inertia of the shape about the shape's center of mass.
|
||||
b3Mat33 I;
|
||||
};
|
||||
|
||||
class b3Shape
|
||||
{
|
||||
public:
|
||||
// A shape is created and initialized by an user and a body.
|
||||
b3Shape() { }
|
||||
virtual ~b3Shape() { }
|
||||
|
||||
@ -78,11 +82,7 @@ public:
|
||||
const b3Body* GetBody() const;
|
||||
b3Body* GetBody();
|
||||
|
||||
// Get the frame of the shape relative to the world.
|
||||
b3Transform GetTransform() const;
|
||||
|
||||
// Calculate the mass data for this shape given the shape density, that is,
|
||||
// the mass per unit volume.
|
||||
// Calculate the mass data for this shape given the shape density.
|
||||
virtual void ComputeMass(b3MassData* data, float32 density) const = 0;
|
||||
|
||||
// Compute the shape world AABB.
|
||||
@ -91,26 +91,40 @@ public:
|
||||
// Test if a point is contained inside this shape.
|
||||
virtual bool TestPoint(const b3Vec3& point, const b3Transform& xf) const = 0;
|
||||
|
||||
// Compute the ray intersection point, normal, and fraction.
|
||||
// Compute the ray intersection point, normal of surface, and fraction.
|
||||
virtual bool RayCast(b3RayCastOutput* output, const b3RayCastInput& input, const b3Transform& xf) const = 0;
|
||||
|
||||
bool IsSensor() const;
|
||||
void SetSensor(bool flag);
|
||||
// Set if this shape is a sensor.
|
||||
void SetSensor(bool bit);
|
||||
|
||||
// Is this shape a sensor?
|
||||
bool IsSensor() const;
|
||||
|
||||
// Get the shape density.
|
||||
float32 GetDensity() const;
|
||||
|
||||
// Set the shape density.
|
||||
void SetDensity(float32 density);
|
||||
|
||||
// Get the shape coefficient of restitution.
|
||||
float32 GetRestitution() const;
|
||||
|
||||
// Set the shape coefficient of restitution.
|
||||
// This is a value in the range [0, 1].
|
||||
void SetRestitution(float32 restitution);
|
||||
|
||||
// Get the shape coefficient of friction.
|
||||
float32 GetFriction() const;
|
||||
|
||||
// Set the shape coefficient of friction.
|
||||
// This is a value in the range [0, 1].
|
||||
void SetFriction(float32 friction);
|
||||
|
||||
// Get the user data associated with this shape.
|
||||
void* GetUserData() const;
|
||||
void SetUserData(void* data);
|
||||
|
||||
// Destroy the contacts associated with this shape.
|
||||
void DestroyContacts();
|
||||
// Set the user data associated with this shape.
|
||||
void SetUserData(void* data);
|
||||
|
||||
// Dump this shape to the log file.
|
||||
void Dump(i32 bodyIndex) const;
|
||||
@ -119,23 +133,31 @@ public:
|
||||
const b3Shape* GetNext() const;
|
||||
b3Shape* GetNext();
|
||||
|
||||
// Create a shape.
|
||||
static b3Shape* Create(const b3ShapeDef& def);
|
||||
float32 m_radius;
|
||||
protected:
|
||||
friend class b3World;
|
||||
friend class b3Body;
|
||||
friend class b3Contact;
|
||||
friend class b3ContactManager;
|
||||
friend class b3ContactSolver;
|
||||
friend class b3List1<b3Shape>;
|
||||
|
||||
// Destroy a shape.
|
||||
static b3Shape* Create(const b3ShapeDef& def);
|
||||
static void Destroy(b3Shape* shape);
|
||||
|
||||
// Convenience function.
|
||||
// Destroy the contacts associated with this shape.
|
||||
void DestroyContacts();
|
||||
|
||||
b3ShapeType m_type;
|
||||
bool m_isSensor;
|
||||
void* m_userData;
|
||||
i32 m_broadPhaseID;
|
||||
|
||||
float32 m_radius;
|
||||
float32 m_density;
|
||||
float32 m_restitution;
|
||||
float32 m_friction;
|
||||
i32 m_broadPhaseID;
|
||||
|
||||
// Contact edges for this shape.
|
||||
// Contact edges for this shape contact graph.
|
||||
b3List2<b3ContactEdge> m_contactEdges;
|
||||
|
||||
// The parent body of this shape.
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_SPHERE_SHAPE_H
|
||||
#define B3_SPHERE_SHAPE_H
|
||||
|
||||
#include <bounce\dynamics\shapes\shape.h>
|
||||
#include <bounce/dynamics/shapes/shape.h>
|
||||
|
||||
class b3SphereShape : public b3Shape
|
||||
{
|
||||
|
@ -19,9 +19,9 @@
|
||||
#ifndef B3_TIME_STEP_H
|
||||
#define B3_TIME_STEP_H
|
||||
|
||||
#include <bounce\common\math\vec3.h>
|
||||
#include <bounce\common\math\mat33.h>
|
||||
#include <bounce\common\math\quat.h>
|
||||
#include <bounce/common/math/vec3.h>
|
||||
#include <bounce/common/math/mat33.h>
|
||||
#include <bounce/common/math/quat.h>
|
||||
|
||||
struct b3Position
|
||||
{
|
||||
|
@ -19,12 +19,12 @@
|
||||
#ifndef B3_WORLD_H
|
||||
#define B3_WORLD_H
|
||||
|
||||
#include <bounce\common\memory\stack_allocator.h>
|
||||
#include <bounce\common\memory\block_pool.h>
|
||||
#include <bounce\common\template\list.h>
|
||||
#include <bounce\dynamics\time_step.h>
|
||||
#include <bounce\dynamics\joint_manager.h>
|
||||
#include <bounce\dynamics\contact_manager.h>
|
||||
#include <bounce/common/memory/stack_allocator.h>
|
||||
#include <bounce/common/memory/block_pool.h>
|
||||
#include <bounce/common/template/list.h>
|
||||
#include <bounce/dynamics/time_step.h>
|
||||
#include <bounce/dynamics/joint_manager.h>
|
||||
#include <bounce/dynamics/contact_manager.h>
|
||||
|
||||
struct b3BodyDef;
|
||||
class b3Body;
|
||||
@ -34,18 +34,19 @@ class b3ContactListener;
|
||||
class b3ContactFilter;
|
||||
class b3Draw;
|
||||
|
||||
// Use a physics world to create/destroy rigid bodies, execute ray cast and AABB queries.
|
||||
// Use a physics world to create/destroy rigid bodies, execute ray cast and volume queries.
|
||||
class b3World
|
||||
{
|
||||
public:
|
||||
b3World();
|
||||
~b3World();
|
||||
|
||||
// Set the debug b3Draw interface.
|
||||
// Set the debug draw interface.
|
||||
// The user must implement this interface to tell the world to
|
||||
// b3Draw the physics entities.
|
||||
void SetDebugDraw(b3Draw* b3Draw);
|
||||
// draw the physics entities.
|
||||
void SetDebugDraw(b3Draw* draw);
|
||||
|
||||
// Get the debug draw interface.
|
||||
b3Draw* GetDebugDraw();
|
||||
|
||||
// The filter passed can tell the world to disallow the contact creation between
|
||||
@ -77,9 +78,9 @@ public:
|
||||
// Remove a joint from the world and deallocate it from the memory.
|
||||
void DestroyJoint(b3Joint* joint);
|
||||
|
||||
// Call the function below to simulate a physics step.
|
||||
// Simulate a physics step.
|
||||
// The function parameters are the ammount of time to simulate,
|
||||
// and the number of contact solver iterations.
|
||||
// and the number of constraint solver iterations.
|
||||
void Step(float32 dt, u32 velocityIterations, u32 positionIterations);
|
||||
|
||||
// Perform a ray cast with the world.
|
||||
@ -87,13 +88,13 @@ public:
|
||||
// in the world. The ray cast output is the intercepted shape, the intersection
|
||||
// point in world space, the face normal on the shape associated with the point,
|
||||
// and the intersection fraction.
|
||||
void CastRay(b3RayCastListener* listener, const b3Vec3& p1, const b3Vec3& p2) const;
|
||||
void RayCast(b3RayCastListener* listener, const b3Vec3& p1, const b3Vec3& p2) const;
|
||||
|
||||
// Perform a AABB cast with the world.
|
||||
// The query listener will be notified when two shape AABBs are overlapping.
|
||||
// If the listener returns false then the query is stopped immediately.
|
||||
// Otherwise, it continues searching for new overlapping shape AABBs.
|
||||
void CastAABB(b3QueryListener* listener, const b3AABB3& aabb) const;
|
||||
void QueryAABB(b3QueryListener* listener, const b3AABB3& aabb) const;
|
||||
|
||||
// Get the list of bodies in this world.
|
||||
const b3List2<b3Body>& GetBodyList() const;
|
||||
@ -110,7 +111,7 @@ public:
|
||||
// Get the time spent to finish executing each simulation module of the last physics step.
|
||||
const b3Profile& GetProfile() const;
|
||||
|
||||
// Tell the world to b3Draw the entities that belong to this world.
|
||||
// Tell the world to draw the entities that belong to this world.
|
||||
void DebugDraw() const;
|
||||
void DrawShape(const b3Transform& xf, const b3Shape* shape) const;
|
||||
void DrawJoint(const b3Joint* joint) const;
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef B3_WORLD_LISTENERS_H
|
||||
#define B3_WORLD_LISTENERS_H
|
||||
|
||||
#include <bounce\common\math\math.h>
|
||||
#include <bounce/common/math/math.h>
|
||||
|
||||
class b3Shape;
|
||||
class b3Contact;
|
||||
|
@ -19,8 +19,8 @@
|
||||
#ifndef QH_HULL_H
|
||||
#define QH_HULL_H
|
||||
|
||||
#include <bounce\common\geometry.h>
|
||||
#include <bounce\common\template\array.h>
|
||||
#include <bounce/common/geometry.h>
|
||||
#include <bounce/common/template/array.h>
|
||||
|
||||
template<class T>
|
||||
struct qhList
|
||||
|
@ -3,7 +3,7 @@
|
||||
template<class T>
|
||||
inline void qhList<T>::PushFront(T* link)
|
||||
{
|
||||
link->prev = nullptr;
|
||||
link->prev = NULL;
|
||||
link->next = head;
|
||||
if (head)
|
||||
{
|
||||
@ -31,8 +31,8 @@ inline T* qhList<T>::Remove(T* link)
|
||||
head = link->next;
|
||||
}
|
||||
|
||||
link->prev = nullptr;
|
||||
link->next = nullptr;
|
||||
link->prev = NULL;
|
||||
link->next = NULL;
|
||||
|
||||
--count;
|
||||
return next;
|
||||
@ -78,7 +78,7 @@ inline qhHalfEdge* qhFace::FindTwin(const qhVertex* tail, const qhVertex* head)
|
||||
e = e->next;
|
||||
} while (e != edge);
|
||||
|
||||
return nullptr;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline b3Vec3 b3Newell(const b3Vec3& a, const b3Vec3& b)
|
||||
@ -128,7 +128,7 @@ inline qhHalfEdge* qhHull::FindTwin(const qhVertex* tail, const qhVertex* head)
|
||||
}
|
||||
face = face->next;
|
||||
}
|
||||
return nullptr;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline u32 qhGetMemorySize(u32 V)
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef DEBUG_DRAW_H
|
||||
#define DEBUG_DRAW_H
|
||||
|
||||
#include <bounce\bounce.h>
|
||||
#include <bounce/bounce.h>
|
||||
#include "mat44.h"
|
||||
|
||||
struct DrawPoints;
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef MAT44_H
|
||||
#define MAT44_H
|
||||
|
||||
#include <bounce\bounce.h>
|
||||
#include <bounce/bounce.h>
|
||||
|
||||
struct Vec4
|
||||
{
|
||||
|
@ -45,7 +45,7 @@ public:
|
||||
|
||||
b3ShapeDef sdef;
|
||||
sdef.shape = &hs;
|
||||
sdef.userData = nullptr;
|
||||
sdef.userData = NULL;
|
||||
sdef.friction = 1.0f;
|
||||
|
||||
b3Shape* shape = body->CreateShape(sdef);
|
||||
@ -80,7 +80,7 @@ public:
|
||||
sdef.density = 0.5f;
|
||||
sdef.friction = 0.3f;
|
||||
sdef.shape = &hs;
|
||||
sdef.userData = nullptr;
|
||||
sdef.userData = NULL;
|
||||
|
||||
b3Shape* shape = body->CreateShape(sdef);
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef CLUSTER_H
|
||||
#define CLUSTER_H
|
||||
|
||||
#include <bounce\dynamics\contacts\contact_cluster.h>
|
||||
#include <bounce/dynamics/contacts/contact_cluster.h>
|
||||
|
||||
extern DebugDraw* g_debugDraw;
|
||||
extern Camera g_camera;
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef QUADRIC_H
|
||||
#define QUADRIC_H
|
||||
|
||||
#include <testbed\tests\quickhull_test.h>
|
||||
#include <testbed/tests/quickhull_test.h>
|
||||
|
||||
extern DebugDraw* g_debugDraw;
|
||||
extern Camera g_camera;
|
||||
@ -113,6 +113,19 @@ public:
|
||||
|
||||
~Quadric()
|
||||
{
|
||||
{
|
||||
b3Free(m_coneHull.vertices);
|
||||
b3Free(m_coneHull.edges);
|
||||
b3Free(m_coneHull.faces);
|
||||
b3Free(m_coneHull.planes);
|
||||
}
|
||||
|
||||
{
|
||||
b3Free(m_cylinderHull.vertices);
|
||||
b3Free(m_cylinderHull.edges);
|
||||
b3Free(m_cylinderHull.faces);
|
||||
b3Free(m_cylinderHull.planes);
|
||||
}
|
||||
}
|
||||
|
||||
static Test* Create()
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef QHULL_H
|
||||
#define QHULL_H
|
||||
|
||||
#include <bounce\quickhull\qh_hull.h>
|
||||
#include <bounce/quickhull/qh_hull.h>
|
||||
|
||||
extern DebugDraw* g_debugDraw;
|
||||
extern Camera g_camera;
|
||||
@ -48,7 +48,7 @@ struct Map
|
||||
return pair;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
b3StackArray<Pair, 256> m_pairs;
|
||||
|
@ -89,7 +89,7 @@ public:
|
||||
sdef.density = 0.0f;
|
||||
sdef.friction = 0.0f;
|
||||
sdef.shape = &hs;
|
||||
sdef.userData = nullptr;
|
||||
sdef.userData = NULL;
|
||||
|
||||
b3Shape* shape = body->CreateShape(sdef);
|
||||
}
|
||||
@ -109,7 +109,7 @@ public:
|
||||
sdef.density = 0.0f;
|
||||
sdef.friction = 0.0f;
|
||||
sdef.shape = &hs;
|
||||
sdef.userData = nullptr;
|
||||
sdef.userData = NULL;
|
||||
|
||||
b3Shape* shape = body->CreateShape(sdef);
|
||||
}
|
||||
@ -129,7 +129,7 @@ public:
|
||||
sdef.density = 0.0f;
|
||||
sdef.friction = 0.0f;
|
||||
sdef.shape = &hs;
|
||||
sdef.userData = nullptr;
|
||||
sdef.userData = NULL;
|
||||
|
||||
b3Shape* shape = body->CreateShape(sdef);
|
||||
}
|
||||
@ -149,7 +149,7 @@ public:
|
||||
sdef.density = 0.0f;
|
||||
sdef.friction = 0.0f;
|
||||
sdef.shape = &hs;
|
||||
sdef.userData = nullptr;
|
||||
sdef.userData = NULL;
|
||||
|
||||
b3Shape* shape = body->CreateShape(sdef);
|
||||
}
|
||||
@ -169,7 +169,7 @@ public:
|
||||
sdef.density = 0.0f;
|
||||
sdef.friction = 0.0f;
|
||||
sdef.shape = &hs;
|
||||
sdef.userData = nullptr;
|
||||
sdef.userData = NULL;
|
||||
|
||||
b3Shape* shape = body->CreateShape(sdef);
|
||||
}
|
||||
@ -190,7 +190,7 @@ public:
|
||||
sdef.density = 0.0f;
|
||||
sdef.friction = 0.0f;
|
||||
sdef.shape = &hs;
|
||||
sdef.userData = nullptr;
|
||||
sdef.userData = NULL;
|
||||
|
||||
b3Shape* shape = body->CreateShape(sdef);
|
||||
}
|
||||
@ -206,35 +206,16 @@ public:
|
||||
{
|
||||
// Perform the ray cast
|
||||
RayCastListener listener;
|
||||
m_world.CastRay(&listener, p1, p2);
|
||||
|
||||
int hitId = listener.FindClosestHit();
|
||||
m_world.RayCast(&listener, p1, p2);
|
||||
|
||||
i32 hitId = listener.FindClosestHit();
|
||||
if (hitId >= 0)
|
||||
{
|
||||
// Hit
|
||||
// Replace current hit
|
||||
RayCastHit rayHit = listener.m_hits[hitId];
|
||||
|
||||
b3Shape* shape = rayHit.m_shape;
|
||||
|
||||
b3Body* bodyA = m_groundBody;
|
||||
b3Body* bodyB = shape->GetBody();
|
||||
|
||||
// Ray hit point in world space
|
||||
b3Vec3 worldPointA = rayHit.m_point;
|
||||
|
||||
// xf from world space to the local space of the shape
|
||||
b3Transform xf = shape->GetTransform();
|
||||
|
||||
// lp = xf^-1 * wp
|
||||
b3Vec3 localPointA = b3MulT(xf, worldPointA);
|
||||
|
||||
extern DebugDraw* g_debugDraw;
|
||||
|
||||
g_debugDraw->DrawSegment(p1, worldPointA, b3Color(0.0f, 1.0f, 0.0f));
|
||||
g_debugDraw->DrawPoint(worldPointA, b3Color(1.0f, 0.0f, 0.0f));
|
||||
g_debugDraw->DrawSegment(worldPointA, worldPointA + rayHit.m_normal, b3Color(1.0f, 1.0f, 1.0f));
|
||||
RayCastHit hit = listener.m_hits[hitId];
|
||||
g_debugDraw->DrawSegment(p1, hit.m_point, b3Color(0.0f, 1.0f, 0.0f));
|
||||
g_debugDraw->DrawPoint(hit.m_point, b3Color(1.0f, 0.0f, 0.0f));
|
||||
g_debugDraw->DrawSegment(hit.m_point, hit.m_point + hit.m_normal, b3Color(1.0f, 1.0f, 1.0f));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -19,10 +19,10 @@
|
||||
#ifndef TEST_H
|
||||
#define TEST_H
|
||||
|
||||
#include <glfw\glfw3.h>
|
||||
#include <imgui\imgui.h>
|
||||
#include "..\framework\debug_draw.h"
|
||||
#include <bounce\bounce.h>
|
||||
#include <glfw/glfw3.h>
|
||||
#include <imgui/imgui.h>
|
||||
#include "../framework/debug_draw.h"
|
||||
#include <bounce/bounce.h>
|
||||
|
||||
struct Settings
|
||||
{
|
||||
@ -199,7 +199,6 @@ public:
|
||||
b3Profile m_maxProfile;
|
||||
|
||||
RayCastHit m_rayHit;
|
||||
b3Body* m_groundBody;
|
||||
b3BoxHull m_groundHull;
|
||||
b3BoxHull m_boxHull;
|
||||
b3BoxHull m_tallHull;
|
||||
|
144
premake5.lua
144
premake5.lua
@ -2,7 +2,7 @@
|
||||
-- Bounce premake script
|
||||
-- http://industriousone.com/premake
|
||||
|
||||
-- paths as variables in the case files are moved
|
||||
-- variable paths for the case files are moved
|
||||
solution_name = "bounce"
|
||||
working_dir = "."
|
||||
solution_dir = "build/"
|
||||
@ -12,7 +12,8 @@ src_dir = "src/"
|
||||
obj_dir = "/obj/"
|
||||
bin_dir = "/bin/"
|
||||
|
||||
action = _ACTION
|
||||
-- or "" to make --help work
|
||||
action = _ACTION or ""
|
||||
|
||||
-- premake main
|
||||
solution (solution_name)
|
||||
@ -20,14 +21,6 @@ solution (solution_name)
|
||||
configurations { "debug", "release" }
|
||||
platforms { "x32", "x64" }
|
||||
|
||||
filter { "platforms:x32" }
|
||||
system "windows"
|
||||
architecture "x32"
|
||||
|
||||
filter { "platforms:x64" }
|
||||
system "windows"
|
||||
architecture "x64"
|
||||
|
||||
-- note the use of "!" before objdir to force the specified path
|
||||
configuration "debug"
|
||||
targetdir ( solution_dir .. action .. bin_dir .. "%{cfg.platform}/%{cfg.buildcfg}/%{prj.name}" )
|
||||
@ -45,102 +38,156 @@ solution (solution_name)
|
||||
rtti "Off"
|
||||
flags { "FloatFast" }
|
||||
|
||||
configuration "windows"
|
||||
defines { "WIN32", "_WINDOWS" }
|
||||
configuration { "vs*" }
|
||||
defines { "_CRT_SECURE_NO_WARNINGS" }
|
||||
|
||||
configuration { "windows" }
|
||||
defines { "_WIN32", "WIN32", "_WINDOWS" }
|
||||
|
||||
project "bounce"
|
||||
kind "StaticLib"
|
||||
language "C++"
|
||||
location ( solution_dir .. action )
|
||||
includedirs { inc_dir }
|
||||
vpaths { [""] = "bounce" }
|
||||
buildoptions { "-std=c++11" } -- require C++11
|
||||
|
||||
files
|
||||
{
|
||||
inc_dir .. "/bounce/**.h",
|
||||
inc_dir .. "/bounce/**.inl",
|
||||
src_dir .. "/bounce/**.cpp"
|
||||
}
|
||||
includedirs { inc_dir }
|
||||
vpaths { [""] = "bounce" }
|
||||
|
||||
project "glad"
|
||||
kind "StaticLib"
|
||||
language "C"
|
||||
location ( solution_dir .. action )
|
||||
includedirs { external_dir }
|
||||
vpaths { ["Headers"] = "**.h", ["Sources"] = "**.c" }
|
||||
|
||||
files
|
||||
{
|
||||
external_dir .. "/glad/**.h",
|
||||
external_dir .. "/glad/**.c"
|
||||
external_dir .. "/glad/khrplatform.h",
|
||||
external_dir .. "/glad/glad.h",
|
||||
external_dir .. "/glad/glad.c"
|
||||
}
|
||||
|
||||
configuration { "not windows", "not macosx" }
|
||||
files
|
||||
{
|
||||
external_dir .. "/glad/glad_glx.h",
|
||||
external_dir .. "/glad/glad_glx.c"
|
||||
}
|
||||
includedirs { external_dir }
|
||||
defines { "_CRT_SECURE_NO_WARNINGS" }
|
||||
vpaths { ["Headers"] = "**.h", ["Sources"] = "**.c" }
|
||||
|
||||
project "glfw"
|
||||
kind "StaticLib"
|
||||
language "C"
|
||||
location ( solution_dir .. action )
|
||||
includedirs { external_dir .. "/glfw" }
|
||||
defines { "_GLFW_USE_CONFIG_H" } -- see glfw_config.h
|
||||
vpaths { ["Headers"] = "**.h", ["Sources"] = "**.c" }
|
||||
|
||||
-- windows headers and sources
|
||||
configuration { "windows" }
|
||||
-- files
|
||||
|
||||
-- common
|
||||
files
|
||||
{
|
||||
external_dir .. "/glfw/egl_context.h",
|
||||
external_dir .. "/glfw/glfw_config.h",
|
||||
external_dir .. "/glfw/glfw3.h",
|
||||
external_dir .. "/glfw/glfw3native.h",
|
||||
external_dir .. "/glfw/glfw_config.h",
|
||||
external_dir .. "/glfw/wgl_context.h",
|
||||
external_dir .. "/glfw/win32_joystick.h",
|
||||
external_dir .. "/glfw/win32_platform.h",
|
||||
|
||||
external_dir .. "/glfw/context.c",
|
||||
external_dir .. "/glfw/egl_context.c",
|
||||
external_dir .. "/glfw/init.c",
|
||||
external_dir .. "/glfw/input.c",
|
||||
external_dir .. "/glfw/monitor.c",
|
||||
external_dir .. "/glfw/vulkan.c",
|
||||
external_dir .. "/glfw/wgl_context.c",
|
||||
external_dir .. "/glfw/window.c",
|
||||
}
|
||||
|
||||
-- windows
|
||||
configuration { "windows" }
|
||||
files
|
||||
{
|
||||
external_dir .. "/glfw/win32_platform.h",
|
||||
external_dir .. "/glfw/win32_joystick.h",
|
||||
external_dir .. "/glfw/wgl_context.h",
|
||||
external_dir .. "/glfw/egl_context.h",
|
||||
|
||||
external_dir .. "/glfw/win32_init.c",
|
||||
external_dir .. "/glfw/win32_joystick.c",
|
||||
external_dir .. "/glfw/win32_monitor.c",
|
||||
external_dir .. "/glfw/win32_time.c",
|
||||
external_dir .. "/glfw/win32_tls.c",
|
||||
external_dir .. "/glfw/win32_window.c",
|
||||
external_dir .. "/glfw/window.c"
|
||||
external_dir .. "/glfw/wgl_context.c",
|
||||
external_dir .. "/glfw/egl_context.c",
|
||||
}
|
||||
|
||||
-- linux
|
||||
configuration { "not windows", "not macosx" }
|
||||
buildoptions { "-pthread" }
|
||||
files
|
||||
{
|
||||
external_dir .. "/glfw/x11_platform.h",
|
||||
external_dir .. "/glfw/xkb_unicode.h",
|
||||
external_dir .. "/glfw/linux_joystick.h",
|
||||
external_dir .. "/glfw/posix_time.h",
|
||||
external_dir .. "/glfw/posix_tls.h",
|
||||
external_dir .. "/glfw/glx_context.h",
|
||||
external_dir .. "/glfw/egl_context.h",
|
||||
|
||||
external_dir .. "/glfw/x11_init.c",
|
||||
external_dir .. "/glfw/x11_monitor.c",
|
||||
external_dir .. "/glfw/x11_window.c",
|
||||
external_dir .. "/glfw/xkb_unicode.c",
|
||||
external_dir .. "/glfw/linux_joystick.c",
|
||||
external_dir .. "/glfw/posix_time.c",
|
||||
external_dir .. "/glfw/posix_tls.c",
|
||||
external_dir .. "/glfw/egl_context.c",
|
||||
external_dir .. "/glfw/glx_context.c",
|
||||
}
|
||||
includedirs { external_dir .. "/glfw" }
|
||||
defines { "_GLFW_USE_CONFIG_H", "_CRT_SECURE_NO_WARNINGS" }
|
||||
vpaths { ["Headers"] = "**.h", ["Sources"] = "**.c" }
|
||||
|
||||
project "imgui"
|
||||
kind "StaticLib"
|
||||
language "C++"
|
||||
location ( solution_dir .. action )
|
||||
includedirs { external_dir }
|
||||
vpaths { ["Headers"] = "**.h", ["Sources"] = "**.cpp" }
|
||||
buildoptions { "-std=c++11" } -- require C++11
|
||||
|
||||
files
|
||||
{
|
||||
external_dir .. "/imgui/**.h",
|
||||
external_dir .. "/imgui/**.cpp"
|
||||
}
|
||||
includedirs { external_dir }
|
||||
defines { "_CRT_SECURE_NO_WARNINGS" }
|
||||
vpaths { ["Headers"] = "**.h", ["Sources"] = "**.cpp" }
|
||||
|
||||
project "testbed"
|
||||
kind "ConsoleApp"
|
||||
language "C++"
|
||||
location ( solution_dir .. action )
|
||||
includedirs { external_dir, inc_dir }
|
||||
vpaths { ["Headers"] = "**.h", ["Sources"] = "**.cpp" }
|
||||
buildoptions { "-std=c++11" } -- require C++11
|
||||
|
||||
--common
|
||||
files
|
||||
{
|
||||
inc_dir .. "/testbed/**.h",
|
||||
src_dir .. "/testbed/**.cpp"
|
||||
}
|
||||
includedirs { external_dir, inc_dir }
|
||||
|
||||
-- dependencies
|
||||
links { "bounce", "glad", "glfw", "imgui" }
|
||||
links { "glfw", "glad", "imgui", "bounce" }
|
||||
|
||||
-- windows dependencies
|
||||
configuration { "windows" }
|
||||
links { "glu32", "opengl32", "winmm" }
|
||||
vpaths { ["Headers"] = "**.h", ["Sources"] = "**.cpp" }
|
||||
|
||||
configuration { "not windows", "not macosx" }
|
||||
links
|
||||
{
|
||||
"GL", "GLU", "rt", "Xrandr", "Xinerama", "Xi", "Xcursor",
|
||||
"m", "dl", "Xrender", "drm", "Xdamage", "X11-xcb", "xcb-glx",
|
||||
"xcb-dri2", "xcb-dri3", "xcb-present", "xcb-sync", "xshmfence",
|
||||
"Xxf86vm", "Xfixes", "Xext", "X11", "pthread", "xcb", "Xau", "Xdmcp"
|
||||
}
|
||||
|
||||
-- build
|
||||
if os.is "windows" then
|
||||
@ -148,14 +195,22 @@ if os.is "windows" then
|
||||
newaction
|
||||
{
|
||||
trigger = "solution",
|
||||
description = "Make and open solution",
|
||||
description = "Build solution",
|
||||
execute = function ()
|
||||
os.execute ( "premake5 clean" )
|
||||
os.execute ( "premake5 vs2015" )
|
||||
os.execute ( "start " .. solution_dir .. "vs2015/bounce.sln" )
|
||||
end
|
||||
}
|
||||
|
||||
newaction
|
||||
{
|
||||
trigger = "doc",
|
||||
description = "Build documentation",
|
||||
execute = function ()
|
||||
os.execute ( "doxygen doxyfile" )
|
||||
os.execute ( "start doc\\api\\html\\index.html" )
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
-- clean
|
||||
@ -164,6 +219,7 @@ newaction
|
||||
trigger = "clean",
|
||||
description = "Clean solution",
|
||||
execute = function ()
|
||||
os.rmdir( "doc" )
|
||||
os.rmdir( solution_dir )
|
||||
end
|
||||
}
|
15
readme.md
15
readme.md
@ -7,14 +7,14 @@ Here is how to control the Testbed. The Testbed is a collection of tests and exa
|
||||
Camera (as in Maya):
|
||||
|
||||
<ul>
|
||||
<li>Rotate the scene holding ALT + LMB</li>
|
||||
<li>Translate the scene holding ALT + RMB</li>
|
||||
<li>Zoom in/out the scene using ALT + Mouse Wheel</li>
|
||||
<li>Rotate the scene holding LSHIFT + LMB</li>
|
||||
<li>Translate the scene holding LSHIFT + RMB</li>
|
||||
<li>Zoom in/out the scene using LSHIFT + Mouse Wheel</li>
|
||||
</ul>
|
||||
|
||||
Bounce is released under the <b>zlib</b> license.
|
||||
|
||||
[Irlan Robson](http://irlan.net)
|
||||
Irlan Robson
|
||||
|
||||
<h3>Features</h3>
|
||||
|
||||
@ -32,15 +32,14 @@ Bounce is released under the <b>zlib</b> license.
|
||||
<li>Static tree "midphase"</li>
|
||||
<li>SAT</li>
|
||||
<li>GJK</li>
|
||||
<li>Spheres, capsules, hulls</li>
|
||||
<li>Spheres, capsules, hulls, triangle meshes</li>
|
||||
<li>Optimized pair management</li>
|
||||
|
||||
<h4>Dynamics</h4>
|
||||
|
||||
<li>Spheres, capsules, hulls, triangle meshes</li>
|
||||
<li>Distance, spring, sphere, cone, revolute joint types</li>
|
||||
<li>Joint motors, limits</li>
|
||||
<li>Contact, friction, restitution</li>
|
||||
<li>Mouse, spring, sphere, cone, revolute joint types</li>
|
||||
<li>Joint motors, limits</li>
|
||||
<li>Constraint graphs</li>
|
||||
<li>Simulation islands and sleep management</li>
|
||||
<li>Linear time solver</li>
|
||||
|
@ -16,18 +16,18 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#include <bounce\collision\broad_phase.h>
|
||||
#include <bounce/collision/broad_phase.h>
|
||||
|
||||
b3BroadPhase::b3BroadPhase()
|
||||
{
|
||||
m_moveBufferCapacity = 16;
|
||||
m_moveBuffer = (i32*)b3Alloc(m_moveBufferCapacity * sizeof(i32));
|
||||
memset(m_moveBuffer, NULL, m_moveBufferCapacity * sizeof(i32));
|
||||
memset(m_moveBuffer, 0, m_moveBufferCapacity * sizeof(i32));
|
||||
m_moveBufferCount = 0;
|
||||
|
||||
m_pairBufferCapacity = 16;
|
||||
m_pairBuffer = (b3Pair*)b3Alloc(m_pairBufferCapacity * sizeof(b3Pair));
|
||||
memset(m_pairBuffer, NULL, m_pairBufferCapacity * sizeof(b3Pair));
|
||||
memset(m_pairBuffer, 0, m_pairBufferCapacity * sizeof(b3Pair));
|
||||
m_pairBufferCount = 0;
|
||||
}
|
||||
|
||||
|
@ -16,10 +16,10 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#include <bounce\collision\distance.h>
|
||||
#include <bounce\common\math\vec2.h>
|
||||
#include <bounce\common\math\vec3.h>
|
||||
#include <bounce\common\math\mat22.h>
|
||||
#include <bounce/collision/distance.h>
|
||||
#include <bounce/common/math/vec2.h>
|
||||
#include <bounce/common/math/vec3.h>
|
||||
#include <bounce/common/math/mat22.h>
|
||||
|
||||
b3Vec3 b3ClosestPointOnPlane(const b3Vec3& P, const b3Plane& plane)
|
||||
{
|
||||
|
@ -16,8 +16,8 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#include <bounce\collision\gjk\gjk.h>
|
||||
#include <bounce\collision\gjk\gjk_proxy.h>
|
||||
#include <bounce/collision/gjk/gjk.h>
|
||||
#include <bounce/collision/gjk/gjk_proxy.h>
|
||||
|
||||
// Implementation of the GJK (Gilbert-Johnson-Keerthi) algorithm
|
||||
// using Voronoi regions and Barycentric coordinates.
|
||||
|
@ -16,8 +16,8 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#include <bounce\collision\gjk\gjk_cache.h>
|
||||
#include <bounce\collision\gjk\gjk_proxy.h>
|
||||
#include <bounce/collision/gjk/gjk_cache.h>
|
||||
#include <bounce/collision/gjk/gjk_proxy.h>
|
||||
|
||||
extern u32 b3_gjkCalls, b3_gjkIters, b3_gjkMaxIters;
|
||||
u32 b3_gjkCacheHits;
|
||||
|
@ -16,7 +16,7 @@
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#include <bounce\collision\gjk\gjk_cache.h>
|
||||
#include <bounce/collision/gjk/gjk_cache.h>
|
||||
|
||||
b3GJKFeaturePair b3GetFeaturePair(const b3SimplexCache& cache)
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user