Compare commits
3 Commits
10aa7152f2
...
bb714cb9c0
Author | SHA1 | Date |
---|---|---|
rodolpheh | bb714cb9c0 | |
rodolpheh | 3e426d2375 | |
rodolpheh | f7d5486734 |
|
@ -84,7 +84,7 @@ debug/export_console_script=0
|
|||
|
||||
name="Android"
|
||||
platform="Android"
|
||||
runnable=true
|
||||
runnable=false
|
||||
dedicated_server=false
|
||||
custom_features="openxr"
|
||||
export_filter="all_resources"
|
||||
|
@ -286,3 +286,210 @@ permissions/write_sms=false
|
|||
permissions/write_social_stream=false
|
||||
permissions/write_sync_settings=false
|
||||
permissions/write_user_dictionary=false
|
||||
|
||||
[preset.3]
|
||||
|
||||
name="Passthrough"
|
||||
platform="Android"
|
||||
runnable=true
|
||||
dedicated_server=false
|
||||
custom_features="openxr"
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
|
||||
[preset.3.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
gradle_build/use_gradle_build=true
|
||||
gradle_build/export_format=0
|
||||
gradle_build/min_sdk="29"
|
||||
gradle_build/target_sdk=""
|
||||
plugins/GodotOpenXRMeta=false
|
||||
plugins/GodotOpenXRLynx=false
|
||||
plugins/GodotOpenXRKHR=false
|
||||
plugins/GodotOpenXRPico=true
|
||||
plugins/UltraleapBinder=true
|
||||
architectures/armeabi-v7a=false
|
||||
architectures/arm64-v8a=true
|
||||
architectures/x86=false
|
||||
architectures/x86_64=false
|
||||
version/code=1
|
||||
version/name="1.0"
|
||||
package/unique_name="org.godotengine.$genname"
|
||||
package/name=""
|
||||
package/signed=true
|
||||
package/app_category=2
|
||||
package/retain_data_on_uninstall=false
|
||||
package/exclude_from_recents=false
|
||||
launcher_icons/main_192x192=""
|
||||
launcher_icons/adaptive_foreground_432x432=""
|
||||
launcher_icons/adaptive_background_432x432=""
|
||||
graphics/opengl_debug=false
|
||||
xr_features/xr_mode=1
|
||||
xr_features/hand_tracking=0
|
||||
xr_features/hand_tracking_frequency=0
|
||||
xr_features/passthrough=0
|
||||
screen/immersive_mode=true
|
||||
screen/support_small=true
|
||||
screen/support_normal=true
|
||||
screen/support_large=true
|
||||
screen/support_xlarge=true
|
||||
user_data_backup/allow=false
|
||||
command_line/extra_args=""
|
||||
apk_expansion/enable=false
|
||||
apk_expansion/SALT=""
|
||||
apk_expansion/public_key=""
|
||||
permissions/custom_permissions=PackedStringArray()
|
||||
permissions/access_checkin_properties=false
|
||||
permissions/access_coarse_location=false
|
||||
permissions/access_fine_location=false
|
||||
permissions/access_location_extra_commands=false
|
||||
permissions/access_mock_location=false
|
||||
permissions/access_network_state=true
|
||||
permissions/access_surface_flinger=false
|
||||
permissions/access_wifi_state=false
|
||||
permissions/account_manager=false
|
||||
permissions/add_voicemail=false
|
||||
permissions/authenticate_accounts=false
|
||||
permissions/battery_stats=false
|
||||
permissions/bind_accessibility_service=false
|
||||
permissions/bind_appwidget=false
|
||||
permissions/bind_device_admin=false
|
||||
permissions/bind_input_method=false
|
||||
permissions/bind_nfc_service=false
|
||||
permissions/bind_notification_listener_service=false
|
||||
permissions/bind_print_service=false
|
||||
permissions/bind_remoteviews=false
|
||||
permissions/bind_text_service=false
|
||||
permissions/bind_vpn_service=false
|
||||
permissions/bind_wallpaper=false
|
||||
permissions/bluetooth=false
|
||||
permissions/bluetooth_admin=false
|
||||
permissions/bluetooth_privileged=false
|
||||
permissions/brick=false
|
||||
permissions/broadcast_package_removed=false
|
||||
permissions/broadcast_sms=false
|
||||
permissions/broadcast_sticky=false
|
||||
permissions/broadcast_wap_push=false
|
||||
permissions/call_phone=false
|
||||
permissions/call_privileged=false
|
||||
permissions/camera=true
|
||||
permissions/capture_audio_output=false
|
||||
permissions/capture_secure_video_output=false
|
||||
permissions/capture_video_output=false
|
||||
permissions/change_component_enabled_state=false
|
||||
permissions/change_configuration=false
|
||||
permissions/change_network_state=false
|
||||
permissions/change_wifi_multicast_state=false
|
||||
permissions/change_wifi_state=false
|
||||
permissions/clear_app_cache=false
|
||||
permissions/clear_app_user_data=false
|
||||
permissions/control_location_updates=false
|
||||
permissions/delete_cache_files=false
|
||||
permissions/delete_packages=false
|
||||
permissions/device_power=false
|
||||
permissions/diagnostic=false
|
||||
permissions/disable_keyguard=false
|
||||
permissions/dump=false
|
||||
permissions/expand_status_bar=false
|
||||
permissions/factory_test=false
|
||||
permissions/flashlight=false
|
||||
permissions/force_back=false
|
||||
permissions/get_accounts=false
|
||||
permissions/get_package_size=false
|
||||
permissions/get_tasks=false
|
||||
permissions/get_top_activity_info=false
|
||||
permissions/global_search=false
|
||||
permissions/hardware_test=false
|
||||
permissions/inject_events=false
|
||||
permissions/install_location_provider=false
|
||||
permissions/install_packages=false
|
||||
permissions/install_shortcut=false
|
||||
permissions/internal_system_window=false
|
||||
permissions/internet=true
|
||||
permissions/kill_background_processes=false
|
||||
permissions/location_hardware=false
|
||||
permissions/manage_accounts=false
|
||||
permissions/manage_app_tokens=false
|
||||
permissions/manage_documents=false
|
||||
permissions/manage_external_storage=false
|
||||
permissions/master_clear=false
|
||||
permissions/media_content_control=false
|
||||
permissions/modify_audio_settings=false
|
||||
permissions/modify_phone_state=false
|
||||
permissions/mount_format_filesystems=false
|
||||
permissions/mount_unmount_filesystems=false
|
||||
permissions/nfc=false
|
||||
permissions/persistent_activity=false
|
||||
permissions/process_outgoing_calls=false
|
||||
permissions/read_calendar=false
|
||||
permissions/read_call_log=false
|
||||
permissions/read_contacts=false
|
||||
permissions/read_external_storage=false
|
||||
permissions/read_frame_buffer=false
|
||||
permissions/read_history_bookmarks=false
|
||||
permissions/read_input_state=false
|
||||
permissions/read_logs=false
|
||||
permissions/read_phone_state=false
|
||||
permissions/read_profile=false
|
||||
permissions/read_sms=false
|
||||
permissions/read_social_stream=false
|
||||
permissions/read_sync_settings=false
|
||||
permissions/read_sync_stats=false
|
||||
permissions/read_user_dictionary=false
|
||||
permissions/reboot=false
|
||||
permissions/receive_boot_completed=false
|
||||
permissions/receive_mms=false
|
||||
permissions/receive_sms=false
|
||||
permissions/receive_wap_push=false
|
||||
permissions/record_audio=false
|
||||
permissions/reorder_tasks=false
|
||||
permissions/restart_packages=false
|
||||
permissions/send_respond_via_message=false
|
||||
permissions/send_sms=false
|
||||
permissions/set_activity_watcher=false
|
||||
permissions/set_alarm=false
|
||||
permissions/set_always_finish=false
|
||||
permissions/set_animation_scale=false
|
||||
permissions/set_debug_app=false
|
||||
permissions/set_orientation=false
|
||||
permissions/set_pointer_speed=false
|
||||
permissions/set_preferred_applications=false
|
||||
permissions/set_process_limit=false
|
||||
permissions/set_time=false
|
||||
permissions/set_time_zone=false
|
||||
permissions/set_wallpaper=false
|
||||
permissions/set_wallpaper_hints=false
|
||||
permissions/signal_persistent_processes=false
|
||||
permissions/status_bar=false
|
||||
permissions/subscribed_feeds_read=false
|
||||
permissions/subscribed_feeds_write=false
|
||||
permissions/system_alert_window=false
|
||||
permissions/transmit_ir=false
|
||||
permissions/uninstall_shortcut=false
|
||||
permissions/update_device_stats=false
|
||||
permissions/use_credentials=false
|
||||
permissions/use_sip=false
|
||||
permissions/vibrate=false
|
||||
permissions/wake_lock=false
|
||||
permissions/write_apn_settings=false
|
||||
permissions/write_calendar=false
|
||||
permissions/write_call_log=false
|
||||
permissions/write_contacts=false
|
||||
permissions/write_external_storage=false
|
||||
permissions/write_gservices=false
|
||||
permissions/write_history_bookmarks=false
|
||||
permissions/write_profile=false
|
||||
permissions/write_secure_settings=false
|
||||
permissions/write_settings=false
|
||||
permissions/write_sms=false
|
||||
permissions/write_social_stream=false
|
||||
permissions/write_sync_settings=false
|
||||
permissions/write_user_dictionary=false
|
||||
|
|
|
@ -14,6 +14,7 @@ config/name="UltraleapPluginDemo"
|
|||
run/main_scene="res://scenes/RiggedHand.tscn"
|
||||
config/features=PackedStringArray("4.1", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
run/main_scene.ardemo="res://scenes/AR.tscn"
|
||||
|
||||
[editor_plugins]
|
||||
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://bcov7ffuvix1b"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/AR.gd" id="1_3gnl0"]
|
||||
[ext_resource type="Material" uid="uid://c3i3qsc2pxttv" path="res://materials/Invisible.tres" id="2_auga5"]
|
||||
[ext_resource type="Script" path="res://scripts/OriginHands.gd" id="3_3171o"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_slbka"]
|
||||
|
||||
[sub_resource type="Sky" id="Sky_sxikk"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_slbka")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_eu81f"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_sxikk")
|
||||
|
||||
[node name="ARTest" type="Node3D"]
|
||||
script = ExtResource("1_3gnl0")
|
||||
|
||||
[node name="XROrigin3D" type="XROrigin3D" parent="."]
|
||||
current = true
|
||||
|
||||
[node name="XRCamera3D" type="XRCamera3D" parent="XROrigin3D"]
|
||||
|
||||
[node name="CameraPosition" type="Node3D" parent="XROrigin3D/XRCamera3D"]
|
||||
transform = Transform3D(-1, 8.74228e-08, -3.82137e-15, 0, -4.37114e-08, -1, -8.74228e-08, -1, 4.37114e-08, 0, 0.03, -0.08)
|
||||
|
||||
[node name="UltraleapDeviceNode" type="UltraleapDeviceNode" parent="XROrigin3D/XRCamera3D/CameraPosition"]
|
||||
tracker = NodePath("../../../../UltraleapHandTracking")
|
||||
tracking_mode = 1
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="XROrigin3D/XRCamera3D/CameraPosition"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
|
||||
material_override = ExtResource("2_auga5")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_eu81f")
|
||||
|
||||
[node name="UltraleapHandTracking" type="UltraleapHandTracking" parent="."]
|
||||
|
||||
[node name="OriginHands" type="Node3D" parent="." node_paths=PackedStringArray("tracking")]
|
||||
script = ExtResource("3_3171o")
|
||||
tracking = NodePath("../XROrigin3D/XRCamera3D/CameraPosition/UltraleapDeviceNode")
|
|
@ -154,7 +154,7 @@ void UltraleapDevice::close() {
|
|||
}
|
||||
|
||||
void UltraleapDevice::on_frame_received(const LEAP_TRACKING_EVENT* frame) {
|
||||
Ref<UltraleapFrame> new_frame = memnew(UltraleapFrame);
|
||||
Ref<UltraleapFrame> new_frame = Ref<UltraleapFrame>(memnew(UltraleapFrame));
|
||||
UltraleapFrame::fill_frame_data(new_frame, frame);
|
||||
frame_mutex.lock();
|
||||
last_frame_ref = new_frame;
|
||||
|
@ -171,22 +171,22 @@ void UltraleapDevice::on_image_received(const LEAP_IMAGE* image) {
|
|||
image_mutex.unlock();
|
||||
}
|
||||
|
||||
Variant UltraleapDevice::get_last_frame() {
|
||||
Ref<UltraleapFrame> UltraleapDevice::get_last_frame() {
|
||||
std::lock_guard<std::mutex> guard(frame_mutex);
|
||||
return last_frame_ref;
|
||||
}
|
||||
|
||||
Variant UltraleapDevice::get_left_image() {
|
||||
Ref<UltraleapImage> UltraleapDevice::get_left_image() {
|
||||
std::lock_guard<std::mutex> guard(image_mutex);
|
||||
return left_image_ref;
|
||||
}
|
||||
|
||||
Variant UltraleapDevice::get_right_image() {
|
||||
Ref<UltraleapImage> UltraleapDevice::get_right_image() {
|
||||
std::lock_guard<std::mutex> guard(image_mutex);
|
||||
return right_image_ref;
|
||||
}
|
||||
|
||||
Variant UltraleapDevice::get_interpolated_frame(int64_t time) {
|
||||
Ref<UltraleapFrame> UltraleapDevice::get_interpolated_frame(int64_t time) {
|
||||
int64_t cpu_time = Time::get_singleton()->get_ticks_usec();
|
||||
LeapUpdateRebase(rebaser, cpu_time, LeapGetNow());
|
||||
LeapRebaseClock(rebaser, cpu_time, &time);
|
||||
|
@ -207,5 +207,5 @@ Variant UltraleapDevice::get_interpolated_frame(int64_t time) {
|
|||
}
|
||||
}
|
||||
|
||||
return Variant();
|
||||
return NULL;
|
||||
}
|
|
@ -33,15 +33,14 @@ public:
|
|||
Ref<UltraleapImage> left_image_ref;
|
||||
Ref<UltraleapImage> right_image_ref;
|
||||
|
||||
Variant get_last_frame();
|
||||
|
||||
Variant get_interpolated_frame(int64_t time);
|
||||
Ref<UltraleapFrame> get_last_frame();
|
||||
Ref<UltraleapFrame> get_interpolated_frame(int64_t time);
|
||||
|
||||
UltraleapTypes::TrackingMode get_tracking_mode() { return tracking_mode; }
|
||||
void set_tracking_mode(UltraleapTypes::TrackingMode value);
|
||||
|
||||
Variant get_left_image();
|
||||
Variant get_right_image();
|
||||
Ref<UltraleapImage> get_left_image();
|
||||
Ref<UltraleapImage> get_right_image();
|
||||
|
||||
uint32_t get_baseline() { return baseline; }
|
||||
void set_baseline(uint32_t value) { baseline = value; }
|
||||
|
|
|
@ -269,13 +269,13 @@ UltraleapHandTracking* UltraleapDeviceNode::get_tracking() {
|
|||
return Object::cast_to<UltraleapHandTracking>(get_node_or_null(tracker));
|
||||
}
|
||||
|
||||
Variant UltraleapDeviceNode::get_last_frame() {
|
||||
Ref<UltraleapFrame> UltraleapDeviceNode::get_last_frame() {
|
||||
return last_frame;
|
||||
}
|
||||
|
||||
Variant UltraleapDeviceNode::get_interpolated_frame(int64_t time) {
|
||||
Ref<UltraleapFrame> UltraleapDeviceNode::get_interpolated_frame(int64_t time) {
|
||||
if (current_device == NULL) {
|
||||
return Variant::NIL;
|
||||
return NULL;
|
||||
}
|
||||
return current_device->get_interpolated_frame(time);
|
||||
}
|
||||
|
@ -293,16 +293,16 @@ void UltraleapDeviceNode::set_tracking_mode(UltraleapTypes::TrackingMode value)
|
|||
}
|
||||
}
|
||||
|
||||
Variant UltraleapDeviceNode::get_left_image() {
|
||||
Ref<UltraleapImage> UltraleapDeviceNode::get_left_image() {
|
||||
if (current_device == NULL) {
|
||||
return Variant::NIL;
|
||||
return NULL;
|
||||
}
|
||||
return current_device->get_left_image();
|
||||
}
|
||||
|
||||
Variant UltraleapDeviceNode::get_right_image() {
|
||||
Ref<UltraleapImage> UltraleapDeviceNode::get_right_image() {
|
||||
if (current_device == NULL) {
|
||||
return Variant::NIL;
|
||||
return NULL;
|
||||
}
|
||||
return current_device->get_right_image();
|
||||
}
|
||||
|
|
|
@ -40,13 +40,14 @@ public:
|
|||
bool _set(const StringName &p_name, const Variant &p_value);
|
||||
bool _get(const StringName &p_name, Variant &r_ret) const;
|
||||
|
||||
Variant get_last_frame();
|
||||
Variant get_interpolated_frame(int64_t time);
|
||||
Variant get_left_image();
|
||||
Variant get_right_image();
|
||||
Ref<UltraleapFrame> get_last_frame();
|
||||
Ref<UltraleapFrame> get_interpolated_frame(int64_t time);
|
||||
|
||||
Ref<UltraleapImage> get_left_image();
|
||||
Ref<UltraleapImage> get_right_image();
|
||||
|
||||
void set_run_in_editor(bool value);
|
||||
Variant get_run_in_editor() { return run_in_editor; }
|
||||
bool get_run_in_editor() { return run_in_editor; }
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
|
|
@ -13,12 +13,6 @@
|
|||
|
||||
using namespace godot;
|
||||
|
||||
UltraleapDigit::UltraleapDigit() {
|
||||
metacarpal_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
proximal_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
intermediate_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
distal_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
}
|
||||
|
||||
void UltraleapDigit::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_type"), &UltraleapDigit::get_type);
|
||||
|
@ -111,6 +105,13 @@ void UltraleapDigit::_bind_methods() {
|
|||
}
|
||||
|
||||
void UltraleapDigit::fill_digit_data(Ref<UltraleapDigit> ul_digit, LEAP_DIGIT* digit, FingerType type) {
|
||||
if (ul_digit->metacarpal_ref == NULL) {
|
||||
ul_digit->metacarpal_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
ul_digit->proximal_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
ul_digit->intermediate_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
ul_digit->distal_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
}
|
||||
|
||||
ul_digit->is_extended = digit->is_extended == 1;
|
||||
ul_digit->type = type;
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@ class UltraleapDigit : public Resource {
|
|||
GDCLASS(UltraleapDigit, Resource);
|
||||
|
||||
public:
|
||||
UltraleapDigit();
|
||||
|
||||
enum FingerType {
|
||||
Thumb,
|
||||
|
|
|
@ -81,6 +81,13 @@ void UltraleapFrame::_bind_methods() {
|
|||
}
|
||||
|
||||
void UltraleapFrame::fill_frame_data(Ref<UltraleapFrame> ul_frame, const LEAP_TRACKING_EVENT* frame) {
|
||||
if (ul_frame->get_left_hand() == NULL) {
|
||||
ul_frame->set_left_hand(Ref<UltraleapHand>(memnew(UltraleapHand)));
|
||||
}
|
||||
if (ul_frame->get_right_hand() == NULL) {
|
||||
ul_frame->set_right_hand(Ref<UltraleapHand>(memnew(UltraleapHand)));
|
||||
}
|
||||
|
||||
ul_frame->id = frame->tracking_frame_id;
|
||||
ul_frame->framerate = frame->framerate;
|
||||
ul_frame->is_left_hand_visible = false;
|
||||
|
@ -89,11 +96,11 @@ void UltraleapFrame::fill_frame_data(Ref<UltraleapFrame> ul_frame, const LEAP_TR
|
|||
for (size_t i = 0; i < frame->nHands; i++)
|
||||
{
|
||||
if (frame->pHands[i].type == eLeapHandType_Left) {
|
||||
UltraleapHand::fill_hand_data(ul_frame->left_hand_ref, &frame->pHands[i]);
|
||||
UltraleapHand::fill_hand_data(ul_frame->get_left_hand(), &frame->pHands[i]);
|
||||
ul_frame->is_left_hand_visible = true;
|
||||
}
|
||||
else {
|
||||
UltraleapHand::fill_hand_data(ul_frame->right_hand_ref, &frame->pHands[i]);
|
||||
UltraleapHand::fill_hand_data(ul_frame->get_right_hand(), &frame->pHands[i]);
|
||||
ul_frame->is_right_hand_visible = true;
|
||||
}
|
||||
}
|
||||
|
|
12
src/frame.h
12
src/frame.h
|
@ -27,16 +27,16 @@ public:
|
|||
float framerate;
|
||||
|
||||
Ref<UltraleapHand> get_left_hand() { return left_hand_ref; }
|
||||
void set_left_hand(Ref<UltraleapHand> value) { return; }
|
||||
void set_left_hand(Ref<UltraleapHand> value) { left_hand_ref = value; }
|
||||
|
||||
Ref<UltraleapHand> get_right_hand() { return right_hand_ref; }
|
||||
void set_right_hand(Ref<UltraleapHand> value) { return; }
|
||||
void set_right_hand(Ref<UltraleapHand> value) { right_hand_ref = value; }
|
||||
|
||||
bool get_is_left_hand_visible() { return is_left_hand_visible; }
|
||||
void set_is_left_hand_visible(bool value) { return; }
|
||||
void set_is_left_hand_visible(bool value) { is_left_hand_visible = value; }
|
||||
|
||||
bool get_is_right_hand_visible() { return is_right_hand_visible; }
|
||||
void set_is_right_hand_visible(bool value) { return; }
|
||||
void set_is_right_hand_visible(bool value) { is_right_hand_visible = value; }
|
||||
|
||||
float get_framerate() { return framerate; }
|
||||
void set_framerate(float value) { return; }
|
||||
|
@ -46,8 +46,8 @@ protected:
|
|||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
Ref<UltraleapHand> left_hand_ref = Ref<UltraleapHand>(memnew(UltraleapHand));
|
||||
Ref<UltraleapHand> right_hand_ref = Ref<UltraleapHand>(memnew(UltraleapHand));
|
||||
Ref<UltraleapHand> left_hand_ref;
|
||||
Ref<UltraleapHand> right_hand_ref;
|
||||
};
|
||||
|
||||
#endif
|
16
src/hand.cpp
16
src/hand.cpp
|
@ -223,7 +223,23 @@ void UltraleapHand::_bind_methods() {
|
|||
);
|
||||
};
|
||||
|
||||
void UltraleapHand::set_digits(Array digits) {
|
||||
for (int i = 0; i < digits.size(); i++) {
|
||||
}
|
||||
}
|
||||
|
||||
void UltraleapHand::fill_hand_data(Ref<UltraleapHand> ul_hand, LEAP_HAND* hand) {
|
||||
// For now we just check if the arm ref is not set
|
||||
if (ul_hand->arm_ref == NULL) {
|
||||
ul_hand->arm_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
ul_hand->palm_ref = Ref<UltraleapPalm>(memnew(UltraleapPalm));
|
||||
ul_hand->thumb = Ref<UltraleapDigit>(memnew(UltraleapDigit));
|
||||
ul_hand->index = Ref<UltraleapDigit>(memnew(UltraleapDigit));
|
||||
ul_hand->middle = Ref<UltraleapDigit>(memnew(UltraleapDigit));
|
||||
ul_hand->ring = Ref<UltraleapDigit>(memnew(UltraleapDigit));
|
||||
ul_hand->pinky = Ref<UltraleapDigit>(memnew(UltraleapDigit));
|
||||
}
|
||||
|
||||
ul_hand->type = hand->type == eLeapHandType_Left ? UltraleapTypes::Chirality::Left : UltraleapTypes::Chirality::Right;
|
||||
ul_hand->confidence = hand->confidence;
|
||||
ul_hand->visible_time = hand->visible_time;
|
||||
|
|
52
src/hand.h
52
src/hand.h
|
@ -60,54 +60,54 @@ public:
|
|||
UltraleapTypes::Chirality get_type() { return type; }
|
||||
void set_type(UltraleapTypes::Chirality value) { type = value; }
|
||||
|
||||
Ref<UltraleapDigit> get_thumb() { return digits_ref[0]; }
|
||||
void set_thumb(Ref<UltraleapDigit> value) { digits_ref[0] = value; }
|
||||
Ref<UltraleapDigit> get_thumb() { return thumb; }
|
||||
void set_thumb(Ref<UltraleapDigit> value) { thumb = value; }
|
||||
|
||||
Ref<UltraleapDigit> get_index() { return digits_ref[1]; }
|
||||
void set_index(Ref<UltraleapDigit> value) { digits_ref[1] = value; }
|
||||
Ref<UltraleapDigit> get_index() { return index; }
|
||||
void set_index(Ref<UltraleapDigit> value) { index = value; }
|
||||
|
||||
Ref<UltraleapDigit> get_middle() { return digits_ref[2]; }
|
||||
void set_middle(Ref<UltraleapDigit> value) { digits_ref[2] = value; }
|
||||
Ref<UltraleapDigit> get_middle() { return middle; }
|
||||
void set_middle(Ref<UltraleapDigit> value) { middle = value; }
|
||||
|
||||
Ref<UltraleapDigit> get_ring() { return digits_ref[3]; }
|
||||
void set_ring(Ref<UltraleapDigit> value) { digits_ref[3] = value; }
|
||||
Ref<UltraleapDigit> get_ring() { return ring; }
|
||||
void set_ring(Ref<UltraleapDigit> value) { ring = value; }
|
||||
|
||||
Ref<UltraleapDigit> get_pinky() { return digits_ref[4]; }
|
||||
void set_pinky(Ref<UltraleapDigit> value) { digits_ref[4] = value; }
|
||||
Ref<UltraleapDigit> get_pinky() { return pinky; }
|
||||
void set_pinky(Ref<UltraleapDigit> value) { pinky = value; }
|
||||
|
||||
Ref<UltraleapBone> get_arm() { return arm_ref; }
|
||||
void set_arm(Ref<UltraleapBone> value) { arm_ref = value; }
|
||||
void set_arm(Ref<UltraleapBone> value) { arm_ref = value; }
|
||||
|
||||
Ref<UltraleapPalm> get_palm() { return palm_ref; }
|
||||
void set_palm(Ref<UltraleapPalm> value) { palm_ref = value; }
|
||||
|
||||
Array get_digits() {
|
||||
Array digits_array = Array();
|
||||
if (digits_array.size() == 0) {
|
||||
digits_array.append(digits_ref[0]);
|
||||
digits_array.append(digits_ref[1]);
|
||||
digits_array.append(digits_ref[2]);
|
||||
digits_array.append(digits_ref[3]);
|
||||
digits_array.append(digits_ref[4]);
|
||||
digits_array.append(thumb);
|
||||
digits_array.append(index);
|
||||
digits_array.append(middle);
|
||||
digits_array.append(ring);
|
||||
digits_array.append(pinky);
|
||||
}
|
||||
return digits_array;
|
||||
}
|
||||
void set_digits(Array digits) { digits_array = digits; }
|
||||
void set_digits(Array digits);
|
||||
|
||||
static void fill_hand_data(Ref<UltraleapHand> ul_hand, LEAP_HAND* hand);
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
Ref<UltraleapBone> arm_ref = Ref<UltraleapBone>(memnew(UltraleapBone));
|
||||
Ref<UltraleapPalm> palm_ref = Ref<UltraleapPalm>(memnew(UltraleapPalm));
|
||||
Ref<UltraleapBone> arm_ref;
|
||||
Ref<UltraleapPalm> palm_ref;
|
||||
Array digits_array = Array();
|
||||
Ref<UltraleapDigit> digits_ref[5] = {
|
||||
Ref<UltraleapDigit>(digits[0]),
|
||||
Ref<UltraleapDigit>(digits[1]),
|
||||
Ref<UltraleapDigit>(digits[2]),
|
||||
Ref<UltraleapDigit>(digits[3]),
|
||||
Ref<UltraleapDigit>(digits[4])
|
||||
};
|
||||
|
||||
Ref<UltraleapDigit> thumb;
|
||||
Ref<UltraleapDigit> index;
|
||||
Ref<UltraleapDigit> middle;
|
||||
Ref<UltraleapDigit> ring;
|
||||
Ref<UltraleapDigit> pinky;
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue