From b62f87c9496cb38f9c49139386edf85d4fa14390 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 2 Dec 2021 21:07:58 +0800 Subject: *misc --- Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj | 3 +- .../VisualStudio/Phy2D/Phy2D.vcxproj.filters | 107 ++++++++++----------- Client/Source/Phy2D/Common/Settings.h | 24 ++++- Client/Source/Phy2D/Tests/test_math.cpp | 11 ++- Client/ThirdParty/fix32/fix32.hpp | 4 +- 5 files changed, 79 insertions(+), 70 deletions(-) diff --git a/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj b/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj index 84b0365..51acc0e 100644 --- a/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj +++ b/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj @@ -125,7 +125,7 @@ true false true - D:\Documents\VisualStudio2017\Projects\LOG\Client\Source\ThirdParty;D:\Documents\VisualStudio2017\Projects\LOG\Client\Source\ThirdParty\imgui;D:\Documents\VisualStudio2017\Projects\LOG\Client\Source\ThirdParty\SDL2;%(AdditionalIncludeDirectories) + $(SolutionDir)..\..\ThirdParty;$(SolutionDir)..\..\ThirdParty\imgui;$(SolutionDir)..\..\ThirdParty\SDL2;%(AdditionalIncludeDirectories) Console @@ -139,7 +139,6 @@ - diff --git a/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters b/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters index cf32e27..1c1e5ec 100644 --- a/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters +++ b/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters @@ -10,28 +10,28 @@ {6c1d51b9-5afe-46fb-a449-3100c2d58a72} - + + {b4d78560-5498-4b35-8f8d-f87db40a4e52} + + + {596062aa-a263-4c8c-acf2-1267b28a0f97} + + {e496beb9-5af2-42a7-afb5-29cf18b93f78} - + {85bb91e1-cb20-476e-969b-9fd35bbca3f0} - + {3fc1eb36-36c6-4b4c-8777-8f47c906eaff} - - {b4d78560-5498-4b35-8f8d-f87db40a4e52} - - + {0fd3d9e4-aaf1-4d81-9dff-da02f4d227c6} - + {4f477d90-081e-42f9-8a1a-146b2ecd4215} - - {596062aa-a263-4c8c-acf2-1267b28a0f97} - - + {fc4d6710-2d01-480a-892c-79a461ad0ec4} @@ -46,58 +46,55 @@ Test - libs\glad - - - libs\fix32 + Libs\glad - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\sll + Libs\sll @@ -115,81 +112,81 @@ Test - libs\glad + Libs\glad - libs\glad + Libs\glad - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\imgui + Libs\imgui - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath Common - libs\sll + Libs\sll - libs\fix32 + Libs\fix32 - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath - libs\libfixmath + Libs\libfixmath \ No newline at end of file diff --git a/Client/Source/Phy2D/Common/Settings.h b/Client/Source/Phy2D/Common/Settings.h index 318a76c..b03ecad 100644 --- a/Client/Source/Phy2D/Common/Settings.h +++ b/Client/Source/Phy2D/Common/Settings.h @@ -1,16 +1,19 @@ #pragma once -#define NUMBER_FLOAT 1 -#define NUMBER_LIBFIX 2 -#define NUMBER_FPM 3 +#define NUMBER_FLOAT 1 +#define NUMBER_LIBFIX 2 +#define NUMBER_FPM 3 +#define NUMBER_FIX32 4 -#define NUMBER_ALIAS NUMBER_FPM +#define NUMBER_ALIAS NUMBER_FIX32 #if NUMBER_ALIAS == NUMBER_LIBFIX #include "libfixmath/libfixmath/fixmath.h" #elif NUMBER_ALIAS == NUMBER_FPM #include "fpm/include/fpm/fixed.hpp" #include "fpm/include/fpm/math.hpp" +#elif NUMBER_ALIAS == NUMBER_FIX32 +#include "fix32/fix32.hpp" #endif namespace Phy2D @@ -28,7 +31,6 @@ namespace Phy2D #elif NUMBER_ALIAS == NUMBER_LIBFIX - // 同时一定要开启内联函数扩展,否则执行效率会非常低 typedef Fix16 fixed; #define NUMBER_MAX (fix16_maximum) #define NUMBER_MIN (fix16_minimum) @@ -92,6 +94,18 @@ namespace Phy2D #define COS(a) (fpm::cos((a))) #define PI (fixed::pi()) +#elif NUMBER_ALIAS == NUMBER_FIX32 + + typedef Fix32 fixed32; // Q32.32 + typedef fixed32 fixed; + +#define NUMBER_MAX (CONST_MAX) +#define NUMBER_MIN (CONST_MIN) +#define SQRT(a) ((a).sqrt()) +#define SIN(a) ((a).sin()) +#define COS(a) ((a).cos()) +#define PI (CONST_PI) + #endif } \ No newline at end of file diff --git a/Client/Source/Phy2D/Tests/test_math.cpp b/Client/Source/Phy2D/Tests/test_math.cpp index f88170d..36e834c 100644 --- a/Client/Source/Phy2D/Tests/test_math.cpp +++ b/Client/Source/Phy2D/Tests/test_math.cpp @@ -4,17 +4,18 @@ #include #include "../Common/Math.h" +#include "../Common/Settings.h" #include "fix32/fix32.hpp" -using namespace std; +using namespace Phy2D; int main(int argc, char **argv) { - Fix32 a = 1.3; - Fix32 b = 2.4; - Fix32 c = a * b; + fixed32 a = 1111.33333; + fixed32 b = 23333.44444; + fixed32 c = a / b; - cout << (double)c; + std::cout << (double)c; getchar(); diff --git a/Client/ThirdParty/fix32/fix32.hpp b/Client/ThirdParty/fix32/fix32.hpp index 7999ad4..e6945d8 100644 --- a/Client/ThirdParty/fix32/fix32.hpp +++ b/Client/ThirdParty/fix32/fix32.hpp @@ -5,13 +5,11 @@ extern "C" { #include "math-sll/math-sll.h" } -typedef sll fixed32_t; - // Q32.32 class Fix32 { public: - sll value; + sll value; // signed long long inline Fix32() { value = 0; } inline Fix32(const Fix32 &inValue) { value = inValue.value; } -- cgit v1.1-26-g67d0