first idea how to deal with receivers in a flexible way
This commit is contained in:
parent
d665378c6c
commit
f648077fff
4 changed files with 26 additions and 5 deletions
|
@ -1,12 +1,16 @@
|
||||||
[gd_scene load_steps=2 format=3 uid="uid://bj5ykdjle10tt"]
|
[gd_scene load_steps=3 format=3 uid="uid://bj5ykdjle10tt"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dmq3i7qmo1qe0" path="res://VRPN.gd" id="2_24d08"]
|
[ext_resource type="Script" uid="uid://dmq3i7qmo1qe0" path="res://VRPN.gd" id="2_24d08"]
|
||||||
|
[ext_resource type="Script" uid="uid://dpj1wrvfsiq4v" path="res://VRPN_Receiver.gd" id="2_170dk"]
|
||||||
|
|
||||||
[node name="Node3D" type="Node3D"]
|
[node name="Node3D" type="Node3D"]
|
||||||
|
|
||||||
[node name="VRPN" type="Node3D" parent="."]
|
[node name="VRPN" type="Node3D" parent="." node_paths=PackedStringArray("tracker_receivers")]
|
||||||
script = ExtResource("2_24d08")
|
script = ExtResource("2_24d08")
|
||||||
|
tracker_receivers = [NodePath("RB1")]
|
||||||
|
vrpn_server = "212.201.64.122"
|
||||||
|
|
||||||
[node name="RB1" type="Node3D" parent="VRPN"]
|
[node name="RB1" type="Node3D" parent="VRPN"]
|
||||||
|
script = ExtResource("2_170dk")
|
||||||
|
|
||||||
[node name="RB2" type="Node3D" parent="VRPN"]
|
[node name="RB2" type="Node3D" parent="VRPN"]
|
||||||
|
|
13
VRPN.gd
13
VRPN.gd
|
@ -18,7 +18,7 @@ signal data(data:Array)
|
||||||
signal disconnected
|
signal disconnected
|
||||||
signal error
|
signal error
|
||||||
|
|
||||||
@export var tracker_targets : Dictionary[String,Node3D] = {}
|
@export var tracker_receivers : Array[VRPN_Receiver] = []
|
||||||
|
|
||||||
|
|
||||||
# Graphics Interaction Lab OptiTrack system @212.201.64.122
|
# Graphics Interaction Lab OptiTrack system @212.201.64.122
|
||||||
|
@ -180,9 +180,16 @@ static func marshall_body(data : PackedByteArray,message_type : int, sender_id:
|
||||||
var quat_y = body.get_double()
|
var quat_y = body.get_double()
|
||||||
var quat_z = body.get_double()
|
var quat_z = body.get_double()
|
||||||
var quat = Quaternion(quat_x,quat_y,quat_z,quat_w)
|
var quat = Quaternion(quat_x,quat_y,quat_z,quat_w)
|
||||||
|
|
||||||
|
|
||||||
print("Sender:{0} Sensor:{1} Pos:{2} Quat:{3}".format([session.sensors[sender_id],sensor_id,pos,quat]))
|
for r in session.tracker_receivers:
|
||||||
|
r._on_pos_quat({
|
||||||
|
"tracker" : session.sensors[sender_id],
|
||||||
|
"sensor" : sensor_id,
|
||||||
|
"position" : pos,
|
||||||
|
"rotation" : quat
|
||||||
|
})
|
||||||
|
|
||||||
|
#print("Sender:{0} Sensor:{1} Pos:{2} Quat:{3}".format([session.sensors[sender_id],sensor_id,pos,quat]))
|
||||||
_:
|
_:
|
||||||
pass
|
pass
|
||||||
#print("unhandled message type {0}".format([message_type]))
|
#print("unhandled message type {0}".format([message_type]))
|
||||||
|
|
9
VRPN_Receiver.gd
Normal file
9
VRPN_Receiver.gd
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
class_name VRPN_Receiver
|
||||||
|
|
||||||
|
@export var sensor : String = "Tracker0"
|
||||||
|
|
||||||
|
func _on_pos_quat(tracker_data : Dictionary):
|
||||||
|
print(tracker_data)
|
||||||
|
|
1
VRPN_Receiver.gd.uid
Normal file
1
VRPN_Receiver.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://dpj1wrvfsiq4v
|
Loading…
Add table
Add a link
Reference in a new issue