diff --git a/src/gaussian/formats/cloud_3d.rs b/src/gaussian/formats/cloud_3d.rs index 819d161d..35feffa1 100644 --- a/src/gaussian/formats/cloud_3d.rs +++ b/src/gaussian/formats/cloud_3d.rs @@ -18,10 +18,7 @@ use crate::{ CommonCloud, TestCloud, }, - iter::{ - PositionIter, - PositionParIter, - }, + iter::PositionIter, packed::{Gaussian3d, PlanarGaussian3d}, settings::CloudSettings, }, @@ -79,8 +76,8 @@ impl CommonCloud for PlanarGaussian3d { } #[cfg(feature = "sort_rayon")] - fn position_par_iter(&self) -> PositionParIter<'_> { - PositionParIter::new(&self.position_visibility) + fn position_par_iter(&self) -> crate::gaussian::iter::PositionParIter<'_> { + crate::gaussian::iter::PositionParIter::new(&self.position_visibility) } } diff --git a/src/gaussian/formats/cloud_3d_chunked.rs b/src/gaussian/formats/cloud_3d_chunked.rs new file mode 100644 index 00000000..e69de29b diff --git a/src/gaussian/formats/cloud_3d_quantized.rs b/src/gaussian/formats/cloud_3d_quantized.rs new file mode 100644 index 00000000..68a8aaeb --- /dev/null +++ b/src/gaussian/formats/cloud_3d_quantized.rs @@ -0,0 +1,2 @@ +// TODO: gaussian_3d and gaussian_3d_quantized conversions +// TODO: packed quantized gaussian 3d diff --git a/src/gaussian/formats/cloud_3d_spz.rs b/src/gaussian/formats/cloud_3d_spz.rs new file mode 100644 index 00000000..1a69c536 --- /dev/null +++ b/src/gaussian/formats/cloud_3d_spz.rs @@ -0,0 +1 @@ +// TODO: spz quantized format https://github.com/nianticlabs/spz diff --git a/src/gaussian/formats/cloud_4d.rs b/src/gaussian/formats/cloud_4d.rs index 561a4c45..ad2293b5 100644 --- a/src/gaussian/formats/cloud_4d.rs +++ b/src/gaussian/formats/cloud_4d.rs @@ -6,10 +6,7 @@ use crate::{ CommonCloud, TestCloud, }, - iter::{ - PositionIter, - PositionParIter, - }, + iter::PositionIter, packed::{Gaussian4d, PlanarGaussian4d}, }, random_gaussians_4d, @@ -182,8 +179,8 @@ impl CommonCloud for PlanarGaussian4d { } #[cfg(feature = "sort_rayon")] - fn position_par_iter(&self) -> PositionParIter<'_> { - PositionParIter::new(&self.position_visibility) + fn position_par_iter(&self) -> crate::gaussian::iter::PositionParIter<'_> { + crate::gaussian::iter::PositionParIter::new(&self.position_visibility) } } diff --git a/src/gaussian/formats/cloud_4d_hierarchy.rs b/src/gaussian/formats/cloud_4d_hierarchy.rs index 28d6b62d..96671f85 100644 --- a/src/gaussian/formats/cloud_4d_hierarchy.rs +++ b/src/gaussian/formats/cloud_4d_hierarchy.rs @@ -1 +1,18 @@ // TODO: gaussian cloud 4d with temporal hierarchy +use crate::gaussian::packed::PlanarGaussian4dHandle; + + +pub struct TemporalGaussianLevel { + pub instance_count: usize, + // TODO: swap buffer slicing +} + +// TODO: make this an asset +pub struct TemporalGaussianHierarchy { + pub flat_cloud: PlanarGaussian4dHandle, + pub levels: Vec, + // TODO: level descriptor validation +} + +// TODO: implement level streaming utilities in src/stream/hierarchy.rs +// TODO: implement GPU slice utilities in src/stream/slice.rs diff --git a/src/gaussian/formats/cloud_4d_quantized.rs b/src/gaussian/formats/cloud_4d_quantized.rs new file mode 100644 index 00000000..e69de29b diff --git a/src/gaussian/formats/mod.rs b/src/gaussian/formats/mod.rs index d5fac4da..86c3476a 100644 --- a/src/gaussian/formats/mod.rs +++ b/src/gaussian/formats/mod.rs @@ -1,2 +1,3 @@ pub mod cloud_3d; pub mod cloud_4d; +pub mod cloud_4d_hierarchy; diff --git a/src/gaussian/interface.rs b/src/gaussian/interface.rs index fddaf6f9..71d66595 100644 --- a/src/gaussian/interface.rs +++ b/src/gaussian/interface.rs @@ -7,10 +7,7 @@ use bevy_interleave::prelude::Planar; #[cfg(feature = "sort_rayon")] use rayon::prelude::*; -use crate::gaussian::iter::{ - PositionIter, - PositionParIter, -}; +use crate::gaussian::iter::PositionIter; pub trait CommonCloud @@ -77,7 +74,7 @@ where fn position_iter(&self) -> PositionIter<'_>; #[cfg(feature = "sort_rayon")] - fn position_par_iter(&self) -> PositionParIter<'_>; + fn position_par_iter(&self) -> crate::gaussian::iter::PositionParIter<'_>; } pub trait TestCloud {