use depthai::camera::{CameraNode, CameraBoardSocket};
use depthai::stereo_depth::StereoDepthNode;
use depthai::pipeline::Pipeline;
use depthai::device::Device;
use depthai::{Result, depthai_composite};
#[depthai_composite]
pub struct CameraStereoBundle {
pub left: CameraNode,
pub right: CameraNode,
pub stereo: StereoDepthNode,
}
impl CameraStereoBundle {
pub fn new(pipeline: &Pipeline) -> Result<Self> {
let left = pipeline.create_with::<CameraNode, _>(CameraBoardSocket::CamB)?;
let right = pipeline.create_with::<CameraNode, _>(CameraBoardSocket::CamC)?;
let stereo = pipeline.create::<StereoDepthNode>()?;
left.raw()?.link(&stereo.left()?)?;
right.raw()?.link(&stereo.right()?)?;
Ok(Self { left, right, stereo })
}
}
fn main() -> Result<()> {
let device = Device::new()?;
let pipeline = Pipeline::new().with_device(&device).build()?;
let bundle = pipeline.create::<CameraStereoBundle>()?;
println!("Created composite bundle with 2 cameras and 1 stereo node");
pipeline.start()?;
println!("Pipeline started!");
Ok(())
}