Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: pyo3 and preludes #16

Merged
merged 1 commit into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 15 additions & 16 deletions crates/sophus/examples/pose_graph.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,22 @@ use hollywood::actors::egui::Stream;
pub use hollywood::compute::Context;
pub use hollywood::core::*;
use hollywood::macros::*;
use sophus::image::image_view::ImageSize;
use sophus::lie::traits::IsTranslationProductGroup;
use sophus::opt::example_problems::pose_circle::PoseCircleProblem;
use sophus::prelude::*;
use sophus::viewer::actor::run_viewer_on_main_thread;
use sophus::viewer::actor::ViewerBuilder;
use sophus::viewer::actor::ViewerCamera;
use sophus::viewer::actor::ViewerConfig;
use sophus::viewer::renderable::*;
use sophus::viewer::scene_renderer::interaction::WgpuClippingPlanes;
use sophus::viewer::SimpleViewer;
use sophus_core::linalg::vector::IsVector;
use sophus_core::linalg::VecF64;
use sophus_lie::groups::isometry2::Isometry2;
use sophus_lie::groups::isometry3::Isometry3;
use sophus_sensor::camera_enum::perspective_camera::KannalaBrandtCamera;
use sophus_image::ImageSize;
use sophus_lie::Isometry2;
use sophus_lie::Isometry3;
use sophus_sensor::camera_enum::perspective_camera::PerspectiveCameraEnum;
use sophus_sensor::dyn_camera::DynCamera;
use sophus_sensor::KannalaBrandtCamera;

#[actor(ContentGeneratorMessage)]
type ContentGenerator = Actor<
Expand Down Expand Up @@ -100,16 +99,16 @@ impl OnMessage for ContentGeneratorMessage {
ContentGeneratorMessage::ClockTick(_time_in_seconds) => {
let pose_graph = PoseCircleProblem::new(25);

let mut renderables = vec![];

renderables.push(Renderable::Lines3(Lines3 {
name: "true".into(),
lines: make_axes(pose_graph.true_world_from_robot.clone()),
}));
renderables.push(Renderable::Lines3(Lines3 {
name: "est".into(),
lines: make_axes(pose_graph.est_world_from_robot.clone()),
}));
let renderables = vec![
Renderable::Lines3(Lines3 {
name: "true".into(),
lines: make_axes(pose_graph.true_world_from_robot.clone()),
}),
Renderable::Lines3(Lines3 {
name: "est".into(),
lines: make_axes(pose_graph.est_world_from_robot.clone()),
}),
];

outbound.packets.send(Stream { msg: renderables });
}
Expand Down
9 changes: 4 additions & 5 deletions crates/sophus/examples/viewer_ex.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,18 @@ pub use hollywood::core::*;
use hollywood::macros::*;
use nalgebra::SVector;
use sophus::image::arc_image::ArcImage4F32;
use sophus::image::image_view::ImageSize;
use sophus::image::ImageSize;
use sophus::prelude::*;
use sophus::viewer::actor::run_viewer_on_main_thread;
use sophus::viewer::actor::ViewerBuilder;
use sophus::viewer::actor::ViewerCamera;
use sophus::viewer::actor::ViewerConfig;
use sophus::viewer::renderable::*;
use sophus::viewer::scene_renderer::interaction::WgpuClippingPlanes;
use sophus::viewer::SimpleViewer;
use sophus_core::linalg::vector::IsVector;
use sophus_core::linalg::VecF64;
use sophus_lie::groups::isometry3::Isometry3;
use sophus_lie::traits::IsTranslationProductGroup;
use sophus_sensor::dyn_camera::DynCamera;
use sophus_lie::Isometry3;
use sophus_sensor::DynCamera;

#[actor(ContentGeneratorMessage)]
type ContentGenerator = Actor<
Expand Down
8 changes: 8 additions & 0 deletions crates/sophus/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#![feature(portable_simd)]
#![allow(clippy::needless_range_loop)]

pub use sophus_core as core;
pub use sophus_image as image;
Expand All @@ -9,3 +10,10 @@ pub use sophus_sensor as sensor;
pub mod viewer;

pub use hollywood;

pub mod prelude {
pub use crate::core::prelude::*;
pub use crate::image::prelude::*;
pub use crate::lie::prelude::*;
pub use crate::opt::prelude::*;
}
5 changes: 2 additions & 3 deletions crates/sophus/src/viewer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ pub mod offscreen;
pub mod pixel_renderer;
pub mod renderable;
pub mod scene_renderer;

use self::actor::ViewerBuilder;
use self::offscreen::OffscreenTexture;
use self::pixel_renderer::PixelRenderer;
Expand All @@ -12,8 +11,8 @@ use self::scene_renderer::depth_renderer::DepthRenderer;
use self::scene_renderer::textured_mesh::TexturedMeshVertex3;
use self::scene_renderer::SceneRenderer;
use crate::image::arc_image::ArcImage4U8;
use crate::image::image_view::ImageSize;
use crate::image::image_view::IsImageView;
use crate::image::ImageSize;
use crate::viewer::pixel_renderer::LineVertex2;
use crate::viewer::pixel_renderer::PointVertex2;
use crate::viewer::scene_renderer::line::LineVertex3;
Expand All @@ -30,7 +29,7 @@ use hollywood::actors::egui::Stream;
use hollywood::compute::pipeline::CancelRequest;
use hollywood::core::request::RequestMessage;
use sophus_core::tensor::tensor_view::IsTensorLike;
use sophus_lie::groups::isometry3::Isometry3;
use sophus_lie::Isometry3;
use sophus_sensor::dyn_camera::DynCamera;
use std::sync::Arc;

Expand Down
3 changes: 1 addition & 2 deletions crates/sophus/src/viewer/actor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@ use eframe::egui;
use hollywood::actors::egui::EguiAppFromBuilder;
use hollywood::actors::egui::GenericEguiBuilder;
use hollywood::core::request::RequestMessage;
use sophus_lie::groups::isometry3::Isometry3;
use sophus_lie::Isometry3;
use sophus_sensor::dyn_camera::DynCamera;

pub struct ViewerCamera {
pub intrinsics: DynCamera<f64, 1>,
pub clipping_planes: WgpuClippingPlanes,
Expand Down
4 changes: 2 additions & 2 deletions crates/sophus/src/viewer/offscreen.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
use crate::image::arc_image::ArcImageF32;
use crate::image::image_view::ImageSize;
use crate::image::image_view::ImageViewF32;
use crate::image::ImageSize;
use crate::viewer::ViewerRenderState;
use eframe::egui::{self};
use sophus_sensor::dyn_camera::DynCamera;
use sophus_sensor::DynCamera;

#[derive(Debug)]
pub(crate) struct OffscreenTexture {
Expand Down
6 changes: 2 additions & 4 deletions crates/sophus/src/viewer/pixel_renderer.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
pub mod line;
pub mod pixel_point;

use self::line::PixelLineRenderer;
use self::pixel_point::PixelPointRenderer;
use crate::viewer::actor::ViewerBuilder;
use crate::viewer::scene_renderer::interaction::InteractionState;
use crate::viewer::DepthRenderer;
use crate::viewer::ViewerRenderState;

use self::line::PixelLineRenderer;
use self::pixel_point::PixelPointRenderer;
use bytemuck::Pod;
use bytemuck::Zeroable;
use std::num::NonZeroU64;
Expand Down
1 change: 0 additions & 1 deletion crates/sophus/src/viewer/pixel_renderer/line.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
use crate::viewer::renderable::Line2;
use crate::viewer::LineVertex2;
use crate::viewer::ViewerRenderState;

use eframe::egui_wgpu::wgpu::util::DeviceExt;
use nalgebra::SVector;
use std::collections::BTreeMap;
Expand Down
1 change: 0 additions & 1 deletion crates/sophus/src/viewer/pixel_renderer/pixel_point.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
use crate::viewer::renderable::Point2;
use crate::viewer::PointVertex2;
use crate::viewer::ViewerRenderState;

use eframe::egui_wgpu::wgpu::util::DeviceExt;
use std::collections::BTreeMap;
use std::sync::Mutex;
Expand Down
1 change: 0 additions & 1 deletion crates/sophus/src/viewer/scene_renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ pub mod line;
pub mod mesh;
pub mod point;
pub mod textured_mesh;

use self::buffers::SceneRenderBuffers;
use self::interaction::Interaction;
use self::mesh::MeshRenderer;
Expand Down
1 change: 0 additions & 1 deletion crates/sophus/src/viewer/scene_renderer/buffers.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
use crate::sensor::distortion_table::DistortTable;
use crate::viewer::ViewerBuilder;
use crate::viewer::ViewerRenderState;

use std::sync::Mutex;
use wgpu::util::DeviceExt;

Expand Down
6 changes: 2 additions & 4 deletions crates/sophus/src/viewer/scene_renderer/interaction.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
use crate::image::arc_image::ArcImageF32;
use crate::image::image_view::IsImageView;
use crate::lie::traits::IsTranslationProductGroup;
use crate::prelude::*;
use eframe::egui;
use sophus_core::linalg::VecF64;
use sophus_core::tensor::tensor_view::IsTensorLike;
use sophus_lie::groups::isometry3::Isometry3;
use sophus_lie::Isometry3;
use sophus_sensor::dyn_camera::DynCamera;

#[derive(Clone, Copy)]
Expand Down
1 change: 0 additions & 1 deletion crates/sophus/src/viewer/scene_renderer/line.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use crate::viewer::renderable::Line3;
use crate::viewer::ViewerRenderState;

use bytemuck::Pod;
use bytemuck::Zeroable;
use eframe::egui_wgpu::wgpu::util::DeviceExt;
Expand Down
1 change: 0 additions & 1 deletion crates/sophus/src/viewer/scene_renderer/mesh.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use crate::viewer::renderable::Triangle3;
use crate::viewer::ViewerRenderState;

use bytemuck::Pod;
use bytemuck::Zeroable;
use eframe::egui_wgpu::wgpu::util::DeviceExt;
Expand Down
1 change: 0 additions & 1 deletion crates/sophus/src/viewer/scene_renderer/point.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use crate::viewer::renderable::Point3;
use crate::viewer::ViewerRenderState;

use bytemuck::Pod;
use bytemuck::Zeroable;
use eframe::egui_wgpu::wgpu::util::DeviceExt;
Expand Down
5 changes: 2 additions & 3 deletions crates/sophus/src/viewer/scene_renderer/textured_mesh.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
use crate::viewer::renderable::TexturedTriangle3;
use crate::viewer::ViewerRenderState;
use bytemuck::Pod;
use bytemuck::Zeroable;
use eframe::egui_wgpu::wgpu::util::DeviceExt;
use std::collections::BTreeMap;
use wgpu::DepthStencilState;

use crate::viewer::renderable::TexturedTriangle3;
use crate::viewer::ViewerRenderState;

#[repr(C)]
#[derive(Clone, Copy, Pod, Zeroable)]
pub struct TexturedMeshVertex3 {
Expand Down
11 changes: 9 additions & 2 deletions crates/sophus_core/src/calculus.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,18 @@

/// dual numbers - for automatic differentiation
pub mod dual;
/// manifolds
pub mod manifold;

/// curves, scalar-valued, vector-valued, and matrix-valued maps
pub mod maps;

/// intervals and regions
pub mod region;
pub use crate::calculus::region::IInterval;
pub use crate::calculus::region::IRegion;
pub use crate::calculus::region::Interval;
pub use crate::calculus::region::Region;

/// splines
pub mod spline;
pub use crate::calculus::spline::CubicBSpline;
pub use crate::calculus::spline::CubicBSplineParams;
14 changes: 11 additions & 3 deletions crates/sophus_core/src/calculus/dual.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
///! DualScalar matrix.
/// DualScalar matrix.
pub mod dual_matrix;
///! DualScalar scalar.
pub use crate::calculus::dual::dual_matrix::DualBatchMatrix;
pub use crate::calculus::dual::dual_matrix::DualMatrix;

/// DualScalar scalar.
pub mod dual_scalar;
///! DualScalar vector.
pub use crate::calculus::dual::dual_scalar::DualBatchScalar;
pub use crate::calculus::dual::dual_scalar::DualScalar;

/// DualScalar vector.
pub mod dual_vector;
pub use crate::calculus::dual::dual_vector::DualBatchVector;
pub use crate::calculus::dual::dual_vector::DualVector;
Loading
Loading