3#include <hpp/small_vector.hpp>
7#include <dotnetpp/dotnetpp.h>
8#include <dotnetpp/dotnet_managed.h>
12namespace managed_interface
180template <
typename T,
size_t StaticCapacity>
181struct dotnet_converter<hpp::small_vector<T, StaticCapacity>>
188 std::vector<T> vec(obj.begin(), obj.end());
189 return dotnet_converter<std::vector<T>>::to_managed(vec);
198 auto vec = dotnet_converter<std::vector<T>>::from_managed(obj);
215 static auto create_instance(
const std::string& namespace_name,
const std::string& type_name) -> dotnet::object;
219 dotnet::set_field_value(instance,
"nativePtr", obj.
native_ptr);
224 dotnet::set_field_value(instance,
"phase", obj.
phase);
225 dotnet::set_field_value(instance,
"eventType", obj.
event_type);
230 dotnet::get_field_value(
object,
"nativePtr", data.
native_ptr);
235 dotnet::get_field_value(
object,
"phase", data.
phase);
236 dotnet::get_field_value(
object,
"eventType", data.
event_type);
241 auto instance = create_instance(
"Unravel.Core",
"UIEventBase");
242 to_managed_base(obj, instance);
243 return dotnet::get_managed_ptr(instance);
248 dotnet::object
object(obj);
250 from_managed_base(
object, data);
257 : dotnet_converter<dotnetpp_backend::managed_interface::ui_event_base>
264 auto instance = create_instance(
"Unravel.Core",
"UIPointerEvent");
265 to_managed_base(obj, instance);
266 dotnet::set_field_value(instance,
"x", obj.x);
267 dotnet::set_field_value(instance,
"y", obj.y);
268 dotnet::set_field_value(instance,
"button", obj.button);
269 dotnet::set_field_value(instance,
"ctrlKey", obj.ctrl_key);
270 dotnet::set_field_value(instance,
"shiftKey", obj.shift_key);
271 dotnet::set_field_value(instance,
"altKey", obj.alt_key);
272 dotnet::set_field_value(instance,
"metaKey", obj.meta_key);
273 dotnet::set_field_value(instance,
"deltaX", obj.delta_x);
274 dotnet::set_field_value(instance,
"deltaY", obj.delta_y);
275 return dotnet::get_managed_ptr(instance);
280 dotnet::object
object(obj);
282 from_managed_base(
object, data);
283 dotnet::get_field_value(
object,
"x", data.
x);
284 dotnet::get_field_value(
object,
"y", data.
y);
285 dotnet::get_field_value(
object,
"button", data.
button);
286 dotnet::get_field_value(
object,
"ctrlKey", data.
ctrl_key);
287 dotnet::get_field_value(
object,
"shiftKey", data.
shift_key);
288 dotnet::get_field_value(
object,
"altKey", data.
alt_key);
289 dotnet::get_field_value(
object,
"metaKey", data.
meta_key);
290 dotnet::get_field_value(
object,
"deltaX", data.
delta_x);
291 dotnet::get_field_value(
object,
"deltaY", data.
delta_y);
298 : dotnet_converter<dotnetpp_backend::managed_interface::ui_event_base>
305 auto instance = create_instance(
"Unravel.Core",
"UIKeyEvent");
306 to_managed_base(obj, instance);
307 dotnet::set_field_value(instance,
"keyCode", obj.key_code);
308 dotnet::set_field_value(instance,
"ctrlKey", obj.ctrl_key);
309 dotnet::set_field_value(instance,
"shiftKey", obj.shift_key);
310 dotnet::set_field_value(instance,
"altKey", obj.alt_key);
311 dotnet::set_field_value(instance,
"metaKey", obj.meta_key);
312 return dotnet::get_managed_ptr(instance);
317 dotnet::object
object(obj);
319 from_managed_base(
object, data);
320 dotnet::get_field_value(
object,
"keyCode", data.
key_code);
321 dotnet::get_field_value(
object,
"ctrlKey", data.
ctrl_key);
322 dotnet::get_field_value(
object,
"shiftKey", data.
shift_key);
323 dotnet::get_field_value(
object,
"altKey", data.
alt_key);
324 dotnet::get_field_value(
object,
"metaKey", data.
meta_key);
331 : dotnet_converter<dotnetpp_backend::managed_interface::ui_event_base>
338 auto instance = create_instance(
"Unravel.Core",
"UITextInputEvent");
339 to_managed_base(obj, instance);
340 dotnet::set_field_value(instance,
"text", obj.text);
341 dotnet::set_field_value(instance,
"ctrlKey", obj.ctrl_key);
342 dotnet::set_field_value(instance,
"shiftKey", obj.shift_key);
343 dotnet::set_field_value(instance,
"altKey", obj.alt_key);
344 dotnet::set_field_value(instance,
"metaKey", obj.meta_key);
345 return dotnet::get_managed_ptr(instance);
350 dotnet::object
object(obj);
352 from_managed_base(
object, data);
353 dotnet::get_field_value(
object,
"text", data.
text);
354 dotnet::get_field_value(
object,
"ctrlKey", data.
ctrl_key);
355 dotnet::get_field_value(
object,
"shiftKey", data.
shift_key);
356 dotnet::get_field_value(
object,
"altKey", data.
alt_key);
357 dotnet::get_field_value(
object,
"metaKey", data.
meta_key);
364 : dotnet_converter<dotnetpp_backend::managed_interface::ui_event_base>
371 auto instance = create_instance(
"Unravel.Core",
"UISliderEvent");
372 to_managed_base(obj, instance);
373 dotnet::set_field_value(instance,
"value", obj.value);
374 dotnet::set_field_value(instance,
"minValue", obj.min_value);
375 dotnet::set_field_value(instance,
"maxValue", obj.max_value);
376 dotnet::set_field_value(instance,
"step", obj.step);
377 return dotnet::get_managed_ptr(instance);
382 dotnet::object
object(obj);
384 from_managed_base(
object, data);
385 dotnet::get_field_value(
object,
"value", data.
value);
386 dotnet::get_field_value(
object,
"minValue", data.
min_value);
387 dotnet::get_field_value(
object,
"maxValue", data.
max_value);
388 dotnet::get_field_value(
object,
"step", data.
step);
395 : dotnet_converter<dotnetpp_backend::managed_interface::ui_event_base>
402 auto instance = create_instance(
"Unravel.Core",
"UIChangeEvent");
403 to_managed_base(obj, instance);
404 dotnet::set_field_value(instance,
"value", obj.value);
405 return dotnet::get_managed_ptr(instance);
410 dotnet::object
object(obj);
412 from_managed_base(
object, data);
413 dotnet::get_field_value(
object,
"value", data.
value);
const btCollisionObject * object
dotnet_register_converter_for_pod(math::vec2, dotnetpp_backend::managed_interface::vector2)
dotnet::managed_ptr managed_type
static auto to_managed(const native_type &obj) -> managed_type
static auto from_managed(const managed_type &obj) -> native_type
static auto from_managed(const managed_type &obj) -> native_type
static auto to_managed(const native_type &obj) -> managed_type
dotnet::managed_ptr managed_type
static void to_managed_base(const native_type &obj, dotnet::object &instance)
static void from_managed_base(const dotnet::object &object, native_type &data)
static auto from_managed(const managed_type &obj) -> native_type
static auto to_managed(const native_type &obj) -> managed_type
dotnet::managed_ptr managed_type
static auto from_managed(const managed_type &obj) -> native_type
static auto to_managed(const native_type &obj) -> managed_type
dotnet::managed_ptr managed_type
static auto from_managed(const managed_type &obj) -> native_type
static auto to_managed(const native_type &obj) -> managed_type
dotnet::managed_ptr managed_type
static auto from_managed(const managed_type &obj) -> native_type
static auto to_managed(const native_type &obj) -> managed_type
dotnet::managed_ptr managed_type
dotnet::managed_ptr managed_type
static auto to_managed(const native_type &obj) -> managed_type
static auto from_managed(const managed_type &obj) -> native_type
hpp::small_vector< T, StaticCapacity > native_type
std::intptr_t target_element_ptr
std::string target_element_id
std::intptr_t current_element_ptr
std::string current_element_id
Storage for box vector values and wraps up common functionality.