use polyscope_rs::*;
#[test]
fn test_basics() {
init().expect("init failed");
assert!(is_initialized());
{
let points = vec![
Vec3::new(0.0, 0.0, 0.0),
Vec3::new(1.0, 0.0, 0.0),
Vec3::new(0.0, 1.0, 0.0),
];
let _pc = register_point_cloud("test cloud", points);
assert!(get_point_cloud("test cloud").is_some());
assert!(get_point_cloud("nonexistent").is_none());
}
{
let verts = vec![
Vec3::new(0.0, 0.0, 0.0),
Vec3::new(1.0, 0.0, 0.0),
Vec3::new(0.0, 1.0, 0.0),
];
let faces = vec![glam::UVec3::new(0, 1, 2)];
let _mesh = register_surface_mesh("test mesh", verts, faces);
assert!(get_surface_mesh("test mesh").is_some());
assert!(get_surface_mesh("nonexistent").is_none());
}
{
let points = vec![Vec3::new(0.0, 0.0, 0.0)];
register_point_cloud("to_remove", points);
assert!(get_point_cloud("to_remove").is_some());
remove_structure("to_remove");
assert!(get_point_cloud("to_remove").is_none());
}
{
let points = vec![Vec3::new(0.0, 0.0, 0.0)];
register_point_cloud("cloud1", points.clone());
register_point_cloud("cloud2", points);
remove_all_structures();
assert!(get_point_cloud("cloud1").is_none());
assert!(get_point_cloud("cloud2").is_none());
}
{
let points = vec![
Vec3::new(0.0, 0.0, 0.0),
Vec3::new(1.0, 0.0, 0.0),
Vec3::new(0.0, 1.0, 0.0),
];
let pc = register_point_cloud("with_quantities", points);
pc.add_scalar_quantity("scalars", vec![0.0, 0.5, 1.0]);
pc.add_vector_quantity("vectors", vec![Vec3::X, Vec3::Y, Vec3::Z]);
pc.add_color_quantity(
"colors",
vec![
Vec3::new(1.0, 0.0, 0.0),
Vec3::new(0.0, 1.0, 0.0),
Vec3::new(0.0, 0.0, 1.0),
],
);
}
{
let vertices = vec![
Vec3::new(0.0, 0.0, 0.0),
Vec3::new(1.0, 0.0, 0.0),
Vec3::new(0.5, 1.0, 0.0),
Vec3::new(0.5, 0.5, 1.0),
Vec3::new(0.5, 0.5, -1.0),
];
let tets = vec![[0, 1, 2, 3], [0, 2, 1, 4]];
let vm = register_tet_mesh("test_vol", vertices, tets);
vm.add_vertex_scalar_quantity("temperature", vec![0.0, 0.25, 0.5, 0.75, 1.0]);
vm.add_cell_scalar_quantity("pressure", vec![1.0, 2.0]);
assert!(get_volume_mesh("test_vol").is_some());
assert!(get_volume_mesh("nonexistent").is_none());
}
shutdown();
}
#[test]
#[ignore]
fn test_show_window() {
init().expect("init failed");
let points = vec![
Vec3::new(0.0, 0.0, 0.0),
Vec3::new(1.0, 0.0, 0.0),
Vec3::new(0.0, 1.0, 0.0),
Vec3::new(0.0, 0.0, 1.0),
];
register_point_cloud("test points", points);
show();
shutdown();
}