2个不稳定版本

0.2.0 2023年2月15日
0.1.0 2023年2月14日

#10 in #osc

MIT许可证

75KB
1.5K SLoC

tuio-rs

基于TUIO 1.1协议的Rust实现,基于rosc

入门

示例

一个简单的接收循环

cargo run --example receive

服务器和客户端相互通信

cargo run --example send_and_receive

手动创建和发送TUIO输入

cargo run --example manual_send

通过服务器创建和发送TUIO输入

use tuio_rs::{Server};

let mut server = Server::new("server_name").unwrap();

// All TUIO inputs manipulation must be made between [Server::init_frame()] and [Server::commit_frame()]
server.init_frame(); 
    let cursor_id = server.create_cursor(0., 0.);
    let object_id = server.create_object(1, 0., 0., 0.);
    let blob_id = server.create_blob(0., 0., 0., 0.1, 0.1, 0.01);
server.commit_frame();

server.init_frame();
    server.update_cursor(cursor_id, 1., 1.);
    server.update_object(object_id, 1., 1., 90f32.to_radians());
    server.update_blob(blob_id, 1., 1., 90f32.to_radians(), 0.2, 0.2, 0.04);
server.commit_frame();

server.init_frame();
    server.remove_cursor(cursor_id);
    server.remove_object(object_id);
    server.remove_blob(blob_id);
server.commit_frame();

通过客户端接收TUIO输入

use tuio_rs::{Client};

let client = Client::new().unwrap();
client.connect().expect("Client connecting");

loop {
    if let Ok(Some(events)) = client.refresh() {
        // Process events. See receiver example for a process function
    }
}

依赖项

~2–13MB
~117K SLoC