1#![allow(incomplete_features)]
2#![feature(generic_const_exprs)]
3#![feature(portable_simd)]
4
5mod exception;
6#[cfg(feature = "ffi")]
7pub mod ffi;
8
9mod physics_engine;
10mod renderer;
11mod robot;
12pub mod utils;
13mod world;
14
15pub use exception::*;
16pub use physics_engine::*;
17pub use renderer::*;
18pub use robot::*;
19pub use utils::*;
20pub use world::*;
21
22pub const ROPLAT_ASCII: &str = r#"
23 ##### ##### #####
24 # # # # # #
25 # # # # # #
26 # # # # # #
27 ##### # # #####
28 # # # # #
29 # # # # #
30 # # ##### #
31"#;
32
33pub mod behavior {
34 pub use crate::robot::{
35 Arm, ArmDOF, ArmForwardKinematics, ArmInverseKinematics, ArmParam, ArmPreplannedMotion,
36 ArmPreplannedMotionExt, ArmRealtimeControl, ArmRealtimeControlExt, ArmStreamingHandle,
37 ArmStreamingMotion, ArmStreamingMotionExt, Robot, RobotFile,
38 };
39
40 pub use crate::physics_engine::{AddSearchPath, PhysicsEngine};
41 pub use crate::renderer::{AttachFrom, Renderer};
42 pub use crate::world::{AddCollision, AddRobot, AddVisual, EntityBuilder};
43}
44
45#[cfg(feature = "to_py")]
46#[pyo3::pymodule]
47mod robot_behavior {
48 #[pymodule_export]
49 use super::{LoadState, PyArmState, PyControlType, PyMotionType, PyPose};
50}