From a8c51940a32f78f11879270974741b43b1438129 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 23 Jul 2020 20:50:59 -0700 Subject: Added simple c++/cli wrapper --- wrapper/wrapper.cpp | 14 +++++ wrapper/wrapper.hpp | 47 +++++++++++++++ wrapper/wrapper.vcxproj | 126 ++++++++++++++++++++++++++++++++++++++++ wrapper/wrapper.vcxproj.filters | 27 +++++++++ 4 files changed, 214 insertions(+) create mode 100644 wrapper/wrapper.cpp create mode 100644 wrapper/wrapper.hpp create mode 100644 wrapper/wrapper.vcxproj create mode 100644 wrapper/wrapper.vcxproj.filters (limited to 'wrapper') diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp new file mode 100644 index 0000000..df3f796 --- /dev/null +++ b/wrapper/wrapper.cpp @@ -0,0 +1,14 @@ +#pragma once + +#include "..\common\rawaccel.hpp"; +#include "wrapper.hpp"; +using namespace rawaccel; +using namespace System; + +Tuple^ ManagedAccel::Accelerate(int x, int y, double time, double mode) +{ + vec2d input_vec2d = {x, y}; + vec2d output = (*accel_instance)(input_vec2d, (accel_function::milliseconds)time, (rawaccel::mode)mode); + + return gcnew Tuple(output.x, output.y); +} \ No newline at end of file diff --git a/wrapper/wrapper.hpp b/wrapper/wrapper.hpp new file mode 100644 index 0000000..eaa8489 --- /dev/null +++ b/wrapper/wrapper.hpp @@ -0,0 +1,47 @@ +#pragma once + +#include "..\common\rawaccel.hpp"; +#include "..\common\rawaccel-userspace.hpp"; +#include +using namespace rawaccel; +using namespace System; + +public ref class ManagedAccel +{ +protected: + accel_function* accel_instance; +public: + ManagedAccel(accel_function* accel) + : accel_instance(accel) + { + } + + ManagedAccel(double mode, double offset, double accel, double lim_exp, double midpoint) + { + accel_function::args_t args{}; + + accel_instance = new accel_function(args); + } + + virtual ~ManagedAccel() + { + if (accel_instance != nullptr) + { + delete accel_instance; + } + } + !ManagedAccel() + { + if (accel_instance != nullptr) + { + delete accel_instance; + } + } + + accel_function* GetInstance() + { + return accel_instance; + } + + Tuple^ Accelerate(int x, int y, double time, double mode); +}; \ No newline at end of file diff --git a/wrapper/wrapper.vcxproj b/wrapper/wrapper.vcxproj new file mode 100644 index 0000000..25f878c --- /dev/null +++ b/wrapper/wrapper.vcxproj @@ -0,0 +1,126 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {28A3656F-A1DE-405C-B547-191C32EC555F} + v4.7.2 + ManagedCProj + wrapper + 10.0 + + + + DynamicLibrary + true + v142 + true + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + DynamicLibrary + true + v142 + true + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + Level3 + _DEBUG;%(PreprocessorDefinitions) + stdcpplatest + + + + + + + + Level3 + WIN32;_DEBUG;%(PreprocessorDefinitions) + stdcpplatest + + + + + + + + Level3 + WIN32;NDEBUG;%(PreprocessorDefinitions) + stdcpplatest + + + + + + + + Level3 + NDEBUG;%(PreprocessorDefinitions) + stdcpplatest + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wrapper/wrapper.vcxproj.filters b/wrapper/wrapper.vcxproj.filters new file mode 100644 index 0000000..22d967d --- /dev/null +++ b/wrapper/wrapper.vcxproj.filters @@ -0,0 +1,27 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + + + Source Files + + + \ No newline at end of file -- cgit v1.2.3 From 02f5d86a891edb2f49851b400b0d2b2f8b4e4f98 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Fri, 24 Jul 2020 11:15:04 -0700 Subject: Add a basic windows forms grapher --- wrapper/wrapper.hpp | 5 +++++ wrapper/wrapper.vcxproj | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'wrapper') diff --git a/wrapper/wrapper.hpp b/wrapper/wrapper.hpp index eaa8489..24bcadb 100644 --- a/wrapper/wrapper.hpp +++ b/wrapper/wrapper.hpp @@ -19,6 +19,11 @@ public: ManagedAccel(double mode, double offset, double accel, double lim_exp, double midpoint) { accel_function::args_t args{}; + args.accel = accel; + args.lim_exp = lim_exp; + args.midpoint = midpoint; + args.accel_mode = (rawaccel::mode)mode; + args.offset = offset; accel_instance = new accel_function(args); } diff --git a/wrapper/wrapper.vcxproj b/wrapper/wrapper.vcxproj index 25f878c..d27266d 100644 --- a/wrapper/wrapper.vcxproj +++ b/wrapper/wrapper.vcxproj @@ -78,7 +78,7 @@ Level3 _DEBUG;%(PreprocessorDefinitions) - stdcpplatest + stdcpp17 @@ -88,7 +88,7 @@ Level3 WIN32;_DEBUG;%(PreprocessorDefinitions) - stdcpplatest + stdcpp17 @@ -98,7 +98,7 @@ Level3 WIN32;NDEBUG;%(PreprocessorDefinitions) - stdcpplatest + stdcpp17 @@ -108,7 +108,7 @@ Level3 NDEBUG;%(PreprocessorDefinitions) - stdcpplatest + stdcpp17 -- cgit v1.2.3