Skip to content

Commit

Permalink
feat(ScriptEngine): extend Engine_Geometry module
Browse files Browse the repository at this point in the history
  • Loading branch information
Insineer committed Sep 11, 2019
1 parent 4d4bdc8 commit b28d15b
Show file tree
Hide file tree
Showing 8 changed files with 34 additions and 17 deletions.
8 changes: 4 additions & 4 deletions OSS13 Server/OSS13 Server.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
</Link>
<ClCompile>
<AdditionalIncludeDirectories>Include;Sources;$(SolutionDir)/SharedLibrary/Sources;$(SolutionDir)/External/plog/include;$(SolutionDir)/External/sfml-imgui;$(VcpkgRoot)/include/python3.7;$(SolutionDir)/External/pybind11/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SFML_STATIC;HAVE_SNPRINTF;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>SFML_STATIC;HAVE_SNPRINTF;_MBCS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Expand All @@ -98,7 +98,7 @@
</Link>
<ClCompile>
<AdditionalIncludeDirectories>Include;Sources;$(SolutionDir)/SharedLibrary/Sources;$(SolutionDir)/External/plog/include;$(SolutionDir)/External/sfml-imgui;$(VcpkgRoot)/include/python3.7;$(SolutionDir)/External/pybind11/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SFML_STATIC;HAVE_SNPRINTF;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>SFML_STATIC;HAVE_SNPRINTF;_MBCS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Expand All @@ -112,7 +112,7 @@
</Link>
<ClCompile>
<AdditionalIncludeDirectories>Include;Sources;$(SolutionDir)/SharedLibrary/Sources;$(SolutionDir)/External/plog/include;$(SolutionDir)/External/sfml-imgui;$(VcpkgRoot)/include/python3.7;$(SolutionDir)/External/pybind11/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SFML_STATIC;HAVE_SNPRINTF;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>SFML_STATIC;HAVE_SNPRINTF;_MBCS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Expand All @@ -126,7 +126,7 @@
</Link>
<ClCompile>
<AdditionalIncludeDirectories>Include;Sources;$(SolutionDir)/SharedLibrary/Sources;$(SolutionDir)/External/plog/include;$(SolutionDir)/External/sfml-imgui;$(VcpkgRoot)/include/python3.7;$(SolutionDir)/External/pybind11/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SFML_STATIC;HAVE_SNPRINTF;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>SFML_STATIC;HAVE_SNPRINTF;_MBCS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
Expand Down
11 changes: 11 additions & 0 deletions OSS13 Server/Sources/ScriptEngine/Module/GeometryModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ void RegistratePlaneVector(py::module m, const char *name) {
.def(py::init<T>())
.def_readwrite("x", &uf::vec2<T>::x)
.def_readwrite("y", &uf::vec2<T>::y)
.def("Length", &uf::vec2<T>::length)
.def("Normalize", &uf::vec2<T>::normalize)
.def("GetAngle", &uf::vec2<T>::GetAngle)
.def("GetDirection", [](const uf::vec2<T> &v) { return VectToDirection(v); })
.def(py::self + py::self)
.def(py::self - py::self)
.def(py::self * int())
Expand All @@ -36,11 +39,15 @@ void RegistrateSpaceVector(py::module m, const char *name) {
py::class_<uf::vec3<T>>(m, name)
.def(py::init<>())
.def(py::init<T, T, T>())
.def(py::init<uf::vec2<T>, T>())
.def(py::init<T>())
.def_readwrite("x", &uf::vec3<T>::x)
.def_readwrite("y", &uf::vec3<T>::y)
.def_readwrite("z", &uf::vec3<T>::z)
.def_property_readonly("xy", &uf::vec3<T>::xy)
.def("Length", &uf::vec3<T>::length)
.def("Normalize", &uf::vec3<T>::normalize)
.def("GetDirection", [](const uf::vec3<T> &v) { return VectToDirection(v); })
.def(py::self + py::self)
.def(py::self - py::self)
.def(py::self * int())
Expand Down Expand Up @@ -73,6 +80,10 @@ PYBIND11_EMBEDDED_MODULE(Engine_Geometry, m) {
.value("SOUTH_EAST", uf::Direction::SOUTH_EAST)
.value("CENTER", uf::Direction::CENTER);

m.def("DirectionToVect", &uf::DirectionToVect);
m.def("InvertDirection", &uf::InvertDirection);
m.def("SplitDirection", &uf::SplitDirection);

py::class_<uf::DirectionSet>(m, "DirectionSet")
.def(py::init<>())
.def("Add", (void (uf::DirectionSet::*)(const std::list<uf::Direction> &)) &uf::DirectionSet::Add)
Expand Down
8 changes: 4 additions & 4 deletions SharedLibrary/SharedLibrary.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>SFML_STATIC;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>SFML_STATIC;_USE_MATH_DEFINES;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
Expand All @@ -162,7 +162,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>SFML_STATIC;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>SFML_STATIC;_USE_MATH_DEFINES;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
Expand All @@ -181,7 +181,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>SFML_STATIC;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>SFML_STATIC;_USE_MATH_DEFINES;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<LanguageStandard>stdcpp17</LanguageStandard>
Expand All @@ -201,7 +201,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>SFML_STATIC;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>SFML_STATIC;_USE_MATH_DEFINES;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<LanguageStandard>stdcpp17</LanguageStandard>
Expand Down
10 changes: 6 additions & 4 deletions SharedLibrary/Sources/Shared/Geometry/Direction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

namespace uf {

Direction VectToDirection(vec2i vector) {
template<class T>
Direction VectToDirection(vec2<T> vector) {
if (vector.x > 0) {
if (vector.y > 0) return Direction::SOUTH_EAST;
if (vector.y == 0) return Direction::EAST;
Expand All @@ -22,9 +23,10 @@ Direction VectToDirection(vec2i vector) {
}
return Direction::NONE;
}
Direction VectToDirection(rpos vector) {
return VectToDirection(vector.xy());
}

Direction VectToDirection(vec2i vector) { return VectToDirection<int>(vector); }
Direction VectToDirection(vec2f vector) { return VectToDirection<float>(vector); }
Direction VectToDirection(rpos vector) { return VectToDirection(vector.xy()); }

vec2i DirectionToVect(Direction direction) {
switch (direction) {
Expand Down
3 changes: 2 additions & 1 deletion SharedLibrary/Sources/Shared/Geometry/Direction.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ template<typename T>
struct vec3;

typedef vec2<int> vec2i;
typedef vec2<float> vec2f;
typedef vec3<int> rpos;

enum class Direction : char {
Expand All @@ -23,7 +24,7 @@ enum class Direction : char {
CENTER
};

Direction VectToDirection(vec2i);
Direction VectToDirection(vec2f);
Direction VectToDirection(rpos);
vec2i DirectionToVect(Direction);

Expand Down
6 changes: 3 additions & 3 deletions SharedLibrary/Sources/Shared/Geometry/Vec2.inl
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ namespace uf {
if (y > 0) return M_PI / 2;
else return M_PI * 3 / 2;
}
float angle = 0;
if (x > 0) angle = atan(y / x);
if (x < 0) angle = M_PI - atan(y / -x);
double angle = 0;
if (x > 0) angle = atan(y / static_cast<double>(x));
if (x < 0) angle = M_PI - atan(y / -static_cast<double>(x));
return angle;
}

Expand Down
4 changes: 4 additions & 0 deletions SharedLibrary/Tests/SharedLibrary_Test.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SFML_STATIC;_MBCS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<PostBuildEvent>
<Command>$(SolutionDir)bin\$(Configuration)-$(Platform)\SharedLibrary_Test.exe</Command>
Expand All @@ -89,6 +90,7 @@
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SFML_STATIC;_MBCS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<PostBuildEvent>
<Command>$(SolutionDir)bin\$(Configuration)-$(Platform)\SharedLibrary_Test.exe</Command>
Expand All @@ -109,6 +111,7 @@
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SFML_STATIC;_MBCS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
Expand All @@ -131,6 +134,7 @@
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SFML_STATIC;_MBCS;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
Expand Down
1 change: 0 additions & 1 deletion SharedLibrary/Tests/Sources/MovePhysics_Tests.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#define _USE_MATH_DEFINES
#include <Shared/Physics/MovePhysics.hpp>

#include <gtest/gtest.h>
Expand Down

0 comments on commit b28d15b

Please sign in to comment.