pub struct BasicModifierBundle<G: GaussianPod, S = NoSelection, B = BindGroup> { /* private fields */ }Expand description
A specialized ComputeBundle for some built-in basic modifier.
This bundle includes the modifiers for BasicColorModifiersBuffer,
RotScaleBuffer, and TransformFlagsBuffer (which provides flags for applying
core::ModelTransformBuffer and core::GaussianTransformBuffer).
Implementations§
Source§impl<G: GaussianPod, S, B> BasicModifierBundle<G, S, B>
impl<G: GaussianPod, S, B> BasicModifierBundle<G, S, B>
Sourcepub fn bundle(&self) -> &ComputeBundle<B>
pub fn bundle(&self) -> &ComputeBundle<B>
Gets the inner ComputeBundle.
Source§impl<G: GaussianPod> BasicModifierBundle<G>
impl<G: GaussianPod> BasicModifierBundle<G>
Sourcepub const BIND_GROUP_LAYOUT_DESCRIPTOR: BindGroupLayoutDescriptor<'static>
pub const BIND_GROUP_LAYOUT_DESCRIPTOR: BindGroupLayoutDescriptor<'static>
The bind group layout descriptor for the BasicModifierBundle.
This bind group layout takes the following buffers:
This is at group 1, because group 0 is the MODIFIER_GAUSSIANS_BIND_GROUP_LAYOUT_DESCRIPTOR.
Sourcepub fn new(
device: &Device,
gaussians_buffer: &GaussiansBuffer<G>,
model_transform_buffer: &ModelTransformBuffer,
gaussian_transform_buffer: &GaussianTransformBuffer,
transform_flags_buffer: &TransformFlagsBuffer,
basic_color_modifiers_buffer: &BasicColorModifiersBuffer,
rot_scale_buffer: &RotScaleBuffer,
) -> Self
pub fn new( device: &Device, gaussians_buffer: &GaussiansBuffer<G>, model_transform_buffer: &ModelTransformBuffer, gaussian_transform_buffer: &GaussianTransformBuffer, transform_flags_buffer: &TransformFlagsBuffer, basic_color_modifiers_buffer: &BasicColorModifiersBuffer, rot_scale_buffer: &RotScaleBuffer, ) -> Self
Creates a new BasicModifierBundle bundle.
Source§impl<G: GaussianPod> BasicModifierBundle<G, WithSelection>
impl<G: GaussianPod> BasicModifierBundle<G, WithSelection>
Sourcepub const BIND_GROUP_LAYOUT_DESCRIPTOR: BindGroupLayoutDescriptor<'static>
pub const BIND_GROUP_LAYOUT_DESCRIPTOR: BindGroupLayoutDescriptor<'static>
The bind group layout descriptor for the BasicModifierBundle with a SelectionBuffer.
Thie bind group layout takes the following buffers:
This is at group 1, because group 0 is the MODIFIER_GAUSSIANS_BIND_GROUP_LAYOUT_DESCRIPTOR.
Sourcepub fn new_with_selection(
device: &Device,
gaussians_buffer: &GaussiansBuffer<G>,
model_transform_buffer: &ModelTransformBuffer,
gaussian_transform_buffer: &GaussianTransformBuffer,
transform_flags_buffer: &TransformFlagsBuffer,
basic_color_modifiers_buffer: &BasicColorModifiersBuffer,
rot_scale_buffer: &RotScaleBuffer,
selection_buffer: &SelectionBuffer,
) -> Self
pub fn new_with_selection( device: &Device, gaussians_buffer: &GaussiansBuffer<G>, model_transform_buffer: &ModelTransformBuffer, gaussian_transform_buffer: &GaussianTransformBuffer, transform_flags_buffer: &TransformFlagsBuffer, basic_color_modifiers_buffer: &BasicColorModifiersBuffer, rot_scale_buffer: &RotScaleBuffer, selection_buffer: &SelectionBuffer, ) -> Self
Creates a new BasicModifierBundle bundle with SelectionBuffer.
Source§impl<G: GaussianPod, S> BasicModifierBundle<G, S>
impl<G: GaussianPod, S> BasicModifierBundle<G, S>
Sourcepub fn apply_with_count(
&self,
encoder: &mut CommandEncoder,
gaussian_count: u32,
)
pub fn apply_with_count( &self, encoder: &mut CommandEncoder, gaussian_count: u32, )
Apply the basic modifier to the Gaussians.
Source§impl<G: GaussianPod> BasicModifierBundle<G, NoSelection, ()>
impl<G: GaussianPod> BasicModifierBundle<G, NoSelection, ()>
Sourcepub fn new_without_bind_group(device: &Device) -> Self
pub fn new_without_bind_group(device: &Device) -> Self
Creates a new BasicModifierBundle bundle without a bind group.
Source§impl<G: GaussianPod> BasicModifierBundle<G, WithSelection, ()>
impl<G: GaussianPod> BasicModifierBundle<G, WithSelection, ()>
Sourcepub fn new_without_bind_group_with_selection(device: &Device) -> Self
pub fn new_without_bind_group_with_selection(device: &Device) -> Self
Creates a new BasicModifierBundle bundle without a bind group with selection buffer.
Source§impl<G: GaussianPod, S> BasicModifierBundle<G, S, ()>
impl<G: GaussianPod, S> BasicModifierBundle<G, S, ()>
Sourcepub fn apply_with_count(
&self,
encoder: &mut CommandEncoder,
gaussians_bind_group: &BindGroup,
bind_group: &BindGroup,
gaussian_count: u32,
)
pub fn apply_with_count( &self, encoder: &mut CommandEncoder, gaussians_bind_group: &BindGroup, bind_group: &BindGroup, gaussian_count: u32, )
Apply the basic modifier to the Gaussians.
gaussians_bind_groupis the bind group created fromMODIFIER_GAUSSIANS_BIND_GROUP_LAYOUT_DESCRIPTOR.bind_groupis the bind group created fromBasicModifierBundle::BIND_GROUP_LAYOUT_DESCRIPTOR.
Trait Implementations§
Source§impl<G: Debug + GaussianPod, S: Debug, B: Debug> Debug for BasicModifierBundle<G, S, B>
impl<G: Debug + GaussianPod, S: Debug, B: Debug> Debug for BasicModifierBundle<G, S, B>
Source§impl<G: GaussianPod, S> Modifier<G> for BasicModifierBundle<G, S>
impl<G: GaussianPod, S> Modifier<G> for BasicModifierBundle<G, S>
Source§fn apply(
&self,
_device: &Device,
encoder: &mut CommandEncoder,
gaussians: &GaussiansBuffer<G>,
_model_transform: &ModelTransformBuffer,
_gaussian_transform: &GaussianTransformBuffer,
)
fn apply( &self, _device: &Device, encoder: &mut CommandEncoder, gaussians: &GaussiansBuffer<G>, _model_transform: &ModelTransformBuffer, _gaussian_transform: &GaussianTransformBuffer, )
Auto Trait Implementations§
impl<G, S, B> Freeze for BasicModifierBundle<G, S, B>
impl<G, S = NoSelection, B = BindGroup> !RefUnwindSafe for BasicModifierBundle<G, S, B>
impl<G, S, B> Send for BasicModifierBundle<G, S, B>
impl<G, S, B> Sync for BasicModifierBundle<G, S, B>
impl<G, S, B> Unpin for BasicModifierBundle<G, S, B>
impl<G, S = NoSelection, B = BindGroup> !UnwindSafe for BasicModifierBundle<G, S, B>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more