diff --git a/Root.tscn b/Root.tscn index 731b301..28e9245 100644 --- a/Root.tscn +++ b/Root.tscn @@ -7,31 +7,43 @@ size = Vector3(0.1, 0.1, 0.1) [sub_resource type="PlaneMesh" id="PlaneMesh_24d08"] +size = Vector2(6, 2) [node name="Node3D" type="Node3D"] [node name="Camera3D" type="Camera3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.663209, 1.65503) +transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0.663209, -0.79419) [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(0.789213, -0.342763, 0.509566, 0, 0.829749, 0.558136, -0.61412, -0.440488, 0.654849, 0, 0.631436, 0) +transform = Transform3D(-0.878275, 0.266876, -0.396749, -7.71365e-11, 0.829749, 0.558137, 0.478155, 0.490197, -0.728748, 0, 0.631436, 0) shadow_enabled = true [node name="Root" type="Node3D" parent="."] [node name="VRPN" type="Node3D" parent="Root" node_paths=PackedStringArray("tracker_receivers")] script = ExtResource("2_24d08") -tracker_receivers = [NodePath("RB1")] +tracker_receivers = [NodePath("RB1"), NodePath("RB2")] vrpn_server = "212.201.64.122" [node name="RB1" type="Node3D" parent="Root/VRPN"] script = ExtResource("2_170dk") tracker_name = "RB1" +tracker_eulerorder = 1 -[node name="MeshInstance3D" type="MeshInstance3D" parent="Root/VRPN/RB1"] +[node name="Box" type="MeshInstance3D" parent="Root/VRPN/RB1"] mesh = SubResource("BoxMesh_24d08") [node name="RB2" type="Node3D" parent="Root/VRPN"] +script = ExtResource("2_170dk") +tracker_name = "RB2" + +[node name="Box2" type="MeshInstance3D" parent="Root/VRPN/RB2"] +mesh = SubResource("BoxMesh_24d08") +skeleton = NodePath("../../RB1") [node name="Floor" type="MeshInstance3D" parent="Root"] mesh = SubResource("PlaneMesh_24d08") + +[node name="Wall" type="MeshInstance3D" parent="Root"] +transform = Transform3D(-1, 8.74228e-08, -3.82137e-15, 0, -4.37114e-08, -1, -8.74228e-08, -1, 4.37114e-08, 0, 0.93633, 1.06259) +mesh = SubResource("PlaneMesh_24d08") diff --git a/VRPN_Receiver.gd b/VRPN_Receiver.gd index f3ff925..21d09a0 100644 --- a/VRPN_Receiver.gd +++ b/VRPN_Receiver.gd @@ -4,15 +4,16 @@ class_name VRPN_Receiver @export var tracker_name : String = "Tracker0" @export var tracker_sensor : int = 0 +@export var tracker_eulerorder : EulerOrder = EULER_ORDER_XYZ func _on_pos_quat(tracker_data : Dictionary): if tracker_data['tracker'] == tracker_name and tracker_data['sensor'] == tracker_sensor: - - self.global_position = tracker_data['position'] - # okay, Godot transformation stack is weird! Why would anybody expose - self.global_rotation = tracker_data['rotation'].get_euler() - - print(tracker_data) + var rotation := tracker_data['rotation'] as Quaternion + + rotation.x *= -1 + self.global_basis = Basis(rotation) + + #print(tracker_data)