-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCommunication.pde
More file actions
112 lines (94 loc) · 4.7 KB
/
Communication.pde
File metadata and controls
112 lines (94 loc) · 4.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import oscP5.*;
import netP5.*;
public class Communication{
private OscP5 oscP5;
private NetAddress pdAddress;
public Communication(String pdIp, int pdPort, int myPort){
this.oscP5 = new OscP5(this, myPort);
this.pdAddress = new NetAddress(pdIp, pdPort); //localhost: "127.0.0.1" "192.168.15.16" // "192.168.15.1"
}
public void sendScene(Scene scene){
if(!scene.activeSkeletons.isEmpty()){
for(Skeleton skeleton:scene.activeSkeletons.values()){
this.sendKinectSkeleton(skeleton);
//this.sendGrainParameters(skeleton);
this.sendVideoParameter(skeleton);
this.sendSteeringWheel(skeleton);
}
}
}
private void sendSteeringWheel(Skeleton skeleton){
OscMessage messageToVideoSphere = new OscMessage("/steeringWheelRollStep:");
messageToVideoSphere.add(skeleton.steeringWheel.rollStep);
this.oscP5.send(messageToVideoSphere, pdAddress);
messageToVideoSphere = new OscMessage("/steeringWheelPitchStep:");
messageToVideoSphere.add(skeleton.steeringWheel.pitchStep);
this.oscP5.send(messageToVideoSphere, pdAddress);
}
private void sendKinectSkeleton(Skeleton skeleton){
OscMessage messageToPd = new OscMessage("/indexColor:");
messageToPd.add(skeleton.indexColor);
this.oscP5.send(messageToPd, pdAddress);
messageToPd = new OscMessage("/handStates:");
messageToPd.add(skeleton.estimatedHandRadius[0]);
messageToPd.add(skeleton.estimatedHandRadius[1]);
this.oscP5.send(messageToPd, pdAddress);
for (int jointType = 0; jointType<25 ; jointType++){
messageToPd = new OscMessage("/joint" + Integer.toString(jointType) + ":");
messageToPd.add(skeleton.joints[jointType].trackingState);
messageToPd.add(skeleton.joints[jointType].estimatedPosition.x);
messageToPd.add(skeleton.joints[jointType].estimatedPosition.y);
messageToPd.add(skeleton.joints[jointType].estimatedPosition.z);
messageToPd.add(skeleton.joints[jointType].estimatedOrientation.real);
messageToPd.add(skeleton.joints[jointType].estimatedOrientation.vector.x);
messageToPd.add(skeleton.joints[jointType].estimatedOrientation.vector.y);
messageToPd.add(skeleton.joints[jointType].estimatedOrientation.vector.z);
this.oscP5.send(messageToPd, pdAddress);
}
}
private void sendGrainParameters(Skeleton skeleton,Sphere sphere){
PVector relativePos = skeleton.scene.floor.toFloorCoordinateSystem(skeleton.joints[SPINE_BASE].estimatedPosition);
float realXPosition = relativePos.x;
float realZPosition = relativePos.z;
if(skeleton.scene.floor.isCalibrated){
realXPosition = constrain(map((relativePos.x),-((skeleton.scene.floor.dimensions.x)/2),((skeleton.scene.floor.dimensions.x)/2),1,0),0,1);
realZPosition = constrain(map((relativePos.z),-((skeleton.scene.floor.dimensions.z)/2),((skeleton.scene.floor.dimensions.z)/2),1,0),0,1);
}
OscMessage messageToPd = new OscMessage("/Ready");
messageToPd = new OscMessage("/indexVideo");
messageToPd.add(sphere.currentVideo);
//println("\nindexVideo: "+sphere.currentVideo);
this.oscP5.send(messageToPd, pdAddress);
messageToPd = new OscMessage("/zPos");
messageToPd.add(realZPosition);
//println("\nzPos: "+realZPosition);
this.oscP5.send(messageToPd, pdAddress);
messageToPd = new OscMessage("/xPos");
messageToPd.add(realXPosition);
//println("\nXpos: "+realXPosition);
this.oscP5.send(messageToPd, pdAddress);
println("\n\n\n");
/*messageToPd = new OscMessage("/mid_z");
messageToPd.add(map((skeleton.joints[SPINE_BASE].estimatedPosition.z),0.4,3.5,0,1));
this.oscP5.send(messageToPd, pdAddress);
messageToPd = new OscMessage("/hand_left_x");
messageToPd.add(map((skeleton.joints[HAND_LEFT].estimatedPosition.x),-1.5,1,0,1));
this.oscP5.send(messageToPd, pdAddress);
messageToPd = new OscMessage("/hand_left_y");
messageToPd.add(map((skeleton.joints[HAND_LEFT].estimatedPosition.y),-1.5,1,0,1));
this.oscP5.send(messageToPd, pdAddress);
messageToPd = new OscMessage("/hand_right_x");
messageToPd.add(map((skeleton.joints[HAND_RIGHT].estimatedPosition.x),-1.5,1,0,1));
this.oscP5.send(messageToPd, pdAddress);
messageToPd = new OscMessage("/hand_right_y");
messageToPd.add(map((skeleton.joints[HAND_RIGHT].estimatedPosition.y),-1.5,1,0,1));
this.oscP5.send(messageToPd, pdAddress);*/
}
private void sendVideoParameter(Skeleton skeleton){
OscMessage messageToPd = new OscMessage("/Ready");
this.oscP5.send(messageToPd, pdAddress);
messageToPd = new OscMessage("/Elastic");
messageToPd.add((skeleton.distanceBetweenHands));
this.oscP5.send(messageToPd,pdAddress);
}
}