예제 #1
0
 public Tuio2DCursor(OSCMessage message)
 {
     this.SessionID = Convert.ToInt32(message.Values[1]);
     this.PositionX = Convert.ToSingle(message.Values[2]);
     this.PositionY = Convert.ToSingle(message.Values[3]);
     this.VelocityX = Convert.ToSingle(message.Values[4]);
     this.VelocityY = Convert.ToSingle(message.Values[5]);
     this.Acceleration = Convert.ToSingle(message.Values[6]);
 }
예제 #2
0
 public OSCMessage GetMessage()
 {
     OSCMessage msg = new OSCMessage("/tuio/2Dcur");
     msg.Append("set");
     msg.Append(this.SessionID);
     msg.Append(this.PositionX);
     msg.Append(this.PositionY);
     msg.Append(this.VelocityX);
     msg.Append(this.VelocityY);
     msg.Append(this.Acceleration);
     return msg;
 }
예제 #3
0
		public static OSCMessage Unpack(byte[] bytes, ref int start)
		{
			string address = unpackString(bytes, ref start);
			//Console.WriteLine("address: " + address);
			OSCMessage msg = new OSCMessage(address);

			char[] tags = unpackString(bytes, ref start).ToCharArray();
			//Console.WriteLine("tags: " + new string(tags));
			foreach(char tag in tags)
			{
				//Console.WriteLine("tag: " + tag + " @ "+start);
				if(tag == ',') continue;
				else if(tag == INTEGER) msg.Append(unpackInt(bytes, ref start));
				else if(tag == LONG) msg.Append(unpackLong(bytes, ref start));
				else if(tag == DOUBLE) msg.Append(unpackDouble(bytes, ref start));
				else if(tag == FLOAT) msg.Append(unpackFloat(bytes, ref start));
				else if(tag == STRING || tag == SYMBOL) msg.Append(unpackString(bytes, ref start));
				else Console.WriteLine("unknown tag: "+tag);
			}

			return msg;
		}