bevy_gaussian_splatting 2.4.2

bevy gaussian splatting render pipeline plugin
Documentation
use bevy::prelude::*;

use crate::sort::SortMode;


#[derive(
    Clone,
    Copy,
    Debug,
    Default,
    Eq,
    Hash,
    PartialEq,
    Reflect,
)]
pub enum GaussianCloudDrawMode {
    #[default]
    All,
    Selected,
    HighlightSelected,
}


#[derive(
    Clone,
    Copy,
    Debug,
    Default,
    Eq,
    Hash,
    PartialEq,
    Reflect,
)]
pub enum GaussianCloudRasterize {
    #[default]
    Color,
    Depth,
    Normal,
}


#[derive(Component, Reflect, Clone)]
#[reflect(Component)]
pub struct GaussianCloudSettings {
    pub aabb: bool,
    pub global_scale: f32,
    pub transform: Transform,
    pub visualize_bounding_box: bool,
    pub sort_mode: SortMode,
    pub draw_mode: GaussianCloudDrawMode,
    pub rasterize_mode: GaussianCloudRasterize,
}

impl Default for GaussianCloudSettings {
    fn default() -> Self {
        Self {
            aabb: false,
            global_scale: 1.0,
            transform: Transform::IDENTITY,
            visualize_bounding_box: false,
            sort_mode: SortMode::default(),
            draw_mode: GaussianCloudDrawMode::default(),
            rasterize_mode: GaussianCloudRasterize::default(),
        }
    }
}