rr: add rect_xyxy
parent
9df43797a1
commit
9ba4dee953
|
|
@ -1551,6 +1551,15 @@ version = "1.0.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "erased-serde"
|
||||||
|
version = "0.3.31"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "err-derive"
|
name = "err-derive"
|
||||||
version = "0.3.1"
|
version = "0.3.1"
|
||||||
|
|
@ -2727,12 +2736,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6c3a7a7ff4481ec91b951a733390211a8ace1caba57266ccb5f4d4966704e560"
|
checksum = "6c3a7a7ff4481ec91b951a733390211a8ace1caba57266ccb5f4d4966704e560"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bstr 1.6.2",
|
"bstr 1.6.2",
|
||||||
|
"erased-serde",
|
||||||
"mlua-sys",
|
"mlua-sys",
|
||||||
"mlua_derive",
|
"mlua_derive",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"serde",
|
"serde",
|
||||||
|
"serde-value",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -3098,6 +3109,15 @@ dependencies = [
|
||||||
"redox_syscall 0.3.5",
|
"redox_syscall 0.3.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ordered-float"
|
||||||
|
version = "2.10.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
|
||||||
|
dependencies = [
|
||||||
|
"num-traits",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ordered-float"
|
name = "ordered-float"
|
||||||
version = "3.9.1"
|
version = "3.9.1"
|
||||||
|
|
@ -3799,7 +3819,7 @@ dependencies = [
|
||||||
"macaw",
|
"macaw",
|
||||||
"never",
|
"never",
|
||||||
"notify",
|
"notify",
|
||||||
"ordered-float",
|
"ordered-float 3.9.1",
|
||||||
"parking_lot",
|
"parking_lot",
|
||||||
"pathdiff",
|
"pathdiff",
|
||||||
"re_build_tools",
|
"re_build_tools",
|
||||||
|
|
@ -4459,6 +4479,7 @@ dependencies = [
|
||||||
"image",
|
"image",
|
||||||
"mlua",
|
"mlua",
|
||||||
"rerun",
|
"rerun",
|
||||||
|
"serde_json",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -4712,6 +4733,16 @@ dependencies = [
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde-value"
|
||||||
|
version = "0.7.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
|
||||||
|
dependencies = [
|
||||||
|
"ordered-float 2.10.0",
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_bytes"
|
name = "serde_bytes"
|
||||||
version = "0.11.12"
|
version = "0.11.12"
|
||||||
|
|
|
||||||
|
|
@ -6,4 +6,4 @@ members = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
mlua = { version = "0.9.1", features = ["lua54", "module", "serde"] }
|
mlua = { version = "0.9.1", features = ["lua54", "module", "serde", "serialize"] }
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
local rr = require("rerun_lua")
|
local rr = require("rerun_lua")
|
||||||
|
|
||||||
local record = rr.recording("example")
|
--local record = rr.recording("example")
|
||||||
|
--record:image("54-0.png", "/Users/tbr/Desktop/00054-0.png")
|
||||||
|
|
||||||
record:image("54-0.png", "/Users/tbr/Desktop/00054-0.png")
|
function bbox(boundings)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
local json = rr.json("/Users/tbr/Desktop/ms_form.json")
|
||||||
|
|
|
||||||
|
|
@ -11,3 +11,4 @@ crate-type = ["cdylib"]
|
||||||
image = { version = "0.24.7", features = ["png", "jpeg", "tiff"] }
|
image = { version = "0.24.7", features = ["png", "jpeg", "tiff"] }
|
||||||
mlua = { workspace = true }
|
mlua = { workspace = true }
|
||||||
rerun = "0.8.2"
|
rerun = "0.8.2"
|
||||||
|
serde_json = "1.0.107"
|
||||||
|
|
@ -1,9 +1,20 @@
|
||||||
use std::fmt::format;
|
use std::fmt::format;
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::BufReader;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use mlua::AnyUserData;
|
use mlua::AnyUserData;
|
||||||
use mlua::prelude::*;
|
use mlua::prelude::*;
|
||||||
use rerun::{MsgSender, RecordingStream, RecordingStreamBuilder};
|
use rerun::{MsgSender, RecordingStream, RecordingStreamBuilder};
|
||||||
use rerun::components::Tensor;
|
use rerun::components::{Rect2D, Tensor, Vec4D};
|
||||||
|
|
||||||
|
fn json(lua: &Lua, path: String) -> LuaResult<LuaValue> {
|
||||||
|
let file = File::open(path.as_str())
|
||||||
|
.map_err(|error| LuaError::RuntimeError(format!("could not open json path: {path}. Error: {error}")))?;
|
||||||
|
let reader = BufReader::new(file);
|
||||||
|
let json_value: serde_json::Value = serde_json::from_reader(reader)
|
||||||
|
.map_err(|error| LuaError::RuntimeError(format!("could not parse json at: {path}. Error: {error}")))?;
|
||||||
|
lua.to_value(&json_value)
|
||||||
|
}
|
||||||
|
|
||||||
fn recording(lua: &Lua, name: String) -> LuaResult<AnyUserData> {
|
fn recording(lua: &Lua, name: String) -> LuaResult<AnyUserData> {
|
||||||
let stream = RecordingStreamBuilder::new(name)
|
let stream = RecordingStreamBuilder::new(name)
|
||||||
|
|
@ -12,13 +23,14 @@ fn recording(lua: &Lua, name: String) -> LuaResult<AnyUserData> {
|
||||||
lua.create_any_userdata(stream)
|
lua.create_any_userdata(stream)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn rect_xyxy(lua: &Lua, points: [f32;4]) -> LuaResult<AnyUserData> {
|
||||||
|
let rect = Rect2D::XYXY(Vec4D(points).into());
|
||||||
|
lua.create_any_userdata(rect)
|
||||||
|
}
|
||||||
|
|
||||||
fn register_bindings(lua: &Lua) -> LuaResult<()> {
|
fn register_bindings(lua: &Lua) -> LuaResult<()> {
|
||||||
lua.register_userdata_type::<RecordingStream>(|reg|{
|
lua.register_userdata_type::<RecordingStream>(|reg|{
|
||||||
reg.add_method("image", |lua, this, (entity_path, image_path): (String,String)| {
|
reg.add_method("image", |lua, this, (entity_path, image_path): (String,String)| {
|
||||||
// let image = ImageReader::open(image_path.as_str())
|
|
||||||
// .map_err(|error| LuaError::RuntimeError(format!("Could not open image file: {}. Error: {}", image_path, error)))?
|
|
||||||
// .decode()
|
|
||||||
// .map_err(|error| LuaError::RuntimeError(format!("Could not read image file: {}. Error: {}", image_path, error)))?;
|
|
||||||
let image_tensor = Tensor::from_image_file(PathBuf::from(image_path.as_str()).as_path())
|
let image_tensor = Tensor::from_image_file(PathBuf::from(image_path.as_str()).as_path())
|
||||||
.map_err(|error| LuaError::RuntimeError(format!("Could not read image file {image_path}. Error: {error}")))?;
|
.map_err(|error| LuaError::RuntimeError(format!("Could not read image file {image_path}. Error: {error}")))?;
|
||||||
MsgSender::new(entity_path)
|
MsgSender::new(entity_path)
|
||||||
|
|
@ -38,5 +50,7 @@ fn rerun_lua(lua: &Lua) -> LuaResult<LuaTable> {
|
||||||
register_bindings(lua)?;
|
register_bindings(lua)?;
|
||||||
let exports = lua.create_table()?;
|
let exports = lua.create_table()?;
|
||||||
exports.set("recording", lua.create_function(recording)?)?;
|
exports.set("recording", lua.create_function(recording)?)?;
|
||||||
|
exports.set("json", lua.create_function(json)?)?;
|
||||||
|
exports.set("rect_xyxy", lua.create_function(rect_xyxy)?)?;
|
||||||
Ok(exports)
|
Ok(exports)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue